[BACK]Return to if_uathreg.h CVS log [TXT][DIR] Up to [local] / sys / dev / usb

Annotation of sys/dev/usb/if_uathreg.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: if_uathreg.h,v 1.2 2006/09/18 16:34:23 damien Exp $   */
                      2:
                      3: /*-
                      4:  * Copyright (c) 2006
                      5:  *     Damien Bergamini <damien.bergamini@free.fr>
                      6:  *
                      7:  * Permission to use, copy, modify, and distribute this software for any
                      8:  * purpose with or without fee is hereby granted, provided that the above
                      9:  * copyright notice and this permission notice appear in all copies.
                     10:  *
                     11:  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
                     12:  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
                     13:  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
                     14:  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
                     15:  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
                     16:  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
                     17:  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
                     18:  */
                     19:
                     20: #define UATH_CONFIG_NO         1
                     21: #define UATH_IFACE_INDEX       0
                     22:
                     23: /* all fields are big endian */
                     24: struct uath_fwblock {
                     25:        uint32_t        flags;
                     26: #define UATH_WRITE_BLOCK       (1 << 4)
                     27:
                     28:        uint32_t        len;
                     29: #define UATH_MAX_FWBLOCK_SIZE  2048
                     30:
                     31:        uint32_t        total;
                     32:        uint32_t        remain;
                     33:        uint32_t        rxtotal;
                     34:        uint32_t        pad[123];
                     35: } __packed;
                     36:
                     37: #define UATH_MAX_RXCMDSZ       512
                     38: #define UATH_MAX_TXCMDSZ       512
                     39:
                     40: struct uath_cmd_hdr {
                     41:        uint32_t        len;
                     42:        uint32_t        code;
                     43: #define UATH_CMD_SETUP         0x01
                     44: #define UATH_CMD_02            0x02
                     45: #define UATH_CMD_READ_MAC      0x03
                     46: #define UATH_CMD_WRITE_MAC     0x04
                     47: #define UATH_CMD_READ_EEPROM   0x05
                     48: #define UATH_CMD_STATS         0x06
                     49: #define UATH_CMD_07            0x07
                     50: #define UATH_CMD_SHUTDOWN      0x08
                     51: #define UATH_CMD_0B            0x0b
                     52: #define UATH_CMD_0C            0x0c
                     53: #define UATH_CMD_0F            0x0f
                     54: #define UATH_NOTIF_STATS       0x10
                     55: #define UATH_NOTIF_READY       0x12
                     56: #define UATH_NOTIF_TX          0x13
                     57: #define UATH_CMD_15            0x15
                     58: #define UATH_CMD_SET_LED       0x17
                     59: #define UATH_CMD_SET_XLED      0x18
                     60: #define UATH_CMD_1B            0x1b
                     61: #define UATH_CMD_1E            0x1e
                     62: #define UATH_CMD_CRYPTO                0x1d
                     63: #define UATH_CMD_SET_STATE     0x20
                     64: #define UATH_CMD_SET_BSSID     0x21
                     65: #define UATH_CMD_24            0x24
                     66: #define UATH_CMD_SET_RATES     0x26
                     67: #define UATH_CMD_27            0x27
                     68: #define UATH_CMD_2E            0x2e
                     69: #define UATH_CMD_31            0x31
                     70: #define UATH_CMD_SET_FILTER    0x32
                     71: #define UATH_CMD_SET_CHAN      0x34
                     72: #define UATH_CMD_RESET         0x35
                     73: #define UATH_CMD_SET_QUEUE     0x3a
                     74: #define UATH_CMD_RESET_QUEUE   0x3b
                     75:
                     76:        uint32_t        priv;   /* driver private data */
                     77:        uint32_t        magic;
                     78:        uint32_t        reserved2[4];
                     79: } __packed;
                     80:
                     81: struct uath_rx_desc {
                     82:        uint32_t        len;
                     83:        uint32_t        reserved1[8];
                     84:        uint32_t        rssi;
                     85:        uint32_t        freq;
                     86:        uint32_t        reserved2[5];
                     87: } __packed;
                     88:
                     89: #define UATH_MAKECTL(qid, len) htobe32((qid) << 16 | (len))
                     90:
                     91: struct uath_tx_desc {
                     92:        uint32_t        len;
                     93:        uint32_t        priv;   /* driver private data */
                     94:        uint32_t        type;
                     95: #define UATH_TX_DATA   0xe
                     96: #define UATH_TX_NULL   0xf
                     97:
                     98:        uint32_t        magic;
                     99:        uint32_t        dest;
                    100: #define UATH_ID_BSS            2
                    101: #define UATH_ID_BROADCAST      0xffffffff
                    102:
                    103:        uint32_t        flags;
                    104: #define UATH_TX_NOTIFY (1 << 24)       /* f/w will send a UATH_NOTIF_TX */
                    105:
                    106:        uint32_t        paylen;
                    107: } __packed;
                    108:
                    109: /* structure for command UATH_CMD_SETUP */
                    110: struct uath_cmd_setup {
                    111:        uint32_t        magic1;
                    112:        uint32_t        magic2;
                    113:        uint32_t        magic3;
                    114:        uint32_t        magic4;
                    115: } __packed;
                    116:
                    117: /* structure for commands UATH_CMD_READ_MAC and UATH_CMD_READ_EEPROM */
                    118: struct uath_read_mac {
                    119:        uint32_t        len;
                    120:        uint8_t         data[32];
                    121: } __packed;
                    122:
                    123: /* structure for command UATH_CMD_WRITE_MAC */
                    124: struct uath_write_mac {
                    125:        uint32_t        reg;
                    126:        uint32_t        len;
                    127:        uint8_t         data[32];
                    128: } __packed;
                    129:
                    130: /* structure for command UATH_CMD_0B */
                    131: struct uath_cmd_0b {
                    132:        uint32_t        code;
                    133:        uint32_t        reserved;
                    134:        uint32_t        size;
                    135:        uint8_t         data[44];
                    136: } __packed;
                    137:
                    138: /* structure for command UATH_CMD_0C */
                    139: struct uath_cmd_0c {
                    140:        uint32_t        magic1;
                    141:        uint32_t        magic2;
                    142:        uint32_t        magic3;
                    143: } __packed;
                    144:
                    145: /* structure for command UATH_CMD_SET_LED */
                    146: struct uath_cmd_led {
                    147:        uint32_t        which;
                    148: #define UATH_LED_LINK          0
                    149: #define UATH_LED_ACTIVITY      1
                    150:
                    151:        uint32_t        state;
                    152: #define UATH_LED_OFF   0
                    153: #define UATH_LED_ON    1
                    154: } __packed;
                    155:
                    156: /* structure for command UATH_CMD_SET_XLED */
                    157: struct uath_cmd_xled {
                    158:        uint32_t        which;
                    159:        uint32_t        rate;
                    160:        uint32_t        mode;
                    161: } __packed;
                    162:
                    163: /* structure for command UATH_CMD_CRYPTO */
                    164: struct uath_cmd_crypto {
                    165:        uint32_t        keyidx;
                    166: #define UATH_DEFAULT_KEY       6
                    167:
                    168:        uint32_t        magic1;
                    169:        uint32_t        size;
                    170:        uint32_t        reserved1;
                    171:        uint32_t        mask;
                    172:        uint8_t         addr[IEEE80211_ADDR_LEN];
                    173:        uint16_t        reserved2;
                    174:        uint32_t        flags;
                    175:        uint32_t        reserved3[2];
                    176:        uint8_t         key[68];
                    177:        uint8_t         magic2[136];
                    178:        uint8_t         magic3[136];
                    179: } __packed;
                    180:
                    181: /* structure for command UATH_CMD_SET_RATES */
                    182: struct uath_cmd_rates {
                    183:        uint32_t        magic1;
                    184:        uint32_t        reserved;
                    185:        uint32_t        size;
                    186:        uint8_t         nrates;
                    187: #define UATH_MAX_NRATES        30
                    188:        uint8_t         rates[UATH_MAX_NRATES];
                    189: } __packed;
                    190:
                    191: /* structure for command UATH_CMD_SET_CHAN */
                    192: struct uath_set_chan {
                    193:        uint32_t        flags;
                    194:        uint32_t        freq;
                    195:        uint32_t        magic1;
                    196:        uint32_t        magic2;
                    197:        uint32_t        reserved1;
                    198:        uint32_t        magic3;
                    199:        uint32_t        reserved2;
                    200: } __packed;
                    201:
                    202: /* structure for command UATH_CMD_SET_QUEUE */
                    203: struct uath_qinfo {
                    204:        uint32_t        qid;
                    205: #define UATH_AC_TO_QID(ac)     (ac)    /* id function */
                    206:
                    207:        uint32_t        size;
                    208:        uint32_t        ac;
                    209:        uint32_t        aifsn;
                    210:        uint32_t        logcwmin;
                    211:        uint32_t        logcwmax;
                    212:        uint32_t        txop;
                    213:        uint32_t        acm;
                    214:        uint32_t        magic1;
                    215:        uint32_t        magic2;
                    216: } __packed;
                    217:
                    218: /* structure for command UATH_CMD_31 */
                    219: struct uath_cmd_31 {
                    220:        uint32_t        magic1;
                    221:        uint32_t        magic2;
                    222: } __packed;
                    223:
                    224: /* structure for command UATH_CMD_SET_FILTER */
                    225: struct uath_cmd_filter {
                    226:        uint32_t        filter;
                    227:        uint32_t        flags;
                    228: } __packed;
                    229:
                    230: /* structure for command UATH_CMD_SET_BSSID */
                    231: struct uath_cmd_bssid {
                    232:        uint32_t        reserved1;
                    233:        uint32_t        flags1;
                    234:        uint32_t        flags2;
                    235:        uint32_t        reserved2;
                    236:        uint32_t        len;
                    237:        uint8_t         bssid[IEEE80211_ADDR_LEN];
                    238: } __packed;
                    239:
                    240:
                    241: #define UATH_EEPROM_MACADDR    0x0b
                    242: #define UATH_EEPROM_RXBUFSZ    0x0f
                    243:
                    244: #define UATH_MAX_TXBUFSZ       \
                    245:        (sizeof (uint32_t) + sizeof (struct uath_tx_desc) + IEEE80211_MAX_LEN)
                    246:
                    247: #define UATH_MIN_RXBUFSZ                                               \
                    248:        (((sizeof (uint32_t) + sizeof (struct ieee80211_frame_min) +    \
                    249:           sizeof (struct uath_rx_desc)) + 3) & ~3)

CVSweb