original files of m241
This commit is contained in:
@@ -0,0 +1,232 @@
|
||||
/* 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 */
|
||||
Reference in New Issue
Block a user