source: bootcd/isolinux/syslinux-6.03/gpxe/src/include/pcmcia.h @ e16e8f2

Last change on this file since e16e8f2 was e16e8f2, checked in by Edwin Eefting <edwin@datux.nl>, 3 years ago

bootstuff

  • Property mode set to 100644
File size: 3.8 KB
Line 
1//      pcmcia.h - Header file for PCMCIA support
2
3#ifndef PCMCIA_H
4#define PCMCIA_H
5
6typedef unsigned char   u_char;
7typedef unsigned short  u_short;
8typedef unsigned int    u_int;
9typedef unsigned long   u_long;
10
11typedef u_short         ioaddr_t;
12extern int sockets;
13
14#define MAXPCCSOCKS     8
15#define MAXPCCCONFIGS   8
16
17typedef enum ebpdriver_t        { I82365, SOMEDRIVER                                            } ebpdriver_t;
18typedef enum interface_func_t   { INIT, SHUTDOWN, MAPATTRMEM, UNMAPATTRMEM, SELECTCONFIG        } interface_func_t;
19typedef enum ebpstatus_t        { EMPTY, HASCARD, INITIALIZED, SUSPENDED, OTHERDEVICE, UNKNOWN  } ebpstatus_t;
20
21struct  driver_interact_t {
22        ebpdriver_t     id;
23        int             (*f)(interface_func_t,int,int,int,int);
24        char            *name;
25};
26struct  pccsock_t {
27        ebpdriver_t     device;
28        int             drivernum;
29        ebpstatus_t     status;
30                // Internal usage of the drivers:
31        int             internalid;
32        int             flags;
33        int             ioaddr;
34        int             type;
35        int             configoffset;
36        int             possibleconfignum;
37        int             stringoffset;
38        u_int           stringlength;
39        int             rmask0;
40};
41
42extern struct   pccsock_t       pccsock[MAXPCCSOCKS];
43extern u_int    pccsocks;
44
45struct  pcc_config_t {
46        u_char  index;
47        u_char  irq;
48        int     iowin;
49        int     iolen;
50};
51
52
53int     i82365_interfacer(interface_func_t,int,int,int,void *);
54void    sleepticks(int);
55
56#define EINVAL  22
57
58
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
70#define SS_GPI          0x0200
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
76
77/* cc.h: for InquireSocket */
78typedef struct socket_cap_t {
79    u_int       features;
80    u_int       irq_mask;
81    u_int       map_size;
82    ioaddr_t    io_offset;
83    u_char      pci_irq;
84    //struct pci_dev *cb_dev;
85    //struct bus_operations *bus;
86    void *cb_dev;
87    void *bus;
88} socket_cap_t;
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
96
97/* for GetSocket, SetSocket */
98typedef struct socket_state_t {
99    u_int       flags;
100    u_int       csc_mask;
101    u_char      Vcc, Vpp;
102    u_char      io_irq;
103} socket_state_t;
104
105extern socket_state_t dead_socket;
106
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
116
117/* Flags for I/O port and memory windows */
118#define MAP_ACTIVE      0x01
119#define MAP_16BIT       0x02
120#define MAP_AUTOSZ      0x04
121#define MAP_0WS         0x08
122#define MAP_WRPROT      0x10
123#define MAP_ATTRIB      0x20
124#define MAP_USE_WAIT    0x40
125#define MAP_PREFETCH    0x80
126
127/* Use this just for bridge windows */
128#define MAP_IOSPACE     0x20
129
130typedef struct pccard_io_map {
131    u_char      map;
132    u_char      flags;
133    u_short     speed;
134    ioaddr_t    start, stop;
135} pccard_io_map;
136
137
138typedef struct pccard_mem_map {
139    u_char      map;
140    u_char      flags;
141    u_short     speed;
142    u_long      sys_start, sys_stop;
143    u_int       card_start;
144} pccard_mem_map;
145
146typedef struct cb_bridge_map {
147    u_char      map;
148    u_char      flags;
149    u_int       start, stop;
150} cb_bridge_map;
151// need the global function pointer struct? *TODO*
152//************************************* end cc.h
153
154
155
156#endif /* PCMCIA_H */
Note: See TracBrowser for help on using the repository browser.