Annotation of Net2/arch/i386/netboot/lance.h, revision 1.1.1.1

1.1       root        1: /* netboot
                      2:  *
                      3:  * lance.h,v
                      4:  * Revision 1.1  1993/07/08  16:04:01  brezak
                      5:  * Diskless boot prom code from Jim McKim ([email protected])
                      6:  *
                      7:  * Revision 1.1.1.1  1993/05/28  11:41:08  mckim
                      8:  * Initial version.
                      9:  *
                     10:  *
                     11:  * source in this file came from
                     12:  * the Mach ethernet boot written by Leendert van Doorn.
                     13:  */
                     14: 
                     15: /* RAP functions as a select for RDP */
                     16: #define RDP_CSR0       0
                     17: #define RDP_CSR1       1
                     18: #define RDP_CSR2       2
                     19: #define RDP_CSR3       3
                     20: 
                     21: /* contents of csr0 */
                     22: #define CSR_ERR                0x8000
                     23: #define CSR_BABL       0x4000
                     24: #define CSR_CERR       0x2000
                     25: #define CSR_MISS       0x1000
                     26: #define CSR_MERR       0x0800
                     27: #define CSR_RINT       0x0400
                     28: #define CSR_TINT       0x0200
                     29: #define CSR_IDON       0x0100
                     30: #define CSR_INTR       0x0080
                     31: #define CSR_INEA       0x0040
                     32: #define CSR_RXON       0x0020
                     33: #define CSR_TXON       0x0010
                     34: #define CSR_TDMD       0x0008
                     35: #define CSR_STOP       0x0004
                     36: #define CSR_STRT       0x0002
                     37: #define CSR_INIT       0x0001
                     38: 
                     39: /* csr1 contains low 16 bits of address of Initialization Block */
                     40: 
                     41: /* csr2 contains in low byte high 8 bits of address of InitBlock */
                     42: 
                     43: /* contents of csr3 */
                     44: #define CSR3_BSWP      0x04    /* byte swap (for big endian) */
                     45: #define CSR3_ACON      0x02    /* ALE control */
                     46: #define CSR3_BCON      0x01    /* byte control */
                     47: 
                     48: /*
                     49:  * The initialization block
                     50:  */
                     51: typedef struct {
                     52:     u_short    ib_mode;        /* modebits, see below */
                     53:     char       ib_padr[6];     /* physical 48bit Ether-address */
                     54:     u_short    ib_ladrf[4];    /* 64bit hashtable for "logical" addresses */
                     55:     u_short    ib_rdralow;     /* low 16 bits of Receiver Descr. Ring addr */
                     56:     u_char     ib_rdrahigh;    /* high 8 bits of Receiver Descr. Ring addr */
                     57:     u_char     ib_rlen;        /* upper 3 bits are 2log Rec. Ring Length */
                     58:     u_short    ib_tdralow;     /* low 16 bits of Transm. Descr. Ring addr */
                     59:     u_char     ib_tdrahigh;    /* high 8 bits of Transm. Descr. Ring addr */
                     60:     u_char     ib_tlen;        /* upper 3 bits are 2log Transm. Ring Length */
                     61: } initblock_t;
                     62: 
                     63: /* bits in mode */
                     64: #define IB_PROM                0x8000
                     65: #define IB_INTL                0x0040
                     66: #define IB_DRTY                0x0020
                     67: #define IB_COLL                0x0010
                     68: #define IB_DTCR                0x0008
                     69: #define IB_LOOP                0x0004
                     70: #define IB_DTX         0x0002
                     71: #define IB_DRX         0x0001
                     72: 
                     73: /*
                     74:  * A receive message descriptor entry
                     75:  */
                     76: typedef struct {
                     77:     u_short    rmd_ladr;       /* low 16 bits of bufaddr */
                     78:     char       rmd_hadr;       /* high 8 bits of bufaddr */
                     79:     char       rmd_flags;      /* see below */
                     80:     short      rmd_bcnt;       /* two's complement of buffer byte count */
                     81:     u_short    rmd_mcnt;       /* message byte count */
                     82: } rmde_t;
                     83: 
                     84: /* bits in flags */
                     85: #define RMD_OWN                0x80
                     86: #define RMD_ERR                0x40
                     87: #define RMD_FRAM       0x20
                     88: #define RMD_OFLO       0x10
                     89: #define RMD_CRC                0x08
                     90: #define RMD_BUFF       0x04
                     91: #define RMD_STP                0x02
                     92: #define RMD_ENP                0x01
                     93: 
                     94: /*
                     95:  * A transmit message descriptor entry
                     96:  */
                     97: typedef struct {
                     98:     u_short    tmd_ladr;       /* low 16 bits of bufaddr */
                     99:     u_char     tmd_hadr;       /* high 8 bits of bufaddr */
                    100:     u_char     tmd_flags;      /* see below */
                    101:     short      tmd_bcnt;       /* two's complement of buffer byte count */
                    102:     u_short    tmd_err;        /* more error bits + TDR */
                    103: } tmde_t;
                    104: 
                    105: /* bits in flags */
                    106: #define TMD_OWN                0x80
                    107: #define TMD_ERR                0x40
                    108: #define TMD_MORE       0x10
                    109: #define TMD_ONE                0x08
                    110: #define TMD_DEF                0x04
                    111: #define TMD_STP                0x02
                    112: #define TMD_ENP                0x01
                    113: 
                    114: /* bits in tmd_err */
                    115: #define TMDE_BUFF      0x8000
                    116: #define TMDE_UFLO      0x4000
                    117: #define TMDE_LCOL      0x1000
                    118: #define TMDE_LCAR      0x0800
                    119: #define TMDE_RTRY      0x0400
                    120: #define TMDE_TDR       0x003F  /* mask for TDR */
                    121: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.