libiwinfo: reimplement iwinfo.lua in C and package it as "iwinfo"
[project/luci.git] / contrib / package / iwinfo / src / include / iwinfo / api / broadcom.h
1 /*
2  * Custom OID/ioctl definitions for
3  * Broadcom 802.11abg Networking Device Driver
4  *
5  * Definitions subject to change without notice.
6  *
7  * Copyright 2006, Broadcom Corporation
8  * All Rights Reserved.
9  *
10  * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
11  * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
12  * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
13  * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
14  *
15  */
16
17 #ifndef _BROADCOM_H
18 #define _BROADCOM_H
19
20 #define WL_MCSSET_LEN                           16
21 #define WL_MAX_STA_COUNT                        32
22
23 #define WL_BSS_RSSI_OFFSET                      82
24 #define WL_BSS_NOISE_OFFSET                     84
25
26 #define WLC_IOCTL_MAGIC                         0x14e46c77
27 #define WLC_IOCTL_MAXLEN                        8192
28
29 #define WLC_CNTRY_BUF_SZ                4
30
31 #define WLC_GET_MAGIC                           0
32 #define WLC_GET_RATE                            12
33 #define WLC_GET_INFRA                           19
34 #define WLC_GET_AUTH                            21
35 #define WLC_GET_BSSID                           23
36 #define WLC_GET_SSID                            25
37 #define WLC_GET_CHANNEL                         29
38 #define WLC_GET_PASSIVE                         48
39 #define WLC_GET_COUNTRY                         83
40 #define WLC_GET_REVINFO                         98
41 #define WLC_GET_AP                                      117
42 #define WLC_GET_RSSI                            127
43 #define WLC_GET_WSEC                            133
44 #define WLC_GET_PHY_NOISE                       135
45 #define WLC_GET_BSS_INFO                        136
46 #define WLC_GET_ASSOCLIST                       159
47 #define WLC_GET_WPA_AUTH                        164
48 #define WLC_GET_COUNTRY_LIST            261
49 #define WLC_GET_VAR                                     262
50
51
52 struct wl_ether_addr {
53         uint8_t                                 octet[6];
54 };
55
56 struct wl_maclist {
57         uint                                    count;
58         struct wl_ether_addr    ea[1];
59 };
60
61 typedef struct wl_sta_rssi {
62         int                                             rssi;
63         char                                    mac[6];
64         uint16_t                                foo;
65 } wl_sta_rssi_t;
66
67 typedef struct wlc_ssid {
68         uint32_t                                ssid_len;
69         unsigned char                   ssid[32];
70 } wlc_ssid_t;
71
72 /* Linux network driver ioctl encoding */
73 typedef struct wl_ioctl {
74         uint32_t                                cmd;    /* common ioctl definition */
75         void                                    *buf;   /* pointer to user buffer */
76         uint32_t                                len;    /* length of user buffer */
77         uint8_t                                 set;    /* get or set request (optional) */
78         uint32_t                                used;   /* bytes read or written (optional) */
79         uint32_t                                needed; /* bytes needed (optional) */
80 } wl_ioctl_t;
81
82 /* Revision info */
83 typedef struct wlc_rev_info {
84         uint            vendorid;       /* PCI vendor id */
85         uint            deviceid;       /* device id of chip */
86         uint            radiorev;       /* radio revision */
87         uint            chiprev;        /* chip revision */
88         uint            corerev;        /* core revision */
89         uint            boardid;        /* board identifier (usu. PCI sub-device id) */
90         uint            boardvendor;    /* board vendor (usu. PCI sub-vendor id) */
91         uint            boardrev;       /* board revision */
92         uint            driverrev;      /* driver version */
93         uint            ucoderev;       /* microcode version */
94         uint            bus;            /* bus type */
95         uint            chipnum;        /* chip number */
96 } wlc_rev_info_t;
97
98 typedef struct wl_country_list {
99         uint32_t buflen;
100         uint32_t band_set;
101         uint32_t band;
102         uint32_t count;
103         char country_abbrev[1];
104 } wl_country_list_t;
105
106
107 #endif