Annotation of Gnu-Mach/i386/i386at/gpl/linux/net/wavelan.h, revision 1.1.1.1

1.1       root        1: #define WAVELAN_ADDR_SIZE      6       /* Size of a MAC address */
                      2: #define SA_ADDR0               0x08    /* First octet of WaveLAN MAC addresses */
                      3: #define SA_ADDR1               0x00    /* Second octet of WaveLAN MAC addresses */
                      4: #define SA_ADDR2               0x0E    /* Third octet of WaveLAN MAC addresses */
                      5: #define WAVELAN_MTU            1500    /* Maximum size of WaveLAN packet */
                      6: 
                      7: /*
                      8:  * Parameter Storage Area (PSA).
                      9:  */
                     10: typedef struct psa_t   psa_t;
                     11: struct psa_t
                     12: {
                     13:        unsigned char   psa_io_base_addr_1;     /* Base address 1 ??? */
                     14:        unsigned char   psa_io_base_addr_2;     /* Base address 2 */
                     15:        unsigned char   psa_io_base_addr_3;     /* Base address 3 */
                     16:        unsigned char   psa_io_base_addr_4;     /* Base address 4 */
                     17:        unsigned char   psa_rem_boot_addr_1;    /* Remote Boot Address 1 */
                     18:        unsigned char   psa_rem_boot_addr_2;    /* Remote Boot Address 2 */
                     19:        unsigned char   psa_rem_boot_addr_3;    /* Remote Boot Address 3 */
                     20:        unsigned char   psa_holi_params;        /* HOst Lan Interface (HOLI) Parameters */
                     21:        unsigned char   psa_int_req_no;         /* Interrupt Request Line */
                     22:        unsigned char   psa_unused0[7];         /* unused */
                     23:        unsigned char   psa_univ_mac_addr[WAVELAN_ADDR_SIZE];   /* Universal (factory) MAC Address */
                     24:        unsigned char   psa_local_mac_addr[WAVELAN_ADDR_SIZE];  /* Local MAC Address */
                     25:        unsigned char   psa_univ_local_sel;     /* Universal Local Selection */
                     26: #define                PSA_UNIVERSAL   0               /* Universal (factory) */
                     27: #define                PSA_LOCAL       1               /* Local */
                     28:        unsigned char   psa_comp_number;        /* Compatibility Number: */
                     29: #define                PSA_COMP_PC_AT_915      0       /* PC-AT 915 MHz        */
                     30: #define                PSA_COMP_PC_MC_915      1       /* PC-MC 915 MHz        */
                     31: #define                PSA_COMP_PC_AT_2400     2       /* PC-AT 2.4 GHz        */
                     32: #define                PSA_COMP_PC_MC_2400     3       /* PC-MC 2.4 GHz        */
                     33: #define                PSA_COMP_PCMCIA_915     4       /* PCMCIA 915 MHz       */
                     34:        unsigned char   psa_thr_pre_set;        /* Modem Threshold Preset */
                     35:        unsigned char   psa_feature_select;     /* ??? */
                     36: #if    0
                     37:        <alias for above>
                     38:        unsigned char   psa_decay_prm;          /* Modem Decay */
                     39: #endif /* 0 */
                     40:        unsigned char   psa_subband;            /* Subband      */
                     41: #define                PSA_SUBBAND_915         0       /* 915 MHz      */
                     42: #define                PSA_SUBBAND_2425        1       /* 2425 MHz     */
                     43: #define                PSA_SUBBAND_2460        2       /* 2460 MHz     */
                     44: #define                PSA_SUBBAND_2484        3       /* 2484 MHz     */
                     45: #define                PSA_SUBBAND_2430_5      4       /* 2430.5 MHz   */
                     46: #if    0
                     47:        <alias for above>
                     48:        unsigned char   psa_decay_updat_prm;    /* Modem Decay Update ??? */
                     49: #endif /* 0 */
                     50:        unsigned char   psa_quality_thr;        /* Modem Quality Threshold */
                     51:        unsigned char   psa_mod_delay;          /* Modem Delay ??? */
                     52:        unsigned char   psa_nwid[2];            /* Network ID */
                     53:        unsigned char   psa_undefined;          /* undefined */
                     54:        unsigned char   psa_encryption_select;  /* Encryption On Off */
                     55:        unsigned char   psa_encryption_key[8];  /* Encryption Key */
                     56:        unsigned char   psa_databus_width;      /* 8/16 bit bus width */
                     57:        unsigned char   psa_call_code;          /* ??? */
                     58: #if    0
                     59:        <alias for above>
                     60:        unsigned char   psa_auto_squelch;       /* Automatic Squelch level On off ??? */
                     61: #endif /* 0 */
                     62:        unsigned char   psa_no_of_retries;      /* LAN Cont. No of retries */
                     63:        unsigned char   psa_acr;                /* LAN Cont. ACR */
                     64:        unsigned char   psa_dump_count;         /* number of Dump Commands in TFB */
                     65:        unsigned char   psa_unused1[4];         /* unused */
                     66:        unsigned char   psa_nwid_prefix;        /* ??? */
                     67:        unsigned char   psa_unused2[3];         /* unused */
                     68:        unsigned char   psa_conf_status;        /* Card Configuration Status */
                     69:        unsigned char   psa_crc[2];             /* CRC over PSA */
                     70:        unsigned char   psa_crc_status;         /* CRC Valid Flag */
                     71: };
                     72: #if    STRUCT_CHECK == 1
                     73: #define        PSA_SIZE        64
                     74: #endif /* STRUCT_CHECK == 1 */
                     75: 
                     76: /*
                     77:  * Modem Management Controller (MMC) write structure.
                     78:  */
                     79: typedef struct mmw_t   mmw_t;
                     80: struct mmw_t
                     81: {
                     82:        unsigned char   mmw_encr_key[8];        /* encryption key */
                     83:        unsigned char   mmw_encr_enable;        /* enable/disable encryption */
                     84:        unsigned char   mmw_unused0[1];         /* unused */
                     85:        unsigned char   mmw_des_io_invert;      /* ??? */
                     86:        unsigned char   mmw_unused1[5];         /* unused */
                     87:        unsigned char   mmw_loopt_sel;          /* looptest selection */
                     88: #define                MMW_LOOPT_SEL_UNDEFINED 0x40    /* undefined */
                     89: #define                MMW_LOOPT_SEL_INT       0x20    /* activate Attention Request */
                     90: #define                MMW_LOOPT_SEL_LS        0x10    /* looptest without collision avoidance */
                     91: #define                MMW_LOOPT_SEL_LT3A      0x08    /* looptest 3a */
                     92: #define                MMW_LOOPT_SEL_LT3B      0x04    /* looptest 3b */
                     93: #define                MMW_LOOPT_SEL_LT3C      0x02    /* looptest 3c */
                     94: #define                MMW_LOOPT_SEL_LT3D      0x01    /* looptest 3d */
                     95:        unsigned char   mmw_jabber_enable;      /* jabber timer enable */
                     96:        unsigned char   mmw_freeze;             /* freeze / unfreeze signal level */
                     97:        unsigned char   mmw_anten_sel;          /* antenna selection */
                     98: #define                MMW_ANTEN_SEL_SEL       0x01    /* direct antenna selection */
                     99: #define                MMW_ANTEN_SEL_ALG_EN    0x02    /* antenna selection algorithm enable */
                    100:        unsigned char   mmw_ifs;                /* inter frame spacing */
                    101:        unsigned char   mmw_mod_delay;          /* modem delay */
                    102:        unsigned char   mmw_jam_time;           /* jamming time */
                    103:        unsigned char   mmw_unused2[1];         /* unused */
                    104:        unsigned char   mmw_thr_pre_set;        /* level threshold preset */
                    105:        unsigned char   mmw_decay_prm;          /* decay parameters */
                    106:        unsigned char   mmw_decay_updat_prm;    /* decay update parameters */
                    107:        unsigned char   mmw_quality_thr;        /* quality (z-quotient) threshold */
                    108:        unsigned char   mmw_netw_id_l;          /* NWID low order byte */
                    109:        unsigned char   mmw_netw_id_h;          /* NWID high order byte */
                    110: };
                    111: #if    STRUCT_CHECK == 1
                    112: #define        MMW_SIZE        30
                    113: #endif /* STRUCT_CHECK == 1 */
                    114: 
                    115: #define        mmwoff(p,f)     (unsigned short)((void *)(&((mmw_t *)((void *)0 + (p)))->f) - (void *)0)
                    116: 
                    117: /*
                    118:  * Modem Management Controller (MMC) read structure.
                    119:  */
                    120: typedef struct mmr_t   mmr_t;
                    121: struct mmr_t
                    122: {
                    123:        unsigned char   mmr_unused0[8];         /* unused */
                    124:        unsigned char   mmr_des_status;         /* encryption status */
                    125:        unsigned char   mmr_des_avail;          /* encryption available (0x55 read) */
                    126:        unsigned char   mmr_des_io_invert;      /* des I/O invert register */
                    127:        unsigned char   mmr_unused1[5];         /* unused */
                    128:        unsigned char   mmr_dce_status;         /* DCE status */
                    129: #define                MMR_DCE_STATUS_ENERG_DET        0x01    /* energy detected */
                    130: #define                MMR_DCE_STATUS_LOOPT_IND        0x02    /* loop test indicated */
                    131: #define                MMR_DCE_STATUS_XMTITR_IND       0x04    /* transmitter on */
                    132: #define                MMR_DCE_STATUS_JBR_EXPIRED      0x08    /* jabber timer expired */
                    133:        unsigned char   mmr_unused2[3];         /* unused */
                    134:        unsigned char   mmr_correct_nwid_l;     /* no. of correct NWID's rxd (low) */
                    135:        unsigned char   mmr_correct_nwid_h;     /* no. of correct NWID's rxd (high) */
                    136:        unsigned char   mmr_wrong_nwid_l;       /* count of wrong NWID's received (low) */
                    137:        unsigned char   mmr_wrong_nwid_h;       /* count of wrong NWID's received (high) */
                    138:        unsigned char   mmr_thr_pre_set;        /* level threshold preset */
                    139:        unsigned char   mmr_signal_lvl;         /* signal level */
                    140:        unsigned char   mmr_silence_lvl;        /* silence level */
                    141:        unsigned char   mmr_sgnl_qual;          /* signal quality */
                    142: #define                MMR_SGNL_QUAL_0         0x01    /* signal quality 0 */
                    143: #define                MMR_SGNL_QUAL_1         0x02    /* signal quality 1 */
                    144: #define                MMR_SGNL_QUAL_2         0x04    /* signal quality 2 */
                    145: #define                MMR_SGNL_QUAL_3         0x08    /* signal quality 3 */
                    146: #define                MMR_SGNL_QUAL_S_A       0x80    /* currently selected antenna */
                    147:        unsigned char   mmr_netw_id_l;          /* NWID low order byte ??? */
                    148:        unsigned char   mmr_unused3[1];         /* unused */
                    149: };
                    150: #if    STRUCT_CHECK == 1
                    151: #define        MMR_SIZE        30
                    152: #endif /* STRUCT_CHECK == 1 */
                    153: 
                    154: #define        MMR_LEVEL_MASK  0x3F
                    155: 
                    156: #define        mmroff(p,f)     (unsigned short)((void *)(&((mmr_t *)((void *)0 + (p)))->f) - (void *)0)
                    157: 
                    158: /*
                    159:  * Host Adaptor structure.
                    160:  * (base is board port address).
                    161:  */
                    162: typedef union hacs_u   hacs_u;
                    163: union hacs_u
                    164: {
                    165:        unsigned short  hu_command;             /* Command register */
                    166: #define                HACR_RESET              0x0001  /* Reset board */
                    167: #define                HACR_CA                 0x0002  /* Set Channel Attention for 82586 */
                    168: #define                HACR_16BITS             0x0004  /* 16 bits operation (0 => 8bits) */
                    169: #define                HACR_OUT0               0x0008  /* General purpose output pin 0 */
                    170:                                                /* not used - must be 1 */
                    171: #define                HACR_OUT1               0x0010  /* General purpose output pin 1 */
                    172:                                                /* not used - must be 1 */
                    173: #define                HACR_82586_INT_ENABLE   0x0020  /* Enable 82586 interrupts */
                    174: #define                HACR_MMC_INT_ENABLE     0x0040  /* Enable MMC interrupts */
                    175: #define                HACR_INTR_CLR_ENABLE    0x0080  /* Enable interrupt status read/clear */
                    176:        unsigned short  hu_status;              /* Status Register */
                    177: #define                HASR_82586_INTR         0x0001  /* Interrupt request from 82586 */
                    178: #define                HASR_MMC_INTR           0x0002  /* Interrupt request from MMC */
                    179: #define                HASR_MMC_BUSY           0x0004  /* MMC busy indication */
                    180: #define                HASR_PSA_BUSY           0x0008  /* LAN parameter storage area busy */
                    181: };
                    182: 
                    183: typedef struct ha_t    ha_t;
                    184: struct ha_t
                    185: {
                    186:        hacs_u          ha_cs;          /* Command and status registers */
                    187: #define                ha_command      ha_cs.hu_command
                    188: #define                ha_status       ha_cs.hu_status
                    189:        unsigned short  ha_mmcr;        /* Modem Management Ctrl Register */
                    190:        unsigned short  ha_pior0;       /* Program I/O Address Register Port 0 */
                    191:        unsigned short  ha_piop0;       /* Program I/O Port 0 */
                    192:        unsigned short  ha_pior1;       /* Program I/O Address Register Port 1 */
                    193:        unsigned short  ha_piop1;       /* Program I/O Port 1 */
                    194:        unsigned short  ha_pior2;       /* Program I/O Address Register Port 2 */
                    195:        unsigned short  ha_piop2;       /* Program I/O Port 2 */
                    196: };
                    197: #if    STRUCT_CHECK == 1
                    198: #define HA_SIZE                16
                    199: #endif /* STRUCT_CHECK == 1 */
                    200: 
                    201: #define        hoff(p,f)       (unsigned short)((void *)(&((ha_t *)((void *)0 + (p)))->f) - (void *)0)
                    202: #define        HACR(p)         hoff(p, ha_command)
                    203: #define        HASR(p)         hoff(p, ha_status)
                    204: #define        MMCR(p)         hoff(p, ha_mmcr)
                    205: #define        PIOR0(p)        hoff(p, ha_pior0)
                    206: #define        PIOP0(p)        hoff(p, ha_piop0)
                    207: #define        PIOR1(p)        hoff(p, ha_pior1)
                    208: #define        PIOP1(p)        hoff(p, ha_piop1)
                    209: #define        PIOR2(p)        hoff(p, ha_pior2)
                    210: #define        PIOP2(p)        hoff(p, ha_piop2)
                    211: 
                    212: /*
                    213:  * Program I/O Mode Register values.
                    214:  */
                    215: #define STATIC_PIO             0       /* Mode 1: static mode */
                    216:                                        /* RAM access ??? */
                    217: #define AUTOINCR_PIO           1       /* Mode 2: auto increment mode */
                    218:                                        /* RAM access ??? */
                    219: #define AUTODECR_PIO           2       /* Mode 3: auto decrement mode */
                    220:                                        /* RAM access ??? */
                    221: #define PARAM_ACCESS_PIO       3       /* Mode 4: LAN parameter access mode */
                    222:                                        /* Parameter access. */
                    223: #define PIO_MASK               3       /* register mask */
                    224: #define PIOM(cmd,piono)                ((u_short)cmd << 10 << (piono * 2))
                    225: 
                    226: #define        HACR_DEFAULT            (HACR_OUT0 | HACR_OUT1 | HACR_16BITS | PIOM(STATIC_PIO, 0) | PIOM(AUTOINCR_PIO, 1) | PIOM(PARAM_ACCESS_PIO, 2))
                    227: #define        HACR_INTRON             (HACR_82586_INT_ENABLE | HACR_MMC_INT_ENABLE | HACR_INTR_CLR_ENABLE)
                    228: 
                    229: #define        MAXDATAZ                (WAVELAN_ADDR_SIZE + WAVELAN_ADDR_SIZE + 2 + WAVELAN_MTU)
                    230: 
                    231: /*
                    232:  * Onboard 64k RAM layout.
                    233:  * (Offsets from 0x0000.)
                    234:  */
                    235: #define OFFSET_RU              0x0000
                    236: #define OFFSET_CU              0x8000
                    237: #define OFFSET_SCB             (OFFSET_ISCP - sizeof(scb_t))
                    238: #define OFFSET_ISCP            (OFFSET_SCP - sizeof(iscp_t))
                    239: #define OFFSET_SCP             I82586_SCP_ADDR
                    240: 
                    241: #define        RXBLOCKZ                (sizeof(fd_t) + sizeof(rbd_t) + MAXDATAZ)
                    242: #define        TXBLOCKZ                (sizeof(ac_tx_t) + sizeof(ac_nop_t) + sizeof(tbd_t) + MAXDATAZ)
                    243: 
                    244: #define        NRXBLOCKS               ((OFFSET_CU - OFFSET_RU) / RXBLOCKZ)
                    245: #define        NTXBLOCKS               ((OFFSET_SCB - OFFSET_CU) / TXBLOCKZ)
                    246: 
                    247: /*
                    248:  * This software may only be used and distributed
                    249:  * according to the terms of the GNU Public License.
                    250:  *
                    251:  * For more details, see wavelan.c.
                    252:  */

unix.superglobalmegacorp.com

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