From: Felix Fietkau <nbd@openwrt.org>
Date: Sat, 22 Oct 2005 20:52:12 +0000 (+0000)
Subject: rename target/linux/package/openwrt to base-files
X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=9c5c7414c7a84fc7f57f749dbcaf4d57036b91a6;p=openwrt%2Fsvn-archive%2Farchive.git

rename target/linux/package/openwrt to base-files

SVN-Revision: 2261
---

diff --git a/openwrt/target/linux/package/Makefile b/openwrt/target/linux/package/Makefile
index 97d20251e6..ad9b21a2ec 100644
--- a/openwrt/target/linux/package/Makefile
+++ b/openwrt/target/linux/package/Makefile
@@ -9,12 +9,12 @@ package-$(BR2_PACKAGE_KMOD_MINI_FO) += mini_fo
 package-$(BR2_PACKAGE_KMOD_SHFS) += shfs
 package-$(BR2_PACKAGE_KMOD_OPENSWAN) += openswan
 package-$(BR2_PACKAGE_KMOD_MADWIFI) += madwifi
-package-y += openwrt
+package-y += base-files
 
 ifeq ($(BOARD)-$(KERNEL),brcm-2.4)
 package-$(BR2_PACKAGE_KMOD_WLCOMPAT) += wlcompat
 package-$(BR2_PACKAGE_KMOD_DIAG) += diag
-wlcompat-compile: openwrt-compile
+wlcompat-compile: base-files-compile
 endif
 
 all: compile install
