remove lots of useless junk from the nvram package
authorFelix Fietkau <nbd@openwrt.org>
Mon, 22 Jan 2007 14:46:37 +0000 (14:46 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Mon, 22 Jan 2007 14:46:37 +0000 (14:46 +0000)
SVN-Revision: 6177

18 files changed:
package/nvram/src/Makefile
package/nvram/src/defaults.c [deleted file]
package/nvram/src/include/bcmnvram.h
package/nvram/src/include/cy_conf.h [deleted file]
package/nvram/src/include/epivers.h [deleted file]
package/nvram/src/include/proto/802.11.h [deleted file]
package/nvram/src/include/proto/ethernet.h [deleted file]
package/nvram/src/include/typedefs.h
package/nvram/src/include/utils.h [deleted file]
package/nvram/src/include/wlcompat.h [deleted file]
package/nvram/src/include/wlioctl.h [deleted file]
package/nvram/src/include/wlutils.h
package/nvram/src/nvram.c [new file with mode: 0644]
package/nvram/src/nvram_convert.c [deleted file]
package/nvram/src/nvram_convert.h [deleted file]
package/nvram/src/nvram_linux.c [deleted file]
package/nvram/src/wl.c
package/nvram/src/wl_linux.c [deleted file]

index 3d98209..54c089b 100644 (file)
@@ -1,7 +1,7 @@
 # $Id$
 
-LIBSHARED_OBJS := shutils.o wl.o wl_linux.o defaults.o linux_timer.o
-LIBNVRAM_OBJS := nvram_linux.o nvram_convert.o
+LIBSHARED_OBJS := shutils.o wl.o linux_timer.o
+LIBNVRAM_OBJS := nvram.o
 
 all: libshared.so libnvram.so nvram
 
diff --git a/package/nvram/src/defaults.c b/package/nvram/src/defaults.c
deleted file mode 100644 (file)
index 119eaac..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * Router default NVRAM values
- *
- * Copyright 2004, Broadcom Corporation
- * All Rights Reserved.
- * 
- * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
- * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
- * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
- *
- * $Id$
- */
-
-#include <epivers.h>
-#include <string.h>
-#include <bcmnvram.h>
-#include <typedefs.h>
-#include <wlioctl.h>
-
-#define XSTR(s) STR(s)
-#define STR(s) #s
-
-struct nvram_tuple router_defaults[] = {
-       /* OS parameters */
-       { "os_name", "", 0 },                   /* OS name string */
-       { "os_version", EPI_VERSION_STR, 0 },   /* OS revision */
-       { "os_date", __DATE__, 0 },             /* OS date */
-
-       /* Miscellaneous parameters */
-       { "timer_interval", "3600", 0 },        /* Timer interval in seconds */
-       { "ntp_server", "192.5.41.40 192.5.41.41 133.100.9.2", 0 },             /* NTP server */
-       { "time_zone", "PST8PDT", 0 },          /* Time zone (GNU TZ format) */
-       { "log_level", "0", 0 },                /* Bitmask 0:off 1:denied 2:accepted */
-       { "upnp_enable", "0", 0 },              /* Start UPnP */
-       { "ezc_enable", "1", 0 },               /* Enable EZConfig updates */
-       { "ezc_version", "1", 0 },              /* EZConfig version */
-       { "is_default", "1", 0 },               /* is it default setting: 1:yes 0:no*/
-       { "os_server", "", 0 },                 /* URL for getting upgrades */
-       { "stats_server", "", 0 },              /* URL for posting stats */
-       { "console_loglevel", "1", 0 },         /* Kernel panics only */
-
-       /* Big switches */
-       { "router_disable", "0", 0 },           /* lan_proto=static lan_stp=0 wan_proto=disabled */
-       { "fw_disable", "0", 0 },               /* Disable firewall (allow new connections from the WAN) */
-
-       { "log_ipaddr", "", 0 },                /* syslog recipient */
-       
-       /* LAN H/W parameters */
-       { "lan_ifname", "", 0 },                /* LAN interface name */
-       { "lan_ifnames", "", 0 },               /* Enslaved LAN interfaces */
-       { "lan_hwnames", "", 0 },               /* LAN driver names (e.g. et0) */
-       { "lan_hwaddr", "", 0 },                /* LAN interface MAC address */
-       
-       /* LAN TCP/IP parameters */
-       { "lan_proto", "dhcp", 0 },             /* [static|dhcp] */
-       { "lan_ipaddr", "192.168.1.1", 0 },     /* LAN IP address */
-       { "lan_netmask", "255.255.255.0", 0 },  /* LAN netmask */
-       { "lan_stp", "0", 0 },                  /* LAN spanning tree protocol */
-       { "lan_wins", "", 0 },                  /* x.x.x.x x.x.x.x ... */
-       { "lan_domain", "", 0 },                /* LAN domain name */
-       { "lan_lease", "86400", 0 },            /* LAN lease time in seconds */
-
-       /* WAN H/W parameters */
-       { "wan_ifname", "", 0 },                /* WAN interface name */
-       { "wan_ifnames", "", 0 },               /* WAN interface names */
-       { "wan_hwname", "", 0 },                /* WAN driver name (e.g. et1) */
-       { "wan_hwaddr", "", 0 },                /* WAN interface MAC address */
-       
-       /* WAN TCP/IP parameters */
-       { "wan_proto", "dhcp", 0 },             /* [static|dhcp|pppoe|disabled] */
-       { "wan_ipaddr", "0.0.0.0", 0 },         /* WAN IP address */
-       { "wan_netmask", "0.0.0.0", 0 },        /* WAN netmask */
-       { "wan_gateway", "0.0.0.0", 0 },        /* WAN gateway */
-       { "wan_dns", "", 0 },                   /* x.x.x.x x.x.x.x ... */
-       { "wan_wins", "", 0 },                  /* x.x.x.x x.x.x.x ... */
-       { "wan_hostname", "", 0 },              /* WAN hostname */
-       { "wan_domain", "", 0 },                /* WAN domain name */
-       { "wan_lease", "86400", 0 },            /* WAN lease time in seconds */
-       
-       /* PPPoE parameters */
-       { "wan_pppoe_ifname", "", 0 },          /* PPPoE enslaved interface */
-       { "wan_pppoe_username", "", 0 },        /* PPP username */
-       { "wan_pppoe_passwd", "", 0 },          /* PPP password */
-       { "wan_pppoe_idletime", "60", 0 },      /* Dial on demand max idle time (seconds) */
-       { "wan_pppoe_keepalive", "0", 0 },      /* Restore link automatically */
-       { "wan_pppoe_demand", "0", 0 },         /* Dial on demand */
-       { "wan_pppoe_mru", "1492", 0 },         /* Negotiate MRU to this value */
-       { "wan_pppoe_mtu", "1492", 0 },         /* Negotiate MTU to the smaller of this value or the peer MRU */
-       { "wan_pppoe_service", "", 0 },         /* PPPoE service name */
-       { "wan_pppoe_ac", "", 0 },              /* PPPoE access concentrator name */
-
-       /* Misc WAN parameters */
-       { "wan_desc", "", 0 },                  /* WAN connection description */
-       { "wan_route", "", 0 },                 /* Static routes (ipaddr:netmask:gateway:metric:ifname ...) */
-       { "wan_primary", "0", 0 },              /* Primary wan connection */
-
-       { "wan_unit", "0", 0 },                 /* Last configured connection */
-       
-       /* Filters */
-       { "filter_maclist", "", 0 },            /* xx:xx:xx:xx:xx:xx ... */
-       { "filter_macmode", "deny", 0 },        /* "allow" only, "deny" only, or "disabled" (allow all) */
-       { "filter_client0", "", 0 },            /* [lan_ipaddr0-lan_ipaddr1|*]:lan_port0-lan_port1,proto,enable,day_start-day_end,sec_start-sec_end,desc */
-
-       /* Port forwards */
-       { "dmz_ipaddr", "", 0 },                /* x.x.x.x (equivalent to 0-60999>dmz_ipaddr:0-60999) */
-       { "forward_port0", "", 0 },             /* wan_port0-wan_port1>lan_ipaddr:lan_port0-lan_port1[:,]proto[:,]enable[:,]desc */
-       { "autofw_port0", "", 0 },              /* out_proto:out_port,in_proto:in_port0-in_port1>to_port0-to_port1,enable,desc */
-
-       /* DHCP server parameters */
-       { "dhcp_start", "192.168.1.100", 0 },   /* First assignable DHCP address */
-       { "dhcp_end", "192.168.1.150", 0 },     /* Last assignable DHCP address */
-       { "dhcp_domain", "wan", 0 },            /* Use WAN domain name first if available (wan|lan) */
-       { "dhcp_wins", "wan", 0 },              /* Use WAN WINS first if available (wan|lan) */
-
-       /* Web server parameters */
-       { "http_username", "", 0 },             /* Username */
-       { "http_passwd", "admin", 0 },          /* Password */
-       { "http_wanport", "", 0 },              /* WAN port to listen on */
-       { "http_lanport", "80", 0 },            /* LAN port to listen on */
-
-       /* Wireless parameters */
-       { "wl_ifname", "", 0 },                 /* Interface name */
-       { "wl_hwaddr", "", 0 },                 /* MAC address */
-       { "wl_phytype", "g", 0 },               /* Current wireless band ("a" (5 GHz), "b" (2.4 GHz), or "g" (2.4 GHz)) */
-       { "wl_corerev", "", 0 },                /* Current core revision */
-       { "wl_phytypes", "", 0 },               /* List of supported wireless bands (e.g. "ga") */
-       { "wl_radioids", "", 0 },               /* List of radio IDs */
-       { "wl_ssid", "OpenWrt", 0 },            /* Service set ID (network name) */
-       { "wl_country", "", 0 },                /* Country (default obtained from driver) */
-       { "wl_radio", "1", 0 },                 /* Enable (1) or disable (0) radio */
-       { "wl_closed", "0", 0 },                /* Closed (hidden) network */
-        { "wl_ap_isolate", "0", 0 },            /* AP isolate mode */
-       { "wl_mode", "ap", 0 },                 /* AP mode (ap|sta|wds) */
-       { "wl_lazywds", "0", 0 },               /* Enable "lazy" WDS mode (0|1) */
-       { "wl_wds", "", 0 },                    /* xx:xx:xx:xx:xx:xx ... */
-       { "wl_wep", "disabled", 0 },            /* WEP data encryption (enabled|disabled) */
-       { "wl_auth", "0", 0 },                  /* Shared key authentication optional (0) or required (1) */
-       { "wl_key", "1", 0 },                   /* Current WEP key */
-       { "wl_key1", "", 0 },                   /* 5/13 char ASCII or 10/26 char hex */
-       { "wl_key2", "", 0 },                   /* 5/13 char ASCII or 10/26 char hex */
-       { "wl_key3", "", 0 },                   /* 5/13 char ASCII or 10/26 char hex */
-       { "wl_key4", "", 0 },                   /* 5/13 char ASCII or 10/26 char hex */
-       { "wl_maclist", "", 0 },                /* xx:xx:xx:xx:xx:xx ... */
-       { "wl_macmode", "disabled", 0 },        /* "allow" only, "deny" only, or "disabled" (allow all) */
-       { "wl_channel", "11", 0 },              /* Channel number */
-       { "wl_rate", "0", 0 },                  /* Rate (bps, 0 for auto) */
-       { "wl_rateset", "default", 0 },         /* "default" or "all" or "12" */
-       { "wl_frag", "2346", 0 },               /* Fragmentation threshold */
-       { "wl_rts", "2347", 0 },                /* RTS threshold */
-       { "wl_dtim", "1", 0 },                  /* DTIM period */
-       { "wl_bcn", "100", 0 },                 /* Beacon interval */
-       { "wl_plcphdr", "long", 0 },            /* 802.11b PLCP preamble type */
-       { "wl_net_mode", "mixed", 0 },          /* 54g mode */
-       { "wl_gmode", "6", 0 },                 /* 54g mode */
-       { "wl_gmode_protection", "auto", 0 },   /* 802.11g RTS/CTS protection (off|auto) */
-       { "wl_afterburner", "auto", 0 },        /* AfterBurner */
-       { "wl_frameburst", "off", 0 },          /* BRCM Frambursting mode (off|on) */
-       { "wl_antdiv", "-1", 0 },               /* Antenna Diversity (-1|0|1|3) */
-       { "wl_infra", "1", 0 },                 /* Network Type (BSS/IBSS) */
-
-       /* WPA parameters */
-       { "security_mode", "open", 0 },
-       { "wl_auth_mode", "open", 0 },          /* Network authentication mode (open|shared|radius|wpa|psk) */
-       { "wl_wpa_psk", "", 0 },                /* WPA pre-shared key */
-       { "wl_wpa_gtk_rekey", "3600", 0 },      /* GTK rotation interval */
-       { "wl_radius_ipaddr", "", 0 },          /* RADIUS server IP address */
-       { "wl_radius_key", "", 0 },             /* RADIUS shared secret */
-       { "wl_radius_port", "1812", 0 },        /* RADIUS server UDP port */
-       { "wl_crypto", "tkip", 0 },             /* WPA data encryption */
-
-
-       { "wl_unit", "0", 0 },                  /* Last configured interface */
-               
-       /* Restore defaults */
-       { "restore_defaults", "0", 0 },         /* Set to 0 to not restore defaults on boot */
-
-       { 0, 0, 0 }
-};
index 3c45263..0502698 100644 (file)
@@ -132,9 +132,6 @@ extern int nvram_commit(void);
  */
 extern int nvram_getall(char *buf, int count);
 
-extern int file2nvram(char *filename, char *varname);
-extern int nvram2file(char *varname, char *filename);
-
 #endif /* _LANGUAGE_ASSEMBLY */
 
 #define NVRAM_MAGIC            0x48534C46      /* 'FLSH' */
diff --git a/package/nvram/src/include/cy_conf.h b/package/nvram/src/include/cy_conf.h
deleted file mode 100644 (file)
index dbe387b..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-
-#define        DNSMASQ_SUPPORT 1
-#define        CONFIG_DNSMASQ  y
-#define        UDHCPD_SUPPORT  1
-#define        CONFIG_UDHCPD   y
-#define        UDHCPC_SUPPORT  1
-#define        CONFIG_UDHCPC   y
-#define        PPPOE_SUPPORT   1
-#define        CONFIG_PPPOE    y
-#define        PPTP_SUPPORT    1
-#define        CONFIG_PPTP     y
-#define        L2TP_SUPPORT    1
-#define        CONFIG_L2TP     y
-#define        PPPD_SUPPORT    1
-#define        CONFIG_PPPD     y
-#define        ZEBRA_SUPPORT   1
-#define        CONFIG_ZEBRA    y
-#define        TFTPD_SUPPORT   1
-#define        CONFIG_TFTPD    y
-#define        DDNS_SUPPORT    1
-#define        CONFIG_DDNS     y
-#define        CRON_SUPPORT    1
-#define        CONFIG_CRON     y
-#define        HTTPD_SUPPORT   1
-#define        CONFIG_HTTPD    y
-#define        GET_POST_SUPPORT        1
-#define        CONFIG_GET_POST y
-
-#if 1
-#define        HEARTBEAT_SUPPORT       1
-#define        CONFIG_HEARTBEAT        y
-#define        MULTICAST_SUPPORT       1
-#define        CONFIG_MULTICAST        y
-#define        SETUP_WIZARD_SUPPORT    1
-#define        CONFIG_SETUP_WIZARD     y
-#define        PARENTAL_CONTROL_SUPPORT        1
-#define        CONFIG_PARENTAL_CONTROL y
-#define        HTTPS_SUPPORT   1
-#define        CONFIG_HTTPS    y
-#define        EOU_SUPPORT     1
-#define        CONFIG_EOU      y
-#define        EZC_SUPPORT     1
-#define        CONFIG_EZC      y
-#define        WRITE_MAC_SUPPORT       1
-#define        CONFIG_WRITE_MAC        y
-#define        DIAG_SUPPORT    1
-#define        CONFIG_DIAG     y
-#endif
-
-#define        SPEED_BOOSTER_SUPPORT   1
-#define        CONFIG_SPEED_BOOSTER    y
-#define        XBOX_SUPPORT    1
-#define        CONFIG_XBOX     y
-
-#if 0
-#define        MPPPOE_SUPPORT  1
-#define        CONFIG_MPPPOE   y
-#define        UNNUMBERIP_SUPPORT      1
-#define        CONFIG_UNNUMBERIP       y
-#endif
-
-#define        WL_STA_SUPPORT  1
-#define        CONFIG_WL_STA   y
-#define        BACKUP_RESTORE_SUPPORT  1
-#define        CONFIG_BACKUP_RESTORE   y
-#define        PORT_TRIGGER_SUPPORT    1
-#define        CONFIG_PORT_TRIGGER     y
-#define        HW_QOS_SUPPORT  1
-#define        CONFIG_HW_QOS   y
diff --git a/package/nvram/src/include/epivers.h b/package/nvram/src/include/epivers.h
deleted file mode 100644 (file)
index e174fb5..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright 2004, Broadcom Corporation
- * All Rights Reserved.
- * 
- * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
- * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
- * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
- *
- * $Id$
- *
-*/
-
-#ifndef _epivers_h_
-#define _epivers_h_
-
-#ifdef linux
-#include <linux/config.h>
-#endif
-
-/* Vendor Name, ASCII, 32 chars max */
-#ifdef COMPANYNAME
-#define        HPNA_VENDOR             COMPANYNAME
-#else
-#define        HPNA_VENDOR             "Broadcom Corporation"
-#endif
-
-/* Driver Date, ASCII, 32 chars max */
-#define HPNA_DRV_BUILD_DATE    __DATE__
-
-/* Hardware Manufacture Date, ASCII, 32 chars max */
-#define HPNA_HW_MFG_DATE       "Not Specified"
-
-/* See documentation for Device Type values, 32 values max */
-#ifndef        HPNA_DEV_TYPE
-
-#if    defined(CONFIG_BRCM_VJ)
-#define HPNA_DEV_TYPE          { CDCF_V0_DEVICE_DISPLAY }
-
-#elif  defined(CONFIG_BCRM_93725)
-#define HPNA_DEV_TYPE          { CDCF_V0_DEVICE_CM_BRIDGE, CDCF_V0_DEVICE_DISPLAY }
-
-#else
-#define HPNA_DEV_TYPE          { CDCF_V0_DEVICE_PCINIC }
-
-#endif
-
-#endif /* !HPNA_DEV_TYPE */
-
-
-#define        EPI_MAJOR_VERSION       3
-
-#define        EPI_MINOR_VERSION       60
-
-#define        EPI_RC_NUMBER           13
-
-#define        EPI_INCREMENTAL_NUMBER  0
-
-#define        EPI_BUILD_NUMBER        0
-
-#define        EPI_VERSION             3,60,13,0
-
-#define        EPI_VERSION_NUM         0x033c0d00
-
-/* Driver Version String, ASCII, 32 chars max */
-#define        EPI_VERSION_STR         "3.60.13.0"
-#define        EPI_ROUTER_VERSION_STR  "3.61.13.0"
-
-#endif /* _epivers_h_ */
diff --git a/package/nvram/src/include/proto/802.11.h b/package/nvram/src/include/proto/802.11.h
deleted file mode 100644 (file)
index ea57850..0000000
+++ /dev/null
@@ -1,852 +0,0 @@
-/*
- * Copyright 2004, Broadcom Corporation      
- * All Rights Reserved.      
- *       
- * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY      
- * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM      
- * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS      
- * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.      
- *
- * Fundamental types and constants relating to 802.11 
- *
- * $Id$
- */
-
-#ifndef _802_11_H_
-#define _802_11_H_
-
-#ifndef _TYPEDEFS_H_
-#include <typedefs.h>
-#endif
-
-#ifndef _NET_ETHERNET_H_
-#include <proto/ethernet.h>
-#endif
-
-/* enable structure packing */
-#if !defined(__GNUC__)
-#pragma pack(1)
-#endif
-
-/* some platforms require stronger medicine */
-#if defined(__GNUC__)
-#define        PACKED  __attribute__((packed))
-#else
-#define        PACKED
-#endif
-
-
-#define DOT11_TU_TO_US                 1024    /* 802.11 Time Unit is 1024 microseconds */
-
-/* Generic 802.11 frame constants */
-#define DOT11_A3_HDR_LEN               24
-#define DOT11_A4_HDR_LEN               30
-#define DOT11_MAC_HDR_LEN              DOT11_A3_HDR_LEN
-#define DOT11_FCS_LEN                  4
-#define DOT11_ICV_LEN                  4
-#define DOT11_ICV_AES_LEN              8
-#define DOT11_QOS_LEN                  2
-
-#define DOT11_KEY_INDEX_SHIFT          6
-#define DOT11_IV_LEN                   4
-#define DOT11_IV_TKIP_LEN              8
-#define DOT11_IV_AES_OCB_LEN           4
-#define DOT11_IV_AES_CCM_LEN           8
-
-/* Includes MIC */
-#define DOT11_MAX_MPDU_BODY_LEN                2304
-/* A4 header + QoS + CCMP + PDU + ICV + FCS = 2352 */
-#define DOT11_MAX_MPDU_LEN             (DOT11_A4_HDR_LEN + \
-                                        DOT11_QOS_LEN + \
-                                        DOT11_IV_AES_CCM_LEN + \
-                                        DOT11_MAX_MPDU_BODY_LEN + \
-                                        DOT11_ICV_LEN + \
-                                        DOT11_FCS_LEN)
-
-#define DOT11_MAX_SSID_LEN             32
-
-/* dot11RTSThreshold */
-#define DOT11_DEFAULT_RTS_LEN          2347
-#define DOT11_MAX_RTS_LEN              2347
-
-/* dot11FragmentationThreshold */
-#define DOT11_MIN_FRAG_LEN             256
-#define DOT11_MAX_FRAG_LEN             2346    /* Max frag is also limited by aMPDUMaxLength of the attached PHY */
-#define DOT11_DEFAULT_FRAG_LEN         2346
-
-/* dot11BeaconPeriod */
-#define DOT11_MIN_BEACON_PERIOD                1
-#define DOT11_MAX_BEACON_PERIOD                0xFFFF
-
-/* dot11DTIMPeriod */
-#define DOT11_MIN_DTIM_PERIOD          1
-#define DOT11_MAX_DTIM_PERIOD          0xFF
-
-/* 802.2 LLC/SNAP header used by 802.11 per 802.1H */
-#define DOT11_LLC_SNAP_HDR_LEN 8
-#define DOT11_OUI_LEN                  3
-struct dot11_llc_snap_header {
-       uint8   dsap;                           /* always 0xAA */
-       uint8   ssap;                           /* always 0xAA */
-       uint8   ctl;                            /* always 0x03 */
-       uint8   oui[DOT11_OUI_LEN];             /* RFC1042: 0x00 0x00 0x00
-                                                  Bridge-Tunnel: 0x00 0x00 0xF8 */
-       uint16  type;                           /* ethertype */
-} PACKED;
-
-/* RFC1042 header used by 802.11 per 802.1H */
-#define RFC1042_HDR_LEN                        (ETHER_HDR_LEN + DOT11_LLC_SNAP_HDR_LEN)
-
-/* Generic 802.11 MAC header */
-/*
- * N.B.: This struct reflects the full 4 address 802.11 MAC header.
- *              The fields are defined such that the shorter 1, 2, and 3
- *              address headers just use the first k fields.
- */
-struct dot11_header {
-       uint16                  fc;             /* frame control */
-       uint16                  durid;          /* duration/ID */
-       struct ether_addr       a1;             /* address 1 */
-       struct ether_addr       a2;             /* address 2 */
-       struct ether_addr       a3;             /* address 3 */
-       uint16                  seq;            /* sequence control */
-       struct ether_addr       a4;             /* address 4 */
-} PACKED;
-
-/* Control frames */
-
-struct dot11_rts_frame {
-       uint16                  fc;             /* frame control */
-       uint16                  durid;          /* duration/ID */
-       struct ether_addr       ra;             /* receiver address */
-       struct ether_addr       ta;             /* transmitter address */
-} PACKED;
-#define        DOT11_RTS_LEN           16
-
-struct dot11_cts_frame {
-       uint16                  fc;             /* frame control */
-       uint16                  durid;          /* duration/ID */
-       struct ether_addr       ra;             /* receiver address */
-} PACKED;
-#define        DOT11_CTS_LEN           10
-
-struct dot11_ack_frame {
-       uint16                  fc;             /* frame control */
-       uint16                  durid;          /* duration/ID */
-       struct ether_addr       ra;             /* receiver address */
-} PACKED;
-#define        DOT11_ACK_LEN           10
-
-struct dot11_ps_poll_frame {
-       uint16                  fc;             /* frame control */
-       uint16                  durid;          /* AID */
-       struct ether_addr       bssid;          /* receiver address, STA in AP */
-       struct ether_addr       ta;             /* transmitter address */
-} PACKED;
-#define        DOT11_PS_POLL_LEN       16
-
-struct dot11_cf_end_frame {
-       uint16                  fc;             /* frame control */
-       uint16                  durid;          /* duration/ID */
-       struct ether_addr       ra;             /* receiver address */
-       struct ether_addr       bssid;          /* transmitter address, STA in AP */
-} PACKED;
-#define        DOT11_CS_END_LEN        16
-
-/* Management frame header */
-struct dot11_management_header {
-       uint16                  fc;             /* frame control */
-       uint16                  durid;          /* duration/ID */
-       struct ether_addr       da;             /* receiver address */
-       struct ether_addr       sa;             /* transmitter address */
-       struct ether_addr       bssid;          /* BSS ID */
-       uint16                  seq;            /* sequence control */
-} PACKED;
-#define        DOT11_MGMT_HDR_LEN      24
-
-/* Management frame payloads */
-
-struct dot11_bcn_prb {
-       uint32                  timestamp[2];
-       uint16                  beacon_interval;
-       uint16                  capability;
-} PACKED;
-#define        DOT11_BCN_PRB_LEN       12
-
-struct dot11_auth {
-       uint16                  alg;            /* algorithm */
-       uint16                  seq;            /* sequence control */
-       uint16                  status;         /* status code */
-} PACKED;
-#define DOT11_AUTH_FIXED_LEN   6               /* length of auth frame without challenge info elt */
-
-struct dot11_assoc_req {
-       uint16                  capability;     /* capability information */
-       uint16                  listen;         /* listen interval */
-} PACKED;
-
-struct dot11_assoc_resp {
-       uint16                  capability;     /* capability information */
-       uint16                  status;         /* status code */
-       uint16                  aid;            /* association ID */
-} PACKED;
-
-struct dot11_action_measure {
-       uint8   category;
-       uint8   action;
-       uint8   token;
-       uint8   data[1];
-} PACKED;
-#define DOT11_ACTION_MEASURE_LEN       3
-
-/**************
-  802.11h related definitions.
-**************/
-typedef struct {
-       uint8 id;
-       uint8 len;
-       uint8 power;
-} dot11_power_cnst_t;
-
-typedef struct {
-       uint8 min;
-       uint8 max;
-} dot11_power_cap_t;
-
-typedef struct {
-       uint8 id;
-       uint8 len;
-       uint8 tx_pwr;
-       uint8 margin;
-} dot11_tpc_rep_t;
-#define DOT11_MNG_IE_TPC_REPORT_LEN    2       /* length of IE data, not including 2 byte header */
-
-typedef struct {
-       uint8 id;
-       uint8 len;
-       uint8 first_channel;
-       uint8 num_channels;
-} dot11_supp_channels_t;
-
-struct dot11_channel_switch {
-       uint8 id;
-       uint8 len;
-       uint8 mode;
-       uint8 channel;
-       uint8 count;
-}  PACKED;
-typedef struct dot11_channel_switch dot11_channel_switch_t;
-
-/* 802.11h Measurement Request/Report IEs */
-/* Measurement Type field */
-#define DOT11_MEASURE_TYPE_BASIC       0
-#define DOT11_MEASURE_TYPE_CCA                 1
-#define DOT11_MEASURE_TYPE_RPI         2
-
-/* Measurement Mode field */
-
-/* Measurement Request Modes */
-#define DOT11_MEASURE_MODE_ENABLE      (1<<1)
-#define DOT11_MEASURE_MODE_REQUEST     (1<<2)
-#define DOT11_MEASURE_MODE_REPORT      (1<<3)
-/* Measurement Report Modes */
-#define DOT11_MEASURE_MODE_LATE        (1<<0)
-#define DOT11_MEASURE_MODE_INCAPABLE   (1<<1)
-#define DOT11_MEASURE_MODE_REFUSED     (1<<2)
-/* Basic Measurement Map bits */
-#define DOT11_MEASURE_BASIC_MAP_BSS    ((uint8)(1<<0))
-#define DOT11_MEASURE_BASIC_MAP_OFDM   ((uint8)(1<<1))
-#define DOT11_MEASURE_BASIC_MAP_UKNOWN ((uint8)(1<<2))
-#define DOT11_MEASURE_BASIC_MAP_RADAR  ((uint8)(1<<3))
-#define DOT11_MEASURE_BASIC_MAP_UNMEAS ((uint8)(1<<4))
-
-typedef struct {
-       uint8 id;
-       uint8 len;
-       uint8 token;
-       uint8 mode;
-       uint8 type;
-       uint8 channel;
-       uint8 start_time[8];
-       uint16 duration;
-} dot11_meas_req_t;
-#define DOT11_MNG_IE_MREQ_LEN 14
-/* length of Measure Request IE data not including variable len */
-#define DOT11_MNG_IE_MREQ_FIXED_LEN 3
-
-struct dot11_meas_rep {
-       uint8 id;
-       uint8 len;
-       uint8 token;
-       uint8 mode;
-       uint8 type;
-       union 
-       {
-               struct {
-                       uint8 channel;
-                       uint8 start_time[8];
-                       uint16 duration;
-                       uint8 map;
-               } PACKED basic;
-               uint8 data[1];
-       } PACKED rep;
-} PACKED;
-typedef struct dot11_meas_rep dot11_meas_rep_t;
-
-/* length of Measure Report IE data not including variable len */
-#define DOT11_MNG_IE_MREP_FIXED_LEN    3
-
-struct dot11_meas_rep_basic {
-       uint8 channel;
-       uint8 start_time[8];
-       uint16 duration;
-       uint8 map;
-} PACKED;
-typedef struct dot11_meas_rep_basic dot11_meas_rep_basic_t;
-#define DOT11_MEASURE_BASIC_REP_LEN    12
-
-struct dot11_quiet {
-       uint8 id;
-       uint8 len;
-       uint8 count;    /* TBTTs until beacon interval in quiet starts */
-       uint8 period;   /* Beacon intervals between periodic quiet periods ? */
-       uint16 duration;/* Length of quiet period, in TU's */
-       uint16 offset;  /* TU's offset from TBTT in Count field */
-} PACKED;
-typedef struct dot11_quiet dot11_quiet_t;
-
-typedef struct {
-       uint8 channel;
-       uint8 map;
-} chan_map_tuple_t;
-
-typedef struct {
-       uint8 id;
-       uint8 len;
-       uint8 eaddr[ETHER_ADDR_LEN];
-       uint8 interval;
-       chan_map_tuple_t map[1];
-} dot11_ibss_dfs_t;
-
-/* WME Elements */
-#define WME_OUI                        "\x00\x50\xf2"
-#define WME_VER                        1
-#define WME_TYPE               2
-#define WME_SUBTYPE_IE         0       /* Information Element */
-#define WME_SUBTYPE_PARAM_IE   1       /* Parameter Element */
-#define WME_SUBTYPE_TSPEC      2       /* Traffic Specification */
-
-/* WME Access Category Indices (ACIs) */
-#define AC_BE                  0       /* Best Effort */
-#define AC_BK                  1       /* Background */
-#define AC_VI                  2       /* Video */
-#define AC_VO                  3       /* Voice */
-#define AC_MAX                 4
-
-/* WME Information Element (IE) */
-struct wme_ie {
-       uint8 oui[3];
-       uint8 type;
-       uint8 subtype;
-       uint8 version;
-       uint8 acinfo;
-} PACKED;
-typedef struct wme_ie wme_ie_t;
-#define WME_IE_LEN 7
-
-struct wme_acparam {
-       uint8   ACI;
-       uint8   ECW;
-       uint16  TXOP;           /* stored in network order (ls octet first) */
-} PACKED;
-typedef struct wme_acparam wme_acparam_t;
-
-/* WME Parameter Element (PE) */
-struct wme_params {
-       uint8 oui[3];
-       uint8 type;
-       uint8 subtype;
-       uint8 version;
-       uint8 acinfo;
-       uint8 rsvd;
-       wme_acparam_t acparam[4];
-} PACKED;
-typedef struct wme_params wme_params_t;
-#define WME_PARAMS_IE_LEN      24
-
-/* acinfo */
-#define WME_COUNT_MASK         0x0f
-/* ACI */
-#define WME_AIFS_MASK  0x0f
-#define WME_ACM_MASK   0x10
-#define WME_ACI_MASK   0x60
-#define WME_ACI_SHIFT  5
-/* ECW */
-#define WME_CWMIN_MASK 0x0f
-#define WME_CWMAX_MASK 0xf0
-#define WME_CWMAX_SHIFT        4
-
-#define WME_TXOP_UNITS 32
-
-/* WME Traffic Specification (TSPEC) element */
-#define WME_SUBTYPE_TSPEC 2
-#define WME_TSPEC_HDR_LEN              2
-#define WME_TSPEC_BODY_OFF             2
-struct wme_tspec {
-       uint8 oui[DOT11_OUI_LEN];       /* WME_OUI */
-       uint8 type;                     /* WME_TYPE */
-       uint8 subtype;                  /* WME_SUBTYPE_TSPEC */
-       uint8 version;                  /* WME_VERSION */
-       uint16 ts_info;                 /* TS Info */
-       uint16 nom_msdu_size;           /* (Nominal or fixed) MSDU Size (bytes) */
-       uint16 max_msdu_size;           /* Maximum MSDU Size (bytes) */
-       uint32 min_service_interval;    /* Minimum Service Interval (us) */
-       uint32 max_service_interval;    /* Maximum Service Interval (us) */
-       uint32 inactivity_interval;     /* Inactivity Interval (us) */
-       uint32 service_start;           /* Service Start Time (us) */
-       uint32 min_rate;                /* Minimum Data Rate (bps) */
-       uint32 mean_rate;               /* Mean Data Rate (bps) */
-       uint32 max_burst_size;          /* Maximum Burst Size (bytes) */
-       uint32 min_phy_rate;            /* Minimum PHY Rate (bps) */
-       uint32 peak_rate;               /* Peak Data Rate (bps) */
-       uint32 delay_bound;             /* Delay Bound (us) */
-       uint16 surplus_bandwidth;       /* Surplus Bandwidth Allowance Factor */
-       uint16 medium_time;             /* Medium Time (32 us/s periods) */
-} PACKED;
-typedef struct wme_tspec wme_tspec_t;
-#define WME_TSPEC_LEN 56               /* not including 2-byte header */
-
-/* ts_info */
-/* 802.1D priority is duplicated - bits 13-11 AND bits 3-1 */
-#define TS_INFO_PRIO_SHIFT_HI          11
-#define TS_INFO_PRIO_MASK_HI           (0x7 << TS_INFO_PRIO_SHIFT_HI)
-#define TS_INFO_PRIO_SHIFT_LO          1
-#define TS_INFO_PRIO_MASK_LO           (0x7 << TS_INFO_PRIO_SHIFT_LO)
-#define TS_INFO_CONTENTION_SHIFT       7
-#define TS_INFO_CONTENTION_MASK                (0x1 << TS_INFO_CONTENTION_SHIFT)
-#define TS_INFO_DIRECTION_SHIFT                5
-#define TS_INFO_DIRECTION_MASK         (0x3 << TS_INFO_DIRECTION_SHIFT)
-#define TS_INFO_UPLINK                 (0 << TS_INFO_DIRECTION_SHIFT)
-#define TS_INFO_DOWNLINK               (1 << TS_INFO_DIRECTION_SHIFT)
-#define TS_INFO_BIDIRECTIONAL          (3 << TS_INFO_DIRECTION_SHIFT)
-
-/* nom_msdu_size */
-#define FIXED_MSDU_SIZE 0x8000         /* MSDU size is fixed */
-#define MSDU_SIZE_MASK 0x7fff          /* (Nominal or fixed) MSDU size */
-
-/* surplus_bandwidth */
-/* Represented as 3 bits of integer, binary point, 13 bits fraction */
-#define        INTEGER_SHIFT   13
-#define FRACTION_MASK  0x1FFF
-
-/* Management Notification Frame */
-struct dot11_management_notification {
-       uint8 category;                 /* DOT11_ACTION_NOTIFICATION */
-       uint8 action;
-       uint8 token;
-       uint8 status;
-       uint8 data[1];                  /* Elements */
-} PACKED;
-#define DOT11_MGMT_NOTIFICATION_LEN 4  /* Fixed length */
-
-/* WME Action Codes */
-#define WME_SETUP_REQUEST      0
-#define WME_SETUP_RESPONSE     1
-#define WME_TEARDOWN           2
-
-/* WME Setup Response Status Codes */
-#define WME_ADMISSION_ACCEPTED 0
-#define WME_INVALID_PARAMETERS 1
-#define WME_ADMISSION_REFUSED  3
-
-/* Macro to take a pointer to a beacon or probe response
- * header and return the char* pointer to the SSID info element
- */
-#define BCN_PRB_SSID(hdr) ((char*)(hdr) + DOT11_MGMT_HDR_LEN + DOT11_BCN_PRB_LEN)
-
-/* Authentication frame payload constants */
-#define DOT11_OPEN_SYSTEM      0
-#define DOT11_SHARED_KEY       1
-#define DOT11_CHALLENGE_LEN    128
-
-/* Frame control macros */
-#define FC_PVER_MASK           0x3
-#define FC_PVER_SHIFT          0
-#define FC_TYPE_MASK           0xC
-#define FC_TYPE_SHIFT          2
-#define FC_SUBTYPE_MASK                0xF0
-#define FC_SUBTYPE_SHIFT       4
-#define FC_TODS                        0x100
-#define FC_TODS_SHIFT          8
-#define FC_FROMDS              0x200
-#define FC_FROMDS_SHIFT                9
-#define FC_MOREFRAG            0x400
-#define FC_MOREFRAG_SHIFT      10
-#define FC_RETRY               0x800
-#define FC_RETRY_SHIFT         11
-#define FC_PM                  0x1000
-#define FC_PM_SHIFT            12
-#define FC_MOREDATA            0x2000
-#define FC_MOREDATA_SHIFT      13
-#define FC_WEP                 0x4000
-#define FC_WEP_SHIFT           14
-#define FC_ORDER               0x8000
-#define FC_ORDER_SHIFT         15
-
-/* sequence control macros */
-#define SEQNUM_SHIFT           4
-#define FRAGNUM_MASK           0xF
-
-/* Frame Control type/subtype defs */
-
-/* FC Types */
-#define FC_TYPE_MNG            0
-#define FC_TYPE_CTL            1
-#define FC_TYPE_DATA           2
-
-/* Management Subtypes */
-#define FC_SUBTYPE_ASSOC_REQ           0
-#define FC_SUBTYPE_ASSOC_RESP          1
-#define FC_SUBTYPE_REASSOC_REQ         2
-#define FC_SUBTYPE_REASSOC_RESP                3
-#define FC_SUBTYPE_PROBE_REQ           4
-#define FC_SUBTYPE_PROBE_RESP          5
-#define FC_SUBTYPE_BEACON              8
-#define FC_SUBTYPE_ATIM                        9
-#define FC_SUBTYPE_DISASSOC            10
-#define FC_SUBTYPE_AUTH                        11
-#define FC_SUBTYPE_DEAUTH              12
-#define FC_SUBTYPE_ACTION              13
-
-/* Control Subtypes */
-#define FC_SUBTYPE_PS_POLL             10
-#define FC_SUBTYPE_RTS                 11
-#define FC_SUBTYPE_CTS                 12
-#define FC_SUBTYPE_ACK                 13
-#define FC_SUBTYPE_CF_END              14
-#define FC_SUBTYPE_CF_END_ACK          15
-
-/* Data Subtypes */
-#define FC_SUBTYPE_DATA                        0
-#define FC_SUBTYPE_DATA_CF_ACK         1
-#define FC_SUBTYPE_DATA_CF_POLL                2
-#define FC_SUBTYPE_DATA_CF_ACK_POLL    3
-#define FC_SUBTYPE_NULL                        4
-#define FC_SUBTYPE_CF_ACK              5
-#define FC_SUBTYPE_CF_POLL             6
-#define FC_SUBTYPE_CF_ACK_POLL         7
-#define FC_SUBTYPE_QOS_DATA            8
-#define FC_SUBTYPE_QOS_NULL            12
-
-/* type-subtype combos */
-#define FC_KIND_MASK           (FC_TYPE_MASK | FC_SUBTYPE_MASK)
-
-#define FC_KIND(t, s) (((t) << FC_TYPE_SHIFT) | ((s) << FC_SUBTYPE_SHIFT))
-
-#define FC_ASSOC_REQ   FC_KIND(FC_TYPE_MNG, FC_SUBTYPE_ASSOC_REQ)
-#define FC_ASSOC_RESP  FC_KIND(FC_TYPE_MNG, FC_SUBTYPE_ASSOC_RESP)
-#define FC_REASSOC_REQ FC_KIND(FC_TYPE_MNG, FC_SUBTYPE_REASSOC_REQ)
-#define FC_REASSOC_RESP        FC_KIND(FC_TYPE_MNG, FC_SUBTYPE_REASSOC_RESP)
-#define FC_PROBE_REQ   FC_KIND(FC_TYPE_MNG, FC_SUBTYPE_PROBE_REQ)
-#define FC_PROBE_RESP  FC_KIND(FC_TYPE_MNG, FC_SUBTYPE_PROBE_RESP)
-#define FC_BEACON      FC_KIND(FC_TYPE_MNG, FC_SUBTYPE_BEACON)
-#define FC_DISASSOC    FC_KIND(FC_TYPE_MNG, FC_SUBTYPE_DISASSOC)
-#define FC_AUTH                FC_KIND(FC_TYPE_MNG, FC_SUBTYPE_AUTH)
-#define FC_DEAUTH      FC_KIND(FC_TYPE_MNG, FC_SUBTYPE_DEAUTH)
-#define FC_ACTION      FC_KIND(FC_TYPE_MNG, FC_SUBTYPE_ACTION)
-
-#define FC_PS_POLL     FC_KIND(FC_TYPE_CTL, FC_SUBTYPE_PS_POLL)
-#define FC_RTS         FC_KIND(FC_TYPE_CTL, FC_SUBTYPE_RTS)
-#define FC_CTS         FC_KIND(FC_TYPE_CTL, FC_SUBTYPE_CTS)
-#define FC_ACK         FC_KIND(FC_TYPE_CTL, FC_SUBTYPE_ACK)
-#define FC_CF_END      FC_KIND(FC_TYPE_CTL, FC_SUBTYPE_CF_END)
-#define FC_CF_END_ACK  FC_KIND(FC_TYPE_CTL, FC_SUBTYPE_CF_END_ACK)
-
-#define FC_DATA                FC_KIND(FC_TYPE_DATA, FC_SUBTYPE_DATA)
-#define FC_NULL_DATA   FC_KIND(FC_TYPE_DATA, FC_SUBTYPE_NULL)
-#define FC_DATA_CF_ACK FC_KIND(FC_TYPE_DATA, FC_SUBTYPE_DATA_CF_ACK)
-#define FC_QOS_DATA    FC_KIND(FC_TYPE_DATA, FC_SUBTYPE_QOS_DATA)
-#define FC_QOS_NULL    FC_KIND(FC_TYPE_DATA, FC_SUBTYPE_QOS_NULL)
-
-/* QoS Control Field */
-
-/* 802.1D Tag */
-#define QOS_PRIO_SHIFT         0
-#define QOS_PRIO_MASK          0x0007
-#define QOS_PRIO(qos)          (((qos) & QOS_PRIO_MASK) >> QOS_PRIO_SHIFT)
-
-/* Ack Policy (0 means Acknowledge) */
-#define QOS_ACK_SHIFT          5
-#define QOS_ACK_MASK           0x0060
-#define QOS_ACK(qos)           (((qos) & QOS_ACK_MASK) >> QOS_ACK_SHIFT)
-
-/* Management Frames */
-
-/* Management Frame Constants */
-
-/* Fixed fields */
-#define DOT11_MNG_AUTH_ALGO_LEN                2
-#define DOT11_MNG_AUTH_SEQ_LEN         2
-#define DOT11_MNG_BEACON_INT_LEN       2
-#define DOT11_MNG_CAP_LEN              2
-#define DOT11_MNG_AP_ADDR_LEN          6
-#define DOT11_MNG_LISTEN_INT_LEN       2
-#define DOT11_MNG_REASON_LEN           2
-#define DOT11_MNG_AID_LEN              2
-#define DOT11_MNG_STATUS_LEN           2
-#define DOT11_MNG_TIMESTAMP_LEN                8
-
-/* DUR/ID field in assoc resp is 0xc000 | AID */
-#define DOT11_AID_MASK                 0x3fff
-
-/* Reason Codes */
-#define DOT11_RC_RESERVED                      0
-#define DOT11_RC_UNSPECIFIED                   1       /* Unspecified reason */
-#define DOT11_RC_AUTH_INVAL                    2       /* Previous authentication no longer valid */
-#define DOT11_RC_DEAUTH_LEAVING                        3       /* Deauthenticated because sending station is
-                                                          leaving (or has left) IBSS or ESS */
-#define DOT11_RC_INACTIVITY                    4       /* Disassociated due to inactivity */
-#define DOT11_RC_BUSY                          5       /* Disassociated because AP is unable to handle
-                                                          all currently associated stations */
-#define DOT11_RC_INVAL_CLASS_2                 6       /* Class 2 frame received from
-                                                          nonauthenticated station */
-#define DOT11_RC_INVAL_CLASS_3                 7       /* Class 3 frame received from
-                                                          nonassociated station */
-#define DOT11_RC_DISASSOC_LEAVING              8       /* Disassociated because sending station is
-                                                          leaving (or has left) BSS */
-#define DOT11_RC_NOT_AUTH                      9       /* Station requesting (re)association is
-                                                          not authenticated with responding station */
-#define DOT11_RC_MAX                           23      /* Reason codes > 23 are reserved */
-
-/* Status Codes */
-#define DOT11_STATUS_SUCCESS                   0       /* Successful */
-#define DOT11_STATUS_FAILURE                   1       /* Unspecified failure */
-#define DOT11_STATUS_CAP_MISMATCH              10      /* Cannot support all requested capabilities
-                                                          in the Capability Information field */
-#define DOT11_STATUS_REASSOC_FAIL              11      /* Reassociation denied due to inability to
-                                                          confirm that association exists */
-#define DOT11_STATUS_ASSOC_FAIL                        12      /* Association denied due to reason outside
-                                                          the scope of this standard */
-#define DOT11_STATUS_AUTH_MISMATCH             13      /* Responding station does not support the
-                                                          specified authentication algorithm */
-#define DOT11_STATUS_AUTH_SEQ                  14      /* Received an Authentication frame with
-                                                          authentication transaction sequence number
-                                                          out of expected sequence */
-#define DOT11_STATUS_AUTH_CHALLENGE_FAIL       15      /* Authentication rejected because of challenge failure */
-#define DOT11_STATUS_AUTH_TIMEOUT              16      /* Authentication rejected due to timeout waiting
-                                                          for next frame in sequence */
-#define DOT11_STATUS_ASSOC_BUSY_FAIL           17      /* Association denied because AP is unable to
-                                                          handle additional associated stations */
-#define DOT11_STATUS_ASSOC_RATE_MISMATCH       18      /* Association denied due to requesting station
-                                                          not supporting all of the data rates in the
-                                                          BSSBasicRateSet parameter */
-#define DOT11_STATUS_ASSOC_SHORT_REQUIRED      19      /* Association denied due to requesting station
-                                                          not supporting the Short Preamble option */
-#define DOT11_STATUS_ASSOC_PBCC_REQUIRED       20      /* Association denied due to requesting station
-                                                          not supporting the PBCC Modulation option */
-#define DOT11_STATUS_ASSOC_AGILITY_REQUIRED    21      /* Association denied due to requesting station
-                                                          not supporting the Channel Agility option */
-#define DOT11_STATUS_ASSOC_SPECTRUM_REQUIRED   22      /* Association denied because Spectrum Management 
-                                                          capability is required. */
-#define DOT11_STATUS_ASSOC_BAD_POWER_CAP       23      /* Association denied because the info in the 
-                                                          Power Cap element is unacceptable. */
-#define DOT11_STATUS_ASSOC_BAD_SUP_CHANNELS    24      /* Association denied because the info in the 
-                                                          Supported Channel element is unacceptable */
-#define DOT11_STATUS_ASSOC_SHORTSLOT_REQUIRED  25      /* Association denied due to requesting station
-                                                          not supporting the Short Slot Time option */
-#define DOT11_STATUS_ASSOC_ERPBCC_REQUIRED     26      /* Association denied due to requesting station
-                                                          not supporting the ER-PBCC Modulation option */
-#define DOT11_STATUS_ASSOC_DSSOFDM_REQUIRED    27      /* Association denied due to requesting station
-                                                          not supporting the DSS-OFDM option */
-
-/* Info Elts, length of INFORMATION portion of Info Elts */
-#define DOT11_MNG_DS_PARAM_LEN                 1
-#define DOT11_MNG_IBSS_PARAM_LEN               2
-
-/* TIM Info element has 3 bytes fixed info in INFORMATION field,
- * followed by 1 to 251 bytes of Partial Virtual Bitmap */
-#define DOT11_MNG_TIM_FIXED_LEN                        3
-#define DOT11_MNG_TIM_DTIM_COUNT               0
-#define DOT11_MNG_TIM_DTIM_PERIOD              1
-#define DOT11_MNG_TIM_BITMAP_CTL               2
-#define DOT11_MNG_TIM_PVB                      3
-
-/* TLV defines */
-#define TLV_TAG_OFF            0
-#define TLV_LEN_OFF            1
-#define TLV_HDR_LEN            2
-#define TLV_BODY_OFF           2
-
-/* Management Frame Information Element IDs */
-#define DOT11_MNG_SSID_ID                      0
-#define DOT11_MNG_RATES_ID                     1
-#define DOT11_MNG_FH_PARMS_ID                  2
-#define DOT11_MNG_DS_PARMS_ID                  3
-#define DOT11_MNG_CF_PARMS_ID                  4
-#define DOT11_MNG_TIM_ID                       5
-#define DOT11_MNG_IBSS_PARMS_ID                        6
-#define DOT11_MNG_COUNTRY_ID                   7
-#define DOT11_MNG_HOPPING_PARMS_ID             8
-#define DOT11_MNG_HOPPING_TABLE_ID             9
-#define DOT11_MNG_REQUEST_ID                   10
-#define DOT11_MNG_CHALLENGE_ID                 16
-#define DOT11_MNG_PWR_CONSTRAINT_ID            32    /* 11H PowerConstraint    */
-#define DOT11_MNG_PWR_CAP_ID                   33    /* 11H PowerCapability    */
-#define DOT11_MNG_TPC_REQUEST_ID               34    /* 11H TPC Request        */
-#define DOT11_MNG_TPC_REPORT_ID                        35    /* 11H TPC Report         */
-#define DOT11_MNG_SUPP_CHANNELS_ID             36    /* 11H Supported Channels */
-#define DOT11_MNG_CHANNEL_SWITCH_ID            37    /* 11H ChannelSwitch Announcement*/
-#define DOT11_MNG_MEASURE_REQUEST_ID           38    /* 11H MeasurementRequest */
-#define DOT11_MNG_MEASURE_REPORT_ID            39    /* 11H MeasurementReport  */
-#define DOT11_MNG_QUIET_ID                     40    /* 11H Quiet              */
-#define DOT11_MNG_IBSS_DFS_ID                  41    /* 11H IBSS_DFS           */
-#define DOT11_MNG_ERP_ID                       42
-#define DOT11_MNG_NONERP_ID                    47
-#define DOT11_MNG_EXT_RATES_ID                 50
-#define DOT11_MNG_WPA_ID                       221
-#define DOT11_MNG_PROPR_ID                     221
-
-/* ERP info element bit values */
-#define DOT11_MNG_ERP_LEN                      1       /* ERP is currently 1 byte long */
-#define DOT11_MNG_NONERP_PRESENT               0x01    /* NonERP (802.11b) STAs are present in the BSS */
-#define DOT11_MNG_USE_PROTECTION               0x02    /* Use protection mechanisms for ERP-OFDM frames */
-#define DOT11_MNG_BARKER_PREAMBLE              0x04    /* Short Preambles: 0 == allowed, 1 == not allowed */
-
-/* Capability Information Field */
-#define DOT11_CAP_ESS                          0x0001
-#define DOT11_CAP_IBSS                         0x0002
-#define DOT11_CAP_POLLABLE                     0x0004
-#define DOT11_CAP_POLL_RQ                      0x0008
-#define DOT11_CAP_PRIVACY                      0x0010
-#define DOT11_CAP_SHORT                                0x0020
-#define DOT11_CAP_PBCC                         0x0040
-#define DOT11_CAP_AGILITY                      0x0080
-#define DOT11_CAP_SPECTRUM                     0x0100
-#define DOT11_CAP_SHORTSLOT                    0x0400
-#define DOT11_CAP_CCK_OFDM                     0x2000
-
-/* Action Frame Constants */
-#define DOT11_ACTION_CAT_ERR_MASK      0x80
-#define DOT11_ACTION_CAT_SPECT_MNG     0x00
-#define DOT11_ACTION_NOTIFICATION      0x11    /* 17 */
-
-#define DOT11_ACTION_ID_M_REQ          0
-#define DOT11_ACTION_ID_M_REP          1
-#define DOT11_ACTION_ID_TPC_REQ                2
-#define DOT11_ACTION_ID_TPC_REP                3
-#define DOT11_ACTION_ID_CHANNEL_SWITCH 4
-
-/* MLME Enumerations */
-#define DOT11_BSSTYPE_INFRASTRUCTURE           0
-#define DOT11_BSSTYPE_INDEPENDENT              1
-#define DOT11_BSSTYPE_ANY                      2
-#define DOT11_SCANTYPE_ACTIVE                  0
-#define DOT11_SCANTYPE_PASSIVE                 1
-
-/* 802.11 A PHY constants */
-#define APHY_SLOT_TIME         9
-#define APHY_SIFS_TIME         16
-#define APHY_DIFS_TIME         (APHY_SIFS_TIME + (2 * APHY_SLOT_TIME))
-#define APHY_PREAMBLE_TIME     16
-#define APHY_SIGNAL_TIME       4
-#define APHY_SYMBOL_TIME       4
-#define APHY_SERVICE_NBITS     16
-#define APHY_TAIL_NBITS                6
-#define        APHY_CWMIN              15
-
-/* 802.11 B PHY constants */
-#define BPHY_SLOT_TIME         20
-#define BPHY_SIFS_TIME         10
-#define BPHY_DIFS_TIME         50
-#define BPHY_PLCP_TIME         192
-#define BPHY_PLCP_SHORT_TIME   96
-#define        BPHY_CWMIN              31
-
-/* 802.11 G constants */
-#define DOT11_OFDM_SIGNAL_EXTENSION    6
-
-#define PHY_CWMAX              1023
-
-#define        DOT11_MAXNUMFRAGS       16      /* max # fragments per MSDU */
-
-/* dot11Counters Table - 802.11 spec., Annex D */
-typedef struct d11cnt {
-       uint32          txfrag;         /* dot11TransmittedFragmentCount */
-       uint32          txmulti;        /* dot11MulticastTransmittedFrameCount */
-       uint32          txfail;         /* dot11FailedCount */
-       uint32          txretry;        /* dot11RetryCount */
-       uint32          txretrie;       /* dot11MultipleRetryCount */
-       uint32          rxdup;          /* dot11FrameduplicateCount */
-       uint32          txrts;          /* dot11RTSSuccessCount */
-       uint32          txnocts;        /* dot11RTSFailureCount */
-       uint32          txnoack;        /* dot11ACKFailureCount */
-       uint32          rxfrag;         /* dot11ReceivedFragmentCount */
-       uint32          rxmulti;        /* dot11MulticastReceivedFrameCount */
-       uint32          rxcrc;          /* dot11FCSErrorCount */
-       uint32          txfrmsnt;       /* dot11TransmittedFrameCount */
-       uint32          rxundec;        /* dot11WEPUndecryptableCount */
-} d11cnt_t;
-
-/* BRCM OUI */
-#define BRCM_OUI               "\x00\x10\x18"
-
-/* BRCM info element */
-struct brcm_ie {
-       uchar   id;             
-       uchar   len;   
-       uchar   oui[3];
-       uchar   ver;
-       uchar   assoc;          /*  # of assoc STAs */
-       uchar   flags;          /* misc flags */
-} PACKED;
-#define BRCM_IE_LEN            8
-typedef        struct brcm_ie brcm_ie_t;
-#define BRCM_IE_VER            1
-
-/* brcm_ie flags */
-#define        BRF_ABCAP               0x1     /* afterburner capable */
-#define        BRF_ABRQRD              0x2     /* afterburner requested */
-
-/* WPA definitions */
-#define WPA_VERSION            1
-#define WPA_OUI                        "\x00\x50\xF2"
-
-#define WPA_OUI_LEN    3
-
-/* WPA authentication modes */
-#define WPA_AUTH_NONE          0       /* None */
-#define WPA_AUTH_UNSPECIFIED   1       /* Unspecified authentication over 802.1X: default for WPA */
-#define WPA_AUTH_PSK           2       /* Pre-shared Key over 802.1X */
-#define WPA_AUTH_DISABLED      255     /* Legacy (i.e., non-WPA) */
-                                
-#define IS_WPA_AUTH(auth)      ((auth) == WPA_AUTH_NONE || \
-                                (auth) == WPA_AUTH_UNSPECIFIED || \
-                                (auth) == WPA_AUTH_PSK)
-
-
-/* Key related defines */
-#define DOT11_MAX_DEFAULT_KEYS 4       /* number of default keys */
-#define DOT11_MAX_KEY_SIZE     32      /* max size of any key */
-#define DOT11_MAX_IV_SIZE      16      /* max size of any IV */
-#define DOT11_EXT_IV_FLAG      (1<<5)  /* flag to indicate IV is > 4 bytes */
-
-#define WEP1_KEY_SIZE          5       /* max size of any WEP key */
-#define WEP1_KEY_HEX_SIZE      10      /* size of WEP key in hex. */
-#define WEP128_KEY_SIZE                13      /* max size of any WEP key */
-#define WEP128_KEY_HEX_SIZE    26      /* size of WEP key in hex. */
-#define TKIP_MIC_SIZE          8       /* size of TKIP MIC */
-#define TKIP_EOM_SIZE          7       /* max size of TKIP EOM */
-#define TKIP_EOM_FLAG          0x5a    /* TKIP EOM flag byte */
-#define TKIP_KEY_SIZE          32      /* size of any TKIP key */
-#define TKIP_MIC_AUTH_TX       16      /* offset to Authenticator MIC TX key */
-#define TKIP_MIC_AUTH_RX       24      /* offset to Authenticator MIC RX key */
-#define TKIP_MIC_SUP_RX                16      /* offset to Supplicant MIC RX key */
-#define TKIP_MIC_SUP_TX                24      /* offset to Supplicant MIC TX key */
-#define AES_KEY_SIZE           16      /* size of AES key */
-
-#undef PACKED
-#if !defined(__GNUC__)
-#pragma pack()
-#endif
-
-#endif /* _802_11_H_ */
diff --git a/package/nvram/src/include/proto/ethernet.h b/package/nvram/src/include/proto/ethernet.h
deleted file mode 100644 (file)
index 173464a..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * $Id$
- * Copyright 2004, Broadcom Corporation      
- * All Rights Reserved.      
- *       
- * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY      
- * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM      
- * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS      
- * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.      
- * From FreeBSD 2.2.7: Fundamental constants relating to ethernet.
- ******************************************************************************/
-
-#ifndef _NET_ETHERNET_H_           /* use native BSD ethernet.h when available */
-#define _NET_ETHERNET_H_
-
-#ifndef _TYPEDEFS_H_
-#include "typedefs.h"
-#endif
-
-#if defined(__GNUC__)
-#define        PACKED  __attribute__((packed))
-#else
-#define        PACKED
-#endif
-
-/*
- * The number of bytes in an ethernet (MAC) address.
- */
-#ifndef ETHER_ADDR_LEN
-#define        ETHER_ADDR_LEN          6
-#endif
-
-/*
- * The number of bytes in the type field.
- */
-#ifndef        ETHER_TYPE_LEN
-#define        ETHER_TYPE_LEN          2
-#endif
-
-/*
- * The number of bytes in the trailing CRC field.
- */
-#ifndef        ETHER_CRC_LEN
-#define        ETHER_CRC_LEN           4
-#endif
-
-/*
- * The length of the combined header.
- */
-#ifndef        ETHER_HDR_LEN
-#define        ETHER_HDR_LEN           (ETHER_ADDR_LEN*2+ETHER_TYPE_LEN)
-#endif
-
-/*
- * The minimum packet length.
- */
-#ifndef ETHER_MIN_LEN
-#define        ETHER_MIN_LEN           64
-#endif
-
-/*
- * The minimum packet user data length.
- */
-#ifndef ETHER_MIN_DATA
-#define        ETHER_MIN_DATA          46
-#endif
-
-/*
- * The maximum packet length.
- */
-#ifndef ETHER_MAX_LEN
-#define        ETHER_MAX_LEN           1518
-#endif
-
-/*
- * The maximum packet user data length.
- */
-#define        ETHER_MAX_DATA          1500
-
-/*
- * Used to uniquely identify a 802.1q VLAN-tagged header.
- */
-#define        VLAN_TAG                        0x8100
-
-/*
- * Located after dest & src address in ether header.
- */
-#define VLAN_FIELDS_OFFSET             (ETHER_ADDR_LEN * 2)
-
-/*
- * 4 bytes of vlan field info.
- */
-#define VLAN_FIELDS_SIZE               4
-
-/* location of bits in 16-bit vlan fields */
-#define VLAN_PRI_SHIFT         13      /* user priority */
-#define VLAN_CFI_SHIFT         12      /* canonical format indicator bit */
-
-/* 3 bits of priority */
-#define VLAN_PRI_MASK                  7
-/* 12 bits of vlan identfier (VID) */
-#define VLAN_VID_MASK          0xFFF   /* VLAN identifier (VID) field */
-
-struct  vlan_tags {
-       uint16  tag_type;       /* 0x8100 for VLAN */
-       uint16  tag_control;    /* prio | cfi | vid */
-} PACKED ;
-
-/* 802.1X ethertype */
-
-#define        ETHER_TYPE_IP           0x0800          /* IP */
-#define        ETHER_TYPE_BRCM         0x886c          /* Broadcom Corp. */
-#define        ETHER_TYPE_802_1X       0x888e          /* 802.1x */
-
-#define        ETHER_BRCM_SUBTYPE_LEN  4               /* Broadcom 4byte subtype follows ethertype */
-#define        ETHER_BRCM_CRAM         0x1             /* Broadcom subtype cram protocol */
-
-/*
- * A macro to validate a length with
- */
-#define        ETHER_IS_VALID_LEN(foo) \
-       ((foo) >= ETHER_MIN_LEN && (foo) <= ETHER_MAX_LEN)
-
-#ifndef __NET_ETHERNET_H
-#ifndef __INCif_etherh     /* Quick and ugly hack for VxWorks */
-/*
- * Structure of a 10Mb/s Ethernet header.
- */
-struct ether_header {
-       uint8   ether_dhost[ETHER_ADDR_LEN];
-       uint8   ether_shost[ETHER_ADDR_LEN];
-       uint16  ether_type;
-} PACKED ;
-
-/*
- * Structure of a 48-bit Ethernet address.
- */
-struct ether_addr {
-       uint8 octet[ETHER_ADDR_LEN];
-} PACKED ;
-#endif
-#endif
-
-/*
- * Takes a pointer, returns true if a 48-bit multicast address
- * (including broadcast, since it is all ones)
- */
-#define ETHER_ISMULTI(ea) (((uint8 *)(ea))[0] & 1)
-
-/*
- * Takes a pointer, returns true if a 48-bit broadcast (all ones)
- */
-#define ETHER_ISBCAST(ea) ((((uint8 *)(ea))[0] &               \
-                           ((uint8 *)(ea))[1] &                \
-                           ((uint8 *)(ea))[2] &                \
-                           ((uint8 *)(ea))[3] &                \
-                           ((uint8 *)(ea))[4] &                \
-                           ((uint8 *)(ea))[5]) == 0xff)
-
-static const struct ether_addr ether_bcast = {{255, 255, 255, 255, 255, 255}};
-
-/*
- * Takes a pointer, returns true if a 48-bit null address (all zeros)
- */
-#define ETHER_ISNULLADDR(ea) ((((uint8 *)(ea))[0] |            \
-                           ((uint8 *)(ea))[1] |                \
-                           ((uint8 *)(ea))[2] |                \
-                           ((uint8 *)(ea))[3] |                \
-                           ((uint8 *)(ea))[4] |                \
-                           ((uint8 *)(ea))[5]) == 0)
-
-/* Differentiated Services Codepoint - lower 6 bits of tos in iphdr */
-#define        DSCP_PRI_MASK           0x3F            /* bits 0-6 */
-#define        DSCP_WME_PRI_MASK       0x38            /* bits 3-6 */
-#define        DSCP_WME_PRI_SHIFT      3
-
-#undef PACKED
-
-#endif /* _NET_ETHERNET_H_ */
index 6b0c25e..9043e8a 100644 (file)
@@ -288,6 +288,8 @@ typedef float64 float_t;
 #undef TYPEDEF_FLOAT64
 #undef TYPEDEF_FLOAT_T
 
+#define ETHER_ADDR_LEN 6
+
 #endif /* USE_TYPEDEF_DEFAULTS */
 
 #endif /* _TYPEDEFS_H_ */
diff --git a/package/nvram/src/include/utils.h b/package/nvram/src/include/utils.h
deleted file mode 100644 (file)
index b8d1cdb..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-#include <cy_conf.h>
-
-extern int diag_led(int type, int act);
-extern int C_led(int i);
-extern int get_single_ip(char *ipaddr, int which);
-extern char *get_mac_from_ip(char *ip);
-extern struct dns_lists *get_dns_list(int no);
-extern int dns_to_resolv(void);
-extern char *get_wan_face(void);
-extern int check_wan_link(int num);
-extern char *get_complete_lan_ip(char *ip);
-extern int get_int_len(int num);
-extern int file_to_buf(char *path, char *buf, int len);
-extern int buf_to_file(char *path, char *buf);
-extern pid_t* find_pid_by_name( char* pidName);
-extern int find_pid_by_ps(char* pidName);
-extern int *find_all_pid_by_ps(char* pidName);
-extern char *find_name_by_proc(int pid);
-extern int get_ppp_pid(char *file);
-extern long convert_ver(char *ver);
-extern int check_flash(void);
-extern int check_action(void);
-extern int check_now_boot(void);
-extern int check_hw_type(void);
-extern int is_exist(char *filename);
-extern void set_ip_forward(char c);
-struct mtu_lists *get_mtu(char *proto);
-extern void set_host_domain_name(void);
-
-extern void encode(char *buf, int len);
-extern void decode(char *buf, int len);
-
-extern int sys_netdev_ioctl(int family, int socket, char *if_name, int cmd, struct ifreq *ifr);
-
-int ct_openlog(const char *ident, int option, int facility, char *log_name);
-void ct_syslog(int level, int enable, const char *fmt,...);
-void ct_logger(int level, const char *fmt,...);
-struct wl_assoc_mac * get_wl_assoc_mac(int *c);
-       
-
-
-enum { DMZ, SESSION, DIAG , WL};
-
-enum { START_LED, STOP_LED };
-
-typedef enum { ACT_IDLE, 
-              ACT_TFTP_UPGRADE, 
-              ACT_WEB_UPGRADE, 
-              ACT_WEBS_UPGRADE, 
-              ACT_SW_RESTORE, 
-              ACT_HW_RESTORE } ACTION;
-
-enum { UNKNOWN_BOOT = -1, PMON_BOOT, CFE_BOOT };
-
-enum { BCM4702_CHIP, BCM4712_CHIP, BCM5325E_CHIP };
-
-enum { FIRST, SECOND };
-
-enum { SYSLOG_LOG=1, SYSLOG_DEBUG, CONSOLE_ONLY, LOG_CONSOLE, DEBUG_CONSOLE };
-
-#define ACTION(cmd)    buf_to_file(ACTION_FILE, cmd)
-
-struct dns_lists {
-        int num_servers;
-        char dns_server[4][16];
-};
-
-#define NOT_USING      0
-#define USING          1
-
-struct wl_assoc_mac
-{
-       char mac[18];
-};
-
-struct mtu_lists {
-        char   *proto; /* protocol */
-        char   *min;   /* min mtu */
-        char   *max;   /* max mtu */
-};
-
-
-#define PPP_PSEUDO_IP  "10.64.64.64"
-#define PPP_PSEUDO_NM  "255.255.255.255"
-#define PPP_PSEUDO_GW  "10.112.112.112"
-
-#define PING_TMP       "/tmp/ping.log"
-#define TRACEROUTE_TMP "/tmp/traceroute.log"
-#define MAX_BUF_LEN    254
-
-#define RESOLV_FILE    "/tmp/resolv.conf"
-#define HOSTS_FILE     "/tmp/hosts"
-
-#define LOG_FILE       "/var/log/mess"
-
-#define ACTION_FILE    "/tmp/action"
-
-
-#define split(word, wordlist, next, delim) \
-       for (next = wordlist, \
-            strncpy(word, next, sizeof(word)), \
-            word[(next=strstr(next, delim)) ? strstr(word, delim) - word : sizeof(word) - 1] = '\0', \
-            next = next ? next + sizeof(delim) - 1 : NULL ; \
-            strlen(word); \
-            next = next ? : "", \
-            strncpy(word, next, sizeof(word)), \
-            word[(next=strstr(next, delim)) ? strstr(word, delim) - word : sizeof(word) - 1] = '\0', \
-            next = next ? next + sizeof(delim) - 1 : NULL)
-
-#define STRUCT_LEN(name)    sizeof(name)/sizeof(name[0])
-
-#define printHEX(str,len) { \
-       int i; \
-       for (i=0 ; i<len ; i++) { \
-               printf("%02X ", (unsigned char)*(str+i)); \
-               if(((i+1)%16) == 0) printf("- "); \
-               if(((i+1)%32) == 0) printf("\n"); \
-       } \
-       printf("\n\n"); \
-}
-
-
-#define printASC(str,len) { \
-       int i; \
-       for (i=0 ; i<len ; i++) { \
-               printf("%c", (unsigned char)*(str+i)); \
-               if(((i+1)%16) == 0) printf("- "); \
-               if(((i+1)%32) == 0) printf("\n"); \
-       } \
-       printf("\n\n"); \
-}
diff --git a/package/nvram/src/include/wlcompat.h b/package/nvram/src/include/wlcompat.h
deleted file mode 100644 (file)
index a4fc134..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * wlcompat.h
- *
- * Copyright (C) 2005 Felix Fietkau <nbd@vd-s.ath.cx>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- *
- * $Id$
- */
-#include <linux/wireless.h>
-
-#ifndef WLCOMPAT_H
-#define WLCOMPAT_H
-
-#define WLCOMPAT_SET_MONITOR           SIOCIWFIRSTPRIV + 0
-#define WLCOMPAT_GET_MONITOR           SIOCIWFIRSTPRIV + 1
-#define WLCOMPAT_SET_TXPWR_LIMIT       SIOCIWFIRSTPRIV + 2
-#define WLCOMPAT_GET_TXPWR_LIMIT       SIOCIWFIRSTPRIV + 3
-#define WLCOMPAT_SET_ANTDIV            SIOCIWFIRSTPRIV + 4
-#define WLCOMPAT_GET_ANTDIV            SIOCIWFIRSTPRIV + 5
-#define WLCOMPAT_SET_TXANT             SIOCIWFIRSTPRIV + 6
-#define WLCOMPAT_GET_TXANT             SIOCIWFIRSTPRIV + 7
-
-#endif
diff --git a/package/nvram/src/include/wlioctl.h b/package/nvram/src/include/wlioctl.h
deleted file mode 100644 (file)
index 66783cc..0000000
+++ /dev/null
@@ -1,1097 +0,0 @@
-/*
- * Custom OID/ioctl definitions for
- * Broadcom 802.11abg Networking Device Driver
- *
- * Definitions subject to change without notice.
- *
- * Copyright 2004, Broadcom Corporation
- * All Rights Reserved.
- * 
- * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
- * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
- * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
- *
- * $Id$
- */
-
-#ifndef _wlioctl_h_
-#define        _wlioctl_h_
-
-#include <typedefs.h>
-#include <proto/ethernet.h>
-#include <proto/802.11.h>
-
-#if defined(__GNUC__)
-#define        PACKED  __attribute__((packed))
-#else
-#define        PACKED
-#endif
-
-#define WLC_ESSID_MAX_SIZE     32
-
-#define WL_NUMRATES            255     /* max # of rates in a rateset */
-
-typedef struct wl_rateset {
-       uint32  count;                  /* # rates in this set */
-       uint8   rates[WL_NUMRATES];     /* rates in 500kbps units w/hi bit set if basic */
-} wl_rateset_t;
-
-#define WL_CHANSPEC_CHAN_MASK  0x0fff
-#define WL_CHANSPEC_BAND_MASK  0xf000
-#define WL_CHANSPEC_BAND_SHIFT 12
-#define WL_CHANSPEC_BAND_A     0x1000
-#define WL_CHANSPEC_BAND_B     0x2000
-
-/*
- * Per-bss information structure.
- */
-
-#define        WL_LEGACY_BSS_INFO_VERSION      106     /* an older supported version of wl_bss_info struct */
-#define        WL_BSS_INFO_VERSION             107     /* current version of wl_bss_info struct */
-
-typedef struct wl_bss_info106 {
-       uint            version;        /* version field */
-       struct ether_addr BSSID;
-       uint8           SSID_len;
-       uint8           SSID[32];
-       uint8           Privacy;        /* 0=No WEP, 1=Use WEP */
-       int16           RSSI;           /* receive signal strength (in dBm) */
-       uint16          beacon_period;  /* units are Kusec */
-       uint16          atim_window;    /* units are Kusec */
-       uint8           channel;        /* Channel no. */
-       int8            infra;          /* 0=IBSS, 1=infrastructure, 2=unknown */
-       struct {
-               uint    count;          /* # rates in this set */
-               uint8   rates[12];      /* rates in 500kbps units w/hi bit set if basic */
-       } rateset;                      /* supported rates */
-        uint8           dtim_period;    /* DTIM period */
-       int8            phy_noise;      /* noise right after tx (in dBm) */
-       uint16          capability;     /* Capability information */
-       struct dot11_bcn_prb *prb;      /* probe response frame (ioctl na) */
-       uint16          prb_len;        /* probe response frame length (ioctl na) */
-       struct {
-               uint8 supported;        /* wpa supported */
-               uint8 multicast;        /* multicast cipher */
-               uint8 ucount;           /* count of unicast ciphers */
-               uint8 unicast[4];       /* unicast ciphers */
-               uint8 acount;           /* count of auth modes */
-               uint8 auth[4];          /* Authentication modes */
-       } wpa;
-} wl_bss_info106_t;
-
-typedef struct wl_bss_info {
-       uint32          version;        /* version field */
-       uint32          length;         /* byte length of data in this record, starting at version and including IEs */
-       struct ether_addr BSSID;
-       uint16          beacon_period;  /* units are Kusec */
-       uint16          capability;     /* Capability information */
-       uint8           SSID_len;
-       uint8           SSID[32];
-       struct {
-               uint    count;          /* # rates in this set */
-               uint8   rates[16];      /* rates in 500kbps units w/hi bit set if basic */
-       } rateset;                      /* supported rates */
-       uint8           channel;        /* Channel no. */
-       uint16          atim_window;    /* units are Kusec */
-        uint8           dtim_period;    /* DTIM period */
-       int16           RSSI;           /* receive signal strength (in dBm) */
-       int8            phy_noise;      /* noise (in dBm) */
-       uint32          ie_length;      /* byte length of Information Elements */
-       /* variable length Information Elements */
-} wl_bss_info_t;
-
-typedef struct wlc_ssid {
-       uint32          SSID_len;
-       uchar           SSID[32];
-} wlc_ssid_t;
-
-typedef struct wl_scan_params {
-       wlc_ssid_t ssid;        /* default is {0, ""} */
-       struct ether_addr bssid;/* default is bcast */
-       int8 bss_type;          /* default is any, DOT11_BSSTYPE_ANY/INFRASTRUCTURE/INDEPENDENT */
-       int8 scan_type;         /* -1 use default, DOT11_SCANTYPE_ACTIVE/PASSIVE */
-       int32 nprobes;          /* -1 use default, number of probes per channel */
-       int32 active_time;      /* -1 use default, dwell time per channel for active scanning */
-       int32 passive_time;     /* -1 use default, dwell time per channel for passive scanning */
-       int32 home_time;        /* -1 use default, dwell time for the home channel between channel scans */
-       int32 channel_num;      /* 0 use default (all available channels), count of channels in channel_list */
-       uint16 channel_list[1]; /* list of chanspecs */
-} wl_scan_params_t;
-/* size of wl_scan_params not including variable length array */
-#define WL_SCAN_PARAMS_FIXED_SIZE 64
-
-typedef struct wl_scan_results {
-       uint32 buflen;
-       uint32 version;
-       uint32 count;
-       wl_bss_info_t bss_info[1];
-} wl_scan_results_t;
-/* size of wl_scan_results not including variable length array */
-#define WL_SCAN_RESULTS_FIXED_SIZE 12
-
-/* uint32 list */
-typedef struct wl_uint32_list {
-       /* in - # of elements, out - # of entries */
-       uint32 count;
-       /* variable length uint32 list */
-       uint32 element[1];
-} wl_uint32_list_t;
-
-#define WLC_CNTRY_BUF_SZ        4       /* Country string is 3 bytes + NULL */
-
-typedef struct wl_channels_in_country {
-       uint32 buflen;
-       uint32 band;
-       char country_abbrev[WLC_CNTRY_BUF_SZ];
-       uint32 count;
-       uint32 channel[1];
-} wl_channels_in_country_t;
-
-typedef struct wl_country_list {
-       uint32 buflen;
-       uint32 band_set;
-       uint32 band;
-       uint32 count;
-       char country_abbrev[1];
-} wl_country_list_t;
-
-#define WL_RM_TYPE_BASIC       1
-#define WL_RM_TYPE_CCA         2
-#define WL_RM_TYPE_RPI         3
-
-#define WL_RM_FLAG_PARALLEL    (1<<0)
-
-#define WL_RM_FLAG_LATE                (1<<1)
-#define WL_RM_FLAG_INCAPABLE   (1<<2)
-#define WL_RM_FLAG_REFUSED     (1<<3)
-
-typedef struct wl_rm_req_elt {
-       int8    type;
-       int8    flags;
-       uint16  chanspec;
-       uint32  token;          /* token for this measurement */
-       uint32  tsf_h;          /* TSF high 32-bits of Measurement start time */
-       uint32  tsf_l;          /* TSF low 32-bits */
-       uint32  dur;            /* TUs */
-} wl_rm_req_elt_t;
-
-typedef struct wl_rm_req {
-       uint32  token;          /* overall measurement set token */
-       uint32  count;          /* number of measurement reqests */
-       wl_rm_req_elt_t req[1]; /* variable length block of requests */
-} wl_rm_req_t;
-#define WL_RM_REQ_FIXED_LEN    8
-
-typedef struct wl_rm_rep_elt {
-       int8    type;
-       int8    flags;
-       uint16  chanspec;
-       uint32  token;          /* token for this measurement */
-       uint32  tsf_h;          /* TSF high 32-bits of Measurement start time */
-       uint32  tsf_l;          /* TSF low 32-bits */
-       uint32  dur;            /* TUs */
-       uint32  len;            /* byte length of data block */
-       uint8   data[1];        /* variable length data block */
-} wl_rm_rep_elt_t;
-#define WL_RM_REP_ELT_FIXED_LEN        24      /* length excluding data block */
-
-#define WL_RPI_REP_BIN_NUM 8
-typedef struct wl_rm_rpi_rep {
-       uint8   rpi[WL_RPI_REP_BIN_NUM];
-       int8    rpi_max[WL_RPI_REP_BIN_NUM];
-} wl_rm_rpi_rep_t;
-
-typedef struct wl_rm_rep {
-       uint32  token;          /* overall measurement set token */
-       uint32  len;            /* length of measurement report block */
-       wl_rm_rep_elt_t rep[1]; /* variable length block of reports */
-} wl_rm_rep_t;
-#define WL_RM_REP_FIXED_LEN    8
-
-
-#define WLC_MAX_KEY_SIZE       32      /* max size of any key */
-#define WLC_MAX_IV_SIZE                16      /* max size of any IV */
-#define WLC_EXT_IV_FLAG                (1<<5)  /* flag to indicate IV is > 4 bytes */
-#define WLC_MAX_DEFAULT_KEYS   4       /* # of default WEP keys */
-#define WLC_MAX_KEYS           54      /* Max # of WEP keys */
-#define WLC_WEP1_KEY_SIZE      5       /* max size of any WEP key */
-#define WLC_WEP1_KEY_HEX_SIZE  10      /* size of WEP key in hex. */
-#define WLC_WEP128_KEY_SIZE    13      /* max size of any WEP key */
-#define WLC_WEP128_KEY_HEX_SIZE        26      /* size of WEP key in hex. */
-#define WLC_TKIP_MIC_SIZE      8       /* size of TKIP MIC */
-#define WLC_TKIP_EOM_SIZE      7       /* max size of TKIP EOM */
-#define WLC_TKIP_EOM_FLAG      0x5a    /* TKIP EOM flag byte */
-#define WLC_TKIP_KEY_SIZE      32      /* size of any TKIP key */
-#define WLC_TKIP_MIC_AUTH_TX   16      /* offset to Authenticator MIC TX key */
-#define WLC_TKIP_MIC_AUTH_RX   24      /* offset to Authenticator MIC RX key */
-#define WLC_TKIP_MIC_SUP_RX    16      /* offset to Supplicant MIC RX key */
-#define WLC_TKIP_MIC_SUP_TX    24      /* offset to Supplicant MIC TX key */
-#define WLC_TKIP_P1_KEY_SIZE   10      /* size of TKHash Phase1 output, in bytes */
-#define WLC_TKIP_P2_KEY_SIZE   16      /* size of TKHash Phase2 output */
-#define WLC_AES_KEY_SIZE       16      /* size of AES key */
-
-
-typedef enum sup_auth_status {
-       WLC_SUP_DISCONNECTED = 0,
-       WLC_SUP_CONNECTING,
-       WLC_SUP_IDREQUIRED,
-       WLC_SUP_AUTHENTICATING,
-       WLC_SUP_AUTHENTICATED,
-       WLC_SUP_KEYXCHANGE,
-       WLC_SUP_KEYED
-} sup_auth_status_t;
-
-/* Enumerate crypto algorithms */
-#define        CRYPTO_ALGO_OFF                 0
-#define        CRYPTO_ALGO_WEP1                1
-#define        CRYPTO_ALGO_TKIP                2
-#define        CRYPTO_ALGO_WEP128              3
-#define CRYPTO_ALGO_AES_CCM            4
-#define CRYPTO_ALGO_AES_OCB_MSDU       5
-#define CRYPTO_ALGO_AES_OCB_MPDU       6
-#define CRYPTO_ALGO_NALG               7
-
-#define WSEC_GEN_MIC_ERROR     0x0001
-#define WSEC_GEN_REPLAY                0x0002
-
-#define WL_SOFT_KEY    (1 << 0)        /* Indicates this key is using soft encrypt */
-#define WL_PRIMARY_KEY (1 << 1)        /* Indicates this key is the primary (ie tx) key */
-#define WL_KF_RES_4    (1 << 4)        /* Reserved for backward compat */
-#define WL_KF_RES_5    (1 << 5)        /* Reserved for backward compat */
-
-
-typedef struct wlc_tkip_info {
-       uint16          phase1[WLC_TKIP_P1_KEY_SIZE/sizeof(uint16)];    /* tkhash phase1 result */
-       uint8           phase2[WLC_TKIP_P2_KEY_SIZE];   /* tkhash phase2 result */
-       uint32          micl;
-       uint32          micr;
-} tkip_info_t;
-
-typedef struct _wsec_iv {
-       uint32          hi;     /* upper 32 bits of IV */
-       uint16          lo;     /* lower 16 bits of IV */
-} wsec_iv_t;
-
-typedef struct wsec_key {
-       uint32          index;          /* key index */
-       uint32          len;            /* key length */
-       uint8           data[WLC_MAX_KEY_SIZE]; /* key data */
-       tkip_info_t     tkip_tx;        /* tkip transmit state */
-       tkip_info_t     tkip_rx;        /* tkip receive state */
-       uint32          algo;           /* CRYPTO_ALGO_AES_CCM, CRYPTO_ALGO_WEP128, etc */
-       uint32          flags;          /* misc flags */
-       uint32          algo_hw;        /* cache for hw register*/
-       uint32          aes_mode;       /* cache for hw register*/
-       int             iv_len;         /* IV length */         
-       int             iv_initialized; /* has IV been initialized already? */          
-       int             icv_len;        /* ICV length */
-       wsec_iv_t       rxiv;           /* Rx IV */
-       wsec_iv_t       txiv;           /* Tx IV */
-       struct ether_addr ea;           /* per station */
-} wsec_key_t;
-
-
-
-typedef struct wl_wsec_key {
-       uint32          index;          /* key index */
-       uint32          len;            /* key length */
-       uint8           data[DOT11_MAX_KEY_SIZE];       /* key data */
-       uint32          pad_1[18];
-       uint32          algo;           /* CRYPTO_ALGO_AES_CCM, CRYPTO_ALGO_WEP128, etc */
-       uint32          flags;          /* misc flags */
-       uint32          pad_2[2];
-       int             pad_3;
-       int             iv_initialized; /* has IV been initialized already? */          
-       int             pad_4;
-       /* Rx IV */
-       struct {
-               uint32  hi;             /* upper 32 bits of IV */
-               uint16  lo;             /* lower 16 bits of IV */
-       } rxiv;
-       uint32          pad_5[2];
-       struct ether_addr ea;           /* per station */
-} wl_wsec_key_t;
-
-/* For use with wlc_wep_key.flags */
-#define WSEC_PRIMARY_KEY       (1 << 1)        /* Indicates this key is the primary (ie tx) key */
-#define WSEC_TKIP_ERROR                (1 << 2)        /* Provoke deliberate error */
-
-#define WSEC_MIN_PSK_LEN       8
-#define WSEC_MAX_PSK_LEN       64
-
-/* Flag for key material needing passhash'ing */
-#define WSEC_PASSPHRASE                (1<<0)
-
-/* recepticle for WLC_SET_WSEC_PMK parameter */
-typedef struct {
-       ushort  key_len;                /* octets in key material */
-       ushort  flags;                  /* key handling qualification */
-       uint8   key[WSEC_MAX_PSK_LEN];  /* PMK material */
-} wsec_pmk_t;
-
-/* wireless security bitvec */
-#define WEP_ENABLED            1
-#define TKIP_ENABLED           2
-#define AES_ENABLED            4
-#define WSEC_SWFLAG            8
-
-#define WSEC_SW(wsec)          ((wsec) & WSEC_SWFLAG)
-#define WSEC_HW(wsec)          (!WSEC_SW(wsec))
-#define WSEC_WEP_ENABLED(wsec) ((wsec) & WEP_ENABLED)
-#define WSEC_TKIP_ENABLED(wsec)        ((wsec) & TKIP_ENABLED)
-#define WSEC_AES_ENABLED(wsec) ((wsec) & AES_ENABLED)
-#define WSEC_ENABLED(wsec)     ((wsec) & (WEP_ENABLED | TKIP_ENABLED | AES_ENABLED))
-
-
-/* wireless authentication bit vector */
-#define WPA_ENABLED    1
-#define PSK_ENABLED    2
-
-#define WAUTH_WPA_ENABLED(wauth)       ((wauth) & WPA_ENABLED)
-#define WAUTH_PSK_ENABLED(wauth)       ((wauth) & PSK_ENABLED)
-#define WAUTH_ENABLED(wauth)           ((wauth) & (WPA_ENABLED | PSK_ENABLED))
-
-/* group/mcast cipher */
-#define WPA_MCAST_CIPHER(wsec) (((wsec) & TKIP_ENABLED) ? WPA_CIPHER_TKIP : \
-                               ((wsec) & AES_ENABLED) ? WPA_CIPHER_AES_CCM : \
-                               WPA_CIPHER_NONE)
-
-
-typedef struct wl_led_info {
-       uint32          index;          /* led index */
-       uint32          behavior;
-       bool            activehi;
-} wl_led_info_t;
-
-/*
- * definitions for driver messages passed from WL to NAS.
- */
-/* Use this to recognize wpa and 802.1x driver messages. */
-static const uint8 wl_wpa_snap_template[] =
-       { 0xaa, 0xaa, 0x03, 0x00, 0x90, 0x4c };
-
-#define WL_WPA_MSG_IFNAME_MAX  16
-
-/* WPA driver message */
-typedef struct wl_wpa_header {
-       struct ether_header eth;
-       struct dot11_llc_snap_header snap;
-       uint8 version;
-       uint8 type;
-       /* version 2 additions */
-       char ifname[WL_WPA_MSG_IFNAME_MAX];
-       /* version specific data */
-       /* uint8 data[1]; */
-} wl_wpa_header_t PACKED;
-
-/*
- * definitions for 802.2 messages passed from WL to NAS.
- */
-/* This seems not to be defined outside the kernel on linux. */
-#ifndef ETH_P_802_2
-#define ETH_P_802_2            4
-#endif
-
-#define WL_WPA_HEADER_LEN      (ETHER_HDR_LEN + DOT11_LLC_SNAP_HDR_LEN + 2 + WL_WPA_MSG_IFNAME_MAX)
-
-/* WPA driver message ethertype - private between wlc and nas */
-#define WL_WPA_ETHER_TYPE      0x9999
-
-/* WPA driver message current version */
-#define WL_WPA_MSG_VERSION     2
-
-/* Type field values for the 802.2 driver messages for WPA. */
-#define WLC_ASSOC_MSG          1
-#define WLC_DISASSOC_MSG       2
-#define WLC_PTK_MIC_MSG                3
-#define WLC_GTK_MIC_MSG                4
-
-/* Use this to recognize 802.2 driver messages. */
-static const uint8 wpa_snap_template[] =
-       { 0xaa, 0xaa, 0x03, 0x00, 0x90, 0x4c };
-
-
-/* 802.1x driver message */
-typedef struct wl_eapol_header {
-       struct ether_header eth;
-       struct dot11_llc_snap_header snap;
-       uint8 version;
-       uint8 reserved;
-       char ifname[WL_WPA_MSG_IFNAME_MAX];
-       /* version specific data */
-       /* uint8 802_1x_msg[1]; */
-} wl_eapol_header_t PACKED;
-
-#define WL_EAPOL_HEADER_LEN    (ETHER_HDR_LEN + DOT11_LLC_SNAP_HDR_LEN + 2 + WL_WPA_MSG_IFNAME_MAX)
-
-/* 802.1x driver message ethertype - private between wlc and nas */
-#define WL_EAPOL_ETHER_TYPE    0x999A
-
-/* 802.1x driver message current version */
-#define WL_EAPOL_MSG_VERSION   1
-
-/* srom read/write struct passed through ioctl */
-typedef struct {
-       uint   byteoff;         /* byte offset */
-       uint   nbytes;          /* number of bytes */
-       uint16 buf[1];
-} srom_rw_t;
-
-/* R_REG and W_REG struct passed through ioctl */
-typedef struct {
-       uint32  byteoff;        /* byte offset of the field in d11regs_t */
-       uint32  val;            /* read/write value of the field */
-       uint32  size;           /* sizeof the field */
-} rw_reg_t;
-
-/* Structure used by GET/SET_ATTEN ioctls */
-typedef struct {
-       uint16  auto_ctrl;      /* 1: Automatic control, 0: overriden */
-       uint16  bb;             /* Baseband attenuation */
-       uint16  radio;          /* Radio attenuation */
-       uint16  txctl1;         /* Radio TX_CTL1 value */
-} atten_t;
-
-/* Used to get specific STA parameters */ 
-typedef struct {
-       uint32  val;
-       struct ether_addr ea;
-} scb_val_t;
-
-/* callback registration data types */
-
-typedef struct _mac_event_params {
-       uint msg;
-       struct ether_addr *addr;
-       uint result;
-       uint status; 
-       uint auth_type;
-} mac_event_params_t;
-
-typedef struct _mic_error_params {
-       struct ether_addr *ea;
-       bool group;
-       bool flush_txq;
-} mic_error_params_t;
-
-typedef enum _wl_callback {
-       WL_MAC_EVENT_CALLBACK = 0,
-       WL_LINK_UP_CALLBACK,
-       WL_LINK_DOWN_CALLBACK,
-       WL_MIC_ERROR_CALLBACK,
-       WL_LAST_CALLBACK
-} wl_callback_t;
-
-typedef struct _callback {
-       void (*fn)(void *, void *);
-       void *context;
-} callback_t;
-
-typedef struct _scan_callback {
-       void (*fn)(void *);
-       void *context;
-} scan_callback_t;
-
-/* used to register an arbitrary callback via the IOCTL interface */
-typedef struct _set_callback {
-       int index;
-       callback_t callback;
-} set_callback_t;
-
-
-
-/* Event data type */
-typedef struct {
-       uint msg;                       /* Message (see below) */
-       struct ether_addr *addr;        /* Station address (if applicable) */
-       uint status;                    /* Status code (see below) */
-       uint reason;                    /* Reason code (if applicable) */
-       uint auth_type;                 /* WLC_E_AUTH */
-       bool link;                      /* WLC_E_LINK */
-       bool group;                     /* WLC_E_MIC_ERROR */
-       bool flush_txq;                 /* WLC_E_MIC_ERROR */
-} wlc_event_t;
-
-typedef struct {
-       uint16          ver;    /* version of this struct */
-       uint16          cap;    /* sta's advertized capabilities */
-       uint32          flags;  /* flags defined below */
-       uint32          idle;   /* time since data pkt rx'd from sta */
-       struct ether_addr       ea;     /* Station address */
-       wl_rateset_t    rateset;        /* rateset in use */
-} sta_info_t;
-
-#define WL_STA_INFO_LEN        300
-#define WL_STA_VER     1
-
-/* flags fields */
-#define WL_STA_BRCM    0x01
-#define WL_STA_WME     0x02
-#define WL_STA_ABCAP   0x04
-#define WL_STA_AUTHE   0x08 
-#define WL_STA_ASSOC   0x10 
-#define WL_STA_AUTHO   0x20 
-
-/* Event messages */
-#define WLC_E_SET_SSID         1
-#define WLC_E_JOIN             2
-#define WLC_E_START            3
-#define WLC_E_AUTH             4
-#define WLC_E_AUTH_IND         5
-#define WLC_E_DEAUTH           6
-#define WLC_E_DEAUTH_IND       7
-#define WLC_E_ASSOC            8
-#define WLC_E_ASSOC_IND                9
-#define WLC_E_REASSOC          10
-#define WLC_E_REASSOC_IND      11
-#define WLC_E_DISASSOC         12
-#define WLC_E_DISASSOC_IND     13
-#define WLC_E_QUIET_START      14      /* 802.11h Quiet period started */
-#define WLC_E_QUIET_END                15      /* 802.11h Quiet period ended */
-#define WLC_E_GOT_BEACONS      16      
-#define WLC_E_LINK             17      /* Link indication */
-#define WLC_E_MIC_ERROR                18      /* TKIP MIC error occurred */
-#define WLC_E_NDIS_LINK                19      /* NDIS style link indication */
-#define WLC_E_ROAM             20
-#define WLC_E_LAST             21
-
-/* Event status codes */
-#define WLC_E_STATUS_SUCCESS           0
-#define WLC_E_STATUS_FAIL              1
-#define WLC_E_STATUS_TIMEOUT           2
-#define WLC_E_STATUS_NO_NETWORKS       3
-#define WLC_E_STATUS_ABORT             4
-
-typedef struct wlc_event_cb {
-       uint msg;                               /* Event message or 0 for all */
-       void (*fn)(void *, wlc_event_t *);      /* Callback function */
-       void *context;                          /* Passed to callback function */
-       struct wlc_event_cb *next;              /* Next in the chain */
-} wlc_event_cb_t;
-
-/*
- * Country locale determines which channels are available to us.
- */
-typedef enum _wlc_locale {
-       WLC_WW = 0,     /* Worldwide */
-       WLC_THA,        /* Thailand */
-       WLC_ISR,        /* Israel */
-       WLC_JDN,        /* Jordan */
-       WLC_PRC,        /* China */
-       WLC_JPN,        /* Japan */
-       WLC_FCC,        /* USA */
-       WLC_EUR,        /* Europe */
-       WLC_USL,        /* US Low Band only */
-       WLC_JPH,        /* Japan High Band only */
-       WLC_ALL,        /* All the channels in this band */
-       WLC_11D,        /* Represents locale recieved by 11d beacons */
-       WLC_LAST_LOCALE,
-       WLC_UNDEFINED_LOCALE = 0xf
-} wlc_locale_t;
-
-/* channel encoding */
-typedef struct channel_info {
-       int hw_channel;
-       int target_channel;
-       int scan_channel;
-} channel_info_t;
-
-/* For ioctls that take a list of MAC addresses */
-struct maclist {
-       uint count;                     /* number of MAC addresses */
-       struct ether_addr ea[1];        /* variable length array of MAC addresses */
-};
-
-/* get pkt count struct passed through ioctl */
-typedef struct get_pktcnt {
-       uint rx_good_pkt;
-       uint rx_bad_pkt;
-       uint tx_good_pkt;
-       uint tx_bad_pkt;
-} get_pktcnt_t;
-
-/* Linux network driver ioctl encoding */
-typedef struct wl_ioctl {
-       uint cmd;       /* common ioctl definition */
-       void *buf;      /* pointer to user buffer */
-       uint len;       /* length of user buffer */
-       bool set;       /* get or set request (optional) */
-       uint used;      /* bytes read or written (optional) */
-       uint needed;    /* bytes needed (optional) */
-} wl_ioctl_t;
-
-/* 
- * Structure for passing hardware and software 
- * revision info up from the driver. 
- */
-typedef struct wlc_rev_info {
-       uint            vendorid;       /* PCI vendor id */
-       uint            deviceid;       /* device id of chip */
-       uint            radiorev;       /* radio revision */
-       uint            chiprev;        /* chip revision */
-       uint            corerev;        /* core revision */
-       uint            boardid;        /* board identifier (usu. PCI sub-device id) */
-       uint            boardvendor;    /* board vendor (usu. PCI sub-vendor id) */
-       uint            boardrev;       /* board revision */
-       uint            driverrev;      /* driver version */
-       uint            ucoderev;       /* microcode version */
-       uint            bus;            /* bus type */
-       uint        chipnum;    /* chip number */
-} wlc_rev_info_t;
-
-/* check this magic number */
-#define WLC_IOCTL_MAGIC                0x14e46c77
-
-/* bump this number if you change the ioctl interface */
-#define WLC_IOCTL_VERSION      1
-
-/* maximum length buffer required */
-#define WLC_IOCTL_MAXLEN       8192
-
-/* maximum length buffer required */
-#define WLC_IOCTL_SMLEN         256
-
-/* common ioctl definitions */
-#define WLC_GET_MAGIC                          0
-#define WLC_GET_VERSION                                1
-#define WLC_UP                                 2
-#define WLC_DOWN                               3
-#define WLC_GET_LOOP                           4
-#define WLC_SET_LOOP                           5
-#define WLC_DUMP                               6
-#define WLC_GET_MSGLEVEL                       7
-#define WLC_SET_MSGLEVEL                       8
-#define WLC_GET_PROMISC                                9
-#define WLC_SET_PROMISC                                10
-#define WLC_OBSOLETE                           11 
-#define WLC_GET_RATE                           12
-#define WLC_SET_RATE                           13
-#define WLC_GET_INSTANCE                       14
-#define WLC_GET_FRAG                           15
-#define WLC_SET_FRAG                           16
-#define WLC_GET_RTS                            17
-#define WLC_SET_RTS                            18
-#define WLC_GET_INFRA                          19
-#define WLC_SET_INFRA                          20
-#define WLC_GET_AUTH                           21
-#define WLC_SET_AUTH                           22
-#define WLC_GET_BSSID                          23
-#define WLC_SET_BSSID                          24
-#define WLC_GET_SSID                           25
-#define WLC_SET_SSID                           26
-#define WLC_RESTART                            27
-#define WLC_DUMP_SCB                           28 
-#define WLC_GET_CHANNEL                                29
-#define WLC_SET_CHANNEL                                30
-#define WLC_GET_SRL                            31
-#define WLC_SET_SRL                            32
-#define WLC_GET_LRL                            33
-#define WLC_SET_LRL                            34
-#define WLC_GET_PLCPHDR                                35
-#define WLC_SET_PLCPHDR                                36
-#define WLC_GET_RADIO                          37
-#define WLC_SET_RADIO                          38
-#define WLC_GET_PHYTYPE                                39
-#define WLC_DUMP_RATE                          40
-#define WLC_SET_RATE_PARAMS                    41
-#define WLC_GET_WEP                            42
-#define WLC_SET_WEP                            43
-#define WLC_GET_KEY                            44
-#define WLC_SET_KEY                            45
-#define WLC_GET_REGULATORY                     46
-#define WLC_SET_REGULATORY                     47
-#define WLC_GET_PASSIVE                                48      /* added by nbd */
-#define WLC_SET_PASSIVE                                49      /* added by nbd */
-#define WLC_SCAN                               50
-#define WLC_SCAN_RESULTS                       51
-#define WLC_DISASSOC                           52
-#define WLC_REASSOC                            53
-#define WLC_GET_ROAM_TRIGGER                   54
-#define WLC_SET_ROAM_TRIGGER                   55
-#define WLC_GET_ROAM_DELTA                     56
-#define WLC_SET_ROAM_DELTA                     57
-#define WLC_GET_ROAM_SCAN_PERIOD               58
-#define WLC_SET_ROAM_SCAN_PERIOD               59
-#define WLC_EVM                                        60
-#define WLC_GET_TXANT                          61
-#define WLC_SET_TXANT                          62
-#define WLC_GET_ANTDIV                         63
-#define WLC_SET_ANTDIV                         64
-#define WLC_GET_TXPWR                          65
-#define WLC_SET_TXPWR                          66
-#define WLC_GET_CLOSED                         67
-#define WLC_SET_CLOSED                         68
-#define WLC_GET_MACLIST                                69
-#define WLC_SET_MACLIST                                70
-#define WLC_GET_RATESET                                71
-#define WLC_SET_RATESET                                72
-#define WLC_GET_LOCALE                         73
-#define WLC_SET_LOCALE                         74
-#define WLC_GET_BCNPRD                         75
-#define WLC_SET_BCNPRD                         76
-#define WLC_GET_DTIMPRD                                77
-#define WLC_SET_DTIMPRD                                78
-#define WLC_GET_SROM                           79
-#define WLC_SET_SROM                           80
-#define WLC_GET_WEP_RESTRICT                   81
-#define WLC_SET_WEP_RESTRICT                   82
-#define WLC_GET_COUNTRY                                83
-#define WLC_SET_COUNTRY                                84
-#define WLC_GET_PM                             85
-#define WLC_SET_PM                             86
-#define WLC_GET_WAKE                           87
-#define WLC_SET_WAKE                           88
-#define        WLC_GET_D11CNTS                         89
-#define WLC_GET_FORCELINK                      90      /* ndis only */
-#define WLC_SET_FORCELINK                      91      /* ndis only */
-#define WLC_FREQ_ACCURACY                      92
-#define WLC_CARRIER_SUPPRESS                   93
-#define WLC_GET_PHYREG                         94
-#define WLC_SET_PHYREG                         95
-#define WLC_GET_RADIOREG                       96
-#define WLC_SET_RADIOREG                       97
-#define WLC_GET_REVINFO                                98
-#define WLC_GET_UCANTDIV                       99
-#define WLC_SET_UCANTDIV                       100
-#define WLC_R_REG                              101
-#define WLC_W_REG                              102
-#define WLC_DIAG_LOOPBACK                      103
-#define WLC_RESET_D11CNTS                      104
-#define WLC_GET_MACMODE                                105
-#define WLC_SET_MACMODE                                106
-#define WLC_GET_MONITOR                                107     /* added by nbd */
-#define WLC_SET_MONITOR                                108     /* added by nbd */
-#define WLC_GET_GMODE                          109
-#define WLC_SET_GMODE                          110
-#define WLC_GET_LEGACY_ERP                     111
-#define WLC_SET_LEGACY_ERP                     112
-#define WLC_GET_RX_ANT                         113
-#define WLC_GET_CURR_RATESET                   114     /* current rateset */
-#define WLC_GET_SCANSUPPRESS                   115
-#define WLC_SET_SCANSUPPRESS                   116
-#define WLC_GET_AP                             117
-#define WLC_SET_AP                             118
-#define WLC_GET_EAP_RESTRICT                   119
-#define WLC_SET_EAP_RESTRICT                   120
-#define WLC_SCB_AUTHORIZE                      121
-#define WLC_SCB_DEAUTHORIZE                    122
-#define WLC_GET_WDSLIST                                123
-#define WLC_SET_WDSLIST                                124
-#define WLC_GET_ATIM                           125
-#define WLC_SET_ATIM                           126
-#define WLC_GET_RSSI                           127
-#define WLC_GET_PHYANTDIV                      128
-#define WLC_SET_PHYANTDIV                      129
-#define WLC_AP_RX_ONLY                         130
-#define WLC_GET_TX_PATH_PWR                    131
-#define WLC_SET_TX_PATH_PWR                    132
-#define WLC_GET_WSEC                           133
-#define WLC_SET_WSEC                           134
-#define WLC_GET_PHY_NOISE                      135
-#define WLC_GET_BSS_INFO                       136
-#define WLC_GET_PKTCNTS                                137
-#define WLC_GET_LAZYWDS                                138
-#define WLC_SET_LAZYWDS                                139
-#define WLC_GET_BANDLIST                       140
-#define WLC_GET_BAND                           141
-#define WLC_SET_BAND                           142
-#define WLC_SCB_DEAUTHENTICATE                 143
-#define WLC_GET_SHORTSLOT                      144
-#define WLC_GET_SHORTSLOT_OVERRIDE             145
-#define WLC_SET_SHORTSLOT_OVERRIDE             146
-#define WLC_GET_SHORTSLOT_RESTRICT             147
-#define WLC_SET_SHORTSLOT_RESTRICT             148
-#define WLC_GET_GMODE_PROTECTION               149
-#define WLC_GET_GMODE_PROTECTION_OVERRIDE      150
-#define WLC_SET_GMODE_PROTECTION_OVERRIDE      151
-#define WLC_UPGRADE                            152
-#define WLC_GET_MRATE                          153
-#define WLC_SET_MRATE                          154
-#define WLC_GET_IGNORE_BCNS                    155
-#define WLC_SET_IGNORE_BCNS                    156
-#define WLC_GET_SCB_TIMEOUT                    157
-#define WLC_SET_SCB_TIMEOUT                    158
-#define WLC_GET_ASSOCLIST                      159
-#define WLC_GET_CLK                            160
-#define WLC_SET_CLK                            161
-#define WLC_GET_UP                             162
-#define WLC_OUT                                        163
-#define WLC_GET_WPA_AUTH                       164
-#define WLC_SET_WPA_AUTH                       165
-#define WLC_GET_UCFLAGS                                166
-#define WLC_SET_UCFLAGS                                167
-#define WLC_GET_PWRIDX                         168
-#define WLC_SET_PWRIDX                         169
-#define WLC_GET_TSSI                           170
-#define WLC_GET_SUP_RATESET_OVERRIDE           171
-#define WLC_SET_SUP_RATESET_OVERRIDE           172
-#define WLC_SET_FAST_TIMER                     173
-#define WLC_GET_FAST_TIMER                     174
-#define WLC_SET_SLOW_TIMER                     175
-#define WLC_GET_SLOW_TIMER                     176
-#define WLC_DUMP_PHYREGS                       177
-#define WLC_GET_GMODE_PROTECTION_CONTROL       178
-#define WLC_SET_GMODE_PROTECTION_CONTROL       179
-#define WLC_GET_PHYLIST                                180
-#define WLC_ENCRYPT_STRENGTH                   181     /* ndis only */
-#define WLC_DECRYPT_STATUS                     182     /* ndis only */
-#define WLC_GET_KEY_SEQ                                183
-#define WLC_GET_SCAN_CHANNEL_TIME              184
-#define WLC_SET_SCAN_CHANNEL_TIME              185
-#define WLC_GET_SCAN_UNASSOC_TIME              186
-#define WLC_SET_SCAN_UNASSOC_TIME              187
-#define WLC_GET_SCAN_HOME_TIME                 188
-#define WLC_SET_SCAN_HOME_TIME                 189
-#define WLC_GET_SCAN_PASSES                    190
-#define WLC_SET_SCAN_PASSES                    191
-#define WLC_GET_PRB_RESP_TIMEOUT               192
-#define WLC_SET_PRB_RESP_TIMEOUT               193
-#define WLC_GET_ATTEN                          194
-#define WLC_SET_ATTEN                          195
-#define WLC_GET_SHMEM                          196     /* diag */
-#define WLC_SET_SHMEM                          197     /* diag */
-#define WLC_GET_GMODE_PROTECTION_CTS           198
-#define WLC_SET_GMODE_PROTECTION_CTS           199
-#define WLC_SET_TKIP_MIC_FLAG                  200
-#define WLC_SCB_DEAUTHENTICATE_FOR_REASON      201
-#define WLC_TKIP_COUNTERMEASURES               202
-#define WLC_GET_PIOMODE                                203
-#define WLC_SET_PIOMODE                                204
-#define WLC_SET_LED                            209
-#define WLC_GET_LED                            210
-#define WLC_GET_INTERFERENCE_MODE              211
-#define WLC_SET_INTERFERENCE_MODE              212
-#define WLC_GET_CHANNEL_QA                     213
-#define WLC_START_CHANNEL_QA                   214
-#define WLC_GET_CHANNEL_SEL                    215
-#define WLC_START_CHANNEL_SEL                  216
-#define WLC_GET_VALID_CHANNELS                 217
-#define WLC_GET_FAKEFRAG                       218
-#define WLC_SET_FAKEFRAG                       219
-#define WLC_GET_PWROUT_PERCENTAGE              220
-#define WLC_SET_PWROUT_PERCENTAGE              221
-#define WLC_SET_BAD_FRAME_PREEMPT              222
-#define WLC_GET_BAD_FRAME_PREEMPT              223
-#define WLC_SET_LEAP_LIST                      224
-#define WLC_GET_LEAP_LIST                      225
-#define WLC_GET_CWMIN                          226
-#define WLC_SET_CWMIN                          227
-#define WLC_GET_CWMAX                          228
-#define WLC_SET_CWMAX                          229
-#define WLC_GET_WET                            230
-#define WLC_SET_WET                            231
-#define WLC_GET_KEY_PRIMARY                    235
-#define WLC_SET_KEY_PRIMARY                    236
-#define WLC_SCAN_WITH_CALLBACK                 240
-#define WLC_WDS_GET_REMOTE_HWADDR              246     /* currently handled in wl_linux.c/wl_vx.c */
-#define WLC_SET_CS_SCAN_TIMER                  248
-#define WLC_GET_CS_SCAN_TIMER                  249
-#define WLC_CURRENT_PWR                                256
-#define WLC_GET_CHANNELS_IN_COUNTRY            260
-#define WLC_GET_COUNTRY_LIST                   261
-#define WLC_GET_VAR                            262     /* get value of named variable */
-#define WLC_SET_VAR                            263     /* set named variable to value */
-#define WLC_NVRAM_GET                          264
-#define WLC_NVRAM_SET                          265
-#define WLC_SET_WSEC_PMK                       268
-#define WLC_GET_AUTH_MODE                      269
-#define WLC_SET_AUTH_MODE                      270
-#define WLC_LAST                               273     /* do not change - use get_var/set_var */
-
-/*
- * Minor kludge alert:
- * Duplicate a few definitions that irelay requires from epiioctl.h here
- * so caller doesn't have to include this file and epiioctl.h .
- * If this grows any more, it would be time to move these irelay-specific
- * definitions out of the epiioctl.h and into a separate driver common file.
- */
-#ifndef EPICTRL_COOKIE
-#define EPICTRL_COOKIE         0xABADCEDE
-#endif
-
-/* vx wlc ioctl's offset */
-#define CMN_IOCTL_OFF 0x180
-
-/*
- * custom OID support
- *
- * 0xFF - implementation specific OID
- * 0xE4 - first byte of Broadcom PCI vendor ID
- * 0x14 - second byte of Broadcom PCI vendor ID
- * 0xXX - the custom OID number
- */
-
-/* begin 0x1f values beyond the start of the ET driver range. */
-#define WL_OID_BASE            0xFFE41420
-
-/* NDIS overrides */
-#define OID_WL_GETINSTANCE     (WL_OID_BASE + WLC_GET_INSTANCE)
-#define OID_WL_GET_FORCELINK   (WL_OID_BASE + WLC_GET_FORCELINK)
-#define OID_WL_SET_FORCELINK   (WL_OID_BASE + WLC_SET_FORCELINK)
-#define        OID_WL_ENCRYPT_STRENGTH (WL_OID_BASE + WLC_ENCRYPT_STRENGTH)
-#define OID_WL_DECRYPT_STATUS  (WL_OID_BASE + WLC_DECRYPT_STATUS)
-
-#define WL_DECRYPT_STATUS_SUCCESS      1
-#define WL_DECRYPT_STATUS_FAILURE      2
-#define WL_DECRYPT_STATUS_UNKNOWN      3
-
-/* allows user-mode app to poll the status of USB image upgrade */
-#define WLC_UPGRADE_SUCCESS                    0
-#define WLC_UPGRADE_PENDING                    1
-
-/* Bit masks for radio disabled status - returned by WL_GET_RADIO */
-#define WL_RADIO_SW_DISABLE    (1<<0)
-#define WL_RADIO_HW_DISABLE    (1<<1)
-
-/* Override bit for WLC_SET_TXPWR.  if set, ignore other level limits */
-#define WL_TXPWR_OVERRIDE      (1<<31)
-
-
-/* Bus types */
-#define WL_SB_BUS      0       /* Silicon Backplane */
-#define WL_PCI_BUS     1       /* PCI target */
-#define WL_PCMCIA_BUS  2       /* PCMCIA target */
-
-/* band types */
-#define        WLC_BAND_AUTO           0       /* auto-select */
-#define        WLC_BAND_A              1       /* "a" band (5   Ghz) */
-#define        WLC_BAND_B              2       /* "b" band (2.4 Ghz) */
-
-/* MAC list modes */
-#define WLC_MACMODE_DISABLED   0       /* MAC list disabled */
-#define WLC_MACMODE_DENY       1       /* Deny specified (i.e. allow unspecified) */
-#define WLC_MACMODE_ALLOW      2       /* Allow specified (i.e. deny unspecified) */   
-
-
-/* 54g modes (basic bits may still be overridden) */
-#define GMODE_LEGACY_B         0       /* Rateset: 1b, 2b, 5.5, 11 */
-                                       /* Preamble: Long */
-                                       /* Shortslot: Off */
-#define GMODE_AUTO             1       /* Rateset: 1b, 2b, 5.5b, 11b, 18, 24, 36, 54 */
-                                       /* Extended Rateset: 6, 9, 12, 48 */
-                                       /* Preamble: Long */
-                                       /* Shortslot: Auto */
-#define GMODE_ONLY             2       /* Rateset: 1b, 2b, 5.5b, 11b, 18, 24b, 36, 54 */
-                                       /* Extended Rateset: 6b, 9, 12b, 48 */
-                                       /* Preamble: Short required */
-                                       /* Shortslot: Auto */
-#define GMODE_B_DEFERRED       3       /* Rateset: 1b, 2b, 5.5b, 11b, 18, 24, 36, 54 */
-                                       /* Extended Rateset: 6, 9, 12, 48 */
-                                       /* Preamble: Long */
-                                       /* Shortslot: On */
-#define GMODE_PERFORMANCE      4       /* Rateset: 1b, 2b, 5.5b, 6b, 9, 11b, 12b, 18, 24b, 36, 48, 54 */
-                                       /* Preamble: Short required */
-                                       /* Shortslot: On and required */
-#define GMODE_LRS              5       /* Rateset: 1b, 2b, 5.5b, 11b */
-                                       /* Extended Rateset: 6, 9, 12, 18, 24, 36, 48, 54 */
-                                       /* Preamble: Long */
-                                       /* Shortslot: Auto */
-#define GMODE_MAX              6
-
-
-/* values for PLCPHdr_override */
-#define WLC_PLCP_AUTO  -1
-#define WLC_PLCP_SHORT 0
-#define WLC_PLCP_LONG  1
-
-/* values for g_protection_override */
-#define WLC_G_PROTECTION_AUTO  -1
-#define WLC_G_PROTECTION_OFF   0
-#define WLC_G_PROTECTION_ON    1
-
-/* values for g_protection_control */
-#define WLC_G_PROTECTION_CTL_OFF       0
-#define WLC_G_PROTECTION_CTL_LOCAL     1
-#define WLC_G_PROTECTION_CTL_OVERLAP   2
-
-/* Values for PM */
-#define PM_OFF 0
-#define PM_MAX 1
-#define PM_FAST 2
-
-/* interference mitigation options */
-#define        INTERFERE_NONE  0       /* off */
-#define        NON_WLAN        1       /* foreign/non 802.11 interference, no auto detect */
-#define        WLAN_MANUAL     2       /* ACI: no auto detection */
-#define        WLAN_AUTO       3       /* ACI: auto - detact */
-
-/* Message levels */
-#define WL_ERROR_VAL           0x0001
-#define WL_TRACE_VAL           0x0002
-#define WL_PRHDRS_VAL          0x0004
-#define WL_PRPKT_VAL           0x0008
-#define WL_INFORM_VAL          0x0010
-#define WL_TMP_VAL             0x0020
-#define WL_OID_VAL             0x0040
-#define WL_RATE_VAL            0x0080
-#define WL_ASSOC_VAL           0x0100
-#define WL_PRUSR_VAL           0x0200
-#define WL_PS_VAL              0x0400
-#define WL_TXPWR_VAL           0x0800
-#define WL_GMODE_VAL           0x1000
-#define WL_DUAL_VAL            0x2000
-#define WL_WSEC_VAL            0x4000
-#define WL_WSEC_DUMP_VAL       0x8000
-#define WL_LOG_VAL             0x10000
-#define WL_NRSSI_VAL           0x20000
-#define WL_LOFT_VAL            0x40000
-#define WL_REGULATORY_VAL      0x80000
-#define WL_ACI_VAL             0x100000
-
-
-/* 802.11h enforcement levels */
-#define SPECT_MNGMT_OFF         0   /* 11h disabled */
-#define SPECT_MNGMT_LOOSE       1   /* Allow scan lists to contain non-11h AP */
-                                   /* when 11h is enabled */
-#define SPECT_MNGMT_STRICT      2   /* Prine out non-11h APs from scan list */
-
-
-
-/* max # of leds supported by GPIO (gpio pin# == led index#) */
-#define        WL_LED_NUMGPIO          16      /* gpio 0-15 */
-
-/* led per-pin behaviors */
-#define        WL_LED_OFF              0               /* always off */
-#define        WL_LED_ON               1               /* always on */
-#define        WL_LED_ACTIVITY         2               /* activity */
-#define        WL_LED_RADIO            3               /* radio enabled */
-#define        WL_LED_ARADIO           4               /* 5  Ghz radio enabled */
-#define        WL_LED_BRADIO           5               /* 2.4Ghz radio enabled */
-#define        WL_LED_BGMODE           6               /* on if gmode, off if bmode */
-#define        WL_LED_WI1              7               
-#define        WL_LED_WI2              8               
-#define        WL_LED_WI3              9               
-#define        WL_LED_ASSOC            10              /* associated state indicator */
-#define        WL_LED_INACTIVE         11              /* null behavior (clears default behavior) */
-#define        WL_LED_NUMBEHAVIOR      12
-
-/* led behavior numeric value format */
-#define        WL_LED_BEH_MASK         0x7f            /* behavior mask */
-#define        WL_LED_AL_MASK          0x80            /* activelow (polarity) bit */
-
-
-/* maximum channels */
-#define WL_NUMCHANNELS 64      /* max # of channels in the band */
-
-/* rate check */
-#define WL_RATE_OFDM(r)                (((r) & 0x7f) == 12 || ((r) & 0x7f) == 18 || \
-                                ((r) & 0x7f) == 24 || ((r) & 0x7f) == 36 || \
-                                ((r) & 0x7f) == 48 || ((r) & 0x7f) == 72 || \
-                                ((r) & 0x7f) == 96 || ((r) & 0x7f) == 108)
-
-/* WDS link local endpoint WPA role */
-#define WL_WDS_WPA_ROLE_AUTH   0       /* authenticator */
-#define WL_WDS_WPA_ROLE_SUP    1       /* supplicant */
-#define WL_WDS_WPA_ROLE_AUTO   255     /* auto, based on mac addr value */
-
-/* afterburner_override */
-#define        ABO_AUTO                -1      /* auto - no override */
-#define        ABO_OFF                 0       /* force afterburner off */
-#define        ABO_ON                  1       /* force afterburner on */
-
-#define GMODE_AFTERBURNER 6
-
-#undef PACKED
-
-#endif /* _wlioctl_h_ */
index 07e2536..36eb3af 100644 (file)
 #define _wlutils_h_
 
 #include <typedefs.h>
