Home | History | Annotate | Download | only in include
      1 //	pcmcia.h - Header file for PCMCIA support
      2 
      3 #ifndef PCMCIA_H
      4 #define	PCMCIA_H
      5 
      6 typedef unsigned char	u_char;
      7 typedef unsigned short	u_short;
      8 typedef unsigned int	u_int;
      9 typedef unsigned long	u_long;
     10 
     11 typedef u_short		ioaddr_t;
     12 extern int sockets;
     13 
     14 #define	MAXPCCSOCKS	8
     15 #define	MAXPCCCONFIGS	8
     16 
     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;
     20 
     21 struct	driver_interact_t {
     22 	ebpdriver_t	id;
     23 	int		(*f)(interface_func_t,int,int,int,int);
     24 	char		*name;
     25 };
     26 struct	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 
     42 extern struct	pccsock_t	pccsock[MAXPCCSOCKS];
     43 extern u_int	pccsocks;
     44 
     45 struct	pcc_config_t {
     46 	u_char	index;
     47 	u_char	irq;
     48 	int	iowin;
     49 	int	iolen;
     50 };
     51 
     52 
     53 int	i82365_interfacer(interface_func_t,int,int,int,void *);
     54 void	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 */
     78 typedef 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 */
     98 typedef 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 
    105 extern 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 
    130 typedef 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 
    138 typedef 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 
    146 typedef 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 */
    157