diff --git a/openwrt/target/linux/package/base-files/Makefile b/openwrt/target/linux/package/base-files/Makefile
new file mode 100644
index 0000000000..994ce53388
--- /dev/null
+++ b/openwrt/target/linux/package/base-files/Makefile
@@ -0,0 +1,53 @@
+# $Id$
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME := base-files-arch
+PKG_RELEASE := 2
+PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
+
+include $(TOPDIR)/package/rules.mk
+
+IDIR_OPENWRT:=$(PKG_BUILD_DIR)/ipkg
+IPKG_OPENWRT:=$(PACKAGE_DIR)/base-files-$(BOARD)-$(KERNEL)_$(PKG_RELEASE)_$(ARCH).ipk
+
+$(PKG_BUILD_DIR)/.prepared:
+	mkdir -p $(PKG_BUILD_DIR)
+	touch $@
+
+ifeq ($(BOARD),brcm)
+$(PKG_BUILD_DIR)/jffs2root: jffs2root.c
+	$(TARGET_CC) -o $@ $<
+
+$(PKG_BUILD_DIR)/.built: $(PKG_BUILD_DIR)/jffs2root
+
+$(IDIR_OPENWRT)/sbin/jffs2root: $(PKG_BUILD_DIR)/jffs2root
+	mkdir -p $(IDIR_OPENWRT)/sbin
+	cp $(PKG_BUILD_DIR)/jffs2root $(IDIR_OPENWRT)/sbin
+
+$(IPKG_OPENWRT): $(IDIR_OPENWRT)/sbin/jffs2root
+endif
+
+$(PKG_BUILD_DIR)/.built:
+	touch $@
+	
+$(IDIR_OPENWRT):
+	$(SCRIPT_DIR)/make-ipkg-dir.sh $(IDIR_OPENWRT) ipkg/base-files-arch.control $(PKG_RELEASE) $(ARCH)
+	$(SED) s,base-files-arch,base-files-$(BOARD)-$(KERNEL),g $(IDIR_OPENWRT)/CONTROL/control
+
+$(IPKG_OPENWRT): $(IDIR_OPENWRT)
+	[ -d files/$(BOARD)-$(KERNEL) ] && cp -fpR files/$(BOARD)-$(KERNEL)/* $(IDIR_OPENWRT)/
+	find $(IDIR_OPENWRT) -name CVS | xargs rm -rf
+	find $(IDIR_OPENWRT) -name .svn | xargs rm -rf
+	$(RSTRIP) $(IDIR_OPENWRT)
+	$(IPKG_BUILD) $(IDIR_OPENWRT) $(PACKAGE_DIR)
+
+install-targets: compile openwrt-install
+
+openwrt-install:
+	$(IPKG) install $(IPKG_OPENWRT)
+
+compile-targets: install-dev $(IPKG_OPENWRT)
+install-dev:
+	mkdir -p $(STAGING_DIR)/usr/include
+	cp -fpR ./include/[a-z]* $(STAGING_DIR)/usr/include/
diff --git a/openwrt/target/linux/package/base-files/files/ar7-2.4/etc/config/network b/openwrt/target/linux/package/base-files/files/ar7-2.4/etc/config/network
new file mode 100644
index 0000000000..9487a7426f
--- /dev/null
+++ b/openwrt/target/linux/package/base-files/files/ar7-2.4/etc/config/network
@@ -0,0 +1,31 @@
+# Network configuration file
+# Uncomment the following statements to change the network configuration
+
+## LAN configuration
+# lan_ifname="br0"
+# lan_proto="static"
+# lan_ipaddr="192.168.1.1"
+# lan_netmask="255.255.255.0"
+# lan_gateway=""
+# lan_dns=""
+
+## WAN configuration (PPPoE)
+# wan_proto=pppoe
+# wan_ifname=ppp0
+# pppoe_atm=1
+# pppoe_ifname=nas0
+# atm_vpi=8
+# atm_vci=35
+# ppp_username=my_username
+# ppp_passwd=my_passwd
+# ppp_mtu=1492
+
+## WAN configuration (PPPoA)
+# wan_proto=pppoa
+# wan_ifname=ppp0
+# atm_vpi=8
+# atm_vci=35
+# ppp_username=my_username
+# ppp_passwd=my_passwd
+# ppp_mtu=1500
+
diff --git a/openwrt/target/linux/package/base-files/files/ar7-2.4/etc/network.overrides b/openwrt/target/linux/package/base-files/files/ar7-2.4/etc/network.overrides
new file mode 100644
index 0000000000..9aa74aa934
--- /dev/null
+++ b/openwrt/target/linux/package/base-files/files/ar7-2.4/etc/network.overrides
@@ -0,0 +1,28 @@
+# NVRAM overrides
+#
+# This file handles the NVRAM quirks of various hardware.
+# THIS FILE IS NOT A REPLACEMENT FOR NVRAM
+
+# Load sysconf defaults
+[ -f /etc/sysconf ] && . /etc/sysconf
+
+DEFAULT_lan_proto="static"
+DEFAULT_lan_ifname="br0"
+DEFAULT_lan_ifnames="eth0"
+DEFAULT_lan_ipaddr=${BR2_SYSCONF_FAILSAFE_IP:-"192.168.1.1"}
+DEFAULT_lan_netmask=${BR2_SYSCONF_FAILSAFE_NETMASK:-"255.255.255.0"}
+DEFAULT_lan_hwaddr=`echo $(strings /dev/mtdblock/3 | grep -A1 maca | grep :)`
+DEFAULT_lan_hwaddr=${DEFAULT_lan_hwaddr##* }
+DEFAULT_lan_hwaddr=${DEFAULT_lan_hwaddr:-${BR2_SYSCONF_FAILSAFE_MAC:-"00:0B:AD:0A:DD:00"}}
+
+# failsafe if reset is held
+[ "$FAILSAFE" = "true" ] && {
+  echo "### YOU ARE IN FAILSAFE MODE ####"
+  lan_ifname=${DEFAULT_lan_proto}
+  lan_ifnames=${FAILSAFE_ifnames:-${DEFAULT_lan_ifnames}}
+  lan_ipaddr=$DEFAULT_lan_ipaddr
+  lan_netmask=$DEFAULT_lan_netmask
+  lan_hwaddr=$DEFAULT_lan_hwaddr
+  wan_ifname="none"
+  wifi_ifname="none"
+}
diff --git a/openwrt/target/linux/package/base-files/files/brcm-2.4/etc/config/network b/openwrt/target/linux/package/base-files/files/brcm-2.4/etc/config/network
new file mode 100644
index 0000000000..ee8e02043a
--- /dev/null
+++ b/openwrt/target/linux/package/base-files/files/brcm-2.4/etc/config/network
@@ -0,0 +1,18 @@
+# Network configuration file
+# Uncomment the following statements to override the default or nvram config
+
+## LAN configuration
+# lan_ifname="br0"
+# lan_proto="static"
+# lan_ipaddr="192.168.1.1"
+# lan_netmask="255.255.255.0"
+# lan_gateway=""
+# lan_dns=""
+
+## WAN configuration (PPPoE)
+# wan_proto=pppoe
+# wan_ifname=ppp0
+# pppoe_ifname=vlan1
+# ppp_username=my_username
+# ppp_passwd=my_passwd
+# ppp_mtu=1492
diff --git a/openwrt/target/linux/package/base-files/files/brcm-2.4/etc/init.d/S05nvram b/openwrt/target/linux/package/base-files/files/brcm-2.4/etc/init.d/S05nvram
new file mode 100755
index 0000000000..0d1300b964
--- /dev/null
+++ b/openwrt/target/linux/package/base-files/files/brcm-2.4/etc/init.d/S05nvram
@@ -0,0 +1,102 @@
+# NVRAM setup
+#
+# This file handles the NVRAM quirks of various hardware.
+
+. /etc/network.overrides
+alias debug=${DEBUG:-:}
+
+remap () {
+  for type in lan wifi wan pppoe
+  do
+    for s in '' s
+    do
+      eval nvram set ${type}_ifname$s=\"$(nvram get ${type}_ifname$s|sed s/$1/$2/g)\" 
+    done
+  done
+}
+
+nvram_default() {
+  [ -z "$(nvram get $1)" ] && nvram set "$1=$2"
+}
+
+# linksys bug; remove when not using static configuration for lan
+nvram set lan_proto="static"
+
+# hacks for wrt54g 1.x hardware
+[  "$(nvram get boardnum)"  = "42" \
+-a "$(nvram get boardtype)" = "bcm94710dev" ] && {
+  debug "### wrt54g 1.x hack ###"
+  nvram set vlan1hwname="et0"
+  nvram set vlan2hwname="et0"
+  remap eth0 vlan2
+  remap eth1 vlan1
+}
+
+# hacks for asus wl-500g deluxe
+[  "$(nvram get boardtype)" = "bcm95365r" \
+-a "$(nvram get boardnum)" = "45" ] && {
+  debug "### wl-500g deluxe hacks ###"
+  nvram set vlan0hwname="et0"
+  nvram set vlan1hwname="et0"
+  remap eth0.1 vlan0
+  remap eth0 vlan1
+
+  # set up the vlan*ports variables for the asus wl-500g deluxe
+  # if they don't already exist 
+  nvram_default vlan0ports "1 2 3 4 5*"
+  nvram_default vlan1ports "0 5"
+}
+
+# hacks for asus wl-300g
+[ "$(nvram get productid)" = "WL300g" ] && {
+  debug "### wl-300g hacks ###"
+  nvram set lan_ifnames="eth0 eth2"
+  nvram set wan_ifname="none"
+}
+
+# hacks for asus wl-hdd
+[ "$(nvram get productid)" = "WLHDD" ] && {
+  debug "### wl-hdd hacks ###"
+  nvram set lan_ifnames="eth1 eth2"
+  nvram set wan_ifname="none"
+}
+
+# hacks for wap54g hardware
+[  "$(nvram get boardnum)" = "2" \
+-o "$(nvram get boardnum)" = "1024" ] && {
+  debug "### wap54g hack ###"
+  nvram set wan_ifname="none"
+}
+
+# hacks for buffalo wla2-g54l
+[  "$(nvram get boardnum)" = "00" \
+-a "$(nvram get product_name)" = "Product_name" \
+-o "$(nvram get product_name)" = "WLA2-G54L" ] && {
+  debug "### wla2-g54l hacks ###"
+  nvram set wan_ifname="none"
+  nvram set lan_ifnames="vlan0"
+}
+
+# needed at least for wrt54gs v1.1 and wrt54g v2.0, v2.2
+[ \! -z "$(nvram get boardrev)" ] && {
+  nvram set wl0id=0x4320
+}
+
+# defaults
+nvram_default lan_ifname "br0"
+nvram_default lan_ifnames "$FAILSAFE_ifnames"
+
+nvram_default wan_ifname "vlan1"
+nvram_default wan_proto "dhcp"
+
+nvram_default wl0_ssid OpenWrt
+nvram_default wl0_mode ap
+nvram_default wl0_infra 1
+nvram_default wl0_radio 1
+
+[ "$(nvram get il0macaddr)" = "00:90:4c:5f:00:2a" ] && {
+  # if default wifi mac, set two higher than the lan mac
+  nvram set il0macaddr=$(nvram get et0macaddr|
+  awk '{OFS=FS=":";for(x=7,y=2;--x;){$x=sprintf("%02x",(y+="0x"$x)%256);y/=256}print}')
+}
+
diff --git a/openwrt/target/linux/package/base-files/files/brcm-2.4/etc/network.overrides b/openwrt/target/linux/package/base-files/files/brcm-2.4/etc/network.overrides
new file mode 100644
index 0000000000..dc3abcaebd
--- /dev/null
+++ b/openwrt/target/linux/package/base-files/files/brcm-2.4/etc/network.overrides
@@ -0,0 +1,41 @@
+# NVRAM overrides
+#
+# This file handles the NVRAM quirks of various hardware.
+# THIS FILE IS NOT A REPLACEMENT FOR NVRAM
+
+# Load sysconf defaults
+[ -f /etc/sysconf ] && . /etc/sysconf
+
+# hacks for wrt54g 1.x hardware
+[  "$(nvram get boardnum)"  = "42" \
+-a "$(nvram get boardtype)" = "bcm94710dev" ] && FAILSAFE_ifnames="vlan0 vlan2 eth2"
+
+# hacks for asus wl-500g deluxe
+[  "$(nvram get boardtype)" = "bcm95365r" \
+-a "$(nvram get boardnum)" = "45" ] && FAILSAFE_ifnames="vlan0 eth1"
+
+# hacks for wap54g hardware
+[  "$(nvram get boardnum)" = "2" \
+-o "$(nvram get boardnum)" = "1024" ] && FAILSAFE_ifnames="eth0 eth1"
+
+# hack for asus wl-500g hardware
+[ "$(nvram get boardnum)" = "asusX" \
+-a "$(nvram get boardtype)" = "bcm94710dev" ] && FAILSAFE_ifnames="eth0 eth1 eth2"
+  
+FAILSAFE_ifnames=${FAILSAFE_ifnames:-"vlan0 eth1 eth2"}
+
+DEFAULT_lan_ipaddr=${BR2_SYSCONF_FAILSAFE_IP:-"192.168.1.1"}
+DEFAULT_lan_netmask=${BR2_SYSCONF_FAILSAFE_NETMASK:-"255.255.255.0"}
+DEFAULT_lan_hwaddr=${BR2_SYSCONF_FAILSAFE_MAC:-"00:0B:AD:0A:DD:00"}
+
+# failsafe if reset is held
+[ "$FAILSAFE" = "true" ] && {
+  echo "### YOU ARE IN FAILSAFE MODE ####"
+  NVRAM_lan_ifname="br0"
+  NVRAM_lan_ifnames=$FAILSAFE_ifnames
+  NVRAM_lan_ipaddr=DEFAULT_lan_ipaddr
+  NVRAM_lan_netmask=DEFAULT_lan_netmask
+  NVRAM_lan_hwaddr=DEFAULT_lan_hwaddr
+  NVRAM_wan_ifname="none"
+  NVRAM_wifi_ifname="none"
+}
diff --git a/openwrt/target/linux/package/base-files/files/brcm-2.6/etc/config/network b/openwrt/target/linux/package/base-files/files/brcm-2.6/etc/config/network
new file mode 100644
index 0000000000..9487a7426f
--- /dev/null
+++ b/openwrt/target/linux/package/base-files/files/brcm-2.6/etc/config/network
@@ -0,0 +1,31 @@
+# Network configuration file
+# Uncomment the following statements to change the network configuration
+
+## LAN configuration
+# lan_ifname="br0"
+# lan_proto="static"
+# lan_ipaddr="192.168.1.1"
+# lan_netmask="255.255.255.0"
+# lan_gateway=""
+# lan_dns=""
+
+## WAN configuration (PPPoE)
+# wan_proto=pppoe
+# wan_ifname=ppp0
+# pppoe_atm=1
+# pppoe_ifname=nas0
+# atm_vpi=8
+# atm_vci=35
+# ppp_username=my_username
+# ppp_passwd=my_passwd
+# ppp_mtu=1492
+
+## WAN configuration (PPPoA)
+# wan_proto=pppoa
+# wan_ifname=ppp0
+# atm_vpi=8
+# atm_vci=35
+# ppp_username=my_username
+# ppp_passwd=my_passwd
+# ppp_mtu=1500
+
diff --git a/openwrt/target/linux/package/base-files/files/brcm-2.6/etc/inittab b/openwrt/target/linux/package/base-files/files/brcm-2.6/etc/inittab
new file mode 100644
index 0000000000..3cbbe5af27
--- /dev/null
+++ b/openwrt/target/linux/package/base-files/files/brcm-2.6/etc/inittab
@@ -0,0 +1,4 @@
+::sysinit:/etc/init.d/rcS
+::shutdown:/sbin/halt
+tts/0::askfirst:/bin/ash --login
+tts/1::askfirst:/bin/ash --login
diff --git a/openwrt/target/linux/package/base-files/files/brcm-2.6/etc/network.overrides b/openwrt/target/linux/package/base-files/files/brcm-2.6/etc/network.overrides
new file mode 100644
index 0000000000..ded748b260
--- /dev/null
+++ b/openwrt/target/linux/package/base-files/files/brcm-2.6/etc/network.overrides
@@ -0,0 +1,31 @@
+# NVRAM overrides
+#
+# This file handles the NVRAM quirks of various hardware.
+# THIS FILE IS NOT A REPLACEMENT FOR NVRAM
+
+# Load sysconf defaults
+[ -f /etc/sysconf ] && . /etc/sysconf
+
+DEFAULT_lan_proto="static"
+DEFAULT_lan_ifname="br0"
+DEFAULT_lan_ifnames="vlan0 ath0"
+DEFAULT_lan_ipaddr=${BR2_SYSCONF_FAILSAFE_IP:-"192.168.1.1"}
+DEFAULT_lan_netmask=${BR2_SYSCONF_FAILSAFE_NETMASK:-"255.255.255.0"}
+DEFAULT_lan_hwaddr=${DEFAULT_lan_hwaddr:-${BR2_SYSCONF_FAILSAFE_MAC:-"00:0B:AD:0A:DD:00"}}
+DEFAULT_vlan0hwname="et0"
+DEFAULT_vlan1hwname="et0"
+DEFAULT_et0macaddr=$(ifconfig eth0| awk '/eth0/ {print $5 }')
+DEFAULT_wan_proto="dhcp"
+DEFAULT_wan_ifname="vlan1"
+
+# failsafe if reset is held
+[ "$FAILSAFE" = "true" ] && {
+  echo "### YOU ARE IN FAILSAFE MODE ####"
+  lan_ifname=${DEFAULT_lan_proto}
+  lan_ifnames=${FAILSAFE_ifnames:-${DEFAULT_lan_ifnames}}
+  lan_ipaddr=$DEFAULT_lan_ipaddr
+  lan_netmask=$DEFAULT_lan_netmask
+  lan_hwaddr=$DEFAULT_lan_hwaddr
+  wan_ifname="none"
+  wifi_ifname="none"
+}
diff --git a/openwrt/target/linux/package/base-files/files/soekris-2.4/etc/config/network b/openwrt/target/linux/package/base-files/files/soekris-2.4/etc/config/network
new file mode 100644
index 0000000000..fd0f557c04
--- /dev/null
+++ b/openwrt/target/linux/package/base-files/files/soekris-2.4/etc/config/network
@@ -0,0 +1,12 @@
+# Network configuration file
+
+## LAN configuration
+lan_ifname="br0"
+lan_ifnames="eth1 eth2"
+lan_proto="static"
+lan_ipaddr="192.168.1.1"
+lan_netmask="255.255.255.0"
+
+## WAN configuration
+wan_ifname="eth0"
+wan_proto="dhcp"
diff --git a/openwrt/target/linux/package/base-files/files/soekris-2.4/etc/network.overrides b/openwrt/target/linux/package/base-files/files/soekris-2.4/etc/network.overrides
new file mode 100644
index 0000000000..e857d5b5f1
--- /dev/null
+++ b/openwrt/target/linux/package/base-files/files/soekris-2.4/etc/network.overrides
@@ -0,0 +1,26 @@
+# NVRAM overrides
+#
+# This file handles the NVRAM quirks of various hardware.
+# THIS FILE IS NOT A REPLACEMENT FOR NVRAM
+
+# Load sysconf defaults
+[ -f /etc/sysconf ] && . /etc/sysconf
+
+DEFAULT_lan_proto="static"
+DEFAULT_lan_ifname="br0"
+DEFAULT_lan_ifnames="eth0"
+DEFAULT_lan_ipaddr=${BR2_SYSCONF_FAILSAFE_IP:-"192.168.1.1"}
+DEFAULT_lan_netmask=${BR2_SYSCONF_FAILSAFE_NETMASK:-"255.255.255.0"}
+DEFAULT_lan_hwaddr=${BR2_SYSCONF_FAILSAFE_MAC:-"00:0B:AD:0A:DD:00"}
+
+# failsafe if reset is held
+[ "$FAILSAFE" = "true" ] && {
+  echo "### YOU ARE IN FAILSAFE MODE ####"
+  lan_ifname=${DEFAULT_lan_proto}
+  lan_ifnames=${FAILSAFE_ifnames:-${DEFAULT_lan_ifnames}}
+  lan_ipaddr=$DEFAULT_lan_ipaddr
+  lan_netmask=$DEFAULT_lan_netmask
+  lan_hwaddr=$DEFAULT_lan_hwaddr
+  wan_ifname="none"
+  wifi_ifname="none"
+}
diff --git a/openwrt/target/linux/package/base-files/include/bcmnvram.h b/openwrt/target/linux/package/base-files/include/bcmnvram.h
new file mode 100644
index 0000000000..3c452634e8
--- /dev/null
+++ b/openwrt/target/linux/package/base-files/include/bcmnvram.h
@@ -0,0 +1,148 @@
+/*
+ * NVRAM variable manipulation
+ *
+ * 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 _bcmnvram_h_
+#define _bcmnvram_h_
+
+#ifndef _LANGUAGE_ASSEMBLY
+
+#include <typedefs.h>
+
+struct nvram_header {
+	uint32 magic;
+	uint32 len;
+	uint32 crc_ver_init;	/* 0:7 crc, 8:15 ver, 16:27 init, mem. test 28, 29-31 reserved */
+	uint32 config_refresh;	/* 0:15 config, 16:31 refresh */
+	uint32 config_ncdl;	/* ncdl values for memc */
+};
+
+struct nvram_tuple {
+	char *name;
+	char *value;
+	struct nvram_tuple *next;
+};
+
+/*
+ * Initialize NVRAM access. May be unnecessary or undefined on certain
+ * platforms.
+ */
+extern int nvram_init(void *sbh);
+
+/*
+ * Disable NVRAM access. May be unnecessary or undefined on certain
+ * platforms.
+ */
+extern void nvram_exit(void);
+
+/*
+ * Get the value of an NVRAM variable. The pointer returned may be
+ * invalid after a set.
+ * @param	name	name of variable to get
+ * @return	value of variable or NULL if undefined
+ */
+extern char * nvram_get(const char *name);
+
+/* 
+ * Get the value of an NVRAM variable.
+ * @param	name	name of variable to get
+ * @return	value of variable or NUL if undefined
+ */
+#define nvram_safe_get(name) (nvram_get(name) ? : "")
+
+#define nvram_safe_unset(name) ({ \
+	if(nvram_get(name)) \
+		nvram_unset(name); \
+})
+
+#define nvram_safe_set(name, value) ({ \
+	if(!nvram_get(name) || strcmp(nvram_get(name), value)) \
+		nvram_set(name, value); \
+})
+
+/*
+ * Match an NVRAM variable.
+ * @param	name	name of variable to match
+ * @param	match	value to compare against value of variable
+ * @return	TRUE if variable is defined and its value is string equal
+ *		to match or FALSE otherwise
+ */
+static INLINE int
+nvram_match(char *name, char *match) {
+	const char *value = nvram_get(name);
+	return (value && !strcmp(value, match));
+}
+
+/*
+ * Inversely match an NVRAM variable.
+ * @param	name	name of variable to match
+ * @param	match	value to compare against value of variable
+ * @return	TRUE if variable is defined and its value is not string
+ *		equal to invmatch or FALSE otherwise
+ */
+static INLINE int
+nvram_invmatch(char *name, char *invmatch) {
+	const char *value = nvram_get(name);
+	return (value && strcmp(value, invmatch));
+}
+
+/*
+ * Set the value of an NVRAM variable. The name and value strings are
+ * copied into private storage. Pointers to previously set values
+ * may become invalid. The new value may be immediately
+ * retrieved but will not be permanently stored until a commit.
+ * @param	name	name of variable to set
+ * @param	value	value of variable
+ * @return	0 on success and errno on failure
+ */
+extern int nvram_set(const char *name, const char *value);
+
+/*
+ * Unset an NVRAM variable. Pointers to previously set values
+ * remain valid until a set.
+ * @param	name	name of variable to unset
+ * @return	0 on success and errno on failure
+ * NOTE: use nvram_commit to commit this change to flash.
+ */
+extern int nvram_unset(const char *name);
+
+/*
+ * Commit NVRAM variables to permanent storage. All pointers to values
+ * may be invalid after a commit.
+ * NVRAM values are undefined after a commit.
+ * @return	0 on success and errno on failure
+ */
+extern int nvram_commit(void);
+
+/*
+ * Get all NVRAM variables (format name=value\0 ... \0\0).
+ * @param	buf	buffer to store variables
+ * @param	count	size of buffer in bytes
+ * @return	0 on success and errno on failure
+ */
+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' */
+#define NVRAM_VERSION		1
+#define NVRAM_HEADER_SIZE	20
+#define NVRAM_SPACE		0x8000
+#define FLASH_BASE		0xbfc00000	/* Extif core */
+#define FLASH_MIN		0x00100000	/* Minimum flash size */
+#define FLASH_MAX		0x00400000	/* Maximum flash size with extif */
+
+#endif /* _bcmnvram_h_ */
diff --git a/openwrt/target/linux/package/base-files/include/bcmutils.h b/openwrt/target/linux/package/base-files/include/bcmutils.h
new file mode 100644
index 0000000000..05ad41d9d8
--- /dev/null
+++ b/openwrt/target/linux/package/base-files/include/bcmutils.h
@@ -0,0 +1,157 @@
+/*
+ * Misc useful os-independent macros and functions.
+ *
+ * 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	_bcmutils_h_
+#define	_bcmutils_h_
+
+#ifndef MIN
+#define	MIN(a, b)		(((a)<(b))?(a):(b))
+#endif
+
+#ifndef MAX
+#define	MAX(a, b)		(((a)>(b))?(a):(b))
+#endif
+
+#define CEIL(x, y)		(((x) + ((y)-1)) / (y))
+#define	ROUNDUP(x, y)		((((ulong)(x)+((y)-1))/(y))*(y))
+#define	ISALIGNED(a, x)		(((uint)(a) & ((x)-1)) == 0)
+#define	ISPOWEROF2(x)		((((x)-1)&(x))==0)
+#define	OFFSETOF(type, member)	((uint) &((type *)0)->member)
+#define ARRAYSIZE(a)		(sizeof(a)/sizeof(a[0]))
+
+/* bit map related macros */
+#ifndef setbit
+#define	NBBY	8	/* 8 bits per byte */
+#define	setbit(a,i)	((a)[(i)/NBBY] |= 1<<((i)%NBBY))
+#define	clrbit(a,i)	((a)[(i)/NBBY] &= ~(1<<((i)%NBBY)))
+#define	isset(a,i)	((a)[(i)/NBBY] & (1<<((i)%NBBY)))
+#define	isclr(a,i)	(((a)[(i)/NBBY] & (1<<((i)%NBBY))) == 0)
+#endif
+
+#define	NBITS(type)	(sizeof (type) * 8)
+
+#define _BCM_U	0x01	/* upper */
+#define _BCM_L	0x02	/* lower */
+#define _BCM_D	0x04	/* digit */
+#define _BCM_C	0x08	/* cntrl */
+#define _BCM_P	0x10	/* punct */
+#define _BCM_S	0x20	/* white space (space/lf/tab) */
+#define _BCM_X	0x40	/* hex digit */
+#define _BCM_SP	0x80	/* hard space (0x20) */
+
+extern unsigned char bcm_ctype[];
+#define bcm_ismask(x) (bcm_ctype[(int)(unsigned char)(x)])
+
+#define bcm_isalnum(c)	((bcm_ismask(c)&(_BCM_U|_BCM_L|_BCM_D)) != 0)
+#define bcm_isalpha(c)	((bcm_ismask(c)&(_BCM_U|_BCM_L)) != 0)
+#define bcm_iscntrl(c)	((bcm_ismask(c)&(_BCM_C)) != 0)
+#define bcm_isdigit(c)	((bcm_ismask(c)&(_BCM_D)) != 0)
+#define bcm_isgraph(c)	((bcm_ismask(c)&(_BCM_P|_BCM_U|_BCM_L|_BCM_D)) != 0)
+#define bcm_islower(c)	((bcm_ismask(c)&(_BCM_L)) != 0)
+#define bcm_isprint(c)	((bcm_ismask(c)&(_BCM_P|_BCM_U|_BCM_L|_BCM_D|_BCM_SP)) != 0)
+#define bcm_ispunct(c)	((bcm_ismask(c)&(_BCM_P)) != 0)
+#define bcm_isspace(c)	((bcm_ismask(c)&(_BCM_S)) != 0)
+#define bcm_isupper(c)	((bcm_ismask(c)&(_BCM_U)) != 0)
+#define bcm_isxdigit(c)	((bcm_ismask(c)&(_BCM_D|_BCM_X)) != 0)
+
+/*
+ * Spin at most 'us' microseconds while 'exp' is true.
+ * Caller should explicitly test 'exp' when this completes
+ * and take appropriate error action if 'exp' is still true.
+ */
+#define SPINWAIT(exp, us) { \
+	uint countdown = (us) + 9; \
+	while ((exp) && (countdown >= 10)) {\
+		OSL_DELAY(10); \
+		countdown -= 10; \
+	} \
+}
+
+/* generic osl packet queue */
+struct pktq {
+	void *head;	/* first packet to dequeue */
+	void *tail;	/* last packet to dequeue */
+	uint len;	/* number of queued packets */
+	uint maxlen;	/* maximum number of queued packets */
+	bool priority;	/* enqueue by packet priority */
+};
+#define DEFAULT_QLEN	128
+
+#define	pktq_len(q)	((q)->len)
+#define	pktq_avail(q)	((q)->maxlen - (q)->len)
+#define	pktq_head(q)	((q)->head)
+#define	pktq_full(q)	((q)->len >= (q)->maxlen)
+
+/* crc defines */
+#define CRC8_INIT_VALUE  0xff		/* Initial CRC8 checksum value */
+#define CRC8_GOOD_VALUE  0x9f		/* Good final CRC8 checksum value */
+#define CRC16_INIT_VALUE 0xffff		/* Initial CRC16 checksum value */
+#define CRC16_GOOD_VALUE 0xf0b8		/* Good final CRC16 checksum value */
+#define CRC32_INIT_VALUE 0xffffffff	/* Initial CRC32 checksum value */
+#define CRC32_GOOD_VALUE 0xdebb20e3	/* Good final CRC32 checksum value */
+
+/* tag_ID/length/value_buffer tuple */
+typedef struct bcm_tlv {
+	uint8	id;
+	uint8	len;
+	uint8	data[1];
+} bcm_tlv_t;
+
+/* Check that bcm_tlv_t fits into the given buflen */
+#define bcm_valid_tlv(elt, buflen) ((buflen) >= 2 && (buflen) >= 2 + (elt)->len)
+
+/* buffer length for ethernet address from bcm_ether_ntoa() */
+#define ETHER_ADDR_STR_LEN	18
+
+/*
+* load 32-bit value from unaligned byte array
+*/
+#ifdef IL_BIGENDIAN
+#define load32_ua(a)	((((uint8 *)(a))[0] << 24) + (((uint8 *)(a))[1] << 16) + \
+			(((uint8 *)(a))[2] << 8) + ((uint8 *)(a))[3])
+#else
+#define load32_ua(a)	((((uint8 *)(a))[3] << 24) + (((uint8 *)(a))[2] << 16) + \
+			(((uint8 *)(a))[1] << 8) + ((uint8 *)(a))[0])
+#endif
+
+/* externs */
+extern uint bcm_atoi(char *s);
+extern uchar bcm_toupper(uchar c);
+extern ulong bcm_strtoul(char *cp, char **endp, uint base);
+extern void deadbeef(char *p, uint len);
+extern void prhex(char *msg, uchar *buf, uint len);
+extern void prpkt(char *msg, void *drv, void *p0);
+extern uint pktcopy(void *drv, void *p, uint offset, int len, uchar *buf);
+extern uint pkttotlen(void *drv, void *);
+extern uchar *bcm_ether_ntoa(char *ea, char *buf);
+extern int bcm_ether_atoe(char *p, char *ea);
+extern void bcm_mdelay(uint ms);
+extern char *getvar(char *vars, char *name);
+extern int getintvar(char *vars, char *name);
+extern char *bcmstrstr(char *haystack, char *needle);
+
+extern uint8 crc8(uint8 *p, uint nbytes, uint8 crc);
+extern uint16 crc16(uint8 *p, uint nbytes, uint16 crc);
+extern uint32 crc32(uint8 *p, uint nbytes, uint32 crc);
+extern bcm_tlv_t *bcm_next_tlv(bcm_tlv_t *elt, int *buflen);
+extern bcm_tlv_t *bcm_parse_tlvs(void *buf, int buflen, uint key);
+extern bcm_tlv_t *bcm_parse_ordered_tlvs(void *buf, int buflen, uint key);
+extern void pktq_init(struct pktq *q, uint maxlen, bool priority);
+extern bool pktenq(struct pktq *q, void *p, bool lifo);
+extern void *pktdeq(struct pktq *q);
+
+#define	bcmlog(fmt, a1, a2)
+#define	bcmdumplog(buf, size)	*buf = '\0'
+#define	bcmdumplogent(buf, idx)	-1
+
+#endif	/* _bcmutils_h_ */
diff --git a/openwrt/target/linux/package/base-files/include/cy_conf.h b/openwrt/target/linux/package/base-files/include/cy_conf.h
new file mode 100644
index 0000000000..dbe387b83b
--- /dev/null
+++ b/openwrt/target/linux/package/base-files/include/cy_conf.h
@@ -0,0 +1,69 @@
+
+#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/openwrt/target/linux/package/base-files/include/epivers.h b/openwrt/target/linux/package/base-files/include/epivers.h
new file mode 100644
index 0000000000..e174fb50d8
--- /dev/null
+++ b/openwrt/target/linux/package/base-files/include/epivers.h
@@ -0,0 +1,69 @@
+/*
+ * 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/openwrt/target/linux/package/base-files/include/proto/802.11.h b/openwrt/target/linux/package/base-files/include/proto/802.11.h
new file mode 100644
index 0000000000..ea57850ce5
--- /dev/null
+++ b/openwrt/target/linux/package/base-files/include/proto/802.11.h
@@ -0,0 +1,852 @@
+/*
+ * 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/openwrt/target/linux/package/base-files/include/proto/ethernet.h b/openwrt/target/linux/package/base-files/include/proto/ethernet.h
new file mode 100644
index 0000000000..173464af63
--- /dev/null
+++ b/openwrt/target/linux/package/base-files/include/proto/ethernet.h
@@ -0,0 +1,179 @@
+/*******************************************************************************
+ * $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_ */
diff --git a/openwrt/target/linux/package/base-files/include/shutils.h b/openwrt/target/linux/package/base-files/include/shutils.h
new file mode 100644
index 0000000000..783ee9ede1
--- /dev/null
+++ b/openwrt/target/linux/package/base-files/include/shutils.h
@@ -0,0 +1,200 @@
+/*
+ * Shell-like utility functions
+ *
+ * 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 _shutils_h_
+#define _shutils_h_
+#include <string.h>
+/*
+ * Reads file and returns contents
+ * @param	fd	file descriptor
+ * @return	contents of file or NULL if an error occurred
+ */
+extern char * fd2str(int fd);
+
+/*
+ * Reads file and returns contents
+ * @param	path	path to file
+ * @return	contents of file or NULL if an error occurred
+ */
+extern char * file2str(const char *path);
+
+/* 
+ * Waits for a file descriptor to become available for reading or unblocked signal
+ * @param	fd	file descriptor
+ * @param	timeout	seconds to wait before timing out or 0 for no timeout
+ * @return	1 if descriptor changed status or 0 if timed out or -1 on error
+ */
+extern int waitfor(int fd, int timeout);
+
+/* 
+ * Concatenates NULL-terminated list of arguments into a single
+ * commmand and executes it
+ * @param	argv	argument list
+ * @param	path	NULL, ">output", or ">>output"
+ * @param	timeout	seconds to wait before timing out or 0 for no timeout
+ * @param	ppid	NULL to wait for child termination or pointer to pid
+ * @return	return value of executed command or errno
+ */
+extern int _eval(char *const argv[], char *path, int timeout, pid_t *ppid);
+
+/* 
+ * Concatenates NULL-terminated list of arguments into a single
+ * commmand and executes it
+ * @param	argv	argument list
+ * @return	stdout of executed command or NULL if an error occurred
+ */
+extern char * _backtick(char *const argv[]);
+
+/* 
+ * Kills process whose PID is stored in plaintext in pidfile
+ * @param	pidfile	PID file
+ * @return	0 on success and errno on failure
+ */
+extern int kill_pidfile(char *pidfile);
+
+/*
+ * fread() with automatic retry on syscall interrupt
+ * @param	ptr	location to store to
+ * @param	size	size of each element of data
+ * @param	nmemb	number of elements
+ * @param	stream	file stream
+ * @return	number of items successfully read
+ */
+extern int safe_fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
+
+/*
+ * fwrite() with automatic retry on syscall interrupt
+ * @param	ptr	location to read from
+ * @param	size	size of each element of data
+ * @param	nmemb	number of elements
+ * @param	stream	file stream
+ * @return	number of items successfully written
+ */
+extern int safe_fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
+
+/*
+ * Convert Ethernet address string representation to binary data
+ * @param	a	string in xx:xx:xx:xx:xx:xx notation
+ * @param	e	binary data
+ * @return	TRUE if conversion was successful and FALSE otherwise
+ */
+extern int ether_atoe(const char *a, unsigned char *e);
+
+/*
+ * Convert Ethernet address binary data to string representation
+ * @param	e	binary data
+ * @param	a	string in xx:xx:xx:xx:xx:xx notation
+ * @return	a
+ */
+extern char * ether_etoa(const unsigned char *e, char *a);
+
+/*
+ * Concatenate two strings together into a caller supplied buffer
+ * @param	s1	first string
+ * @param	s2	second string
+ * @param	buf	buffer large enough to hold both strings
+ * @return	buf
+ */
+static inline char * strcat_r(const char *s1, const char *s2, char *buf)
+{
+	strcpy(buf, s1);
+	strcat(buf, s2);
+	return buf;
+}	
+
+/* Check for a blank character; that is, a space or a tab */
+#define isblank(c) ((c) == ' ' || (c) == '\t')
+
+/* Strip trailing CR/NL from string <s> */
+#define chomp(s) ({ \
+	char *c = (s) + strlen((s)) - 1; \
+	while ((c > (s)) && (*c == '\n' || *c == '\r' || *c == ' ')) \
+		*c-- = '\0'; \
+	s; \
+})
+
+/* Simple version of _backtick() */
+#define backtick(cmd, args...) ({ \
+	char *argv[] = { cmd, ## args, NULL }; \
+	_backtick(argv); \
+})
+
+/* Simple version of _eval() (no timeout and wait for child termination) */
+#define eval(cmd, args...) ({ \
+	char *argv[] = { cmd, ## args, NULL }; \
+	_eval(argv, ">/dev/console", 0, NULL); \
+})
+
+/* Copy each token in wordlist delimited by space into word */
+#define foreach(word, wordlist, next) \
+	for (next = &wordlist[strspn(wordlist, " ")], \
+	     strncpy(word, next, sizeof(word)), \
+	     word[strcspn(word, " ")] = '\0', \
+	     word[sizeof(word) - 1] = '\0', \
+	     next = strchr(next, ' '); \
+	     strlen(word); \
+	     next = next ? &next[strspn(next, " ")] : "", \
+	     strncpy(word, next, sizeof(word)), \
+	     word[strcspn(word, " ")] = '\0', \
+	     word[sizeof(word) - 1] = '\0', \
+	     next = strchr(next, ' '))
+
+/* Return NUL instead of NULL if undefined */
+#define safe_getenv(s) (getenv(s) ? : "")
+
+/* Print directly to the console */
+#define cprintf(fmt, args...) do { \
+	FILE *fp = fopen("/dev/console", "w"); \
+	if (fp) { \
+		fprintf(fp, fmt, ## args); \
+		fclose(fp); \
+	} \
+} while (0)
+
+/* Debug print */
+#ifdef DEBUG
+#define dprintf(fmt, args...) cprintf("%s: " fmt, __FUNCTION__, ## args)
+#else
+#define dprintf(fmt, args...)
+#endif
+
+#ifdef vxworks
+
+#include <inetLib.h>
+#define inet_aton(a, n) ((inet_aton((a), (n)) == ERROR) ? 0 : 1)
+#define inet_ntoa(n) ({ char a[INET_ADDR_LEN]; inet_ntoa_b ((n), a); a; })
+
+#include <typedefs.h>
+#include <bcmutils.h>
+#define ether_atoe(a, e) bcm_ether_atoe((a), (e))
+#define ether_etoa(e, a) bcm_ether_ntoa((e), (a))
+
+/* These declarations are not available where you would expect them */
+extern int vsnprintf (char *, size_t, const char *, va_list);
+extern int snprintf(char *str, size_t count, const char *fmt, ...);
+extern char *strdup(const char *);
+extern char *strsep(char **stringp, char *delim);
+extern int strcasecmp(const char *s1, const char *s2); 
+extern int strncasecmp(const char *s1, const char *s2, size_t n); 
+
+/* Neither are socket() and connect() */
+#include <sockLib.h>
+
+#ifdef DEBUG
+#undef dprintf
+#define dprintf printf
+#endif
+#endif
+
+#endif /* _shutils_h_ */
diff --git a/openwrt/target/linux/package/base-files/include/typedefs.h b/openwrt/target/linux/package/base-files/include/typedefs.h
new file mode 100644
index 0000000000..6b0c25e042
--- /dev/null
+++ b/openwrt/target/linux/package/base-files/include/typedefs.h
@@ -0,0 +1,293 @@
+/*
+ * 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 _TYPEDEFS_H_
+#define _TYPEDEFS_H_
+
+
+/* Define 'SITE_TYPEDEFS' in the compile to include a site specific
+ * typedef file "site_typedefs.h".
+ *
+ * If 'SITE_TYPEDEFS' is not defined, then the "Inferred Typedefs"
+ * section of this file makes inferences about the compile environment
+ * based on defined symbols and possibly compiler pragmas.
+ *
+ * Following these two sections is the "Default Typedefs"
+ * section. This section is only prcessed if 'USE_TYPEDEF_DEFAULTS' is
+ * defined. This section has a default set of typedefs and a few
+ * proprocessor symbols (TRUE, FALSE, NULL, ...).
+ */
+
+#ifdef SITE_TYPEDEFS
+
+/*******************************************************************************
+ * Site Specific Typedefs
+ *******************************************************************************/
+
+#include "site_typedefs.h"
+
+#else
+
+/*******************************************************************************
+ * Inferred Typedefs
+ *******************************************************************************/
+
+/* Infer the compile environment based on preprocessor symbols and pramas.
+ * Override type definitions as needed, and include configuration dependent
+ * header files to define types.
+ */
+
+#ifdef __cplusplus
+
+#define TYPEDEF_BOOL
+#ifndef FALSE
+#define FALSE	false
+#endif
+#ifndef TRUE
+#define TRUE	true
+#endif
+
+#else	/* ! __cplusplus */
+
+/* for Windows build, define bool as a uchar instead of the default int */
+#if defined(_WIN32)
+
+#define TYPEDEF_BOOL
+typedef	unsigned char	bool;
+
+#endif /* _WIN32 */
+
+#endif	/* ! __cplusplus */
+
+#ifdef _MSC_VER	    /* Microsoft C */
+#define TYPEDEF_INT64
+#define TYPEDEF_UINT64
+typedef signed __int64	int64;
+typedef unsigned __int64 uint64;
+#endif
+
+#if defined(MACOSX) && defined(KERNEL)
+#define TYPEDEF_BOOL
+#endif
+
+
+#if defined(linux)
+#define TYPEDEF_UINT
+#define TYPEDEF_USHORT
+#define TYPEDEF_ULONG
+#endif
+
+#if !defined(linux) && !defined(_WIN32) && !defined(PMON) && !defined(_CFE_)
+#define TYPEDEF_UINT
+#define TYPEDEF_USHORT
+#endif
+
+
+/* Do not support the (u)int64 types with strict ansi for GNU C */
+#if defined(__GNUC__) && defined(__STRICT_ANSI__)
+#define TYPEDEF_INT64
+#define TYPEDEF_UINT64
+#endif
+
+/* ICL accepts unsigned 64 bit type only, and complains in ANSI mode
+ * for singned or unsigned */
+#if defined(__ICL)
+
+#define TYPEDEF_INT64
+
+#if defined(__STDC__)
+#define TYPEDEF_UINT64
+#endif
+
+#endif /* __ICL */
+
+
+#if !defined(_WIN32) && !defined(PMON) && !defined(_CFE_)
+
+/* pick up ushort & uint from standard types.h */
+#if defined(linux) && defined(__KERNEL__)
+
+#include <linux/types.h>	/* sys/types.h and linux/types.h are oil and water */
+
+#else
+
+#include <sys/types.h>	
+
+#endif
+
+#endif /* !_WIN32 && !PMON && !_CFE_ */
+
+#if defined(MACOSX) && defined(KERNEL)
+#include <IOKit/IOTypes.h>
+#endif
+
+
+/* use the default typedefs in the next section of this file */
+#define USE_TYPEDEF_DEFAULTS
+
+#endif /* SITE_TYPEDEFS */
+
+
+/*******************************************************************************
+ * Default Typedefs
+ *******************************************************************************/
+
+#ifdef USE_TYPEDEF_DEFAULTS
+#undef USE_TYPEDEF_DEFAULTS
+
+#ifndef TYPEDEF_BOOL
+typedef	int	bool;
+#endif
+
+/*----------------------- define uchar, ushort, uint, ulong ----------------*/
+
+#ifndef TYPEDEF_UCHAR
+typedef unsigned char	uchar;
+#endif
+
+#ifndef TYPEDEF_USHORT
+typedef unsigned short	ushort;
+#endif
+
+#ifndef TYPEDEF_UINT
+typedef unsigned int	uint;
+#endif
+
+#ifndef TYPEDEF_ULONG
+typedef unsigned long	ulong;
+#endif
+
+/*----------------------- define [u]int8/16/32/64 --------------------------*/
+
+#ifndef TYPEDEF_UINT8
+typedef unsigned char	uint8;
+#endif
+
+#ifndef TYPEDEF_UINT16
+typedef unsigned short	uint16;
+#endif
+
+#ifndef TYPEDEF_UINT32
+typedef unsigned int	uint32;
+#endif
+
+#ifndef TYPEDEF_UINT64
+typedef unsigned long long uint64;
+#endif
+
+#ifndef TYPEDEF_INT8
+typedef signed char	int8;
+#endif
+
+#ifndef TYPEDEF_INT16
+typedef signed short	int16;
+#endif
+
+#ifndef TYPEDEF_INT32
+typedef signed int	int32;
+#endif
+
+#ifndef TYPEDEF_INT64
+typedef signed long long int64;
+#endif
+
+/*----------------------- define float32/64, float_t -----------------------*/
+
+#ifndef TYPEDEF_FLOAT32
+typedef float		float32;
+#endif
+
+#ifndef TYPEDEF_FLOAT64
+typedef double		float64;
+#endif
+
+/*
+ * abstracted floating point type allows for compile time selection of
+ * single or double precision arithmetic.  Compiling with -DFLOAT32
+ * selects single precision; the default is double precision.
+ */
+
+#ifndef TYPEDEF_FLOAT_T
+
+#if defined(FLOAT32)
+typedef float32 float_t;
+#else /* default to double precision floating point */
+typedef float64 float_t;
+#endif
+
+#endif /* TYPEDEF_FLOAT_T */
+
+/*----------------------- define macro values -----------------------------*/
+
+#ifndef FALSE
+#define FALSE	0
+#endif
+
+#ifndef TRUE
+#define TRUE	1
+#endif
+
+#ifndef NULL
+#define	NULL	0
+#endif
+
+#ifndef OFF
+#define	OFF	0
+#endif
+
+#ifndef ON
+#define	ON	1
+#endif
+
+/*----------------------- define PTRSZ, INLINE ----------------------------*/
+
+#ifndef PTRSZ
+#define	PTRSZ	sizeof (char*)
+#endif
+
+#ifndef INLINE
+
+#ifdef _MSC_VER
+
+#define INLINE __inline
+
+#elif __GNUC__
+
+#define INLINE __inline__
+
+#else
+
+#define INLINE
+
+#endif /* _MSC_VER */
+
+#endif /* INLINE */
+
+#undef TYPEDEF_BOOL
+#undef TYPEDEF_UCHAR
+#undef TYPEDEF_USHORT
+#undef TYPEDEF_UINT
+#undef TYPEDEF_ULONG
+#undef TYPEDEF_UINT8
+#undef TYPEDEF_UINT16
+#undef TYPEDEF_UINT32
+#undef TYPEDEF_UINT64
+#undef TYPEDEF_INT8
+#undef TYPEDEF_INT16
+#undef TYPEDEF_INT32
+#undef TYPEDEF_INT64
+#undef TYPEDEF_FLOAT32
+#undef TYPEDEF_FLOAT64
+#undef TYPEDEF_FLOAT_T
+
+#endif /* USE_TYPEDEF_DEFAULTS */
+
+#endif /* _TYPEDEFS_H_ */
diff --git a/openwrt/target/linux/package/base-files/include/utils.h b/openwrt/target/linux/package/base-files/include/utils.h
new file mode 100644
index 0000000000..b8d1cdb7bf
--- /dev/null
+++ b/openwrt/target/linux/package/base-files/include/utils.h
@@ -0,0 +1,131 @@
+#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/openwrt/target/linux/package/base-files/include/wlcompat.h b/openwrt/target/linux/package/base-files/include/wlcompat.h
new file mode 100644
index 0000000000..a4fc13439d
--- /dev/null
+++ b/openwrt/target/linux/package/base-files/include/wlcompat.h
@@ -0,0 +1,36 @@
+/*
+ * 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/openwrt/target/linux/package/base-files/include/wlioctl.h b/openwrt/target/linux/package/base-files/include/wlioctl.h
new file mode 100644
index 0000000000..d5ef11f9ed
--- /dev/null
+++ b/openwrt/target/linux/package/base-files/include/wlioctl.h
@@ -0,0 +1,1094 @@
+/*
+ * 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
+
+/* 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_ */
diff --git a/openwrt/target/linux/package/base-files/include/wlutils.h b/openwrt/target/linux/package/base-files/include/wlutils.h
new file mode 100644
index 0000000000..07e2536ca3
--- /dev/null
+++ b/openwrt/target/linux/package/base-files/include/wlutils.h
@@ -0,0 +1,59 @@
+/*
+ * Broadcom wireless network adapter utility functions
+ *
+ * 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 _wlutils_h_
+#define _wlutils_h_
+
+#include <typedefs.h>
+#include <wlioctl.h>
+
+/*
+ * Pass a wlioctl request to the specified interface.
+ * @param	name	interface name
+ * @param	cmd	WLC_GET_MAGIC <= cmd < WLC_LAST
+ * @param	buf	buffer for passing in and/or receiving data
+ * @param	len	length of buf
+ * @return	>= 0 if successful or < 0 otherwise
+ */
+extern int wl_ioctl(char *name, int cmd, void *buf, int len);
+
+/*
+ * Get the MAC (hardware) address of the specified interface.
+ * @param	name	interface name
+ * @param	hwaddr	6-byte buffer for receiving address
+ * @return	>= 0 if successful or < 0 otherwise
+ */
+extern int wl_hwaddr(char *name, unsigned char *hwaddr);
+
+/*
+ * Probe the specified interface.
+ * @param	name	interface name
+ * @return	>= 0 if a Broadcom wireless device or < 0 otherwise
+ */
+extern int wl_probe(char *name);
+
+/*
+ * Set/Get named variable.
+ * @param	name	interface name
+ * @param	var	variable name
+ * @param	val	variable value/buffer
+ * @param	len	variable value/buffer length
+ * @return	success == 0, failure != 0
+ */
+extern int wl_set_val(char *name, char *var, void *val, int len);
+extern int wl_get_val(char *name, char *var, void *val, int len);
+extern int wl_set_int(char *name, char *var, int val);
+extern int wl_get_int(char *name, char *var, int *val);
+
+#endif /* _wlutils_h_ */
diff --git a/openwrt/target/linux/package/base-files/ipkg/base-files-arch.control b/openwrt/target/linux/package/base-files/ipkg/base-files-arch.control
new file mode 100644
index 0000000000..5396f6817a
--- /dev/null
+++ b/openwrt/target/linux/package/base-files/ipkg/base-files-arch.control
@@ -0,0 +1,6 @@
+Package: base-files-arch
+Priority: optional
+Section: sys
+Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
+Source: buildroot internal
+Description: Board/architecture specific files 
diff --git a/openwrt/target/linux/package/base-files/jffs2root.c b/openwrt/target/linux/package/base-files/jffs2root.c
new file mode 100644
index 0000000000..14662fc945
--- /dev/null
+++ b/openwrt/target/linux/package/base-files/jffs2root.c
@@ -0,0 +1,133 @@
+/*
+ * jffs2root.c
+ *
+ * Copyright (C) 2005 Mike Baker 
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <stddef.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/mman.h>
+#include <sys/stat.h>
+#include <string.h>
+
+#include <sys/ioctl.h>
+#include <linux/mtd/mtd.h>
+
+#define FILENAME "/dev/mtdblock/1"
+
+struct trx_header {
+	unsigned magic;		/* "HDR0" */
+	unsigned len;		/* Length of file including header */
+	unsigned crc32;		/* 32-bit CRC from flag_version to end of file */
+	unsigned flag_version;	/* 0:15 flags, 16:31 version */
+	unsigned offsets[3];	/* Offsets of partitions from start of header */
+};
+
+unsigned long *crc32;
+
+void init_crc32()
+{
+	unsigned long crc;
+	unsigned long poly = 0xEDB88320L;
+	int n, bit;
+	if ((crc32 = (unsigned long *) malloc(256 * sizeof(unsigned long))) == (void *)-1) {
+		perror("malloc");
+		exit(1);
+	}
+	for (n = 0; n < 256; n++) {
+	crc = (unsigned long) n;
+	for (bit = 0; bit < 8; bit++)
+		crc = (crc & 1) ? (poly ^ (crc >> 1)) : (crc >> 1);
+	crc32[n] = crc;
+	}
+}
+
+unsigned int crc32buf(char *buf, size_t len)
+{
+	unsigned int crc = 0xFFFFFFFF;
+	for (; len; len--, buf++)
+	crc = crc32[(crc ^ *buf) & 0xff] ^ (crc >> 8);
+	return crc;
+}
+
+int main(int argc, char **argv)
+{
+	int fd;
+	struct mtd_info_user mtdInfo;
+	unsigned long len;
+	struct trx_header *ptr;
+	char *buf;
+	
+	if (((fd = open(FILENAME, O_RDWR))	< 0)
+			|| ((len = lseek(fd, 0, SEEK_END)) < 0)
+			|| ((ptr = (struct trx_header *) mmap(0, len, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0)) == (void *) (-1))
+			|| (ptr->magic != 0x30524448)) {
+		printf("Error reading trx info\n");
+		exit(-1);
+	}
+	close (fd);
+
+	if (((fd = open("/dev/mtd/1", O_RDWR))	< 0)
+			|| (ioctl(fd, MEMGETINFO, &mtdInfo))) {
+		fprintf(stderr, "Could not get MTD device info from %s\n", FILENAME);
+		close(fd);
+		exit(1);
+	}
+	close(fd);
+
+	if (argc > 1 && !strcmp(argv[1],"--move")) {
+		if (ptr->offsets[2] >= ptr->len) {
+			printf("Partition already moved outside trx\n");
+		} else {
+			init_crc32();
+			ptr->offsets[2] +=	(mtdInfo.erasesize - 1);
+			ptr->offsets[2] &= ~(mtdInfo.erasesize - 1);
+			ptr->len = ptr->offsets[2];
+			ptr->crc32 = crc32buf((void *) &(ptr->flag_version), ptr->len - offsetof(struct trx_header, flag_version));
+			msync(ptr,sizeof(struct trx_header),MS_SYNC|MS_INVALIDATE);
+			printf("Partition moved; please reboot\n");
+		}
+	} else if (argc > 1 && !strcmp(argv[1], "--clean")) {
+		buf = (char *) ptr;
+		if (buf[ptr->offsets[1] - 1] == 0) {
+			init_crc32();
+			buf[ptr->offsets[1] - 1] = 1;
+			ptr->crc32 = crc32buf((void *) &(ptr->flag_version), ptr->len - offsetof(struct trx_header, flag_version));
+			msync(ptr,sizeof(struct trx_header),MS_SYNC|MS_INVALIDATE);
+			printf("Partition marked as clean\n");
+		}
+	} else {
+		int x;
+		printf(" erase: 0x%08x\n",mtdInfo.erasesize);
+		printf("=== trx ===\n");
+		printf("mapped: 0x%08x\n", (unsigned)ptr);
+		printf(" magic: 0x%08x\n", ptr->magic);
+		printf("	 len: 0x%08x\n", ptr->len);
+		printf("	 crc: 0x%08x\n", ptr->crc32);
+		for (x = 0; x < 3; x++)
+			printf(" offset[%d]: 0x%08x\n", x, ptr->offsets[x]);
+	}
+
+	munmap((void *) ptr, len);
+	return 0;
+}
diff --git a/openwrt/target/linux/package/openwrt/Makefile b/openwrt/target/linux/package/openwrt/Makefile
deleted file mode 100644
index 994ce53388..0000000000
--- a/openwrt/target/linux/package/openwrt/Makefile
+++ /dev/null
@@ -1,53 +0,0 @@
-# $Id$
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME := base-files-arch
-PKG_RELEASE := 2
-PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
-
-include $(TOPDIR)/package/rules.mk
-
-IDIR_OPENWRT:=$(PKG_BUILD_DIR)/ipkg
-IPKG_OPENWRT:=$(PACKAGE_DIR)/base-files-$(BOARD)-$(KERNEL)_$(PKG_RELEASE)_$(ARCH).ipk
-
-$(PKG_BUILD_DIR)/.prepared:
-	mkdir -p $(PKG_BUILD_DIR)
-	touch $@
-
-ifeq ($(BOARD),brcm)
-$(PKG_BUILD_DIR)/jffs2root: jffs2root.c
-	$(TARGET_CC) -o $@ $<
-
-$(PKG_BUILD_DIR)/.built: $(PKG_BUILD_DIR)/jffs2root
-
-$(IDIR_OPENWRT)/sbin/jffs2root: $(PKG_BUILD_DIR)/jffs2root
-	mkdir -p $(IDIR_OPENWRT)/sbin
-	cp $(PKG_BUILD_DIR)/jffs2root $(IDIR_OPENWRT)/sbin
-
-$(IPKG_OPENWRT): $(IDIR_OPENWRT)/sbin/jffs2root
-endif
-
-$(PKG_BUILD_DIR)/.built:
-	touch $@
-	
-$(IDIR_OPENWRT):
-	$(SCRIPT_DIR)/make-ipkg-dir.sh $(IDIR_OPENWRT) ipkg/base-files-arch.control $(PKG_RELEASE) $(ARCH)
-	$(SED) s,base-files-arch,base-files-$(BOARD)-$(KERNEL),g $(IDIR_OPENWRT)/CONTROL/control
-
-$(IPKG_OPENWRT): $(IDIR_OPENWRT)
-	[ -d files/$(BOARD)-$(KERNEL) ] && cp -fpR files/$(BOARD)-$(KERNEL)/* $(IDIR_OPENWRT)/
-	find $(IDIR_OPENWRT) -name CVS | xargs rm -rf
-	find $(IDIR_OPENWRT) -name .svn | xargs rm -rf
-	$(RSTRIP) $(IDIR_OPENWRT)
-	$(IPKG_BUILD) $(IDIR_OPENWRT) $(PACKAGE_DIR)
-
-install-targets: compile openwrt-install
-
-openwrt-install:
-	$(IPKG) install $(IPKG_OPENWRT)
-
-compile-targets: install-dev $(IPKG_OPENWRT)
-install-dev:
-	mkdir -p $(STAGING_DIR)/usr/include
-	cp -fpR ./include/[a-z]* $(STAGING_DIR)/usr/include/
diff --git a/openwrt/target/linux/package/openwrt/files/ar7-2.4/etc/config/network b/openwrt/target/linux/package/openwrt/files/ar7-2.4/etc/config/network
deleted file mode 100644
index 9487a7426f..0000000000
--- a/openwrt/target/linux/package/openwrt/files/ar7-2.4/etc/config/network
+++ /dev/null
@@ -1,31 +0,0 @@
-# Network configuration file
-# Uncomment the following statements to change the network configuration
-
-## LAN configuration
-# lan_ifname="br0"
-# lan_proto="static"
-# lan_ipaddr="192.168.1.1"
-# lan_netmask="255.255.255.0"
-# lan_gateway=""
-# lan_dns=""
-
-## WAN configuration (PPPoE)
-# wan_proto=pppoe
-# wan_ifname=ppp0
-# pppoe_atm=1
-# pppoe_ifname=nas0
-# atm_vpi=8
-# atm_vci=35
-# ppp_username=my_username
-# ppp_passwd=my_passwd
-# ppp_mtu=1492
-
-## WAN configuration (PPPoA)
-# wan_proto=pppoa
-# wan_ifname=ppp0
-# atm_vpi=8
-# atm_vci=35
-# ppp_username=my_username
-# ppp_passwd=my_passwd
-# ppp_mtu=1500
-
diff --git a/openwrt/target/linux/package/openwrt/files/ar7-2.4/etc/network.overrides b/openwrt/target/linux/package/openwrt/files/ar7-2.4/etc/network.overrides
deleted file mode 100644
index 9aa74aa934..0000000000
--- a/openwrt/target/linux/package/openwrt/files/ar7-2.4/etc/network.overrides
+++ /dev/null
@@ -1,28 +0,0 @@
-# NVRAM overrides
-#
-# This file handles the NVRAM quirks of various hardware.
-# THIS FILE IS NOT A REPLACEMENT FOR NVRAM
-
-# Load sysconf defaults
-[ -f /etc/sysconf ] && . /etc/sysconf
-
-DEFAULT_lan_proto="static"
-DEFAULT_lan_ifname="br0"
-DEFAULT_lan_ifnames="eth0"
-DEFAULT_lan_ipaddr=${BR2_SYSCONF_FAILSAFE_IP:-"192.168.1.1"}
-DEFAULT_lan_netmask=${BR2_SYSCONF_FAILSAFE_NETMASK:-"255.255.255.0"}
-DEFAULT_lan_hwaddr=`echo $(strings /dev/mtdblock/3 | grep -A1 maca | grep :)`
-DEFAULT_lan_hwaddr=${DEFAULT_lan_hwaddr##* }
-DEFAULT_lan_hwaddr=${DEFAULT_lan_hwaddr:-${BR2_SYSCONF_FAILSAFE_MAC:-"00:0B:AD:0A:DD:00"}}
-
-# failsafe if reset is held
-[ "$FAILSAFE" = "true" ] && {
-  echo "### YOU ARE IN FAILSAFE MODE ####"
-  lan_ifname=${DEFAULT_lan_proto}
-  lan_ifnames=${FAILSAFE_ifnames:-${DEFAULT_lan_ifnames}}
-  lan_ipaddr=$DEFAULT_lan_ipaddr
-  lan_netmask=$DEFAULT_lan_netmask
-  lan_hwaddr=$DEFAULT_lan_hwaddr
-  wan_ifname="none"
-  wifi_ifname="none"
-}
diff --git a/openwrt/target/linux/package/openwrt/files/brcm-2.4/etc/config/network b/openwrt/target/linux/package/openwrt/files/brcm-2.4/etc/config/network
deleted file mode 100644
index ee8e02043a..0000000000
--- a/openwrt/target/linux/package/openwrt/files/brcm-2.4/etc/config/network
+++ /dev/null
@@ -1,18 +0,0 @@
-# Network configuration file
-# Uncomment the following statements to override the default or nvram config
-
-## LAN configuration
-# lan_ifname="br0"
-# lan_proto="static"
-# lan_ipaddr="192.168.1.1"
-# lan_netmask="255.255.255.0"
-# lan_gateway=""
-# lan_dns=""
-
-## WAN configuration (PPPoE)
-# wan_proto=pppoe
-# wan_ifname=ppp0
-# pppoe_ifname=vlan1
-# ppp_username=my_username
-# ppp_passwd=my_passwd
-# ppp_mtu=1492
diff --git a/openwrt/target/linux/package/openwrt/files/brcm-2.4/etc/init.d/S05nvram b/openwrt/target/linux/package/openwrt/files/brcm-2.4/etc/init.d/S05nvram
deleted file mode 100755
index 0d1300b964..0000000000
--- a/openwrt/target/linux/package/openwrt/files/brcm-2.4/etc/init.d/S05nvram
+++ /dev/null
@@ -1,102 +0,0 @@
-# NVRAM setup
-#
-# This file handles the NVRAM quirks of various hardware.
-
-. /etc/network.overrides
-alias debug=${DEBUG:-:}
-
-remap () {
-  for type in lan wifi wan pppoe
-  do
-    for s in '' s
-    do
-      eval nvram set ${type}_ifname$s=\"$(nvram get ${type}_ifname$s|sed s/$1/$2/g)\" 
-    done
-  done
-}
-
-nvram_default() {
-  [ -z "$(nvram get $1)" ] && nvram set "$1=$2"
-}
-
-# linksys bug; remove when not using static configuration for lan
-nvram set lan_proto="static"
-
-# hacks for wrt54g 1.x hardware
-[  "$(nvram get boardnum)"  = "42" \
--a "$(nvram get boardtype)" = "bcm94710dev" ] && {
-  debug "### wrt54g 1.x hack ###"
-  nvram set vlan1hwname="et0"
-  nvram set vlan2hwname="et0"
-  remap eth0 vlan2
-  remap eth1 vlan1
-}
-
-# hacks for asus wl-500g deluxe
-[  "$(nvram get boardtype)" = "bcm95365r" \
--a "$(nvram get boardnum)" = "45" ] && {
-  debug "### wl-500g deluxe hacks ###"
-  nvram set vlan0hwname="et0"
-  nvram set vlan1hwname="et0"
-  remap eth0.1 vlan0
-  remap eth0 vlan1
-
-  # set up the vlan*ports variables for the asus wl-500g deluxe
-  # if they don't already exist 
-  nvram_default vlan0ports "1 2 3 4 5*"
-  nvram_default vlan1ports "0 5"
-}
-
-# hacks for asus wl-300g
-[ "$(nvram get productid)" = "WL300g" ] && {
-  debug "### wl-300g hacks ###"
-  nvram set lan_ifnames="eth0 eth2"
-  nvram set wan_ifname="none"
-}
-
-# hacks for asus wl-hdd
-[ "$(nvram get productid)" = "WLHDD" ] && {
-  debug "### wl-hdd hacks ###"
-  nvram set lan_ifnames="eth1 eth2"
-  nvram set wan_ifname="none"
-}
-
-# hacks for wap54g hardware
-[  "$(nvram get boardnum)" = "2" \
--o "$(nvram get boardnum)" = "1024" ] && {
-  debug "### wap54g hack ###"
-  nvram set wan_ifname="none"
-}
-
-# hacks for buffalo wla2-g54l
-[  "$(nvram get boardnum)" = "00" \
--a "$(nvram get product_name)" = "Product_name" \
--o "$(nvram get product_name)" = "WLA2-G54L" ] && {
-  debug "### wla2-g54l hacks ###"
-  nvram set wan_ifname="none"
-  nvram set lan_ifnames="vlan0"
-}
-
-# needed at least for wrt54gs v1.1 and wrt54g v2.0, v2.2
-[ \! -z "$(nvram get boardrev)" ] && {
-  nvram set wl0id=0x4320
-}
-
-# defaults
-nvram_default lan_ifname "br0"
-nvram_default lan_ifnames "$FAILSAFE_ifnames"
-
-nvram_default wan_ifname "vlan1"
-nvram_default wan_proto "dhcp"
-
-nvram_default wl0_ssid OpenWrt
-nvram_default wl0_mode ap
-nvram_default wl0_infra 1
-nvram_default wl0_radio 1
-
-[ "$(nvram get il0macaddr)" = "00:90:4c:5f:00:2a" ] && {
-  # if default wifi mac, set two higher than the lan mac
-  nvram set il0macaddr=$(nvram get et0macaddr|
-  awk '{OFS=FS=":";for(x=7,y=2;--x;){$x=sprintf("%02x",(y+="0x"$x)%256);y/=256}print}')
-}
-
diff --git a/openwrt/target/linux/package/openwrt/files/brcm-2.4/etc/network.overrides b/openwrt/target/linux/package/openwrt/files/brcm-2.4/etc/network.overrides
deleted file mode 100644
index dc3abcaebd..0000000000
--- a/openwrt/target/linux/package/openwrt/files/brcm-2.4/etc/network.overrides
+++ /dev/null
@@ -1,41 +0,0 @@
-# NVRAM overrides
-#
-# This file handles the NVRAM quirks of various hardware.
-# THIS FILE IS NOT A REPLACEMENT FOR NVRAM
-
-# Load sysconf defaults
-[ -f /etc/sysconf ] && . /etc/sysconf
-
-# hacks for wrt54g 1.x hardware
-[  "$(nvram get boardnum)"  = "42" \
--a "$(nvram get boardtype)" = "bcm94710dev" ] && FAILSAFE_ifnames="vlan0 vlan2 eth2"
-
-# hacks for asus wl-500g deluxe
-[  "$(nvram get boardtype)" = "bcm95365r" \
--a "$(nvram get boardnum)" = "45" ] && FAILSAFE_ifnames="vlan0 eth1"
-
-# hacks for wap54g hardware
-[  "$(nvram get boardnum)" = "2" \
--o "$(nvram get boardnum)" = "1024" ] && FAILSAFE_ifnames="eth0 eth1"
-
-# hack for asus wl-500g hardware
-[ "$(nvram get boardnum)" = "asusX" \
--a "$(nvram get boardtype)" = "bcm94710dev" ] && FAILSAFE_ifnames="eth0 eth1 eth2"
-  
-FAILSAFE_ifnames=${FAILSAFE_ifnames:-"vlan0 eth1 eth2"}
-
-DEFAULT_lan_ipaddr=${BR2_SYSCONF_FAILSAFE_IP:-"192.168.1.1"}
-DEFAULT_lan_netmask=${BR2_SYSCONF_FAILSAFE_NETMASK:-"255.255.255.0"}
-DEFAULT_lan_hwaddr=${BR2_SYSCONF_FAILSAFE_MAC:-"00:0B:AD:0A:DD:00"}
-
-# failsafe if reset is held
-[ "$FAILSAFE" = "true" ] && {
-  echo "### YOU ARE IN FAILSAFE MODE ####"
-  NVRAM_lan_ifname="br0"
-  NVRAM_lan_ifnames=$FAILSAFE_ifnames
-  NVRAM_lan_ipaddr=DEFAULT_lan_ipaddr
-  NVRAM_lan_netmask=DEFAULT_lan_netmask
-  NVRAM_lan_hwaddr=DEFAULT_lan_hwaddr
-  NVRAM_wan_ifname="none"
-  NVRAM_wifi_ifname="none"
-}
diff --git a/openwrt/target/linux/package/openwrt/files/brcm-2.6/etc/config/network b/openwrt/target/linux/package/openwrt/files/brcm-2.6/etc/config/network
deleted file mode 100644
index 9487a7426f..0000000000
--- a/openwrt/target/linux/package/openwrt/files/brcm-2.6/etc/config/network
+++ /dev/null
@@ -1,31 +0,0 @@
-# Network configuration file
-# Uncomment the following statements to change the network configuration
-
-## LAN configuration
-# lan_ifname="br0"
-# lan_proto="static"
-# lan_ipaddr="192.168.1.1"
-# lan_netmask="255.255.255.0"
-# lan_gateway=""
-# lan_dns=""
-
-## WAN configuration (PPPoE)
-# wan_proto=pppoe
-# wan_ifname=ppp0
-# pppoe_atm=1
-# pppoe_ifname=nas0
-# atm_vpi=8
-# atm_vci=35
-# ppp_username=my_username
-# ppp_passwd=my_passwd
-# ppp_mtu=1492
-
-## WAN configuration (PPPoA)
-# wan_proto=pppoa
-# wan_ifname=ppp0
-# atm_vpi=8
-# atm_vci=35
-# ppp_username=my_username
-# ppp_passwd=my_passwd
-# ppp_mtu=1500
-
diff --git a/openwrt/target/linux/package/openwrt/files/brcm-2.6/etc/inittab b/openwrt/target/linux/package/openwrt/files/brcm-2.6/etc/inittab
deleted file mode 100644
index 3cbbe5af27..0000000000
--- a/openwrt/target/linux/package/openwrt/files/brcm-2.6/etc/inittab
+++ /dev/null
@@ -1,4 +0,0 @@
-::sysinit:/etc/init.d/rcS
-::shutdown:/sbin/halt
-tts/0::askfirst:/bin/ash --login
-tts/1::askfirst:/bin/ash --login
diff --git a/openwrt/target/linux/package/openwrt/files/brcm-2.6/etc/network.overrides b/openwrt/target/linux/package/openwrt/files/brcm-2.6/etc/network.overrides
deleted file mode 100644
index ded748b260..0000000000
--- a/openwrt/target/linux/package/openwrt/files/brcm-2.6/etc/network.overrides
+++ /dev/null
@@ -1,31 +0,0 @@
-# NVRAM overrides
-#
-# This file handles the NVRAM quirks of various hardware.
-# THIS FILE IS NOT A REPLACEMENT FOR NVRAM
-
-# Load sysconf defaults
-[ -f /etc/sysconf ] && . /etc/sysconf
-
-DEFAULT_lan_proto="static"
-DEFAULT_lan_ifname="br0"
-DEFAULT_lan_ifnames="vlan0 ath0"
-DEFAULT_lan_ipaddr=${BR2_SYSCONF_FAILSAFE_IP:-"192.168.1.1"}
-DEFAULT_lan_netmask=${BR2_SYSCONF_FAILSAFE_NETMASK:-"255.255.255.0"}
-DEFAULT_lan_hwaddr=${DEFAULT_lan_hwaddr:-${BR2_SYSCONF_FAILSAFE_MAC:-"00:0B:AD:0A:DD:00"}}
-DEFAULT_vlan0hwname="et0"
-DEFAULT_vlan1hwname="et0"
-DEFAULT_et0macaddr=$(ifconfig eth0| awk '/eth0/ {print $5 }')
-DEFAULT_wan_proto="dhcp"
-DEFAULT_wan_ifname="vlan1"
-
-# failsafe if reset is held
-[ "$FAILSAFE" = "true" ] && {
-  echo "### YOU ARE IN FAILSAFE MODE ####"
-  lan_ifname=${DEFAULT_lan_proto}
-  lan_ifnames=${FAILSAFE_ifnames:-${DEFAULT_lan_ifnames}}
-  lan_ipaddr=$DEFAULT_lan_ipaddr
-  lan_netmask=$DEFAULT_lan_netmask
-  lan_hwaddr=$DEFAULT_lan_hwaddr
-  wan_ifname="none"
-  wifi_ifname="none"
-}
diff --git a/openwrt/target/linux/package/openwrt/files/soekris-2.4/etc/config/network b/openwrt/target/linux/package/openwrt/files/soekris-2.4/etc/config/network
deleted file mode 100644
index fd0f557c04..0000000000
--- a/openwrt/target/linux/package/openwrt/files/soekris-2.4/etc/config/network
+++ /dev/null
@@ -1,12 +0,0 @@
-# Network configuration file
-
-## LAN configuration
-lan_ifname="br0"
-lan_ifnames="eth1 eth2"
-lan_proto="static"
-lan_ipaddr="192.168.1.1"
-lan_netmask="255.255.255.0"
-
-## WAN configuration
-wan_ifname="eth0"
-wan_proto="dhcp"
diff --git a/openwrt/target/linux/package/openwrt/files/soekris-2.4/etc/network.overrides b/openwrt/target/linux/package/openwrt/files/soekris-2.4/etc/network.overrides
deleted file mode 100644
index e857d5b5f1..0000000000
--- a/openwrt/target/linux/package/openwrt/files/soekris-2.4/etc/network.overrides
+++ /dev/null
@@ -1,26 +0,0 @@
-# NVRAM overrides
-#
-# This file handles the NVRAM quirks of various hardware.
-# THIS FILE IS NOT A REPLACEMENT FOR NVRAM
-
-# Load sysconf defaults
-[ -f /etc/sysconf ] && . /etc/sysconf
-
-DEFAULT_lan_proto="static"
-DEFAULT_lan_ifname="br0"
-DEFAULT_lan_ifnames="eth0"
-DEFAULT_lan_ipaddr=${BR2_SYSCONF_FAILSAFE_IP:-"192.168.1.1"}
-DEFAULT_lan_netmask=${BR2_SYSCONF_FAILSAFE_NETMASK:-"255.255.255.0"}
-DEFAULT_lan_hwaddr=${BR2_SYSCONF_FAILSAFE_MAC:-"00:0B:AD:0A:DD:00"}
-
-# failsafe if reset is held
-[ "$FAILSAFE" = "true" ] && {
-  echo "### YOU ARE IN FAILSAFE MODE ####"
-  lan_ifname=${DEFAULT_lan_proto}
-  lan_ifnames=${FAILSAFE_ifnames:-${DEFAULT_lan_ifnames}}
-  lan_ipaddr=$DEFAULT_lan_ipaddr
-  lan_netmask=$DEFAULT_lan_netmask
-  lan_hwaddr=$DEFAULT_lan_hwaddr
-  wan_ifname="none"
-  wifi_ifname="none"
-}
diff --git a/openwrt/target/linux/package/openwrt/include/bcmnvram.h b/openwrt/target/linux/package/openwrt/include/bcmnvram.h
deleted file mode 100644
index 3c452634e8..0000000000
--- a/openwrt/target/linux/package/openwrt/include/bcmnvram.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * NVRAM variable manipulation
- *
- * 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 _bcmnvram_h_
-#define _bcmnvram_h_
-
-#ifndef _LANGUAGE_ASSEMBLY
-
-#include <typedefs.h>
-
-struct nvram_header {
-	uint32 magic;
-	uint32 len;
-	uint32 crc_ver_init;	/* 0:7 crc, 8:15 ver, 16:27 init, mem. test 28, 29-31 reserved */
-	uint32 config_refresh;	/* 0:15 config, 16:31 refresh */
-	uint32 config_ncdl;	/* ncdl values for memc */
-};
-
-struct nvram_tuple {
-	char *name;
-	char *value;
-	struct nvram_tuple *next;
-};
-
-/*
- * Initialize NVRAM access. May be unnecessary or undefined on certain
- * platforms.
- */
-extern int nvram_init(void *sbh);
-
-/*
- * Disable NVRAM access. May be unnecessary or undefined on certain
- * platforms.
- */
-extern void nvram_exit(void);
-
-/*
- * Get the value of an NVRAM variable. The pointer returned may be
- * invalid after a set.
- * @param	name	name of variable to get
- * @return	value of variable or NULL if undefined
- */
-extern char * nvram_get(const char *name);
-
-/* 
- * Get the value of an NVRAM variable.
- * @param	name	name of variable to get
- * @return	value of variable or NUL if undefined
- */
-#define nvram_safe_get(name) (nvram_get(name) ? : "")
-
-#define nvram_safe_unset(name) ({ \
-	if(nvram_get(name)) \
-		nvram_unset(name); \
-})
-
-#define nvram_safe_set(name, value) ({ \
-	if(!nvram_get(name) || strcmp(nvram_get(name), value)) \
-		nvram_set(name, value); \
-})
-
-/*
- * Match an NVRAM variable.
- * @param	name	name of variable to match
- * @param	match	value to compare against value of variable
- * @return	TRUE if variable is defined and its value is string equal
- *		to match or FALSE otherwise
- */
-static INLINE int
-nvram_match(char *name, char *match) {
-	const char *value = nvram_get(name);
-	return (value && !strcmp(value, match));
-}
-
-/*
- * Inversely match an NVRAM variable.
- * @param	name	name of variable to match
- * @param	match	value to compare against value of variable
- * @return	TRUE if variable is defined and its value is not string
- *		equal to invmatch or FALSE otherwise
- */
-static INLINE int
-nvram_invmatch(char *name, char *invmatch) {
-	const char *value = nvram_get(name);
-	return (value && strcmp(value, invmatch));
-}
-
-/*
- * Set the value of an NVRAM variable. The name and value strings are
- * copied into private storage. Pointers to previously set values
- * may become invalid. The new value may be immediately
- * retrieved but will not be permanently stored until a commit.
- * @param	name	name of variable to set
- * @param	value	value of variable
- * @return	0 on success and errno on failure
- */
-extern int nvram_set(const char *name, const char *value);
-
-/*
- * Unset an NVRAM variable. Pointers to previously set values
- * remain valid until a set.
- * @param	name	name of variable to unset
- * @return	0 on success and errno on failure
- * NOTE: use nvram_commit to commit this change to flash.
- */
-extern int nvram_unset(const char *name);
-
-/*
- * Commit NVRAM variables to permanent storage. All pointers to values
- * may be invalid after a commit.
- * NVRAM values are undefined after a commit.
- * @return	0 on success and errno on failure
- */
-extern int nvram_commit(void);
-
-/*
- * Get all NVRAM variables (format name=value\0 ... \0\0).
- * @param	buf	buffer to store variables
- * @param	count	size of buffer in bytes
- * @return	0 on success and errno on failure
- */
-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' */
-#define NVRAM_VERSION		1
-#define NVRAM_HEADER_SIZE	20
-#define NVRAM_SPACE		0x8000
-#define FLASH_BASE		0xbfc00000	/* Extif core */
-#define FLASH_MIN		0x00100000	/* Minimum flash size */
-#define FLASH_MAX		0x00400000	/* Maximum flash size with extif */
-
-#endif /* _bcmnvram_h_ */
diff --git a/openwrt/target/linux/package/openwrt/include/bcmutils.h b/openwrt/target/linux/package/openwrt/include/bcmutils.h
deleted file mode 100644
index 05ad41d9d8..0000000000
--- a/openwrt/target/linux/package/openwrt/include/bcmutils.h
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Misc useful os-independent macros and functions.
- *
- * 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	_bcmutils_h_
-#define	_bcmutils_h_
-
-#ifndef MIN
-#define	MIN(a, b)		(((a)<(b))?(a):(b))
-#endif
-
-#ifndef MAX
-#define	MAX(a, b)		(((a)>(b))?(a):(b))
-#endif
-
-#define CEIL(x, y)		(((x) + ((y)-1)) / (y))
-#define	ROUNDUP(x, y)		((((ulong)(x)+((y)-1))/(y))*(y))
-#define	ISALIGNED(a, x)		(((uint)(a) & ((x)-1)) == 0)
-#define	ISPOWEROF2(x)		((((x)-1)&(x))==0)
-#define	OFFSETOF(type, member)	((uint) &((type *)0)->member)
-#define ARRAYSIZE(a)		(sizeof(a)/sizeof(a[0]))
-
-/* bit map related macros */
-#ifndef setbit
-#define	NBBY	8	/* 8 bits per byte */
-#define	setbit(a,i)	((a)[(i)/NBBY] |= 1<<((i)%NBBY))
-#define	clrbit(a,i)	((a)[(i)/NBBY] &= ~(1<<((i)%NBBY)))
-#define	isset(a,i)	((a)[(i)/NBBY] & (1<<((i)%NBBY)))
-#define	isclr(a,i)	(((a)[(i)/NBBY] & (1<<((i)%NBBY))) == 0)
-#endif
-
-#define	NBITS(type)	(sizeof (type) * 8)
-
-#define _BCM_U	0x01	/* upper */
-#define _BCM_L	0x02	/* lower */
-#define _BCM_D	0x04	/* digit */
-#define _BCM_C	0x08	/* cntrl */
-#define _BCM_P	0x10	/* punct */
-#define _BCM_S	0x20	/* white space (space/lf/tab) */
-#define _BCM_X	0x40	/* hex digit */
-#define _BCM_SP	0x80	/* hard space (0x20) */
-
-extern unsigned char bcm_ctype[];
-#define bcm_ismask(x) (bcm_ctype[(int)(unsigned char)(x)])
-
-#define bcm_isalnum(c)	((bcm_ismask(c)&(_BCM_U|_BCM_L|_BCM_D)) != 0)
-#define bcm_isalpha(c)	((bcm_ismask(c)&(_BCM_U|_BCM_L)) != 0)
-#define bcm_iscntrl(c)	((bcm_ismask(c)&(_BCM_C)) != 0)
-#define bcm_isdigit(c)	((bcm_ismask(c)&(_BCM_D)) != 0)
-#define bcm_isgraph(c)	((bcm_ismask(c)&(_BCM_P|_BCM_U|_BCM_L|_BCM_D)) != 0)
-#define bcm_islower(c)	((bcm_ismask(c)&(_BCM_L)) != 0)
-#define bcm_isprint(c)	((bcm_ismask(c)&(_BCM_P|_BCM_U|_BCM_L|_BCM_D|_BCM_SP)) != 0)
-#define bcm_ispunct(c)	((bcm_ismask(c)&(_BCM_P)) != 0)
-#define bcm_isspace(c)	((bcm_ismask(c)&(_BCM_S)) != 0)
-#define bcm_isupper(c)	((bcm_ismask(c)&(_BCM_U)) != 0)
-#define bcm_isxdigit(c)	((bcm_ismask(c)&(_BCM_D|_BCM_X)) != 0)
-
-/*
- * Spin at most 'us' microseconds while 'exp' is true.
- * Caller should explicitly test 'exp' when this completes
- * and take appropriate error action if 'exp' is still true.
- */
-#define SPINWAIT(exp, us) { \
-	uint countdown = (us) + 9; \
-	while ((exp) && (countdown >= 10)) {\
-		OSL_DELAY(10); \
-		countdown -= 10; \
-	} \
-}
-
-/* generic osl packet queue */
-struct pktq {
-	void *head;	/* first packet to dequeue */
-	void *tail;	/* last packet to dequeue */
-	uint len;	/* number of queued packets */
-	uint maxlen;	/* maximum number of queued packets */
-	bool priority;	/* enqueue by packet priority */
-};
-#define DEFAULT_QLEN	128
-
-#define	pktq_len(q)	((q)->len)
-#define	pktq_avail(q)	((q)->maxlen - (q)->len)
-#define	pktq_head(q)	((q)->head)
-#define	pktq_full(q)	((q)->len >= (q)->maxlen)
-
-/* crc defines */
-#define CRC8_INIT_VALUE  0xff		/* Initial CRC8 checksum value */
-#define CRC8_GOOD_VALUE  0x9f		/* Good final CRC8 checksum value */
-#define CRC16_INIT_VALUE 0xffff		/* Initial CRC16 checksum value */
-#define CRC16_GOOD_VALUE 0xf0b8		/* Good final CRC16 checksum value */
-#define CRC32_INIT_VALUE 0xffffffff	/* Initial CRC32 checksum value */
-#define CRC32_GOOD_VALUE 0xdebb20e3	/* Good final CRC32 checksum value */
-
-/* tag_ID/length/value_buffer tuple */
-typedef struct bcm_tlv {
-	uint8	id;
-	uint8	len;
-	uint8	data[1];
-} bcm_tlv_t;
-
-/* Check that bcm_tlv_t fits into the given buflen */
-#define bcm_valid_tlv(elt, buflen) ((buflen) >= 2 && (buflen) >= 2 + (elt)->len)
-
-/* buffer length for ethernet address from bcm_ether_ntoa() */
-#define ETHER_ADDR_STR_LEN	18
-
-/*
-* load 32-bit value from unaligned byte array
-*/
-#ifdef IL_BIGENDIAN
-#define load32_ua(a)	((((uint8 *)(a))[0] << 24) + (((uint8 *)(a))[1] << 16) + \
-			(((uint8 *)(a))[2] << 8) + ((uint8 *)(a))[3])
-#else
-#define load32_ua(a)	((((uint8 *)(a))[3] << 24) + (((uint8 *)(a))[2] << 16) + \
-			(((uint8 *)(a))[1] << 8) + ((uint8 *)(a))[0])
-#endif
-
-/* externs */
-extern uint bcm_atoi(char *s);
-extern uchar bcm_toupper(uchar c);
-extern ulong bcm_strtoul(char *cp, char **endp, uint base);
-extern void deadbeef(char *p, uint len);
-extern void prhex(char *msg, uchar *buf, uint len);
-extern void prpkt(char *msg, void *drv, void *p0);
-extern uint pktcopy(void *drv, void *p, uint offset, int len, uchar *buf);
-extern uint pkttotlen(void *drv, void *);
-extern uchar *bcm_ether_ntoa(char *ea, char *buf);
-extern int bcm_ether_atoe(char *p, char *ea);
-extern void bcm_mdelay(uint ms);
-extern char *getvar(char *vars, char *name);
-extern int getintvar(char *vars, char *name);
-extern char *bcmstrstr(char *haystack, char *needle);
-
-extern uint8 crc8(uint8 *p, uint nbytes, uint8 crc);
-extern uint16 crc16(uint8 *p, uint nbytes, uint16 crc);
-extern uint32 crc32(uint8 *p, uint nbytes, uint32 crc);
-extern bcm_tlv_t *bcm_next_tlv(bcm_tlv_t *elt, int *buflen);
-extern bcm_tlv_t *bcm_parse_tlvs(void *buf, int buflen, uint key);
-extern bcm_tlv_t *bcm_parse_ordered_tlvs(void *buf, int buflen, uint key);
-extern void pktq_init(struct pktq *q, uint maxlen, bool priority);
-extern bool pktenq(struct pktq *q, void *p, bool lifo);
-extern void *pktdeq(struct pktq *q);
-
-#define	bcmlog(fmt, a1, a2)
-#define	bcmdumplog(buf, size)	*buf = '\0'
-#define	bcmdumplogent(buf, idx)	-1
-
-#endif	/* _bcmutils_h_ */
diff --git a/openwrt/target/linux/package/openwrt/include/cy_conf.h b/openwrt/target/linux/package/openwrt/include/cy_conf.h
deleted file mode 100644
index dbe387b83b..0000000000
--- a/openwrt/target/linux/package/openwrt/include/cy_conf.h
+++ /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/openwrt/target/linux/package/openwrt/include/epivers.h b/openwrt/target/linux/package/openwrt/include/epivers.h
deleted file mode 100644
index e174fb50d8..0000000000
--- a/openwrt/target/linux/package/openwrt/include/epivers.h
+++ /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/openwrt/target/linux/package/openwrt/include/proto/802.11.h b/openwrt/target/linux/package/openwrt/include/proto/802.11.h
deleted file mode 100644
index ea57850ce5..0000000000
--- a/openwrt/target/linux/package/openwrt/include/proto/802.11.h
+++ /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/openwrt/target/linux/package/openwrt/include/proto/ethernet.h b/openwrt/target/linux/package/openwrt/include/proto/ethernet.h
deleted file mode 100644
index 173464af63..0000000000
--- a/openwrt/target/linux/package/openwrt/include/proto/ethernet.h
+++ /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_ */
diff --git a/openwrt/target/linux/package/openwrt/include/shutils.h b/openwrt/target/linux/package/openwrt/include/shutils.h
deleted file mode 100644
index 783ee9ede1..0000000000
--- a/openwrt/target/linux/package/openwrt/include/shutils.h
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * Shell-like utility functions
- *
- * 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 _shutils_h_
-#define _shutils_h_
-#include <string.h>
-/*
- * Reads file and returns contents
- * @param	fd	file descriptor
- * @return	contents of file or NULL if an error occurred
- */
-extern char * fd2str(int fd);
-
-/*
- * Reads file and returns contents
- * @param	path	path to file
- * @return	contents of file or NULL if an error occurred
- */
-extern char * file2str(const char *path);
-
-/* 
- * Waits for a file descriptor to become available for reading or unblocked signal
- * @param	fd	file descriptor
- * @param	timeout	seconds to wait before timing out or 0 for no timeout
- * @return	1 if descriptor changed status or 0 if timed out or -1 on error
- */
-extern int waitfor(int fd, int timeout);
-
-/* 
- * Concatenates NULL-terminated list of arguments into a single
- * commmand and executes it
- * @param	argv	argument list
- * @param	path	NULL, ">output", or ">>output"
- * @param	timeout	seconds to wait before timing out or 0 for no timeout
- * @param	ppid	NULL to wait for child termination or pointer to pid
- * @return	return value of executed command or errno
- */
-extern int _eval(char *const argv[], char *path, int timeout, pid_t *ppid);
-
-/* 
- * Concatenates NULL-terminated list of arguments into a single
- * commmand and executes it
- * @param	argv	argument list
- * @return	stdout of executed command or NULL if an error occurred
- */
-extern char * _backtick(char *const argv[]);
-
-/* 
- * Kills process whose PID is stored in plaintext in pidfile
- * @param	pidfile	PID file
- * @return	0 on success and errno on failure
- */
-extern int kill_pidfile(char *pidfile);
-
-/*
- * fread() with automatic retry on syscall interrupt
- * @param	ptr	location to store to
- * @param	size	size of each element of data
- * @param	nmemb	number of elements
- * @param	stream	file stream
- * @return	number of items successfully read
- */
-extern int safe_fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
-
-/*
- * fwrite() with automatic retry on syscall interrupt
- * @param	ptr	location to read from
- * @param	size	size of each element of data
- * @param	nmemb	number of elements
- * @param	stream	file stream
- * @return	number of items successfully written
- */
-extern int safe_fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
-
-/*
- * Convert Ethernet address string representation to binary data
- * @param	a	string in xx:xx:xx:xx:xx:xx notation
- * @param	e	binary data
- * @return	TRUE if conversion was successful and FALSE otherwise
- */
-extern int ether_atoe(const char *a, unsigned char *e);
-
-/*
- * Convert Ethernet address binary data to string representation
- * @param	e	binary data
- * @param	a	string in xx:xx:xx:xx:xx:xx notation
- * @return	a
- */
-extern char * ether_etoa(const unsigned char *e, char *a);
-
-/*
- * Concatenate two strings together into a caller supplied buffer
- * @param	s1	first string
- * @param	s2	second string
- * @param	buf	buffer large enough to hold both strings
- * @return	buf
- */
-static inline char * strcat_r(const char *s1, const char *s2, char *buf)
-{
-	strcpy(buf, s1);
-	strcat(buf, s2);
-	return buf;
-}	
-
-/* Check for a blank character; that is, a space or a tab */
-#define isblank(c) ((c) == ' ' || (c) == '\t')
-
-/* Strip trailing CR/NL from string <s> */
-#define chomp(s) ({ \
-	char *c = (s) + strlen((s)) - 1; \
-	while ((c > (s)) && (*c == '\n' || *c == '\r' || *c == ' ')) \
-		*c-- = '\0'; \
-	s; \
-})
-
-/* Simple version of _backtick() */
-#define backtick(cmd, args...) ({ \
-	char *argv[] = { cmd, ## args, NULL }; \
-	_backtick(argv); \
-})
-
-/* Simple version of _eval() (no timeout and wait for child termination) */
-#define eval(cmd, args...) ({ \
-	char *argv[] = { cmd, ## args, NULL }; \
-	_eval(argv, ">/dev/console", 0, NULL); \
-})
-
-/* Copy each token in wordlist delimited by space into word */
-#define foreach(word, wordlist, next) \
-	for (next = &wordlist[strspn(wordlist, " ")], \
-	     strncpy(word, next, sizeof(word)), \
-	     word[strcspn(word, " ")] = '\0', \
-	     word[sizeof(word) - 1] = '\0', \
-	     next = strchr(next, ' '); \
-	     strlen(word); \
-	     next = next ? &next[strspn(next, " ")] : "", \
-	     strncpy(word, next, sizeof(word)), \
-	     word[strcspn(word, " ")] = '\0', \
-	     word[sizeof(word) - 1] = '\0', \
-	     next = strchr(next, ' '))
-
-/* Return NUL instead of NULL if undefined */
-#define safe_getenv(s) (getenv(s) ? : "")
-
-/* Print directly to the console */
-#define cprintf(fmt, args...) do { \
-	FILE *fp = fopen("/dev/console", "w"); \
-	if (fp) { \
-		fprintf(fp, fmt, ## args); \
-		fclose(fp); \
-	} \
-} while (0)
-
-/* Debug print */
-#ifdef DEBUG
-#define dprintf(fmt, args...) cprintf("%s: " fmt, __FUNCTION__, ## args)
-#else
-#define dprintf(fmt, args...)
-#endif
-
-#ifdef vxworks
-
-#include <inetLib.h>
-#define inet_aton(a, n) ((inet_aton((a), (n)) == ERROR) ? 0 : 1)
-#define inet_ntoa(n) ({ char a[INET_ADDR_LEN]; inet_ntoa_b ((n), a); a; })
-
-#include <typedefs.h>
-#include <bcmutils.h>
-#define ether_atoe(a, e) bcm_ether_atoe((a), (e))
-#define ether_etoa(e, a) bcm_ether_ntoa((e), (a))
-
-/* These declarations are not available where you would expect them */
-extern int vsnprintf (char *, size_t, const char *, va_list);
-extern int snprintf(char *str, size_t count, const char *fmt, ...);
-extern char *strdup(const char *);
-extern char *strsep(char **stringp, char *delim);
-extern int strcasecmp(const char *s1, const char *s2); 
-extern int strncasecmp(const char *s1, const char *s2, size_t n); 
-
-/* Neither are socket() and connect() */
-#include <sockLib.h>
-
-#ifdef DEBUG
-#undef dprintf
-#define dprintf printf
-#endif
-#endif
-
-#endif /* _shutils_h_ */
diff --git a/openwrt/target/linux/package/openwrt/include/typedefs.h b/openwrt/target/linux/package/openwrt/include/typedefs.h
deleted file mode 100644
index 6b0c25e042..0000000000
--- a/openwrt/target/linux/package/openwrt/include/typedefs.h
+++ /dev/null
@@ -1,293 +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 _TYPEDEFS_H_
-#define _TYPEDEFS_H_
-
-
-/* Define 'SITE_TYPEDEFS' in the compile to include a site specific
- * typedef file "site_typedefs.h".
- *
- * If 'SITE_TYPEDEFS' is not defined, then the "Inferred Typedefs"
- * section of this file makes inferences about the compile environment
- * based on defined symbols and possibly compiler pragmas.
- *
- * Following these two sections is the "Default Typedefs"
- * section. This section is only prcessed if 'USE_TYPEDEF_DEFAULTS' is
- * defined. This section has a default set of typedefs and a few
- * proprocessor symbols (TRUE, FALSE, NULL, ...).
- */
-
-#ifdef SITE_TYPEDEFS
-
-/*******************************************************************************
- * Site Specific Typedefs
- *******************************************************************************/
-
-#include "site_typedefs.h"
-
-#else
-
-/*******************************************************************************
- * Inferred Typedefs
- *******************************************************************************/
-
-/* Infer the compile environment based on preprocessor symbols and pramas.
- * Override type definitions as needed, and include configuration dependent
- * header files to define types.
- */
-
-#ifdef __cplusplus
-
-#define TYPEDEF_BOOL
-#ifndef FALSE
-#define FALSE	false
-#endif
-#ifndef TRUE
-#define TRUE	true
-#endif
-
-#else	/* ! __cplusplus */
-
-/* for Windows build, define bool as a uchar instead of the default int */
-#if defined(_WIN32)
-
-#define TYPEDEF_BOOL
-typedef	unsigned char	bool;
-
-#endif /* _WIN32 */
-
-#endif	/* ! __cplusplus */
-
-#ifdef _MSC_VER	    /* Microsoft C */
-#define TYPEDEF_INT64
-#define TYPEDEF_UINT64
-typedef signed __int64	int64;
-typedef unsigned __int64 uint64;
-#endif
-
-#if defined(MACOSX) && defined(KERNEL)
-#define TYPEDEF_BOOL
-#endif
-
-
-#if defined(linux)
-#define TYPEDEF_UINT
-#define TYPEDEF_USHORT
-#define TYPEDEF_ULONG
-#endif
-
-#if !defined(linux) && !defined(_WIN32) && !defined(PMON) && !defined(_CFE_)
-#define TYPEDEF_UINT
-#define TYPEDEF_USHORT
-#endif
-
-
-/* Do not support the (u)int64 types with strict ansi for GNU C */
-#if defined(__GNUC__) && defined(__STRICT_ANSI__)
-#define TYPEDEF_INT64
-#define TYPEDEF_UINT64
-#endif
-
-/* ICL accepts unsigned 64 bit type only, and complains in ANSI mode
- * for singned or unsigned */
-#if defined(__ICL)
-
-#define TYPEDEF_INT64
-
-#if defined(__STDC__)
-#define TYPEDEF_UINT64
-#endif
-
-#endif /* __ICL */
-
-
-#if !defined(_WIN32) && !defined(PMON) && !defined(_CFE_)
-
-/* pick up ushort & uint from standard types.h */
-#if defined(linux) && defined(__KERNEL__)
-
-#include <linux/types.h>	/* sys/types.h and linux/types.h are oil and water */
-
-#else
-
-#include <sys/types.h>	
-
-#endif
-
-#endif /* !_WIN32 && !PMON && !_CFE_ */
-
-#if defined(MACOSX) && defined(KERNEL)
-#include <IOKit/IOTypes.h>
-#endif
-
-
-/* use the default typedefs in the next section of this file */
-#define USE_TYPEDEF_DEFAULTS
-
-#endif /* SITE_TYPEDEFS */
-
-
-/*******************************************************************************
- * Default Typedefs
- *******************************************************************************/
-
-#ifdef USE_TYPEDEF_DEFAULTS
-#undef USE_TYPEDEF_DEFAULTS
-
-#ifndef TYPEDEF_BOOL
-typedef	int	bool;
-#endif
-
-/*----------------------- define uchar, ushort, uint, ulong ----------------*/
-
-#ifndef TYPEDEF_UCHAR
-typedef unsigned char	uchar;
-#endif
-
-#ifndef TYPEDEF_USHORT
-typedef unsigned short	ushort;
-#endif
-
-#ifndef TYPEDEF_UINT
-typedef unsigned int	uint;
-#endif
-
-#ifndef TYPEDEF_ULONG
-typedef unsigned long	ulong;
-#endif
-
-/*----------------------- define [u]int8/16/32/64 --------------------------*/
-
-#ifndef TYPEDEF_UINT8
-typedef unsigned char	uint8;
-#endif
-
-#ifndef TYPEDEF_UINT16
-typedef unsigned short	uint16;
-#endif
-
-#ifndef TYPEDEF_UINT32
-typedef unsigned int	uint32;
-#endif
-
-#ifndef TYPEDEF_UINT64
-typedef unsigned long long uint64;
-#endif
-
-#ifndef TYPEDEF_INT8
-typedef signed char	int8;
-#endif
-
-#ifndef TYPEDEF_INT16
-typedef signed short	int16;
-#endif
-
-#ifndef TYPEDEF_INT32
-typedef signed int	int32;
-#endif
-
-#ifndef TYPEDEF_INT64
-typedef signed long long int64;
-#endif
-
-/*----------------------- define float32/64, float_t -----------------------*/
-
-#ifndef TYPEDEF_FLOAT32
-typedef float		float32;
-#endif
-
-#ifndef TYPEDEF_FLOAT64
-typedef double		float64;
-#endif
-
-/*
- * abstracted floating point type allows for compile time selection of
- * single or double precision arithmetic.  Compiling with -DFLOAT32
- * selects single precision; the default is double precision.
- */
-
-#ifndef TYPEDEF_FLOAT_T
-
-#if defined(FLOAT32)
-typedef float32 float_t;
-#else /* default to double precision floating point */
-typedef float64 float_t;
-#endif
-
-#endif /* TYPEDEF_FLOAT_T */
-
-/*----------------------- define macro values -----------------------------*/
-
-#ifndef FALSE
-#define FALSE	0
-#endif
-
-#ifndef TRUE
-#define TRUE	1
-#endif
-
-#ifndef NULL
-#define	NULL	0
-#endif
-
-#ifndef OFF
-#define	OFF	0
-#endif
-
-#ifndef ON
-#define	ON	1
-#endif
-
-/*----------------------- define PTRSZ, INLINE ----------------------------*/
-
-#ifndef PTRSZ
-#define	PTRSZ	sizeof (char*)
-#endif
-
-#ifndef INLINE
-
-#ifdef _MSC_VER
-
-#define INLINE __inline
-
-#elif __GNUC__
-
-#define INLINE __inline__
-
-#else
-
-#define INLINE
-
-#endif /* _MSC_VER */
-
-#endif /* INLINE */
-
-#undef TYPEDEF_BOOL
-#undef TYPEDEF_UCHAR
-#undef TYPEDEF_USHORT
-#undef TYPEDEF_UINT
-#undef TYPEDEF_ULONG
-#undef TYPEDEF_UINT8
-#undef TYPEDEF_UINT16
-#undef TYPEDEF_UINT32
-#undef TYPEDEF_UINT64
-#undef TYPEDEF_INT8
-#undef TYPEDEF_INT16
-#undef TYPEDEF_INT32
-#undef TYPEDEF_INT64
-#undef TYPEDEF_FLOAT32
-#undef TYPEDEF_FLOAT64
-#undef TYPEDEF_FLOAT_T
-
-#endif /* USE_TYPEDEF_DEFAULTS */
-
-#endif /* _TYPEDEFS_H_ */
diff --git a/openwrt/target/linux/package/openwrt/include/utils.h b/openwrt/target/linux/package/openwrt/include/utils.h
deleted file mode 100644
index b8d1cdb7bf..0000000000
--- a/openwrt/target/linux/package/openwrt/include/utils.h
+++ /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/openwrt/target/linux/package/openwrt/include/wlcompat.h b/openwrt/target/linux/package/openwrt/include/wlcompat.h
deleted file mode 100644
index a4fc13439d..0000000000
--- a/openwrt/target/linux/package/openwrt/include/wlcompat.h
+++ /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/openwrt/target/linux/package/openwrt/include/wlioctl.h b/openwrt/target/linux/package/openwrt/include/wlioctl.h
deleted file mode 100644
index d5ef11f9ed..0000000000
--- a/openwrt/target/linux/package/openwrt/include/wlioctl.h
+++ /dev/null
@@ -1,1094 +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
-
-/* 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_ */
diff --git a/openwrt/target/linux/package/openwrt/include/wlutils.h b/openwrt/target/linux/package/openwrt/include/wlutils.h
deleted file mode 100644
index 07e2536ca3..0000000000
--- a/openwrt/target/linux/package/openwrt/include/wlutils.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Broadcom wireless network adapter utility functions
- *
- * 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 _wlutils_h_
-#define _wlutils_h_
-
-#include <typedefs.h>
-#include <wlioctl.h>
-
-/*
- * Pass a wlioctl request to the specified interface.
- * @param	name	interface name
- * @param	cmd	WLC_GET_MAGIC <= cmd < WLC_LAST
- * @param	buf	buffer for passing in and/or receiving data
- * @param	len	length of buf
- * @return	>= 0 if successful or < 0 otherwise
- */
-extern int wl_ioctl(char *name, int cmd, void *buf, int len);
-
-/*
- * Get the MAC (hardware) address of the specified interface.
- * @param	name	interface name
- * @param	hwaddr	6-byte buffer for receiving address
- * @return	>= 0 if successful or < 0 otherwise
- */
-extern int wl_hwaddr(char *name, unsigned char *hwaddr);
-
-/*
- * Probe the specified interface.
- * @param	name	interface name
- * @return	>= 0 if a Broadcom wireless device or < 0 otherwise
- */
-extern int wl_probe(char *name);
-
-/*
- * Set/Get named variable.
- * @param	name	interface name
- * @param	var	variable name
- * @param	val	variable value/buffer
- * @param	len	variable value/buffer length
- * @return	success == 0, failure != 0
- */
-extern int wl_set_val(char *name, char *var, void *val, int len);
-extern int wl_get_val(char *name, char *var, void *val, int len);
-extern int wl_set_int(char *name, char *var, int val);
-extern int wl_get_int(char *name, char *var, int *val);
-
-#endif /* _wlutils_h_ */
diff --git a/openwrt/target/linux/package/openwrt/ipkg/base-files-arch.control b/openwrt/target/linux/package/openwrt/ipkg/base-files-arch.control
deleted file mode 100644
index 5396f6817a..0000000000
--- a/openwrt/target/linux/package/openwrt/ipkg/base-files-arch.control
+++ /dev/null
@@ -1,6 +0,0 @@
-Package: base-files-arch
-Priority: optional
-Section: sys
-Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
-Source: buildroot internal
-Description: Board/architecture specific files 
diff --git a/openwrt/target/linux/package/openwrt/jffs2root.c b/openwrt/target/linux/package/openwrt/jffs2root.c
deleted file mode 100644
index 14662fc945..0000000000
--- a/openwrt/target/linux/package/openwrt/jffs2root.c
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * jffs2root.c
- *
- * Copyright (C) 2005 Mike Baker 
- *
- * 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 <stdio.h>
-#include <stdlib.h>
-#include <stddef.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/mman.h>
-#include <sys/stat.h>
-#include <string.h>
-
-#include <sys/ioctl.h>
-#include <linux/mtd/mtd.h>
-
-#define FILENAME "/dev/mtdblock/1"
-
-struct trx_header {
-	unsigned magic;		/* "HDR0" */
-	unsigned len;		/* Length of file including header */
-	unsigned crc32;		/* 32-bit CRC from flag_version to end of file */
-	unsigned flag_version;	/* 0:15 flags, 16:31 version */
-	unsigned offsets[3];	/* Offsets of partitions from start of header */
-};
-
-unsigned long *crc32;
-
-void init_crc32()
-{
-	unsigned long crc;
-	unsigned long poly = 0xEDB88320L;
-	int n, bit;
-	if ((crc32 = (unsigned long *) malloc(256 * sizeof(unsigned long))) == (void *)-1) {
-		perror("malloc");
-		exit(1);
-	}
-	for (n = 0; n < 256; n++) {
-	crc = (unsigned long) n;
-	for (bit = 0; bit < 8; bit++)
-		crc = (crc & 1) ? (poly ^ (crc >> 1)) : (crc >> 1);
-	crc32[n] = crc;
-	}
-}
-
-unsigned int crc32buf(char *buf, size_t len)
-{
-	unsigned int crc = 0xFFFFFFFF;
-	for (; len; len--, buf++)
-	crc = crc32[(crc ^ *buf) & 0xff] ^ (crc >> 8);
-	return crc;
-}
-
-int main(int argc, char **argv)
-{
-	int fd;
-	struct mtd_info_user mtdInfo;
-	unsigned long len;
-	struct trx_header *ptr;
-	char *buf;
-	
-	if (((fd = open(FILENAME, O_RDWR))	< 0)
-			|| ((len = lseek(fd, 0, SEEK_END)) < 0)
-			|| ((ptr = (struct trx_header *) mmap(0, len, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0)) == (void *) (-1))
-			|| (ptr->magic != 0x30524448)) {
-		printf("Error reading trx info\n");
-		exit(-1);
-	}
-	close (fd);
-
-	if (((fd = open("/dev/mtd/1", O_RDWR))	< 0)
-			|| (ioctl(fd, MEMGETINFO, &mtdInfo))) {
-		fprintf(stderr, "Could not get MTD device info from %s\n", FILENAME);
-		close(fd);
-		exit(1);
-	}
-	close(fd);
-
-	if (argc > 1 && !strcmp(argv[1],"--move")) {
-		if (ptr->offsets[2] >= ptr->len) {
-			printf("Partition already moved outside trx\n");
-		} else {
-			init_crc32();
-			ptr->offsets[2] +=	(mtdInfo.erasesize - 1);
-			ptr->offsets[2] &= ~(mtdInfo.erasesize - 1);
-			ptr->len = ptr->offsets[2];
-			ptr->crc32 = crc32buf((void *) &(ptr->flag_version), ptr->len - offsetof(struct trx_header, flag_version));
-			msync(ptr,sizeof(struct trx_header),MS_SYNC|MS_INVALIDATE);
-			printf("Partition moved; please reboot\n");
-		}
-	} else if (argc > 1 && !strcmp(argv[1], "--clean")) {
-		buf = (char *) ptr;
-		if (buf[ptr->offsets[1] - 1] == 0) {
-			init_crc32();
-			buf[ptr->offsets[1] - 1] = 1;
-			ptr->crc32 = crc32buf((void *) &(ptr->flag_version), ptr->len - offsetof(struct trx_header, flag_version));
-			msync(ptr,sizeof(struct trx_header),MS_SYNC|MS_INVALIDATE);
-			printf("Partition marked as clean\n");
-		}
-	} else {
-		int x;
-		printf(" erase: 0x%08x\n",mtdInfo.erasesize);
-		printf("=== trx ===\n");
-		printf("mapped: 0x%08x\n", (unsigned)ptr);
-		printf(" magic: 0x%08x\n", ptr->magic);
-		printf("	 len: 0x%08x\n", ptr->len);
-		printf("	 crc: 0x%08x\n", ptr->crc32);
-		for (x = 0; x < 3; x++)
-			printf(" offset[%d]: 0x%08x\n", x, ptr->offsets[x]);
-	}
-
-	munmap((void *) ptr, len);
-	return 0;
-}