summaryrefslogblamecommitdiffstats
path: root/drivers/staging/winbond/gl_80211.h
blob: 1806d817496eb373ea5b210f344087e5b2505121 (plain) (tree)




























































































































                                                                                 

#ifndef __GL_80211_H__
#define __GL_80211_H__

/****************** CONSTANT AND MACRO SECTION ******************************/

/* BSS Type */
enum {
    WLAN_BSSTYPE_INFRASTRUCTURE         = 0,
    WLAN_BSSTYPE_INDEPENDENT,
    WLAN_BSSTYPE_ANY_BSS,
};



/* Preamble_Type, see <SFS-802.11G-MIB-203> */
typedef enum preamble_type {
    WLAN_PREAMBLE_TYPE_SHORT,
    WLAN_PREAMBLE_TYPE_LONG,
}    preamble_type_e;


/* Slot_Time_Type, see <SFS-802.11G-MIB-208> */
typedef enum slot_time_type {
    WLAN_SLOT_TIME_TYPE_LONG,
    WLAN_SLOT_TIME_TYPE_SHORT,
}    slot_time_type_e;

/*--------------------------------------------------------------------------*/
/* Encryption Mode */
typedef enum {
    WEP_DISABLE                                         = 0,
    WEP_64,
    WEP_128,

    ENCRYPT_DISABLE,
    ENCRYPT_WEP,
    ENCRYPT_WEP_NOKEY,
    ENCRYPT_TKIP,
    ENCRYPT_TKIP_NOKEY,
    ENCRYPT_CCMP,
    ENCRYPT_CCMP_NOKEY,
}    encryption_mode_e;

typedef enum _WLAN_RADIO {
    WLAN_RADIO_ON,
    WLAN_RADIO_OFF,
    WLAN_RADIO_MAX, // not a real type, defined as an upper bound
} WLAN_RADIO;

typedef struct _WLAN_RADIO_STATUS {
	WLAN_RADIO HWStatus;
	WLAN_RADIO SWStatus;
} WLAN_RADIO_STATUS;

//----------------------------------------------------------------------------
// 20041021 1.1.81.1000 ybjiang
// add for radio notification
typedef
void (*RADIO_NOTIFICATION_HANDLER)(
	void *Data,
	void *RadioStatusBuffer,
	u32 RadioStatusBufferLen
	);

typedef struct _WLAN_RADIO_NOTIFICATION
{
    RADIO_NOTIFICATION_HANDLER RadioChangeHandler;
    void *Data;
} WLAN_RADIO_NOTIFICATION;

//----------------------------------------------------------------------------
// 20041102 1.1.91.1000 ybjiang
// add for OID_802_11_CUST_REGION_CAPABILITIES and OID_802_11_OID_REGION
typedef enum _WLAN_REGION_CODE
{
	WLAN_REGION_UNKNOWN,
	WLAN_REGION_EUROPE,
	WLAN_REGION_JAPAN,
	WLAN_REGION_USA,
	WLAN_REGION_FRANCE,
	WLAN_REGION_SPAIN,
	WLAN_REGION_ISRAEL,
	WLAN_REGION_MAX, // not a real type, defined as an upper bound
} WLAN_REGION_CODE;

#define REGION_NAME_MAX_LENGTH   256

typedef struct _WLAN_REGION_CHANNELS
{
	u32 Length;
	u32 NameLength;
	u8 Name[REGION_NAME_MAX_LENGTH];
	WLAN_REGION_CODE Code;
	u32 Frequency[1];
} WLAN_REGION_CHANNELS;

typedef struct _WLAN_REGION_CAPABILITIES
{
	u32 NumberOfItems;
	WLAN_REGION_CHANNELS Region[1];
} WLAN_REGION_CAPABILITIES;

typedef struct _region_name_map {
	WLAN_REGION_CODE region;
	u8 *name;
	u32 *channels;
} region_name_map;

/*--------------------------------------------------------------------------*/
#define MAC2STR(a) (a)[0], (a)[1], (a)[2], (a)[3], (a)[4], (a)[5]
#define MACSTR "%02X:%02X:%02X:%02X:%02X:%02X"

// TODO: 0627 kevin
#define MIC2STR(a) (a)[0], (a)[1], (a)[2], (a)[3], (a)[4], (a)[5], (a)[6], (a)[7]
#define MICSTR "%02X %02X %02X %02X %02X %02X %02X %02X"

#define MICKEY2STR(a)   MIC2STR(a)
#define MICKEYSTR       MICSTR


#endif /* __GL_80211_H__ */
/*** end of file ***/