📄 cistpl.h
字号:
#define CISTPL_LAN_TECH_LOCALTALK 0x04#define CISTPL_LAN_TECH_FDDI 0x05#define CISTPL_LAN_TECH_ATM 0x06#define CISTPL_LAN_TECH_WIRELESS 0x07typedef struct cistpl_lan_tech_t { u_char tech;} cistpl_lan_tech_t;typedef struct cistpl_lan_speed_t { u_int speed;} cistpl_lan_speed_t;/* LAN media definitions */#define CISTPL_LAN_MEDIA_UTP 0x01#define CISTPL_LAN_MEDIA_STP 0x02#define CISTPL_LAN_MEDIA_THIN_COAX 0x03#define CISTPL_LAN_MEDIA_THICK_COAX 0x04#define CISTPL_LAN_MEDIA_FIBER 0x05#define CISTPL_LAN_MEDIA_900MHZ 0x06#define CISTPL_LAN_MEDIA_2GHZ 0x07#define CISTPL_LAN_MEDIA_5GHZ 0x08#define CISTPL_LAN_MEDIA_DIFF_IR 0x09#define CISTPL_LAN_MEDIA_PTP_IR 0x0atypedef struct cistpl_lan_media_t { u_char media;} cistpl_lan_media_t;typedef struct cistpl_lan_node_id_t { u_char nb; u_char id[16];} cistpl_lan_node_id_t;typedef struct cistpl_lan_connector_t { u_char code;} cistpl_lan_connector_t;/*====================================================================== IDE Function Extension Tuples======================================================================*/#define CISTPL_IDE_INTERFACE 0x01typedef struct cistpl_ide_interface_t { u_char interface;} cistpl_ide_interface_t;/* First feature byte */#define CISTPL_IDE_SILICON 0x04#define CISTPL_IDE_UNIQUE 0x08#define CISTPL_IDE_DUAL 0x10/* Second feature byte */#define CISTPL_IDE_HAS_SLEEP 0x01#define CISTPL_IDE_HAS_STANDBY 0x02#define CISTPL_IDE_HAS_IDLE 0x04#define CISTPL_IDE_LOW_POWER 0x08#define CISTPL_IDE_REG_INHIBIT 0x10#define CISTPL_IDE_HAS_INDEX 0x20#define CISTPL_IDE_IOIS16 0x40typedef struct cistpl_ide_feature_t { u_char feature1; u_char feature2;} cistpl_ide_feature_t;#define CISTPL_FUNCE_IDE_IFACE 0x01#define CISTPL_FUNCE_IDE_MASTER 0x02#define CISTPL_FUNCE_IDE_SLAVE 0x03/*====================================================================== Configuration Table Entries======================================================================*/#define CISTPL_BAR_SPACE 0x07#define CISTPL_BAR_SPACE_IO 0x10#define CISTPL_BAR_PREFETCH 0x20#define CISTPL_BAR_CACHEABLE 0x40#define CISTPL_BAR_1MEG_MAP 0x80typedef struct cistpl_bar_t { u_char attr; u_int size;} cistpl_bar_t;typedef struct cistpl_config_t { u_char last_idx; u_int base; u_int rmask[4]; u_char subtuples;} cistpl_config_t;/* These are bits in the 'present' field, and indices in 'param' */#define CISTPL_POWER_VNOM 0#define CISTPL_POWER_VMIN 1#define CISTPL_POWER_VMAX 2#define CISTPL_POWER_ISTATIC 3#define CISTPL_POWER_IAVG 4#define CISTPL_POWER_IPEAK 5#define CISTPL_POWER_IDOWN 6#define CISTPL_POWER_HIGHZ_OK 0x01#define CISTPL_POWER_HIGHZ_REQ 0x02typedef struct cistpl_power_t { u_char present; u_char flags; u_int param[7];} cistpl_power_t;typedef struct cistpl_timing_t { u_int wait, waitscale; u_int ready, rdyscale; u_int reserved, rsvscale;} cistpl_timing_t;#define CISTPL_IO_LINES_MASK 0x1f#define CISTPL_IO_8BIT 0x20#define CISTPL_IO_16BIT 0x40#define CISTPL_IO_RANGE 0x80#define CISTPL_IO_MAX_WIN 16typedef struct cistpl_io_t { u_char flags; u_char nwin; struct { u_int base; u_int len; } win[CISTPL_IO_MAX_WIN];} cistpl_io_t;typedef struct cistpl_irq_t { u_int IRQInfo1; u_int IRQInfo2;} cistpl_irq_t;#define CISTPL_MEM_MAX_WIN 8typedef struct cistpl_mem_t { u_char flags; u_char nwin; struct { u_int len; u_int card_addr; u_int host_addr; } win[CISTPL_MEM_MAX_WIN];} cistpl_mem_t;#define CISTPL_CFTABLE_DEFAULT 0x0001#define CISTPL_CFTABLE_BVDS 0x0002#define CISTPL_CFTABLE_WP 0x0004#define CISTPL_CFTABLE_RDYBSY 0x0008#define CISTPL_CFTABLE_MWAIT 0x0010#define CISTPL_CFTABLE_AUDIO 0x0800#define CISTPL_CFTABLE_READONLY 0x1000#define CISTPL_CFTABLE_PWRDOWN 0x2000typedef struct cistpl_cftable_entry_t { u_char index; u_short flags; u_char interface; cistpl_power_t vcc, vpp1, vpp2; cistpl_timing_t timing; cistpl_io_t io; cistpl_irq_t irq; cistpl_mem_t mem; u_char subtuples;} cistpl_cftable_entry_t;#define CISTPL_CFTABLE_MASTER 0x000100#define CISTPL_CFTABLE_INVALIDATE 0x000200#define CISTPL_CFTABLE_VGA_PALETTE 0x000400#define CISTPL_CFTABLE_PARITY 0x000800#define CISTPL_CFTABLE_WAIT 0x001000#define CISTPL_CFTABLE_SERR 0x002000#define CISTPL_CFTABLE_FAST_BACK 0x004000#define CISTPL_CFTABLE_BINARY_AUDIO 0x010000#define CISTPL_CFTABLE_PWM_AUDIO 0x020000typedef struct cistpl_cftable_entry_cb_t { u_char index; u_int flags; cistpl_power_t vcc, vpp1, vpp2; u_char io; cistpl_irq_t irq; u_char mem; u_char subtuples;} cistpl_cftable_entry_cb_t;typedef struct cistpl_device_geo_t { u_char ngeo; struct { u_char buswidth; u_int erase_block; u_int read_block; u_int write_block; u_int partition; u_int interleave; } geo[CISTPL_MAX_DEVICES];} cistpl_device_geo_t;typedef struct cistpl_vers_2_t { u_char vers; u_char comply; u_short dindex; u_char vspec8, vspec9; u_char nhdr; u_char vendor, info; char str[244];} cistpl_vers_2_t;typedef struct cistpl_org_t { u_char data_org; char desc[30];} cistpl_org_t;#define CISTPL_ORG_FS 0x00#define CISTPL_ORG_APPSPEC 0x01#define CISTPL_ORG_XIP 0x02typedef struct cistpl_format_t { u_char type; u_char edc; u_int offset; u_int length;} cistpl_format_t;#define CISTPL_FORMAT_DISK 0x00#define CISTPL_FORMAT_MEM 0x01#define CISTPL_EDC_NONE 0x00#define CISTPL_EDC_CKSUM 0x01#define CISTPL_EDC_CRC 0x02#define CISTPL_EDC_PCC 0x03typedef union cisparse_t { cistpl_device_t device; cistpl_checksum_t checksum; cistpl_longlink_t longlink; cistpl_longlink_mfc_t longlink_mfc; cistpl_vers_1_t version_1; cistpl_altstr_t altstr; cistpl_jedec_t jedec; cistpl_manfid_t manfid; cistpl_funcid_t funcid; cistpl_funce_t funce; cistpl_bar_t bar; cistpl_config_t config; cistpl_cftable_entry_t cftable_entry; cistpl_cftable_entry_cb_t cftable_entry_cb; cistpl_device_geo_t device_geo; cistpl_vers_2_t vers_2; cistpl_org_t org; cistpl_format_t format;} cisparse_t;typedef struct tuple_t { u_int Attributes; cisdata_t DesiredTuple; u_int Flags; /* internal use */ u_int LinkOffset; /* internal use */ u_int CISOffset; /* internal use */ cisdata_t TupleCode; cisdata_t TupleLink; cisdata_t TupleOffset; cisdata_t TupleDataMax; cisdata_t TupleDataLen; cisdata_t *TupleData;} tuple_t;/* Special cisdata_t value */#define RETURN_FIRST_TUPLE 0xff/* Attributes for tuple calls */#define TUPLE_RETURN_LINK 0x01#define TUPLE_RETURN_COMMON 0x02/* For ValidateCIS */typedef struct cisinfo_t { u_int Chains;} cisinfo_t;#define CISTPL_MAX_CIS_SIZE 0x200/* For ReplaceCIS */typedef struct cisdump_t { u_int Length; cisdata_t Data[CISTPL_MAX_CIS_SIZE];} cisdump_t;int pcmcia_get_first_tuple(client_handle_t handle, tuple_t *tuple);int pcmcia_get_next_tuple(client_handle_t handle, tuple_t *tuple);int pcmcia_get_tuple_data(client_handle_t handle, tuple_t *tuple);int pcmcia_parse_tuple(client_handle_t handle, tuple_t *tuple, cisparse_t *parse);int pcmcia_validate_cis(client_handle_t handle, cisinfo_t *info);int pcmcia_replace_cis(client_handle_t handle, cisdump_t *cis);#endif /* LINUX_CISTPL_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -