📄 cislib.h
字号:
/* cisLib.h - PCMCIA CIS library header *//* Copyright 1984-1996 Wind River Systems, Inc. *//*modification history--------------------01d,02may01,dat added WRS_PACK_ALIGN struct. spr 6716801c,16jan97,hdn added CIS_MAX_TUPLES.01b,22feb96,hdn cleaned up.01a,10feb95,hdn written*/#ifndef __INCcislibh#define __INCcislibh#ifdef __cplusplusextern "C" {#endif#ifndef _ASMLANGUAGE/* * The following packing attribute is needed by code that reads the CIS tuples * to ensure the structure sizes can be used to calculate the proper offsets. */#ifndef WRS_PACK_ALIGN# define WRS_PACK_ALIGN(x) __attribute__((packed, aligned(x)))#endiftypedef struct cisTupleA { u_char code; u_char dummy0; u_char link; u_char dummy1; } CIS_TUPLE_A;typedef struct cisTupleC { u_char code; u_char link; } WRS_PACK_ALIGN(2) CIS_TUPLE_C;typedef CIS_TUPLE_C CIS_TUPLE;typedef union cisByte2 { u_char c[2]; u_short s; } CIS_BYTE2;typedef union cisByte4 { u_char c[4]; u_int l; } CIS_BYTE4;typedef struct cisIo { u_int start; u_int stop; } CIS_IO;typedef struct cisMem { u_int length; u_int cAddr; u_int hAddr; } CIS_MEM;typedef struct cisConfig { DL_NODE node; /* Double Link Node */ u_char index; /* configuration index */ u_char interfaceType; /* interface type */ u_char vcc[3]; /* vcc */ u_char vpp1[3]; /* vpp1 */ u_char vpp2[3]; /* vpp2 */ u_char ioBuswidth; /* io bus width */ u_char ioAddrlines; /* io address lines */ u_char ioRanges; /* io ranges */ CIS_IO io[16]; /* io window info */ u_char irqMode; /* IRQ mode */ u_char irqMask; /* IRQ mask */ u_char irqLevel; /* IRQ level */ u_char irqSpecial; /* IRQ special */ CIS_BYTE2 irqBit; /* IRQ bit */ CIS_MEM mem[8]; /* memory window info */ u_char twins; /* twin */ u_char audio; /* audio */ u_char readonly; /* read only */ u_char pwrdown; /* power down */ } CIS_CONFIG;/* assume max number of tuples in attribute or common memory */#define CIS_MAX_TUPLES 512/* memory window for Tuple and Configuration-register */#define CIS_MEM_TUPLE 0#define CIS_MEM_CONFIG 1/* Tuple codes */#define CISTPL_NULL 0x00#define CISTPL_DEVICE 0x01#define CISTPL_CHECKSUM 0x10#define CISTPL_LONGLINK_A 0x11#define CISTPL_LONGLINK_C 0x12#define CISTPL_LINKTARGET 0x13#define CISTPL_NO_LINK 0x14#define CISTPL_VERS_1 0x15#define CISTPL_ALTSTR 0x16#define CISTPL_DEVICE_A 0x17#define CISTPL_JEDEC_C 0x18#define CISTPL_JEDEC_A 0x19#define CISTPL_CONFIG 0x1a#define CISTPL_CFTABLE_ENTRY 0x1b#define CISTPL_DEVICE_OC 0x1c#define CISTPL_DEVICE_OA 0x1d#define CISTPL_DEVICE_GEO 0x1e#define CISTPL_DEVICE_GEO_A 0x1f#define CISTPL_MANFID 0x20#define CISTPL_FUNCID 0x21#define CISTPL_FUNCE 0x22#define CISTPL_SWIL 0x23#define CISTPL_VERS_2 0x40#define CISTPL_FORMAT 0x41#define CISTPL_GEOMETRY 0x42#define CISTPL_BYTEORDER 0x43#define CISTPL_DATE 0x44#define CISTPL_BATTERY 0x45#define CISTPL_ORG 0x46#define CISTPL_END 0xff/* device speed codes */#define DSPEED_NULL 0#define DSPEED_250NS 1#define DSPEED_200NS 2#define DSPEED_150NS 3#define DSPEED_100NS 4#define DSPEED_EXT 7/* device type codes */#define DTYPE_NULL 0x00#define DTYPE_ROM 0x10#define DTYPE_OTPROM 0x20#define DTYPE_EPROM 0x30#define DTYPE_EEPROM 0x40#define DTYPE_FLASH 0x50#define DTYPE_SRAM 0x60#define DTYPE_DRAM 0x70#define DTYPE_FUNCSPEC 0xd0#define DTYPE_EXTEND 0xe0/* function ID */#define FUNC_MULTI 0x0#define FUNC_MEMORY 0x1#define FUNC_SERIAL 0x2#define FUNC_PARALLEL 0x3#define FUNC_FIXEDDISK 0x4#define FUNC_VIDEO 0x5#define FUNC_LAN 0x6#define FUNC_AIMS 0x7/* function extension type and data */#define FUNCE_TYPE_DISK 0x01#define FUNCE_DATA_ATA 0x01/* configuration register: configuration option register */#define COR_SRESET 0x80#define COR_LEVIREQ 0x40/* configuration register: card configuration and status register */#define CCSR_CHANGED 0x80#define CCSR_SIGCHG 0x40#define CCSR_IOIS8 0x20#define CCSR_AUDIO 0x08#define CCSR_PWRDWN 0x04#define CCSR_INTR 0x02/* configuration register: pin replacement register */#define PRR_CBVD1 0x80#define PRR_CBVD2 0x40#define PRR_CRDY 0x20#define PRR_CWPROT 0x10#define PRR_RBVD1 0x08#define PRR_RBVD2 0x04#define PRR_RRDY 0x02#define PRR_RWPROT 0x01/* function declarations */#if defined(__STDC__) || defined(__cplusplus)extern STATUS cisGet (int sock);extern void cisFree (int sock);extern STATUS cisConfigregGet (int sock, int reg, int *pValue);extern STATUS cisConfigregSet (int sock, int reg, int value);extern void cisShow (int sock);#elseextern STATUS cisGet ();extern void cisFree ();extern STATUS cisConfigregGet ();extern STATUS cisConfigregSet ();extern void cisShow ();#endif /* __STDC__ */#endif /* _ASMLANGUAGE */#ifdef __cplusplus}#endif#endif /* __INCcislibh */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -