|
|
1.1 ! root 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 */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.