[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     ! 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