home *** CD-ROM | disk | FTP | other *** search
- /* This header file defines some data structures used by the 3c505 driver */
-
- /* Data units */
- typedef unsigned char byte;
- typedef unsigned short int word;
- typedef unsigned long int dword;
-
-
- /* Data structures */
- struct Memconf {
- word cmd_q,
- rcv_q,
- mcast,
- frame,
- rcv_b,
- progs;
- };
-
- struct Rcv_pkt {
- word buf_ofs,
- buf_seg,
- buf_len,
- timeout;
- };
-
- struct Xmit_pkt {
- word buf_ofs,
- buf_seg,
- pkt_len;
- };
-
- struct Rcv_resp {
- word buf_ofs,
- buf_seg,
- buf_len,
- pkt_len,
- timeout,
- status;
- dword timetag;
- };
-
- struct Xmit_resp {
- word buf_ofs,
- buf_seg,
- c_stat,
- status;
- };
-
-
- struct Netstat {
- dword tot_recv,
- tot_xmit;
- word err_CRC,
- err_align,
- err_res,
- err_ovrrun;
- };
-
-
- struct Selftest {
- word error;
- union {
- word ROM_cksum;
- struct {
- word ofs, seg;
- } RAM;
- word i82586;
- } failure;
- };
-
- struct Info {
- byte minor_vers,
- major_vers;
- word ROM_cksum,
- RAM_sz,
- free_ofs,
- free_seg;
- };
-
- struct Memdump {
- word size,
- off,
- seg;
- };
-
- /*
- Primary Command Block. The most important data structure. All communication
- between the host and the adapter is done with these. (Except for the ethernet
- data, which has different packaging.)
- */
- typedef struct {
- byte command;
- byte length;
- union {
- struct Memconf memconf;
- word configure;
- struct Rcv_pkt rcv_pkt;
- struct Xmit_pkt xmit_pkt;
- byte multicast[10][6];
- byte eth_addr[6];
- byte failed;
- struct Rcv_resp rcv_resp;
- struct Xmit_resp xmit_resp;
- struct Netstat netstat;
- struct Selftest selftest;
- struct Info info;
- struct Memdump memdump;
- byte raw[62];
- } data;
- } pcb_struct;
-
- /* These defines for 'configure' */
- #define RECV_STATION 0x00
- #define RECV_BROAD 0x01
- #define RECV_MULTI 0x02
- #define RECV_ALL 0x04
- #define NO_LOOPBACK 0x00
- #define INT_LOOPBACK 0x08
- #define EXT_LOOPBACK 0x10
-