1 // pcmcia.h - Header file for PCMCIA support
6 typedef unsigned char u_char;
7 typedef unsigned short u_short;
8 typedef unsigned int u_int;
9 typedef unsigned long u_long;
11 typedef u_short ioaddr_t;
15 #define MAXPCCCONFIGS 8
17 typedef enum ebpdriver_t { I82365, SOMEDRIVER } ebpdriver_t;
18 typedef enum interface_func_t { INIT, SHUTDOWN, MAPATTRMEM, UNMAPATTRMEM, SELECTCONFIG } interface_func_t;
19 typedef enum ebpstatus_t { EMPTY, HASCARD, INITIALIZED, SUSPENDED, OTHERDEVICE, UNKNOWN } ebpstatus_t;
21 struct driver_interact_t {
23 int (*f)(interface_func_t,int,int,int,int);
30 // Internal usage of the drivers:
36 int possibleconfignum;
42 extern struct pccsock_t pccsock[MAXPCCSOCKS];
43 extern u_int pccsocks;
53 int i82365_interfacer(interface_func_t,int,int,int,void *);
59 //*********************************************************** cc.h:
60 /* Definitions for card status flags for GetStatus */
61 #define SS_WRPROT 0x0001
62 #define SS_CARDLOCK 0x0002
63 #define SS_EJECTION 0x0004
64 #define SS_INSERTION 0x0008
65 #define SS_BATDEAD 0x0010
66 #define SS_BATWARN 0x0020
67 #define SS_READY 0x0040
68 #define SS_DETECT 0x0080
69 #define SS_POWERON 0x0100
71 #define SS_STSCHG 0x0400
72 #define SS_CARDBUS 0x0800
73 #define SS_3VCARD 0x1000
74 #define SS_XVCARD 0x2000
75 #define SS_PENDING 0x4000
77 /* cc.h: for InquireSocket */
78 typedef struct socket_cap_t {
84 //struct pci_dev *cb_dev;
85 //struct bus_operations *bus;
89 /* InquireSocket capabilities */
90 #define SS_CAP_PAGE_REGS 0x0001
91 #define SS_CAP_VIRTUAL_BUS 0x0002
92 #define SS_CAP_MEM_ALIGN 0x0004
93 #define SS_CAP_STATIC_MAP 0x0008
94 #define SS_CAP_PCCARD 0x4000
95 #define SS_CAP_CARDBUS 0x8000
97 /* for GetSocket, SetSocket */
98 typedef struct socket_state_t {
105 extern socket_state_t dead_socket;
107 /* Socket configuration flags */
108 #define SS_PWR_AUTO 0x0010
109 #define SS_IOCARD 0x0020
110 #define SS_RESET 0x0040
111 #define SS_DMA_MODE 0x0080
112 #define SS_SPKR_ENA 0x0100
113 #define SS_OUTPUT_ENA 0x0200
114 #define SS_DEBOUNCED 0x0400 /* Tell driver that the debounce delay has ended */
115 #define SS_ZVCARD 0x0800
117 /* Flags for I/O port and memory windows */
118 #define MAP_ACTIVE 0x01
119 #define MAP_16BIT 0x02
120 #define MAP_AUTOSZ 0x04
122 #define MAP_WRPROT 0x10
123 #define MAP_ATTRIB 0x20
124 #define MAP_USE_WAIT 0x40
125 #define MAP_PREFETCH 0x80
127 /* Use this just for bridge windows */
128 #define MAP_IOSPACE 0x20
130 typedef struct pccard_io_map {
134 ioaddr_t start, stop;
138 typedef struct pccard_mem_map {
142 u_long sys_start, sys_stop;
146 typedef struct cb_bridge_map {
151 // need the global function pointer struct? *TODO*
152 //************************************* end cc.h
156 #endif /* PCMCIA_H */