-#include <wlioctl.h>
+
+/* check this magic number */
+#define WLC_IOCTL_MAGIC                0x14e46c77
+
+/* maximum length buffer required */
+#define WLC_IOCTL_SMLEN         256
+
+#define WLC_IOCTL_VERSION      1
+
+#define WLC_GET_MAGIC                          0
+#define WLC_GET_VERSION                                1
+#define WLC_GET_VAR                            262     /* get value of named variable */
+#define WLC_SET_VAR                            263     /* set named variable to value */
+
+/* Linux network driver ioctl encoding */
+typedef struct wl_ioctl {
+       uint cmd;       /* common ioctl definition */
+       void *buf;      /* pointer to user buffer */
+       uint len;       /* length of user buffer */
+       bool set;       /* get or set request (optional) */
+       uint used;      /* bytes read or written (optional) */
+       uint needed;    /* bytes needed (optional) */
+} wl_ioctl_t;
+
 
 /*
  * Pass a wlioctl request to the specified interface.
diff --git a/package/nvram/src/nvram.c b/package/nvram/src/nvram.c
new file mode 100644 (file)
index 0000000..dbca8e0
--- /dev/null
@@ -0,0 +1,189 @@
+/*
+ * NVRAM variable manipulation (Linux user mode half)
+ *
+ * Copyright 2004, Broadcom Corporation
+ * All Rights Reserved.
+ * 
+ * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
+ * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
+ * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
+ *
+ * $Id$
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <errno.h>
+#include <error.h>
+#include <string.h>
+#include <sys/ioctl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <sys/mman.h>
+
+#include <typedefs.h>
+#include <bcmnvram.h>
+#include <shutils.h>
+
+#define PATH_DEV_NVRAM "/dev/nvram"
+
+/* Globals */
+static int nvram_fd = -1;
+static char *nvram_buf = NULL;
+int file_to_buf(char *path, char *buf, int len);
+
+int
+nvram_init(void *unused)
+{
+       if ((nvram_fd = open(PATH_DEV_NVRAM, O_RDWR)) < 0)
+               goto err;
+
+       /* Map kernel string buffer into user space */
+       if ((nvram_buf = mmap(NULL, NVRAM_SPACE, PROT_READ, MAP_SHARED, nvram_fd, 0)) == MAP_FAILED) {
+               close(nvram_fd);
+               nvram_fd = -1;
+               goto err;
+       }
+
+       return 0;
+
+ err:
+       perror(PATH_DEV_NVRAM);
+       return errno;
+}
+
+char *
+nvram_get(const char *name)
+{
+       size_t count = strlen(name) + 1;
+       char tmp[100], *value;
+       unsigned long *off = (unsigned long *) tmp;
+
+       if (nvram_fd < 0)
+               if (nvram_init(NULL))
+                       return NULL;
+
+       if (count > sizeof(tmp)) {
+               if (!(off = malloc(count)))
+                       return NULL;
+       }
+
+       /* Get offset into mmap() space */
+       strcpy((char *) off, name);
+
+       count = read(nvram_fd, off, count);
+
+       if (count == sizeof(unsigned long))
+               value = &nvram_buf[*off];
+       else
+               value = NULL;
+
+       if (count < 0)
+               perror(PATH_DEV_NVRAM);
+
+       if (off != (unsigned long *) tmp)
+               free(off);
+
+       return value;
+}
+
+int
+nvram_getall(char *buf, int count)
+{
+       int ret;
+
+       if (nvram_fd < 0)
+               if ((ret = nvram_init(NULL)))
+                       return ret;
+
+       if (count == 0)
+               return 0;
+
+       /* Get all variables */
+       *buf = '\0';
+
+       ret = read(nvram_fd, buf, count);
+
+       if (ret < 0)
+               perror(PATH_DEV_NVRAM);
+
+       return (ret == count) ? 0 : ret;
+}
+
+int
+nvram_set(const char *name, const char *value)
+{
+       size_t count = strlen(name) + 1;
+       char tmp[100], *buf = tmp;
+       int ret;
+
+       if (nvram_fd < 0)
+               if ((ret = nvram_init(NULL)))
+                       return ret;
+
+       /* Unset if value is NULL */
+       if (value)
+               count += strlen(value) + 1;
+
+       if (count > sizeof(tmp)) {
+               if (!(buf = malloc(count)))
+                       return -ENOMEM;
+       }
+
+       if (value)
+               sprintf(buf, "%s=%s", name, value);
+       else
+               strcpy(buf, name);
+
+       ret = write(nvram_fd, buf, count);
+
+       if (ret < 0)
+               perror(PATH_DEV_NVRAM);
+
+       if (buf != tmp)
+               free(buf);
+
+       return (ret == count) ? 0 : ret;
+}
+
+int
+nvram_unset(const char *name)
+{
+       return nvram_set(name, NULL);
+}
+
+int
+nvram_commit(void)
+{
+       int ret;
+       
+       if (nvram_fd < 0)
+               if ((ret = nvram_init(NULL)))
+                       return ret;
+
+       ret = ioctl(nvram_fd, NVRAM_MAGIC, NULL);
+
+       if (ret < 0)
+               perror(PATH_DEV_NVRAM);
+
+       return ret;
+}
+
+int
+file_to_buf(char *path, char *buf, int len)
+{
+       FILE *fp;
+
+       memset(buf, 0 , len);
+
+       if ((fp = fopen(path, "r"))) {
+               fgets(buf, len, fp);
+               fclose(fp);
+               return 1;
+       }
+
+       return 0;
+}
diff --git a/package/nvram/src/nvram_convert.c b/package/nvram/src/nvram_convert.c
deleted file mode 100644 (file)
index 4859090..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-
-#define WL(a)  "wl_"a  
-#define WL0(a) "wl0_"a 
-#define D11G(a)        "d11g_"a
-
-#define PPP(a)         "ppp_"a
-#define PPPOE(a)       "pppoe_"a
-
-struct nvram_convert {
-        char *name;            // for WEB
-       char *wl0_name;         // for driver
-        char *d11g_name;       // for old nv name
-};
-
-struct nvram_convert nvram_converts[] = {
-       // Bellow change from 3.11.48.7
-       { WL("ssid"),           WL0("ssid"),    ""},
-       { WL("radio"),          WL0("mode"),    ""},
-       { WL("mode"),           WL0("mode"),    ""},
-       { WL("wds"),            WL0("wds"),     ""},
-       { WL("auth"),           WL0("auth"),    ""},
-       { WL("key"),            WL0("key"),     ""},
-       { WL("key1"),           WL0("key1"),    ""},
-       { WL("key2"),           WL0("key2"),    ""},
-       { WL("key3"),           WL0("key3"),    ""},
-       { WL("key4"),           WL0("key4"),    ""},
-       { WL("maclist"),        WL0("maclist"), ""},
-       { WL("channel"),        WL0("channel"), D11G("channel")},
-       { WL("rateset"),        WL0("rateset"), D11G("rateset")},
-       { WL("rts"),            WL0("rts"),     D11G("rts")},
-       { WL("bcn"),            WL0("bcn"),     D11G("bcn")},
-       { WL("gmode"),          WL0("gmode"),   "d11g_mode"},
-       { WL("unit"),           WL0("unit"),    ""},
-       { WL("ifname"),         WL0("ifname"),  ""},
-       { WL("phytype"),        WL0("phytype"), ""},
-       { WL("country"),        WL0("country"), ""},
-       { WL("closed"),         WL0("closed"),  ""},
-       { WL("lazywds"),        WL0("lazywds"), ""},
-       { WL("wep"),            WL0("wep"),     ""},
-       { WL("macmode"),        WL0("macmode"), ""},
-       { WL("rate"),           WL0("rate"),    D11G("rate")},
-       { WL("frag"),           WL0("frag"),    D11G("frag")},
-       { WL("dtim"),           WL0("dtim"),    D11G("dtim")},
-       { WL("plcphdr"),        WL0("plcphdr"), ""},
-       { WL("gmode_protection"),       WL0("gmode_protection"),        ""},
-       { WL("radio"),          WL0("radio"),   ""},
-       // Bellow change from 3.21.9.0
-       { WL("auth_mode"),      WL0("auth_mode"),       ""},
-       { WL("radius_ipaddr"),  WL0("radius_ipaddr"),   ""},
-       { WL("radius_port"),    WL0("radius_port"),     ""},
-       { WL("radius_key"),     WL0("radius_key"),      ""},
-       { WL("wpa_psk"),        WL0("wpa_psk"),         ""},
-       { WL("wpa_gtk_rekey"),  WL0("wpa_gtk_rekey"),   ""},
-       { WL("frameburst"),     WL0("frameburst"),      ""},
-       { WL("crypto"),         WL0("crypto"),          ""},
-       { WL("ap_isolate"),     WL0("ap_isolate"),      ""},
-       { WL("afterburner"),    WL0("afterburner"),     ""},
-       // for PPPoE
-       { PPP("username"),      PPPOE("username"),      ""},
-       { PPP("passwd"),        PPPOE("passwd"),        ""},
-       { PPP("idletime"),      PPPOE("idletime"),      ""},
-       { PPP("keepalive"),     PPPOE("keepalive"),     ""},
-       { PPP("demand"),        PPPOE("demand"),        ""},
-       { PPP("service"),       PPPOE("service"),       ""},
-       { PPP("ac"),            PPPOE("ac"),            ""},
-       { PPP("static"),        PPPOE("static"),        ""},
-       { PPP("static_ip"),     PPPOE("static_ip"),     ""},
-       { PPP("username_1"),    PPPOE("username_1"),    ""},
-       { PPP("passwd_1"),      PPPOE("passwd_1"),      ""},
-       { PPP("idletime_1"),    PPPOE("idletime_1"),    ""},
-       { PPP("keepalive_1"),   PPPOE("keepalive_1"),   ""},
-       { PPP("demand_1"),      PPPOE("demand_1"),      ""},
-       { PPP("service_1"),     PPPOE("service_1"),     ""},
-       { PPP("ac_1"),          PPPOE("ac_1"),          ""},
-       
-       { 0, 0, 0},
-};
diff --git a/package/nvram/src/nvram_convert.h b/package/nvram/src/nvram_convert.h
deleted file mode 100644 (file)
index 70e1232..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-
-struct nvram_convert {
-        char *name;
-       char *wl0_name;
-        char *d11g_name;
-};
-
diff --git a/package/nvram/src/nvram_linux.c b/package/nvram/src/nvram_linux.c
deleted file mode 100644 (file)
index c41e321..0000000
+++ /dev/null
@@ -1,320 +0,0 @@
-/*
- * NVRAM variable manipulation (Linux user mode half)
- *
- * Copyright 2004, Broadcom Corporation
- * All Rights Reserved.
- * 
- * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
- * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
- * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
- *
- * $Id$
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <errno.h>
-#include <error.h>
-#include <string.h>
-#include <sys/ioctl.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <sys/mman.h>
-
-#include <typedefs.h>
-#include <bcmnvram.h>
-#include <nvram_convert.h>
-#include <shutils.h>
-#include <utils.h>
-
-#define PATH_DEV_NVRAM "/dev/nvram"
-
-/* Globals */
-static int nvram_fd = -1;
-static char *nvram_buf = NULL;
-int check_action(void);
-int file_to_buf(char *path, char *buf, int len);
-
-int
-nvram_init(void *unused)
-{
-       if ((nvram_fd = open(PATH_DEV_NVRAM, O_RDWR)) < 0)
-               goto err;
-
-       /* Map kernel string buffer into user space */
-       if ((nvram_buf = mmap(NULL, NVRAM_SPACE, PROT_READ, MAP_SHARED, nvram_fd, 0)) == MAP_FAILED) {
-               close(nvram_fd);
-               nvram_fd = -1;
-               goto err;
-       }
-
-       return 0;
-
- err:
-       perror(PATH_DEV_NVRAM);
-       return errno;
-}
-
-char *
-nvram_get(const char *name)
-{
-       size_t count = strlen(name) + 1;
-       char tmp[100], *value;
-       unsigned long *off = (unsigned long *) tmp;
-
-       if (nvram_fd < 0)
-               if (nvram_init(NULL))
-                       return NULL;
-
-       if (count > sizeof(tmp)) {
-               if (!(off = malloc(count)))
-                       return NULL;
-       }
-
-       /* Get offset into mmap() space */
-       strcpy((char *) off, name);
-
-       count = read(nvram_fd, off, count);
-
-       if (count == sizeof(unsigned long))
-               value = &nvram_buf[*off];
-       else
-               value = NULL;
-
-       if (count < 0)
-               perror(PATH_DEV_NVRAM);
-
-       if (off != (unsigned long *) tmp)
-               free(off);
-
-       return value;
-}
-
-int
-nvram_getall(char *buf, int count)
-{
-       int ret;
-
-       if (nvram_fd < 0)
-               if ((ret = nvram_init(NULL)))
-                       return ret;
-
-       if (count == 0)
-               return 0;
-
-       /* Get all variables */
-       *buf = '\0';
-
-       ret = read(nvram_fd, buf, count);
-
-       if (ret < 0)
-               perror(PATH_DEV_NVRAM);
-
-       return (ret == count) ? 0 : ret;
-}
-
-static int
-_nvram_set(const char *name, const char *value)
-{
-       size_t count = strlen(name) + 1;
-       char tmp[100], *buf = tmp;
-       int ret;
-
-       if (nvram_fd < 0)
-               if ((ret = nvram_init(NULL)))
-                       return ret;
-
-       /* Unset if value is NULL */
-       if (value)
-               count += strlen(value) + 1;
-
-       if (count > sizeof(tmp)) {
-               if (!(buf = malloc(count)))
-                       return -ENOMEM;
-       }
-
-       if (value)
-               sprintf(buf, "%s=%s", name, value);
-       else
-               strcpy(buf, name);
-
-       ret = write(nvram_fd, buf, count);
-
-       if (ret < 0)
-               perror(PATH_DEV_NVRAM);
-
-       if (buf != tmp)
-               free(buf);
-
-       return (ret == count) ? 0 : ret;
-}
-
-int
-nvram_set(const char *name, const char *value)
-{
-        extern struct nvram_convert nvram_converts[];
-         struct nvram_convert *v;
-         int ret;
-
-         ret = _nvram_set(name, value);
-
-         for(v = nvram_converts ; v->name ; v++) {
-                 if(!strcmp(v->name, name)){
-                         if(strcmp(v->wl0_name,""))      _nvram_set(v->wl0_name, value);
-                         if(strcmp(v->d11g_name,""))     _nvram_set(v->d11g_name, value);
-                 }
-         }
-
-         return ret;
-}
-
-int
-nvram_unset(const char *name)
-{
-       return _nvram_set(name, NULL);
-}
-
-int
-nvram_commit(void)
-{
-       int ret;
-       
-       cprintf("nvram_commit(): start\n");     
-       
-       if((check_action() == ACT_IDLE) || 
-          (check_action() == ACT_SW_RESTORE) || 
-          (check_action() == ACT_HW_RESTORE)){
-               if (nvram_fd < 0)
-                       if ((ret = nvram_init(NULL)))
-                               return ret;
-
-               ret = ioctl(nvram_fd, NVRAM_MAGIC, NULL);
-
-               if (ret < 0)
-                       perror(PATH_DEV_NVRAM);
-       
-               cprintf("nvram_commit(): end\n");       
-       }
-       else
-               cprintf("nvram_commit():  nothing to do...\n");
-
-       return ret;
-}
-
-int file2nvram(char *filename, char *varname) {
-   FILE *fp;
-   int c,count;
-   int i=0,j=0;
-   char mem[10000],buf[30000];
-
-   if ( !(fp=fopen(filename,"rb") ))
-        return 0;
-
-   count=fread(mem,1,sizeof(mem),fp);
-   fclose(fp);
-   for (j=0;j<count;j++) {
-        if  (i > sizeof(buf)-3 )
-                break;
-        c=mem[j];
-        if (c >= 32 && c <= 126 && c != '\\' && c != '~')  {
-                buf[i++]=(unsigned char) c;
-        } else if (c==0) {
-               buf[i++]='~';
-        } else {
-                buf[i++]='\\';
-                sprintf(buf+i,"%02X",c);
-                i+=2;
-        }
-   }
-   if (i==0) return 0;
-   buf[i]=0;
-   //fprintf(stderr,"================ > file2nvram %s = [%s] \n",varname,buf); 
-   nvram_set(varname,buf);
-   //nvram_commit(); //Barry adds for test
-}
-
-int nvram2file(char *varname, char *filename) {
-   FILE *fp;
-   int c,tmp;
-   int i=0,j=0;
-   char *buf;
-   char mem[10000];
-   
-   if ( !(fp=fopen(filename,"wb") ))
-        return 0;
-        
-   buf=strdup(nvram_safe_get(varname));
-   //fprintf(stderr,"=================> nvram2file %s = [%s] \n",varname,buf);
-   while (  buf[i] && j < sizeof(mem)-3 ) {
-        if (buf[i] == '\\')  {
-                i++;
-                tmp=buf[i+2];
-                buf[i+2]=0;
-                sscanf(buf+i,"%02X",&c);
-                buf[i+2]=tmp;
-                i+=2;
-                mem[j]=c;j++;
-        } else if (buf[i] == '~') {
-               mem[j]=0;j++;
-               i++;
-        } else {
-                mem[j]=buf[i];j++;
-                i++;
-        }       
-   }
-   if (j<=0) return j;
-   j=fwrite(mem,1,j,fp);
-   fclose(fp);
-   free(buf);
-   return j;
-}  
-
-int
-check_action(void)
-{
-       char buf[80] = "";
-       
-       if(file_to_buf(ACTION_FILE, buf, sizeof(buf))){
-               if(!strcmp(buf, "ACT_TFTP_UPGRADE")){
-                       cprintf("Upgrading from tftp now, quiet exit....\n");
-                       return ACT_TFTP_UPGRADE;
-               }
-               else if(!strcmp(buf, "ACT_WEBS_UPGRADE")){
-                       cprintf("Upgrading from web (https) now, quiet exit....\n");
-                       return ACT_WEBS_UPGRADE;
-               }
-               else if(!strcmp(buf, "ACT_WEB_UPGRADE")){
-                       cprintf("Upgrading from web (http) now, quiet exit....\n");
-                       return ACT_WEB_UPGRADE;
-               }
-               else if(!strcmp(buf, "ACT_SW_RESTORE")){
-                       cprintf("Receive restore command from web, quiet exit....\n");
-                       return ACT_SW_RESTORE;
-               }
-               else if(!strcmp(buf, "ACT_HW_RESTORE")){
-                       cprintf("Receive restore commond from resetbutton, quiet exit....\n");
-                       return ACT_HW_RESTORE;
-               }
-       }
-       //fprintf(stderr, "Waiting for upgrading....\n");
-       return ACT_IDLE;
-}
-
-int
-file_to_buf(char *path, char *buf, int len)
-{
-       FILE *fp;
-
-       memset(buf, 0 , len);
-
-       if ((fp = fopen(path, "r"))) {
-               fgets(buf, len, fp);
-               fclose(fp);
-               return 1;
-       }
-
-       return 0;
-}
index 5738e2c..c336103 100644 (file)
  *
  * $Id$
  */
+#include <stdio.h>
+#include <unistd.h>
 #include <string.h>
+#include <errno.h>
+#include <sys/ioctl.h>
+#include <net/if.h>
 
 #include <typedefs.h>
 #include <wlutils.h>
 
+int
+wl_ioctl(char *name, int cmd, void *buf, int len)
+{
+       struct ifreq ifr;
+       wl_ioctl_t ioc;
+       int ret = 0;
+       int s;
+
+       /* open socket to kernel */
+       if ((s = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
+               perror("socket");
+               return errno;
+       }
+
+       /* do it */
+       ioc.cmd = cmd;
+       ioc.buf = buf;
+       ioc.len = len;
+       strncpy(ifr.ifr_name, name, IFNAMSIZ);
+       ifr.ifr_data = (caddr_t) &ioc;
+       if ((ret = ioctl(s, SIOCDEVPRIVATE, &ifr)) < 0)
+               if (cmd != WLC_GET_MAGIC)
+                       perror(ifr.ifr_name);
+
+       /* cleanup */
+       close(s);
+       return ret;
+}
+
+int
+wl_hwaddr(char *name, unsigned char *hwaddr)
+{
+       struct ifreq ifr;
+       int ret = 0;
+       int s;
+
+       /* open socket to kernel */
+       if ((s = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
+               perror("socket");
+               return errno;
+       }
+
+       /* do it */
+       strncpy(ifr.ifr_name, name, IFNAMSIZ);
+       if ((ret = ioctl(s, SIOCGIFHWADDR, &ifr)) == 0)
+               memcpy(hwaddr, ifr.ifr_hwaddr.sa_data, ETHER_ADDR_LEN);
+
+       /* cleanup */
+       close(s);
+       return ret;
+}      
+
 int
 wl_probe(char *name)
 {
diff --git a/package/nvram/src/wl_linux.c b/package/nvram/src/wl_linux.c
deleted file mode 100644 (file)
index 126a40b..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Wireless network adapter utilities (linux-specific)
- *
- * Copyright 2004, Broadcom Corporation
- * All Rights Reserved.
- * 
- * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
- * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
- * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
- *
- * $Id$
- */
-
-#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-#include <sys/ioctl.h>
-#include <net/if.h>
-
-#include <typedefs.h>
-#include <wlioctl.h>
-#include <wlutils.h>
-
-int
-wl_ioctl(char *name, int cmd, void *buf, int len)
-{
-       struct ifreq ifr;
-       wl_ioctl_t ioc;
-       int ret = 0;
-       int s;
-
-       /* open socket to kernel */
-       if ((s = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
-               perror("socket");
-               return errno;
-       }
-
-       /* do it */
-       ioc.cmd = cmd;
-       ioc.buf = buf;
-       ioc.len = len;
-       strncpy(ifr.ifr_name, name, IFNAMSIZ);
-       ifr.ifr_data = (caddr_t) &ioc;
-       if ((ret = ioctl(s, SIOCDEVPRIVATE, &ifr)) < 0)
-               if (cmd != WLC_GET_MAGIC)
-                       perror(ifr.ifr_name);
-
-       /* cleanup */
-       close(s);
-       return ret;
-}
-
-int
-wl_hwaddr(char *name, unsigned char *hwaddr)
-{
-       struct ifreq ifr;
-       int ret = 0;
-       int s;
-
-       /* open socket to kernel */
-       if ((s = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
-               perror("socket");
-               return errno;
-       }
-
-       /* do it */
-       strncpy(ifr.ifr_name, name, IFNAMSIZ);
-       if ((ret = ioctl(s, SIOCGIFHWADDR, &ifr)) == 0)
-               memcpy(hwaddr, ifr.ifr_hwaddr.sa_data, ETHER_ADDR_LEN);
-
-       /* cleanup */
-       close(s);
-       return ret;
-}      
-