cisLib.h
资源名称:ixp425BSP.rar [点击查看]
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:5k
源码类别:
VxWorks
开发平台:
C/C++
- /* cisLib.h - PCMCIA CIS library header */
- /* Copyright 1984-1996 Wind River Systems, Inc. */
- /*
- modification history
- --------------------
- 01d,02may01,dat added WRS_PACK_ALIGN struct. spr 67168
- 01c,16jan97,hdn added CIS_MAX_TUPLES.
- 01b,22feb96,hdn cleaned up.
- 01a,10feb95,hdn written
- */
- #ifndef __INCcislibh
- #define __INCcislibh
- #ifdef __cplusplus
- extern "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)))
- #endif
- typedef 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);
- #else
- extern STATUS cisGet ();
- extern void cisFree ();
- extern STATUS cisConfigregGet ();
- extern STATUS cisConfigregSet ();
- extern void cisShow ();
- #endif /* __STDC__ */
- #endif /* _ASMLANGUAGE */
- #ifdef __cplusplus
- }
- #endif
- #endif /* __INCcislibh */