⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p80211types.h

📁 uClinux2.6上兼容PRISM2.0芯片组的USB设备驱动程序.
💻 H
📖 第 1 页 / 共 2 页
字号:
/* src/include/wlan/p80211types.h** Macros, constants, types, and funcs for p80211 data types** Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.* --------------------------------------------------------------------** linux-wlan**   The contents of this file are subject to the Mozilla Public*   License Version 1.1 (the "License"); you may not use this file*   except in compliance with the License. You may obtain a copy of*   the License at http://www.mozilla.org/MPL/**   Software distributed under the License is distributed on an "AS*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or*   implied. See the License for the specific language governing*   rights and limitations under the License.**   Alternatively, the contents of this file may be used under the*   terms of the GNU Public License version 2 (the "GPL"), in which*   case the provisions of the GPL are applicable instead of the*   above.  If you wish to allow the use of your version of this file*   only under the terms of the GPL and not to allow others to use*   your version of this file under the MPL, indicate your decision*   by deleting the provisions above and replace them with the notice*   and other provisions required by the GPL.  If you do not delete*   the provisions above, a recipient may use your version of this*   file under either the MPL or the GPL.** --------------------------------------------------------------------** Inquiries regarding the linux-wlan Open Source project can be* made directly to:** AbsoluteValue Systems Inc.* info@linux-wlan.com* http://www.linux-wlan.com** --------------------------------------------------------------------** Portions of the development of this software were funded by * Intersil Corporation as part of PRISM(R) chipset product development.** --------------------------------------------------------------------** This file declares some of the constants and types used in various* parts of the linux-wlan system.** Notes: *   - Constant values are always in HOST byte order.** All functions and statics declared here are implemented in p80211types.c*   --------------------------------------------------------------------*/#ifndef _P80211TYPES_H#define _P80211TYPES_H/*================================================================*//* System Includes *//*================================================================*//*================================================================*//* Project Includes *//*================================================================*/#ifndef _WLAN_COMPAT_H#include <wlan/wlan_compat.h>#endif/*================================================================*//* Constants *//*================================================================*//*----------------------------------------------------------------*//* p80211 data type codes used for MIB items and message *//* arguments. The various metadata structures provide additional *//* information about these types. */#define P80211_TYPE_OCTETSTR		1	/* pascal array of bytes */#define P80211_TYPE_DISPLAYSTR		2	/* pascal array of bytes containing ascii */#define P80211_TYPE_INT			4	/* UINT32 min and max limited by 32 bits */#define P80211_TYPE_ENUMINT		5	/* UINT32 holding a numeric						   code that can be mapped						   to a textual name */#define P80211_TYPE_UNKDATA		6	/* Data item containing an						   unknown data type */#define P80211_TYPE_INTARRAY		7	/* Array of 32-bit integers. */#define P80211_TYPE_BITARRAY		8	/* Array of bits. */#define P80211_TYPE_MACARRAY		9	/* Array of MAC addresses. *//*----------------------------------------------------------------*//* The following constants are indexes into the Mib Category List *//* and the Message Category List *//* Mib Category List */#define P80211_MIB_CAT_DOT11SMT		1#define P80211_MIB_CAT_DOT11MAC		2#define P80211_MIB_CAT_DOT11PHY		3#define P80211SEC_DOT11SMT		P80211_MIB_CAT_DOT11SMT#define P80211SEC_DOT11MAC		P80211_MIB_CAT_DOT11MAC#define P80211SEC_DOT11PHY		P80211_MIB_CAT_DOT11PHY/* Message Category List */#define P80211_MSG_CAT_DOT11REQ		1#define P80211_MSG_CAT_DOT11IND		2/* #define P80211_MSG_CAT_DOT11CFM		3 (doesn't exist at this time) */#define P80211SEC_DOT11REQ		P80211_MSG_CAT_DOT11REQ#define P80211SEC_DOT11IND		P80211_MSG_CAT_DOT11IND/* #define P80211SEC_DOT11CFM		P80211_MSG_CAT_DOT11CFM  (doesn't exist at this time *//*----------------------------------------------------------------*//* p80211 DID field codes that represent access type and *//* is_table status. */#define P80211DID_ACCESS_READ		0x10000000#define P80211DID_ACCESS_WRITE		0x08000000#define P80211DID_WRITEONLY		0x00000001#define P80211DID_READONLY		0x00000002#define P80211DID_READWRITE		0x00000003#define P80211DID_ISTABLE_FALSE		0#define P80211DID_ISTABLE_TRUE		1/*----------------------------------------------------------------*//* p80211 enumeration constants.  The value to text mappings for *//*  these is in p80211types.c.  These defines were generated *//*  from the mappings. *//* error codes for lookups */#define P80211ENUM_BAD				0xffffffffUL#define P80211ENUM_BADSTR			"P80211ENUM_BAD"#define P80211ENUM_truth_false			0#define P80211ENUM_truth_true			1#define P80211ENUM_ifstate_disable		0#define P80211ENUM_ifstate_fwload		1#define P80211ENUM_ifstate_enable		2#define P80211ENUM_powermgmt_active		1#define P80211ENUM_powermgmt_powersave		2#define P80211ENUM_bsstype_infrastructure	1#define P80211ENUM_bsstype_independent		2#define P80211ENUM_bsstype_any			3#define P80211ENUM_authalg_opensystem		1#define P80211ENUM_authalg_sharedkey		2#define P80211ENUM_phytype_fhss			1#define P80211ENUM_phytype_dsss			2#define P80211ENUM_phytype_irbaseband		3#define P80211ENUM_temptype_commercial		1#define P80211ENUM_temptype_industrial		2#define P80211ENUM_regdomain_fcc		16#define P80211ENUM_regdomain_doc		32#define P80211ENUM_regdomain_etsi		48#define P80211ENUM_regdomain_spain		49#define P80211ENUM_regdomain_france		50#define P80211ENUM_regdomain_mkk		64#define P80211ENUM_ccamode_edonly		1#define P80211ENUM_ccamode_csonly		2#define P80211ENUM_ccamode_edandcs		4#define P80211ENUM_ccamode_cswithtimer		8#define P80211ENUM_ccamode_hrcsanded		16#define P80211ENUM_diversity_fixedlist		1#define P80211ENUM_diversity_notsupported	2#define P80211ENUM_diversity_dynamic		3#define P80211ENUM_scantype_active		1#define P80211ENUM_scantype_passive		2#define P80211ENUM_scantype_both		3#define P80211ENUM_resultcode_success		1#define P80211ENUM_resultcode_invalid_parameters	2#define P80211ENUM_resultcode_not_supported	3#define P80211ENUM_resultcode_timeout		4#define P80211ENUM_resultcode_too_many_req	5#define P80211ENUM_resultcode_refused		6#define P80211ENUM_resultcode_bss_already	7#define P80211ENUM_resultcode_invalid_access	8#define P80211ENUM_resultcode_invalid_mibattribute	9#define P80211ENUM_resultcode_cant_set_readonly_mib	10#define P80211ENUM_resultcode_implementation_failure	11#define P80211ENUM_resultcode_cant_get_writeonly_mib	12#define P80211ENUM_reason_unspec_reason		1#define P80211ENUM_reason_auth_not_valid	2#define P80211ENUM_reason_deauth_lv_ss		3#define P80211ENUM_reason_inactivity		4#define P80211ENUM_reason_ap_overload		5#define P80211ENUM_reason_class23_err		6#define P80211ENUM_reason_class3_err		7#define P80211ENUM_reason_disas_lv_ss		8#define P80211ENUM_reason_asoc_not_auth		9#define P80211ENUM_status_successful		0#define P80211ENUM_status_unspec_failure	1#define P80211ENUM_status_unsup_cap		10#define P80211ENUM_status_reasoc_no_asoc	11#define P80211ENUM_status_fail_other		12#define P80211ENUM_status_unspt_alg		13#define P80211ENUM_status_auth_seq_fail		14#define P80211ENUM_status_chlng_fail		15#define P80211ENUM_status_auth_timeout		16#define P80211ENUM_status_ap_full		17#define P80211ENUM_status_unsup_rate		18#define P80211ENUM_status_unsup_shortpreamble	19#define P80211ENUM_status_unsup_pbcc		20#define P80211ENUM_status_unsup_agility		21#define P80211ENUM_msgitem_status_data_ok		0#define P80211ENUM_msgitem_status_no_value		1#define P80211ENUM_msgitem_status_invalid_itemname	2#define P80211ENUM_msgitem_status_invalid_itemdata	3#define P80211ENUM_msgitem_status_missing_itemdata	4#define P80211ENUM_msgitem_status_incomplete_itemdata	5#define P80211ENUM_msgitem_status_invalid_msg_did	6#define P80211ENUM_msgitem_status_invalid_mib_did	7#define P80211ENUM_msgitem_status_missing_conv_func	8#define P80211ENUM_msgitem_status_string_too_long	9#define P80211ENUM_msgitem_status_data_out_of_range	10#define P80211ENUM_msgitem_status_string_too_short	11#define P80211ENUM_msgitem_status_missing_valid_func	12#define P80211ENUM_msgitem_status_unknown		13#define P80211ENUM_msgitem_status_invalid_did		14#define P80211ENUM_msgitem_status_missing_print_func	15#define P80211ENUM_lnxroam_reason_unknown        0#define P80211ENUM_lnxroam_reason_beacon         1#define P80211ENUM_lnxroam_reason_signal         2#define P80211ENUM_lnxroam_reason_txretry        3#define P80211ENUM_lnxroam_reason_notjoined      4#define P80211ENUM_p2preamble_long               0#define P80211ENUM_p2preamble_short              2#define P80211ENUM_p2preamble_mixed              3/*----------------------------------------------------------------*//* p80211 max length constants for the different pascal strings. */#define MAXLEN_PSTR6		(6)	/* pascal array of 6 bytes */#define MAXLEN_PSTR14		(14)	/* pascal array of 14 bytes */#define MAXLEN_PSTR32		(32)	/* pascal array of 32 bytes */#define MAXLEN_PSTR255		(255)	/* pascal array of 255 bytes */#define MAXLEN_MIBATTRIBUTE	(392)	/* maximum mibattribute */					/* where the size of the DATA itself */					/* is a DID-LEN-DATA triple */					/* with a max size of 4+4+384 */#define P80211_SET_INT(item, value) do { \	(item).data   = (value); \	(item).status = P80211ENUM_msgitem_status_data_ok; \	} while(0)/*----------------------------------------------------------------*//* string constants */#define NOT_SET			"NOT_SET"#define NOT_SUPPORTED		"NOT_SUPPORTED"#define UNKNOWN_DATA		"UNKNOWN_DATA"/*--------------------------------------------------------------------*//*  Metadata flags  *//* MSM: Do these belong in p80211meta.h? I'm not sure. */#define ISREQUIRED		(0x80000000UL)#define ISREQUEST		(0x40000000UL)#define ISCONFIRM		(0x20000000UL)/*================================================================*//* Macros *//*--------------------------------------------------------------------*//* The following macros are used to manipulate the 'flags' field in   *//*  the metadata.  These are only used when the metadata is for       *//*  command arguments to determine if the data item is required, and  *//*  whether the metadata item is for a request command, confirm       *//*  command or both.                                                  *//*--------------------------------------------------------------------*//* MSM: Do these belong in p80211meta.h?  I'm not sure */#define P80211ITEM_SETFLAGS(q, r, c)	( q | r | c )#define P80211ITEM_ISREQUIRED(flags)	(((UINT32)(flags & ISREQUIRED)) >> 31 )#define P80211ITEM_ISREQUEST(flags)	(((UINT32)(flags & ISREQUEST)) >> 30 )#define P80211ITEM_ISCONFIRM(flags)	(((UINT32)(flags & ISCONFIRM)) >> 29 )/*----------------------------------------------------------------*//* The following macro creates a name for an enum */#define MKENUMNAME(name) p80211enum_ ## name/*----------------------------------------------------------------* The following constants and macros are used to construct and* deconstruct the Data ID codes.  The coding is as follows:**     ...rwtnnnnnnnniiiiiiggggggssssss      s - Section*                                           g - Group*                                           i - Item*                                           n - Index*                                           t - Table flag*                                           w - Write flag*                                           r - Read flag*                                           . - Unused*/#define P80211DID_INVALID		0xffffffffUL#define P80211DID_VALID			0x00000000UL#define P80211DID_LSB_SECTION		(0)#define P80211DID_LSB_GROUP		(6)#define P80211DID_LSB_ITEM		(12)#define P80211DID_LSB_INDEX		(18)#define P80211DID_LSB_ISTABLE		(26)#define P80211DID_LSB_ACCESS 		(27)#define P80211DID_MASK_SECTION		(0x0000003fUL)#define P80211DID_MASK_GROUP		(0x0000003fUL)#define P80211DID_MASK_ITEM		(0x0000003fUL)#define P80211DID_MASK_INDEX		(0x000000ffUL)#define P80211DID_MASK_ISTABLE		(0x00000001UL)#define P80211DID_MASK_ACCESS 		(0x00000003UL)#define P80211DID_MK(a,m,l)	((((UINT32)(a)) & (m)) << (l))#define P80211DID_MKSECTION(a)	P80211DID_MK(a, \					P80211DID_MASK_SECTION, \					P80211DID_LSB_SECTION )#define P80211DID_MKGROUP(a)	P80211DID_MK(a, \					P80211DID_MASK_GROUP, \					P80211DID_LSB_GROUP )#define P80211DID_MKITEM(a)	P80211DID_MK(a, \					P80211DID_MASK_ITEM, \					P80211DID_LSB_ITEM )#define P80211DID_MKINDEX(a)	P80211DID_MK(a, \					P80211DID_MASK_INDEX, \					P80211DID_LSB_INDEX )#define P80211DID_MKISTABLE(a)	P80211DID_MK(a, \					P80211DID_MASK_ISTABLE, \

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -