60 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| #ifndef _NVT_ICFG_H_
 | |
| #define _NVT_ICFG_H_
 | |
| 
 | |
| #include <linux/mutex.h>
 | |
| 
 | |
| #define NVT_ICFG_MAX_MSG_BODY   1024
 | |
| #define NVT_ICFG_MSG_HDR_LEN             4
 | |
| #define NVT_ICFG_WID_SIZE 2
 | |
| 
 | |
| #define NVT_ICFG_CHAR_CMD_LEN 4
 | |
| #define NVT_ICFG_SHORT_CMD_LEN 5
 | |
| #define NVT_ICFG_INT_CMD_LEN 7
 | |
| #define NVT_ICFG_STR_SET_CMD_LEN 3
 | |
| #define NVT_ICFG_STR_GET_CMD_LEN 2
 | |
| #define NVT_ICFG_BIN_SET_CMD_LEN 5
 | |
| #define NVT_ICFG_BIN_GET_CMD_LEN 2
 | |
| 
 | |
| #define NVT_ICFG_SHORT_WID_START 0x1000
 | |
| #define NVT_ICFG_INT_WID_START 0x2000
 | |
| #define NVT_ICFG_STR_WID_START 0x3000
 | |
| #define NVT_ICFG_BIN_WID_START 0x4000
 | |
| #define NVT_ICFG_MAX_WID_START 0x5000
 | |
| 
 | |
| #define NVT_ICFG_CHAR_WID_LEN 1
 | |
| #define NVT_ICFG_SHORT_WID_LEN 2
 | |
| #define NVT_ICFG_INT_WID_LEN 4
 | |
| 
 | |
| #define NVT_ICFG_BIN_WID_BIN_LEN 2
 | |
| 
 | |
| struct _nvt_bus;
 | |
| 
 | |
| enum nvt_icfg_dir {
 | |
|         NVT_ICFG_GET = 0,
 | |
|         NVT_ICFG_SET,
 | |
|         NVT_ICFG_DIR_MAX,
 | |
| };
 | |
| 
 | |
| struct _nvt_icfg_pkt_buff {
 | |
| 
 | |
|         u8     msg_type;
 | |
|         u8     seq;
 | |
|         u8     msg_len[2];
 | |
|         u8     msg_body[NVT_ICFG_MAX_MSG_BODY];
 | |
|         u16    cur_index;
 | |
|         struct mutex iconfig_mutex;
 | |
| };
 | |
| 
 | |
| extern s32 nvt_icfg_lock(struct _nvt_bus *nvt_bus);
 | |
| extern s32 nvt_icfg_unlock(struct _nvt_bus *nvt_bus);
 | |
| 
 | |
| extern s32 nvt_icfg_reset(struct _nvt_bus *nvt_bus);
 | |
| extern s32 nvt_icfg_add(struct _nvt_bus *nvt_bus, enum nvt_icfg_dir dir,
 | |
|         u32 wid, u8 *wid_val, u16 size);
 | |
| extern s32 nvt_icfg_send_and_get_resp(struct _nvt_bus *nvt_bus,
 | |
|         u8 *resp, u16 resp_buf_size);
 | |
| extern s32 nvt_icfg_get_wid_value(u8*, u32, u8*);
 | |
| extern s32 nvt_get_wid_value(struct _nvt_bus *nvt_bus, u32 wid, u8 *resp,
 | |
|         u32 buff_size, u8 *wid_value);
 | |
| #endif
 | 
