parent
4db640a503
commit
2ab260e917
@ -0,0 +1,25 @@ |
||||
# $Id$
|
||||
#
|
||||
# Makefile for wlcompat
|
||||
#
|
||||
# Copyright (C) 2005-2007 Felix Fietkau <nbd@openwrt.org>
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
EXTRA_CFLAGS += -DBCMDRIVER=1 -DBCMDMA64=1 -I../include
|
||||
ifneq ($(DEBUG),) |
||||
EXTRA_CFLAGS += -DDEBUG=1
|
||||
_D=-debug
|
||||
endif |
||||
|
||||
obj-m := wlcompat$(_D).o
|
||||
modules: wlcompat$(_D).o |
||||
|
||||
wlcompat$(_D).o: wlcompat.c |
||||
$(CC) $(CFLAGS) $(EXTRA_CFLAGS_nostdinc) -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) $(CFLAGS_$@) -c -o $@ $<
|
||||
|
||||
-include $(TOPDIR)/Rules.make |
@ -1,72 +0,0 @@ |
||||
#
|
||||
# Copyright (C) 2006 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
# $Id$
|
||||
|
||||
include $(TOPDIR)/rules.mk |
||||
include $(INCLUDE_DIR)/kernel.mk |
||||
|
||||
PKG_NAME:=kmod-wlcompat
|
||||
PKG_RELEASE:=6
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk |
||||
|
||||
define KernelPackage/wlcompat/Default |
||||
SUBMENU:=Proprietary BCM43xx WiFi driver
|
||||
SUBMENUDEP:=@TARGET_brcm_2_4
|
||||
DEPENDS:=@TARGET_brcm_2_4 @PACKAGE_kmod-brcm-wl||PACKAGE_kmod-brcm-wl-mimo +wireless-tools
|
||||
TITLE:=Broadcom wl wrapper module
|
||||
endef |
||||
|
||||
define KernelPackage/wlcompat/Default/description |
||||
This package contains a wrapper module, that provides Wireless Extension
|
||||
support for the proprietary Broadcom wl module.
|
||||
endef |
||||
|
||||
define KernelPackage/wlcompat |
||||
$(call KernelPackage/wlcompat/Default) |
||||
FILES:=$(PKG_BUILD_DIR)/wlcompat.o
|
||||
AUTOLOAD:=$(call AutoLoad,50,wlcompat)
|
||||
endef |
||||
|
||||
define KernelPackage/wlcompat/description |
||||
$(call KernelPackage/wlcompat/Default/description) |
||||
endef |
||||
|
||||
define KernelPackage/wlcompat-debug |
||||
$(call KernelPackage/wlcompat/Default) |
||||
TITLE+= (debug)
|
||||
FILES:=$(PKG_BUILD_DIR)/wlcompat-debug.o
|
||||
endef |
||||
|
||||
define KernelPackage/wlcompat-debug/description |
||||
$(call KernelPackage/wlcompat/Default/description) |
||||
This is a debugging version.
|
||||
endef |
||||
|
||||
define Build/Prepare |
||||
mkdir -p $(PKG_BUILD_DIR)
|
||||
$(CP) ./src/* $(PKG_BUILD_DIR)/
|
||||
endef |
||||
|
||||
define Build/Compile |
||||
$(MAKE) -C "$(LINUX_DIR)" \
|
||||
CROSS_COMPILE="$(TARGET_CROSS)" \
|
||||
ARCH="$(LINUX_KARCH)" \
|
||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
||||
EXTRA_CFLAGS="-DDEBUG -I$(LINUX_DIR)/arch/mips/bcm947xx/include -I$(PKG_BUILD_DIR)/include" \
|
||||
modules
|
||||
mv $(PKG_BUILD_DIR)/wlcompat.o $(PKG_BUILD_DIR)/wlcompat-debug.o
|
||||
$(MAKE) -C "$(LINUX_DIR)" \
|
||||
CROSS_COMPILE="$(TARGET_CROSS)" \
|
||||
ARCH="$(LINUX_KARCH)" \
|
||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
||||
EXTRA_CFLAGS="-I$(LINUX_DIR)/arch/mips/bcm947xx/include -I$(PKG_BUILD_DIR)/include" \
|
||||
modules
|
||||
endef |
||||
|
||||
$(eval $(call KernelPackage,wlcompat)) |
||||
$(eval $(call KernelPackage,wlcompat-debug)) |
@ -1,19 +0,0 @@ |
||||
# $Id$
|
||||
#
|
||||
# Makefile for diag driver
|
||||
#
|
||||
# Copyright (C) 2005 Felix Fietkau <nbd@openwrt.org>
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
obj-m := wlcompat.o
|
||||
|
||||
ifeq ($(MAKING_MODULES),1) |
||||
export-objs := wlcompat.o
|
||||
|
||||
-include $(TOPDIR)/Rules.make |
||||
endif |
@ -1,106 +0,0 @@ |
||||
/*
|
||||
* Misc system wide definitions |
||||
* |
||||
* Copyright 2006, 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: bcmdefs.h,v 1.1.1.3 2006/04/08 06:13:39 honor Exp $ |
||||
*/ |
||||
|
||||
#ifndef _bcmdefs_h_ |
||||
#define _bcmdefs_h_ |
||||
|
||||
/*
|
||||
* One doesn't need to include this file explicitly, gets included automatically if |
||||
* typedefs.h is included. |
||||
*/ |
||||
|
||||
/* Reclaiming text and data :
|
||||
* The following macros specify special linker sections that can be reclaimed |
||||
* after a system is considered 'up'. |
||||
*/ |
||||
#if defined(__GNUC__) && defined(BCMRECLAIM) |
||||
extern bool bcmreclaimed; |
||||
#define BCMINITDATA(_data) __attribute__ ((__section__ (".dataini." #_data))) _data |
||||
#define BCMINITFN(_fn) __attribute__ ((__section__ (".textini." #_fn))) _fn |
||||
#else /* #if defined(__GNUC__) && defined(BCMRECLAIM) */ |
||||
#define BCMINITDATA(_data) _data |
||||
#define BCMINITFN(_fn) _fn |
||||
#define bcmreclaimed 0 |
||||
#endif /* #if defined(__GNUC__) && defined(BCMRECLAIM) */ |
||||
|
||||
/* Reclaim uninit functions if BCMNODOWN is defined */ |
||||
/* and if they are not already removed by -gc-sections */ |
||||
#ifdef BCMNODOWN |
||||
#define BCMUNINITFN(_fn) BCMINITFN(_fn) |
||||
#else |
||||
#define BCMUNINITFN(_fn) _fn |
||||
#endif |
||||
|
||||
#ifdef BCMRECLAIM |
||||
#define CONST |
||||
#else |
||||
#define CONST const |
||||
#endif /* BCMRECLAIM */ |
||||
|
||||
/* Compatibility with old-style BCMRECLAIM */ |
||||
#define BCMINIT(_id) _id |
||||
|
||||
|
||||
/* Put some library data/code into ROM to reduce RAM requirements */ |
||||
#if defined(__GNUC__) && defined(BCMROMOFFLOAD) |
||||
#define BCMROMDATA(_data) __attribute__ ((__section__ (".datarom." #_data))) _data |
||||
#define BCMROMFN(_fn) __attribute__ ((__section__ (".textrom." #_fn))) _fn |
||||
#else |
||||
#define BCMROMDATA(_data) _data |
||||
#define BCMROMFN(_fn) _fn |
||||
#endif |
||||
|
||||
/* Bus types */ |
||||
#define SB_BUS 0 /* Silicon Backplane */ |
||||
#define PCI_BUS 1 /* PCI target */ |
||||
#define PCMCIA_BUS 2 /* PCMCIA target */ |
||||
#define SDIO_BUS 3 /* SDIO target */ |
||||
#define JTAG_BUS 4 /* JTAG */ |
||||
#define NO_BUS 0xFF /* Bus that does not support R/W REG */ |
||||
|
||||
/* Allows optimization for single-bus support */ |
||||
#ifdef BCMBUSTYPE |
||||
#define BUSTYPE(bus) (BCMBUSTYPE) |
||||
#else |
||||
#define BUSTYPE(bus) (bus) |
||||
#endif |
||||
|
||||
/* Defines for DMA Address Width - Shared between OSL and HNDDMA */ |
||||
#define DMADDR_MASK_32 0x0 /* Address mask for 32-bits */ |
||||
#define DMADDR_MASK_30 0xc0000000 /* Address mask for 30-bits */ |
||||
#define DMADDR_MASK_0 0xffffffff /* Address mask for 0-bits (hi-part) */ |
||||
|
||||
#define DMADDRWIDTH_30 30 /* 30-bit addressing capability */ |
||||
#define DMADDRWIDTH_32 32 /* 32-bit addressing capability */ |
||||
#define DMADDRWIDTH_63 63 /* 64-bit addressing capability */ |
||||
#define DMADDRWIDTH_64 64 /* 64-bit addressing capability */ |
||||
|
||||
/* packet headroom necessary to accomodate the largest header in the system, (i.e TXOFF).
|
||||
* By doing, we avoid the need to allocate an extra buffer for the header when bridging to WL. |
||||
* There is a compile time check in wlc.c which ensure that this value is at least as big |
||||
* as TXOFF. This value is used in dma_rxfill (hnddma.c). |
||||
*/ |
||||
#define BCMEXTRAHDROOM 160 |
||||
|
||||
/* Headroom required for dongle-to-host communication. Packets allocated
|
||||
* locally in the dongle (e.g. for CDC ioctls or RNDIS messages) should |
||||
* leave this much room in front for low-level message headers which may |
||||
* be needed to get across the dongle bus to the host. (These messages |
||||
* don't go over the network, so room for the full WL header above would |
||||
* be a waste.) |
||||
*/ |
||||
#define BCMDONGLEHDRSZ 8 |
||||
|
||||
|
||||
|
||||
#endif /* _bcmdefs_h_ */ |
@ -1,258 +0,0 @@ |
||||
/*
|
||||
* Misc useful os-independent macros and functions. |
||||
* |
||||
* Copyright 2006, 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_ |
||||
|
||||
/* ** driver/apps-shared section ** */ |
||||
|
||||
#define BCME_STRLEN 64 /* Max string length for BCM errors */ |
||||
#define VALID_BCMERROR(e) ((e <= 0) && (e >= BCME_LAST)) |
||||
|
||||
|
||||
/*
|
||||
* error codes could be added but the defined ones shouldn't be changed/deleted |
||||
* these error codes are exposed to the user code |
||||
* when ever a new error code is added to this list |
||||
* please update errorstring table with the related error string and |
||||
* update osl files with os specific errorcode map |
||||
*/ |
||||
|
||||
#define BCME_OK 0 /* Success */ |
||||
#define BCME_ERROR -1 /* Error generic */ |
||||
#define BCME_BADARG -2 /* Bad Argument */ |
||||
#define BCME_BADOPTION -3 /* Bad option */ |
||||
#define BCME_NOTUP -4 /* Not up */ |
||||
#define BCME_NOTDOWN -5 /* Not down */ |
||||
#define BCME_NOTAP -6 /* Not AP */ |
||||
#define BCME_NOTSTA -7 /* Not STA */ |
||||
#define BCME_BADKEYIDX -8 /* BAD Key Index */ |
||||
#define BCME_RADIOOFF -9 /* Radio Off */ |
||||
#define BCME_NOTBANDLOCKED -10 /* Not band locked */ |
||||
#define BCME_NOCLK -11 /* No Clock */ |
||||
#define BCME_BADRATESET -12 /* BAD Rate valueset */ |
||||
#define BCME_BADBAND -13 /* BAD Band */ |
||||
#define BCME_BUFTOOSHORT -14 /* Buffer too short */ |
||||
#define BCME_BUFTOOLONG -15 /* Buffer too long */ |
||||
#define BCME_BUSY -16 /* Busy */ |
||||
#define BCME_NOTASSOCIATED -17 /* Not Associated */ |
||||
#define BCME_BADSSIDLEN -18 /* Bad SSID len */ |
||||
#define BCME_OUTOFRANGECHAN -19 /* Out of Range Channel */ |
||||
#define BCME_BADCHAN -20 /* Bad Channel */ |
||||
#define BCME_BADADDR -21 /* Bad Address */ |
||||
#define BCME_NORESOURCE -22 /* Not Enough Resources */ |
||||
#define BCME_UNSUPPORTED -23 /* Unsupported */ |
||||
#define BCME_BADLEN -24 /* Bad length */ |
||||
#define BCME_NOTREADY -25 /* Not Ready */ |
||||
#define BCME_EPERM -26 /* Not Permitted */ |
||||
#define BCME_NOMEM -27 /* No Memory */ |
||||
#define BCME_ASSOCIATED -28 /* Associated */ |
||||
#define BCME_RANGE -29 /* Not In Range */ |
||||
#define BCME_NOTFOUND -30 /* Not Found */ |
||||
#define BCME_WME_NOT_ENABLED -31 /* WME Not Enabled */ |
||||
#define BCME_TSPEC_NOTFOUND -32 /* TSPEC Not Found */ |
||||
#define BCME_ACM_NOTSUPPORTED -33 /* ACM Not Supported */ |
||||
#define BCME_NOT_WME_ASSOCIATION -34 /* Not WME Association */ |
||||
#define BCME_SDIO_ERROR -35 /* SDIO Bus Error */ |
||||
#define BCME_DONGLE_DOWN -36 /* Dongle Not Accessible */ |
||||
#define BCME_LAST BCME_DONGLE_DOWN |
||||
|
||||
/* These are collection of BCME Error strings */ |
||||
#define BCMERRSTRINGTABLE { \ |
||||
"OK", \
|
||||
"Undefined error", \
|
||||
"Bad Argument", \
|
||||
"Bad Option", \
|
||||
"Not up", \
|
||||
"Not down", \
|
||||
"Not AP", \
|
||||
"Not STA", \
|
||||
"Bad Key Index", \
|
||||
"Radio Off", \
|
||||
"Not band locked", \
|
||||
"No clock", \
|
||||
"Bad Rate valueset", \
|
||||
"Bad Band", \
|
||||
"Buffer too short", \
|
||||
"Buffer too long", \
|
||||
"Busy", \
|
||||
"Not Associated", \
|
||||
"Bad SSID len", \
|
||||
"Out of Range Channel", \
|
||||
"Bad Channel", \
|
||||
"Bad Address", \
|
||||
"Not Enough Resources", \
|
||||
"Unsupported", \
|
||||
"Bad length", \
|
||||
"Not Ready", \
|
||||
"Not Permitted", \
|
||||
"No Memory", \
|
||||
"Associated", \
|
||||
"Not In Range", \
|
||||
"Not Found", \
|
||||
"WME Not Enabled", \
|
||||
"TSPEC Not Found", \
|
||||
"ACM Not Supported", \
|
||||
"Not WME Association", \
|
||||
"SDIO Bus Error", \
|
||||
"Dongle Not Accessible" \
|
||||
} |
||||
|
||||
#ifndef ABS |
||||
#define ABS(a) (((a) < 0)?-(a):(a)) |
||||
#endif /* ABS */ |
||||
|
||||
#ifndef MIN |
||||
#define MIN(a, b) (((a) < (b))?(a):(b)) |
||||
#endif /* MIN */ |
||||
|
||||
#ifndef MAX |
||||
#define MAX(a, b) (((a) > (b))?(a):(b)) |
||||
#endif /* MAX */ |
||||
|
||||
#define CEIL(x, y) (((x) + ((y)-1)) / (y)) |
||||
#define ROUNDUP(x, y) ((((x)+((y)-1))/(y))*(y)) |
||||
#define ISALIGNED(a, x) (((a) & ((x)-1)) == 0) |
||||
#define ISPOWEROF2(x) ((((x)-1)&(x)) == 0) |
||||
#define VALID_MASK(mask) !((mask) & ((mask) + 1)) |
||||
#define OFFSETOF(type, member) ((uint)(uintptr)&((type *)0)->member) |
||||
#define ARRAYSIZE(a) (sizeof(a)/sizeof(a[0])) |
||||
|
||||
/* bit map related macros */ |
||||
#ifndef setbit |
||||
#ifndef NBBY /* the BSD family defines NBBY */ |
||||
#define NBBY 8 /* 8 bits per byte */ |
||||
#endif /* #ifndef NBBY */ |
||||
#define setbit(a, i) (((uint8 *)a)[(i)/NBBY] |= 1<<((i)%NBBY)) |
||||
#define clrbit(a, i) (((uint8 *)a)[(i)/NBBY] &= ~(1<<((i)%NBBY))) |
||||
#define isset(a, i) (((uint8 *)a)[(i)/NBBY] & (1<<((i)%NBBY))) |
||||
#define isclr(a, i) ((((uint8 *)a)[(i)/NBBY] & (1<<((i)%NBBY))) == 0) |
||||
#endif /* setbit */ |
||||
|
||||
#define NBITS(type) (sizeof(type) * 8) |
||||
#define NBITVAL(nbits) (1 << (nbits)) |
||||
#define MAXBITVAL(nbits) ((1 << (nbits)) - 1) |
||||
#define NBITMASK(nbits) MAXBITVAL(nbits) |
||||
#define MAXNBVAL(nbyte) MAXBITVAL((nbyte) * 8) |
||||
|
||||
/* basic mux operation - can be optimized on several architectures */ |
||||
#define MUX(pred, true, false) ((pred) ? (true) : (false)) |
||||
|
||||
/* modulo inc/dec - assumes x E [0, bound - 1] */ |
||||
#define MODDEC(x, bound) MUX((x) == 0, (bound) - 1, (x) - 1) |
||||
#define MODINC(x, bound) MUX((x) == (bound) - 1, 0, (x) + 1) |
||||
|
||||
/* modulo inc/dec, bound = 2^k */ |
||||
#define MODDEC_POW2(x, bound) (((x) - 1) & ((bound) - 1)) |
||||
#define MODINC_POW2(x, bound) (((x) + 1) & ((bound) - 1)) |
||||
|
||||
/* modulo add/sub - assumes x, y E [0, bound - 1] */ |
||||
#define MODADD(x, y, bound) \ |
||||
MUX((x) + (y) >= (bound), (x) + (y) - (bound), (x) + (y)) |
||||
#define MODSUB(x, y, bound) \ |
||||
MUX(((int)(x)) - ((int)(y)) < 0, (x) - (y) + (bound), (x) - (y)) |
||||
|
||||
/* module add/sub, bound = 2^k */ |
||||
#define MODADD_POW2(x, y, bound) (((x) + (y)) & ((bound) - 1)) |
||||
#define MODSUB_POW2(x, y, bound) (((x) - (y)) & ((bound) - 1)) |
||||
|
||||
/* 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 */ |
||||
|
||||
/* bcm_format_flags() bit description structure */ |
||||
typedef struct bcm_bit_desc { |
||||
uint32 bit; |
||||
char* name; |
||||
} bcm_bit_desc_t; |
||||
|
||||
/* 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 && (int)(buflen) >= (int)(2 + (elt)->len)) |
||||
|
||||
/* buffer length for ethernet address from bcm_ether_ntoa() */ |
||||
#define ETHER_ADDR_STR_LEN 18 /* 18-bytes of Ethernet address buffer length */ |
||||
|
||||
/* unaligned load and store macros */ |
||||
#ifdef IL_BIGENDIAN |
||||
static INLINE uint32 |
||||
load32_ua(uint8 *a) |
||||
{ |
||||
return ((a[0] << 24) | (a[1] << 16) | (a[2] << 8) | a[3]); |
||||
} |
||||
|
||||
static INLINE void |
||||
store32_ua(uint8 *a, uint32 v) |
||||
{ |
||||
a[0] = (v >> 24) & 0xff; |
||||
a[1] = (v >> 16) & 0xff; |
||||
a[2] = (v >> 8) & 0xff; |
||||
a[3] = v & 0xff; |
||||
} |
||||
|
||||
static INLINE uint16 |
||||
load16_ua(uint8 *a) |
||||
{ |
||||
return ((a[0] << 8) | a[1]); |
||||
} |
||||
|
||||
static INLINE void |
||||
store16_ua(uint8 *a, uint16 v) |
||||
{ |
||||
a[0] = (v >> 8) & 0xff; |
||||
a[1] = v & 0xff; |
||||
} |
||||
|
||||
#else |
||||
|
||||
static INLINE uint32 |
||||
load32_ua(uint8 *a) |
||||
{ |
||||
return ((a[3] << 24) | (a[2] << 16) | (a[1] << 8) | a[0]); |
||||
} |
||||
|
||||
static INLINE void |
||||
store32_ua(uint8 *a, uint32 v) |
||||
{ |
||||
a[3] = (v >> 24) & 0xff; |
||||
a[2] = (v >> 16) & 0xff; |
||||
a[1] = (v >> 8) & 0xff; |
||||
a[0] = v & 0xff; |
||||
} |
||||
|
||||
static INLINE uint16 |
||||
load16_ua(uint8 *a) |
||||
{ |
||||
return ((a[1] << 8) | a[0]); |
||||
} |
||||
|
||||
static INLINE void |
||||
store16_ua(uint8 *a, uint16 v) |
||||
{ |
||||
a[1] = (v >> 8) & 0xff; |
||||
a[0] = v & 0xff; |
||||
} |
||||
|
||||
#endif /* IL_BIGENDIAN */ |
||||
|
||||
#endif /* _bcmutils_h_ */ |
File diff suppressed because it is too large
Load Diff
@ -1,101 +0,0 @@ |
||||
/*
|
||||
* Broadcom Ethernettype protocol definitions |
||||
* |
||||
* Copyright 2006, 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: bcmeth.h,v 1.1.1.4 2006/02/27 03:43:16 honor Exp $ |
||||
*/ |
||||
|
||||
/*
|
||||
* Broadcom Ethernet protocol defines |
||||
*/ |
||||
|
||||
#ifndef _BCMETH_H_ |
||||
#define _BCMETH_H_ |
||||
|
||||
/* enable structure packing */ |
||||
#if defined(__GNUC__) |
||||
#define PACKED __attribute__((packed)) |
||||
#else |
||||
#pragma pack(1) |
||||
#define PACKED |
||||
#endif |
||||
|
||||
/* ETHER_TYPE_BRCM is defined in ethernet.h */ |
||||
|
||||
/*
|
||||
* Following the 2byte BRCM ether_type is a 16bit BRCM subtype field |
||||
* in one of two formats: (only subtypes 32768-65535 are in use now) |
||||
* |
||||
* subtypes 0-32767: |
||||
* 8 bit subtype (0-127) |
||||
* 8 bit length in bytes (0-255) |
||||
* |
||||
* subtypes 32768-65535: |
||||
* 16 bit big-endian subtype |
||||
* 16 bit big-endian length in bytes (0-65535) |
||||
* |
||||
* length is the number of additional bytes beyond the 4 or 6 byte header |
||||
* |
||||
* Reserved values: |
||||
* 0 reserved |
||||
* 5-15 reserved for iLine protocol assignments |
||||
* 17-126 reserved, assignable |
||||
* 127 reserved |
||||
* 32768 reserved |
||||
* 32769-65534 reserved, assignable |
||||
* 65535 reserved |
||||
*/ |
||||
|
||||
/*
|
||||
* While adding the subtypes and their specific processing code make sure |
||||
* bcmeth_bcm_hdr_t is the first data structure in the user specific data structure definition |
||||
*/ |
||||
|
||||
#define BCMILCP_SUBTYPE_RATE 1 |
||||
#define BCMILCP_SUBTYPE_LINK 2 |
||||
#define BCMILCP_SUBTYPE_CSA 3 |
||||
#define BCMILCP_SUBTYPE_LARQ 4 |
||||
#define BCMILCP_SUBTYPE_VENDOR 5 |
||||
#define BCMILCP_SUBTYPE_FLH 17 |
||||
|
||||
#define BCMILCP_SUBTYPE_VENDOR_LONG 32769 |
||||
#define BCMILCP_SUBTYPE_CERT 32770 |
||||
#define BCMILCP_SUBTYPE_SES 32771 |
||||
|
||||
|
||||
#define BCMILCP_BCM_SUBTYPE_RESERVED 0 |
||||
#define BCMILCP_BCM_SUBTYPE_EVENT 1 |
||||
#define BCMILCP_BCM_SUBTYPE_SES 2 |
||||
/*
|
||||
* The EAPOL type is not used anymore. Instead EAPOL messages are now embedded |
||||
* within BCMILCP_BCM_SUBTYPE_EVENT type messages |
||||
*/ |
||||
/* #define BCMILCP_BCM_SUBTYPE_EAPOL 3 */ |
||||
|
||||
#define BCMILCP_BCM_SUBTYPEHDR_MINLENGTH 8 |
||||
#define BCMILCP_BCM_SUBTYPEHDR_VERSION 0 |
||||
|
||||
/* These fields are stored in network order */ |
||||
typedef struct bcmeth_hdr |
||||
{ |
||||
uint16 subtype; /* Vendor specific..32769 */ |
||||
uint16 length; |
||||
uint8 version; /* Version is 0 */ |
||||
uint8 oui[3]; /* Broadcom OUI */ |
||||
/* user specific Data */ |
||||
uint16 usr_subtype; |
||||
} PACKED bcmeth_hdr_t; |
||||
|
||||
#undef PACKED |
||||
#if !defined(__GNUC__) |
||||
#pragma pack() |
||||
#endif |
||||
|
||||
#endif /* _BCMETH_H_ */ |
@ -1,152 +0,0 @@ |
||||
/*
|
||||
* Broadcom Event protocol definitions |
||||
* |
||||
* Copyright 2006, 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. |
||||
* |
||||
* |
||||
* Dependencies: proto/bcmeth.h |
||||
* |
||||
* $Id: bcmevent.h,v 1.1.1.3 2006/02/27 03:43:16 honor Exp $ |
||||
* |
||||
*/ |
||||
|
||||
/*
|
||||
* Broadcom Ethernet Events protocol defines |
||||
* |
||||
*/ |
||||
|
||||
#ifndef _BCMEVENT_H_ |
||||
#define _BCMEVENT_H_ |
||||
|
||||
/* enable structure packing */ |
||||
#if defined(__GNUC__) |
||||
#define PACKED __attribute__((packed)) |
||||
#else |
||||
#pragma pack(1) |
||||
#define PACKED |
||||
#endif /* defined(__GNUC__) */ |
||||
|
||||
#define BCM_EVENT_MSG_VERSION 1 /* wl_event_msg_t struct version */ |
||||
#define BCM_MSG_IFNAME_MAX 16 /* max length of interface name */ |
||||
|
||||
/* flags */ |
||||
#define WLC_EVENT_MSG_LINK 0x01 /* link is up */ |
||||
#define WLC_EVENT_MSG_FLUSHTXQ 0x02 /* flush tx queue on MIC error */ |
||||
#define WLC_EVENT_MSG_GROUP 0x04 /* group MIC error */ |
||||
|
||||
/* theses fields are stored in network order */ |
||||
typedef struct |
||||
{ |
||||
uint16 version; |
||||
uint16 flags; /* see flags below */ |
||||
uint32 event_type; /* Message (see below) */ |
||||
uint32 status; /* Status code (see below) */ |
||||
uint32 reason; /* Reason code (if applicable) */ |
||||
uint32 auth_type; /* WLC_E_AUTH */ |
||||
uint32 datalen; /* data buf */ |
||||
struct ether_addr addr; /* Station address (if applicable) */ |
||||
char ifname[BCM_MSG_IFNAME_MAX]; /* name of the packet incoming interface */ |
||||
} PACKED wl_event_msg_t; |
||||
|
||||
/* used by driver msgs */ |
||||
typedef struct bcm_event { |
||||
struct ether_header eth; |
||||
bcmeth_hdr_t bcm_hdr; |
||||
wl_event_msg_t event; |
||||
/* data portion follows */ |
||||
} PACKED bcm_event_t; |
||||
|
||||
#define BCM_MSG_LEN (sizeof(bcm_event_t) - sizeof(bcmeth_hdr_t) - sizeof(struct ether_header)) |
||||
|
||||
/* Event messages */ |
||||
#define WLC_E_SET_SSID 0 /* indicates status of set SSID */ |
||||
#define WLC_E_JOIN 1 /* differentiates join IBSS from found (WLC_E_START) IBSS */ |
||||
#define WLC_E_START 2 /* STA founded an IBSS or AP started a BSS */ |
||||
#define WLC_E_AUTH 3 /* 802.11 AUTH request */ |
||||
#define WLC_E_AUTH_IND 4 /* 802.11 AUTH indication */ |
||||
#define WLC_E_DEAUTH 5 /* 802.11 DEAUTH request */ |
||||
#define WLC_E_DEAUTH_IND 6 /* 802.11 DEAUTH indication */ |
||||
#define WLC_E_ASSOC 7 /* 802.11 ASSOC request */ |
||||
#define WLC_E_ASSOC_IND 8 /* 802.11 ASSOC indication */ |
||||
#define WLC_E_REASSOC 9 /* 802.11 REASSOC request */ |
||||
#define WLC_E_REASSOC_IND 10 /* 802.11 REASSOC indication */ |
||||
#define WLC_E_DISASSOC 11 /* 802.11 DISASSOC request */ |
||||
#define WLC_E_DISASSOC_IND 12 /* 802.11 DISASSOC indication */ |
||||
#define WLC_E_QUIET_START 13 /* 802.11h Quiet period started */ |
||||
#define WLC_E_QUIET_END 14 /* 802.11h Quiet period ended */ |
||||
#define WLC_E_BEACON_RX 15 /* BEACONS received/lost indication */ |
||||
#define WLC_E_LINK 16 /* generic link indication */ |
||||
#define WLC_E_MIC_ERROR 17 /* TKIP MIC error occurred */ |
||||
#define WLC_E_NDIS_LINK 18 /* NDIS style link indication */ |
||||
#define WLC_E_ROAM 19 /* roam attempt occurred: indicate status & reason */ |
||||
#define WLC_E_TXFAIL 20 /* change in dot11FailedCount (txfail) */ |
||||
#define WLC_E_PMKID_CACHE 21 /* WPA2 pmkid cache indication */ |
||||
#define WLC_E_RETROGRADE_TSF 22 /* current AP's TSF value went backward */ |
||||
#define WLC_E_PRUNE 23 /* AP was pruned from join list for reason */ |
||||
#define WLC_E_AUTOAUTH 24 /* report AutoAuth table entry match for join attempt */ |
||||
#define WLC_E_EAPOL_MSG 25 /* Event encapsulating an EAPOL message */ |
||||
#define WLC_E_SCAN_COMPLETE 26 /* Scan results are ready or scan was aborted */ |
||||
#define WLC_E_ADDTS_IND 27 /* indicate to host addts fail/success */ |
||||
#define WLC_E_DELTS_IND 28 /* indicate to host delts fail/success */ |
||||
#define WLC_E_BCNSENT_IND 29 /* indicate to host of beacon transmit */ |
||||
#define WLC_E_BCNRX_MSG 30 /* Send the received beacon up to the host */ |
||||
#define WLC_E_LAST 31 /* highest val + 1 for range checking */ |
||||
|
||||
/* Event status codes */ |
||||
#define WLC_E_STATUS_SUCCESS 0 /* operation was successful */ |
||||
#define WLC_E_STATUS_FAIL 1 /* operation failed */ |
||||
#define WLC_E_STATUS_TIMEOUT 2 /* operation timed out */ |
||||
#define WLC_E_STATUS_NO_NETWORKS 3 /* failed due to no matching network found */ |
||||
#define WLC_E_STATUS_ABORT 4 /* operation was aborted */ |
||||
#define WLC_E_STATUS_NO_ACK 5 /* protocol failure: packet not ack'd */ |
||||
#define WLC_E_STATUS_UNSOLICITED 6 /* AUTH or ASSOC packet was unsolicited */ |
||||
#define WLC_E_STATUS_ATTEMPT 7 /* attempt to assoc to an auto auth configuration */ |
||||
|
||||
/* roam reason codes */ |
||||
#define WLC_E_REASON_INITIAL_ASSOC 0 /* initial assoc */ |
||||
#define WLC_E_REASON_LOW_RSSI 1 /* roamed due to low RSSI */ |
||||
#define WLC_E_REASON_DEAUTH 2 /* roamed due to DEAUTH indication */ |
||||
#define WLC_E_REASON_DISASSOC 3 /* roamed due to DISASSOC indication */ |
||||
#define WLC_E_REASON_BCNS_LOST 4 /* roamed due to lost beacons */ |
||||
#define WLC_E_REASON_FAST_ROAM_FAILED 5 /* roamed due to fast roam failure */ |
||||
#define WLC_E_REASON_DIRECTED_ROAM 6 /* roamed due to request by AP */ |
||||
#define WLC_E_REASON_TSPEC_REJECTED 7 /* roamed due to TSPEC rejection */ |
||||
#define WLC_E_REASON_BETTER_AP 8 /* roamed due to finding better AP */ |
||||
|
||||
/* prune reason codes */ |
||||
#define WLC_E_PRUNE_ENCR_MISMATCH 1 /* ecryption mismatch */ |
||||
#define WLC_E_PRUNE_BCAST_BSSID 2 /* AP uses a broadcast BSSID */ |
||||
#define WLC_E_PRUNE_MAC_DENY 3 /* STA's MAC addr is in AP's MAC deny list */ |
||||
#define WLC_E_PRUNE_MAC_NA 4 /* STA's MAC addr is not in AP's MAC allow list */ |
||||
#define WLC_E_PRUNE_REG_PASSV 5 /* AP not allowed due to regulatory restriction */ |
||||
#define WLC_E_PRUNE_SPCT_MGMT 6 /* AP does not support STA locale spectrum mgmt */ |
||||
#define WLC_E_PRUNE_RADAR 7 /* AP is on a radar channel of STA locale */ |
||||
#define WLC_E_RSN_MISMATCH 8 /* STA does not support AP's RSN */ |
||||
#define WLC_E_PRUNE_NO_COMMON_RATES 9 /* No rates in common with AP */ |
||||
#define WLC_E_PRUNE_BASIC_RATES 10 /* STA does not support all basic rates of BSS */ |
||||
#define WLC_E_PRUNE_CCXFAST_PREVAP 11 /* CCX FAST ROAM: prune previous AP */ |
||||
#define WLC_E_PRUNE_CIPHER_NA 12 /* BSS's cipher not supported */ |
||||
#define WLC_E_PRUNE_KNOWN_STA 13 /* AP is already known to us as a STA */ |
||||
#define WLC_E_PRUNE_CCXFAST_DROAM 14 /* CCX FAST ROAM: prune unqulified AP */ |
||||
#define WLC_E_PRUNE_WDS_PEER 15 /* AP is already known to us as a WDS peer */ |
||||
#define WLC_E_PRUNE_QBSS_LOAD 16 /* QBSS LOAD - AAC is too low */ |
||||
#define WLC_E_PRUNE_HOME_AP 17 /* prune home AP */ |
||||
|
||||
/* WLC_SET_CALLBACK data type */ |
||||
typedef struct wlc_event_cb { |
||||
void (*fn)(void *, bcm_event_t *); /* Callback function */ |
||||
void *context; /* Passed to callback function */ |
||||
} wlc_event_cb_t; |
||||
|
||||
#undef PACKED |
||||
#if !defined(__GNUC__) |
||||
#pragma pack() |
||||
#endif /* PACKED */ |
||||
|
||||
#endif /* _BCMEVENT_H_ */ |
@ -1,165 +0,0 @@ |
||||
/*
|
||||
* From FreeBSD 2.2.7: Fundamental constants relating to ethernet. |
||||
* |
||||
* Copyright 2006, 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 _NET_ETHERNET_H_ /* use native BSD ethernet.h when available */ |
||||
#define _NET_ETHERNET_H_ |
||||
|
||||
#ifndef _TYPEDEFS_H_ |
||||
#include "typedefs.h" |
||||
#endif |
||||
|
||||
/* enable structure packing */ |
||||
#if defined(__GNUC__) |
||||
#define PACKED __attribute__((packed)) |
||||
#else |
||||
#pragma pack(1) |
||||
#define PACKED |
||||
#endif |
||||
|
||||
/*
|
||||
* The number of bytes in an ethernet (MAC) address. |
||||
*/ |
||||
#define ETHER_ADDR_LEN 6 |
||||
|
||||
/*
|
||||
* The number of bytes in the type field. |
||||
*/ |
||||
#define ETHER_TYPE_LEN 2 |
||||
|
||||
/*
|
||||
* The number of bytes in the trailing CRC field. |
||||
*/ |
||||
#define ETHER_CRC_LEN 4 |
||||
|
||||
/*
|
||||
* The length of the combined header. |
||||
*/ |
||||
#define ETHER_HDR_LEN (ETHER_ADDR_LEN*2+ETHER_TYPE_LEN) |
||||
|
||||
/*
|
||||
* The minimum packet length. |
||||
*/ |
||||
#define ETHER_MIN_LEN 64 |
||||
|
||||
/*
|
||||
* The minimum packet user data length. |
||||
*/ |
||||
#define ETHER_MIN_DATA 46 |
||||
|
||||
/*
|
||||
* The maximum packet length. |
||||
*/ |
||||
#define ETHER_MAX_LEN 1518 |
||||
|
||||
/*
|
||||
* The maximum packet user data length. |
||||
*/ |
||||
#define ETHER_MAX_DATA 1500 |
||||
|
||||
/* ether types */ |
||||
#define ETHER_TYPE_IP 0x0800 /* IP */ |
||||
#define ETHER_TYPE_ARP 0x0806 /* ARP */ |
||||
#define ETHER_TYPE_8021Q 0x8100 /* 802.1Q */ |
||||
#define ETHER_TYPE_BRCM 0x886c /* Broadcom Corp. */ |
||||
#define ETHER_TYPE_802_1X 0x888e /* 802.1x */ |
||||
#ifdef BCMWPA2 |
||||
#define ETHER_TYPE_802_1X_PREAUTH 0x88c7 /* 802.1x preauthentication */ |
||||
#endif |
||||
|
||||
/* Broadcom subtype follows ethertype; First 2 bytes are reserved; Next 2 are subtype; */ |
||||
#define ETHER_BRCM_SUBTYPE_LEN 4 /* Broadcom 4 byte subtype */ |
||||
#define ETHER_BRCM_CRAM 0x1 /* Broadcom subtype cram protocol */ |
||||
|
||||
/* ether header */ |
||||
#define ETHER_DEST_OFFSET 0 /* dest address offset */ |
||||
#define ETHER_SRC_OFFSET 6 /* src address offset */ |
||||
#define ETHER_TYPE_OFFSET 12 /* ether type offset */ |
||||
|
||||
/*
|
||||
* A macro to validate a length with |
||||
*/ |
||||
#define ETHER_IS_VALID_LEN(foo) \ |
||||
((foo) >= ETHER_MIN_LEN && (foo) <= ETHER_MAX_LEN) |
||||
|
||||
|
||||
#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 /* !__INCif_etherh Quick and ugly hack for VxWorks */ |
||||
|
||||
/*
|
||||
* Takes a pointer, sets locally admininistered |
||||
* address bit in the 48-bit Ethernet address. |
||||
*/ |
||||
#define ETHER_SET_LOCALADDR(ea) (((uint8 *)(ea))[0] = (((uint8 *)(ea))[0] | 2)) |
||||
|
||||
/*
|
||||
* 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) |
||||
|
||||
|
||||
/* compare two ethernet addresses - assumes the pointers can be referenced as shorts */ |
||||
#define ether_cmp(a, b) (!(((short*)a)[0] == ((short*)b)[0]) | \ |
||||
!(((short*)a)[1] == ((short*)b)[1]) | \
|
||||
!(((short*)a)[2] == ((short*)b)[2])) |
||||
|
||||
/* copy an ethernet address - assumes the pointers can be referenced as shorts */ |
||||
#define ether_copy(s, d) { \ |
||||
((short*)d)[0] = ((short*)s)[0]; \
|
||||
((short*)d)[1] = ((short*)s)[1]; \
|
||||
((short*)d)[2] = ((short*)s)[2]; } |
||||
|
||||
/*
|
||||
* 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) |
||||
|
||||
#undef PACKED |
||||
#if !defined(__GNUC__) |
||||
#pragma pack() |
||||
#endif |
||||
|
||||
#endif /* _NET_ETHERNET_H_ */ |
@ -1,148 +0,0 @@ |
||||
/*
|
||||
* Fundamental types and constants relating to WPA |
||||
* |
||||
* Copyright 2006, 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: wpa.h,v 1.1.1.4 2006/02/27 03:43:16 honor Exp $ |
||||
*/ |
||||
|
||||
#ifndef _proto_wpa_h_ |
||||
#define _proto_wpa_h_ |
||||
|
||||
#include <typedefs.h> |
||||
#include <proto/ethernet.h> |
||||
|
||||
/* enable structure packing */ |
||||
#if defined(__GNUC__) |
||||
#define PACKED __attribute__((packed)) |
||||
#else |
||||
#pragma pack(1) |
||||
#define PACKED |
||||
#endif |
||||
|
||||
/* Reason Codes */ |
||||
|
||||
/* 10 and 11 are from TGh. */ |
||||
#define DOT11_RC_BAD_PC 10 /* Unacceptable power capability element */ |
||||
#define DOT11_RC_BAD_CHANNELS 11 /* Unacceptable supported channels element */ |
||||
/* 12 is unused */ |
||||
/* 13 through 23 taken from P802.11i/D3.0, November 2002 */ |
||||
#define DOT11_RC_INVALID_WPA_IE 13 /* Invalid info. element */ |
||||
#define DOT11_RC_MIC_FAILURE 14 /* Michael failure */ |
||||
#define DOT11_RC_4WH_TIMEOUT 15 /* 4-way handshake timeout */ |
||||
#define DOT11_RC_GTK_UPDATE_TIMEOUT 16 /* Group key update timeout */ |
||||
#define DOT11_RC_WPA_IE_MISMATCH 17 /* WPA IE in 4-way handshake differs from |
||||
* (re-)assoc. request/probe response |
||||
*/ |
||||
#define DOT11_RC_INVALID_MC_CIPHER 18 /* Invalid multicast cipher */ |
||||
#define DOT11_RC_INVALID_UC_CIPHER 19 /* Invalid unicast cipher */ |
||||
#define DOT11_RC_INVALID_AKMP 20 /* Invalid authenticated key management protocol */ |
||||
#define DOT11_RC_BAD_WPA_VERSION 21 /* Unsupported WPA version */ |
||||
#define DOT11_RC_INVALID_WPA_CAP 22 /* Invalid WPA IE capabilities */ |
||||
#define DOT11_RC_8021X_AUTH_FAIL 23 /* 802.1X authentication failure */ |
||||
|
||||
#define WPA2_PMKID_LEN 16 |
||||
|
||||
/* WPA IE fixed portion */ |
||||
typedef struct |
||||
{ |
||||
uint8 tag; /* TAG */ |
||||
uint8 length; /* TAG length */ |
||||
uint8 oui[3]; /* IE OUI */ |
||||
uint8 oui_type; /* OUI type */ |
||||
struct { |
||||
uint8 low; |
||||
uint8 high; |
||||
} PACKED version; /* IE version */ |
||||
} PACKED wpa_ie_fixed_t; |
||||
#define WPA_IE_OUITYPE_LEN 4 |
||||
#define WPA_IE_FIXED_LEN 8 |
||||
#define WPA_IE_TAG_FIXED_LEN 6 |
||||
|
||||
#ifdef BCMWPA2 |
||||
typedef struct { |
||||
uint8 tag; /* TAG */ |
||||
uint8 length; /* TAG length */ |
||||
struct { |
||||
uint8 low; |
||||
uint8 high; |
||||
} PACKED version; /* IE version */ |
||||
} PACKED wpa_rsn_ie_fixed_t; |
||||
#define WPA_RSN_IE_FIXED_LEN 4 |
||||
#define WPA_RSN_IE_TAG_FIXED_LEN 2 |
||||
typedef uint8 wpa_pmkid_t[WPA2_PMKID_LEN]; |
||||
#endif |
||||
|
||||
/* WPA suite/multicast suite */ |
||||
typedef struct |
||||
{ |
||||
uint8 oui[3]; |
||||
uint8 type; |
||||
} PACKED wpa_suite_t, wpa_suite_mcast_t; |
||||
#define WPA_SUITE_LEN 4 |
||||
|
||||
/* WPA unicast suite list/key management suite list */ |
||||
typedef struct |
||||
{ |
||||
struct { |
||||
uint8 low; |
||||
uint8 high; |
||||
} PACKED count; |
||||
wpa_suite_t list[1]; |
||||
} PACKED wpa_suite_ucast_t, wpa_suite_auth_key_mgmt_t; |
||||
#define WPA_IE_SUITE_COUNT_LEN 2 |
||||
#ifdef BCMWPA2 |
||||
typedef struct |
||||
{ |
||||
struct { |
||||
uint8 low; |
||||
uint8 high; |
||||
} PACKED count; |
||||
wpa_pmkid_t list[1]; |
||||
} PACKED wpa_pmkid_list_t; |
||||
#endif |
||||
|
||||
/* WPA cipher suites */ |
||||
#define WPA_CIPHER_NONE 0 /* None */ |
||||
#define WPA_CIPHER_WEP_40 1 /* WEP (40-bit) */ |
||||
#define WPA_CIPHER_TKIP 2 /* TKIP: default for WPA */ |
||||
#define WPA_CIPHER_AES_OCB 3 /* AES (OCB) */ |
||||
#define WPA_CIPHER_AES_CCM 4 /* AES (CCM) */ |
||||
#define WPA_CIPHER_WEP_104 5 /* WEP (104-bit) */ |
||||
|
||||
#define IS_WPA_CIPHER(cipher) ((cipher) == WPA_CIPHER_NONE || \ |
||||
(cipher) == WPA_CIPHER_WEP_40 || \
|
||||
(cipher) == WPA_CIPHER_WEP_104 || \
|
||||
(cipher) == WPA_CIPHER_TKIP || \
|
||||
(cipher) == WPA_CIPHER_AES_OCB || \
|
||||
(cipher) == WPA_CIPHER_AES_CCM) |
||||
|
||||
/* WPA TKIP countermeasures parameters */ |
||||
#define WPA_TKIP_CM_DETECT 60 /* multiple MIC failure window (seconds) */ |
||||
#define WPA_TKIP_CM_BLOCK 60 /* countermeasures active window (seconds) */ |
||||
|
||||
/* WPA capabilities defined in 802.11i */ |
||||
#define WPA_CAP_4_REPLAY_CNTRS 2 |
||||
#define WPA_CAP_16_REPLAY_CNTRS 3 |
||||
#define WPA_CAP_REPLAY_CNTR_SHIFT 2 |
||||
#define WPA_CAP_REPLAY_CNTR_MASK 0x000c |
||||
|
||||
/* WPA Specific defines */ |
||||
#define WPA_CAP_LEN 2 /* Length of RSN capabilities in RSN IE (2 octets) */ |
||||
|
||||
#ifdef BCMWPA2 |
||||
#define WPA_CAP_WPA2_PREAUTH 1 |
||||
#endif /* BCMWPA2 */ |
||||
|
||||
#undef PACKED |
||||
#if !defined(__GNUC__) |
||||
#pragma pack() |
||||
#endif |
||||
|
||||
#endif /* _proto_wpa_h_ */ |
@ -1,230 +0,0 @@ |
||||
/*
|
||||
* Copyright 2006, 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_ |
||||
|
||||
/*
|
||||
* 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 |
||||
|
||||
#endif /* __cplusplus */ |
||||
|
||||
#if defined(_NEED_SIZE_T_) |
||||
typedef long unsigned int size_t; |
||||
#endif |
||||
|
||||
#define TYPEDEF_UINT |
||||
#define TYPEDEF_USHORT |
||||
#define TYPEDEF_ULONG |
||||
|
||||
|
||||
/* 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 |
||||
|
||||
/* 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 |
||||
|
||||
/* use the default typedefs in the next section of this file */ |
||||
#define USE_TYPEDEF_DEFAULTS |
||||
|
||||
/*
|
||||
* Default Typedefs |
||||
* |
||||
*/ |
||||
|
||||
#ifdef USE_TYPEDEF_DEFAULTS |
||||
#undef USE_TYPEDEF_DEFAULTS |
||||
|
||||
#ifndef TYPEDEF_BOOL |
||||
typedef /* @abstract@ */ unsigned char 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, uintptr */ |
||||
|
||||
#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_UINTPTR |
||||
typedef unsigned int uintptr; |
||||
#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 /* TRUE */ |
||||
#endif |
||||
|
||||
#ifndef NULL |
||||
#define NULL 0 |
||||
#endif |
||||
|
||||
#ifndef OFF |
||||
#define OFF 0 |
||||
#endif |
||||
|
||||
#ifndef ON |
||||
#define ON 1 /* ON = 1 */ |
||||
#endif |
||||
|
||||
#define AUTO (-1) /* Auto = -1 */ |
||||
|
||||
/* 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_UINTPTR |
||||
#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 */ |
||||
|
||||
/*
|
||||
* Including the bcmdefs.h here, to make sure everyone including typedefs.h
|
||||
* gets this automatically
|
||||
*/ |
||||
#include <bcmdefs.h> |
||||
|
||||
#endif /* _TYPEDEFS_H_ */ |
@ -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 |
File diff suppressed because it is too large
Load Diff
@ -1,102 +0,0 @@ |
||||
/*
|
||||
* Broadcom wireless network adapter utility functions |
||||
* |
||||
* Copyright 2006, 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); |
||||
|
||||
/*
|
||||
* Probe the specified interface. |
||||
* @param name interface name |
||||
* @return >= 0 if a Broadcom wireless device or < 0 otherwise |
||||
*/ |
||||
extern int wl_probe(char *name); |
||||
|
||||
extern int wl_iovar_set(char *ifname, char *iovar, void *param, int paramlen); |
||||
extern int wl_iovar_get(char *ifname, char *iovar, void *bufptr, int buflen); |
||||
/*
|
||||
* Set/Get named variable. |
||||
* @param ifname interface name |
||||
* @param iovar variable name |
||||
* @param param input param value/buffer |
||||
* @param paramlen input param value/buffer length |
||||
* @param bufptr io buffer |
||||
* @param buflen io buffer length |
||||
* @param val val or val pointer for int routines |
||||
* @return success == 0, failure != 0 |
||||
*/ |
||||
/*
|
||||
* set named driver variable to int value |
||||
* calling example: wl_iovar_setint(ifname, "arate", rate) |
||||
*/ |
||||
static inline int |
||||
wl_iovar_setint(char *ifname, char *iovar, int val) |
||||
{ |
||||
return wl_iovar_set(ifname, iovar, &val, sizeof(val)); |
||||
} |
||||
|
||||
/*
|
||||
* get named driver variable to int value and return error indication |
||||
* calling example: wl_iovar_getint(ifname, "arate", &rate) |
||||
*/ |
||||
static inline int |
||||
wl_iovar_getint(char *ifname, char *iovar, int *val) |
||||
{ |
||||
return wl_iovar_get(ifname, iovar, val, sizeof(int)); |
||||
} |
||||
|
||||
/*
|
||||
* Set/Get named variable indexed by BSS Configuration |
||||
* @param ifname interface name |
||||
* @param iovar variable name |
||||
* @param bssidx bsscfg index |
||||
* @param param input param value/buffer |
||||
* @param paramlen input param value/buffer length |
||||
* @param bufptr io buffer |
||||
* @param buflen io buffer length |
||||
* @param val val or val pointer for int routines |
||||
* @return success == 0, failure != 0 |
||||
*/ |
||||
extern int wl_bssiovar_get(char *ifname, char *iovar, int bssidx, void *outbuf, int len); |
||||
extern int wl_bssiovar_set(char *ifname, char *iovar, int bssidx, void *param, int paramlen); |
||||
/*
|
||||
* set named & bss indexed driver variable to int value |
||||
*/ |
||||
static inline int |
||||
wl_bssiovar_setint(char *ifname, char *iovar, int bssidx, int val) |
||||
{ |
||||
return wl_bssiovar_set(ifname, iovar, bssidx, &val, sizeof(int)); |
||||
} |
||||
|
||||
static inline int |
||||
wl_bssiovar_getint(char *ifname, char *iovar, int bssidx, int *val) |
||||
{ |
||||
return wl_bssiovar_get(ifname, iovar, bssidx, val, sizeof(int)); |
||||
} |
||||
|
||||
extern int wl_bssiovar_setint(char *ifname, char *iovar, int bssidx, int val); |
||||
|
||||
#endif /* _wlutils_h_ */ |
Loading…
Reference in new issue