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

📄 wlandrv.h

📁 含有完整TCP/IP PPP协议的嵌入式操作系统
💻 H
字号:
/*****************************************************************************  This file is part of the WLAN-Ethernut device driver.**  Copyright (c) 2004 by Michael Fischer. All rights reserved.**  Redistribution and use in source and binary forms, with or without *  modification, are permitted provided that the following conditions *  are met:*  *  1. Redistributions of source code must retain the above copyright *     notice, this list of conditions and the following disclaimer.*  2. Redistributions in binary form must reproduce the above copyright*     notice, this list of conditions and the following disclaimer in the *     documentation and/or other materials provided with the distribution.*  3. Neither the name of the author nor the names of its contributors may *     be used to endorse or promote products derived from this software *     without specific prior written permission.**  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL *  THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS *  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED *  AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, *  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF *  THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF *  SUCH DAMAGE.******************************************************************************  Portions Copyright: **  Copyright (c) 2001 Atsushi Onoe*  Copyright (c) 2002, 2003 Sam Leffler, Errno Consulting*  Copyright (c) 2002 M Warner Losh <imp@freebsd.org>.  All rights reserved.*  Copyright (c) 1997, 1998, 1999*	 Bill Paul <wpaul@ctr.columbia.edu>.  All rights reserved.**  Redistribution and use in source and binary forms, with or without*  modification, are permitted provided that the following conditions*  are met:*  1. Redistributions of source code must retain the above copyright*     notice, this list of conditions and the following disclaimer.*  2. Redistributions in binary form must reproduce the above copyright*     notice, this list of conditions and the following disclaimer in the*     documentation and/or other materials provided with the distribution.*  3. Neither the name of the author nor the names of any co-contributors*     may be used to endorse or promote products derived from this software*     without specific prior written permission.**  THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND*  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE*  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE*  ARE DISCLAIMED.  IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD*  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR*  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF*  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS*  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN*  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)*  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF*  THE POSSIBILITY OF SUCH DAMAGE.******************************************************************************  History:**  28.02.04  mifi   First Version *                   This file is a mix of several FreeBSD header files.*                   I have put all the files together, because it was*                   difficult to use the original files. I have try this*                   but I must comment out to much to get it to work.*                   The other "define" file is wlandef.h, *                   here you will the rest of it.*  03.03.04  mifi   Move debug switch to wlancfg.h****************************************************************************/#ifndef __WLANDRV_H__#define __WLANDRV_H__#include <compiler.h>#include <dev/wlantypes.h>#include <dev/wlan.h>#include <dev/wlandef.h>/*-------------------------------------------------------------------------*//* global defines and types                                                *//*-------------------------------------------------------------------------*//* * Resetport definition*/#define RESET_EN_PORT           DDRD#define RESET_PORT		          PORTD#define RESET_BIT	 	            0x20/***************************************************************************//*                           if_wivar.h                                    *//***************************************************************************//* * Driver Flags*/#define	WI_FLAGS_ATTACHED       0x0001#define	WI_FLAGS_INITIALIZED    0x0002#define	WI_FLAGS_OUTRANGE       0x0004#define	WI_FLAGS_HAS_MOR        0x0010#define	WI_FLAGS_HAS_ROAMING    0x0020#define	WI_FLAGS_HAS_DIVERSITY  0x0040#define	WI_FLAGS_HAS_SYSSCALE   0x0080#define	WI_FLAGS_BUG_AUTOINC    0x0100#define	WI_FLAGS_HAS_FRAGTHR    0x0200#define	WI_FLAGS_HAS_DBMADJUST  0x0400/* * TX Buffer count*/ #define	WI_NTXBUF               3/***************************************************************************//*                          ieee80211.h                                    *//***************************************************************************/#define IEEE80211_ADDR_LEN      6#define	IEEE80211_NWID_LEN      32#define	IEEE80211_WEP_KEYLEN    5 /* 40bit */#define	IEEE80211_WEP_IVLEN     3	/* 24bit */#define	IEEE80211_WEP_KIDLEN    1	/* 1 octet */#define	IEEE80211_WEP_CRCLEN    4	/* CRC-32 */#define	IEEE80211_WEP_NKID      4	/* number of key ids */#define	IEEE80211_CRC_LEN       4/***************************************************************************//*                          ieee80211_var.h                                *//***************************************************************************//* * ic_flags */#define	IEEE80211_F_ASCAN       0x00000001  /* STATUS: active scan */#define	IEEE80211_F_SIBSS       0x00000002  /* STATUS: start IBSS */#define	IEEE80211_F_WEPON       0x00000100  /* CONF: WEP enabled */#define	IEEE80211_F_IBSSON      0x00000200  /* CONF: IBSS creation enable */#define	IEEE80211_F_PMGTON      0x00000400  /* CONF: Power mgmt enable */#define	IEEE80211_F_DESBSSID    0x00000800  /* CONF: des_bssid is set */#define	IEEE80211_F_SCANAP      0x00001000  /* CONF: Scanning AP */#define	IEEE80211_F_ROAMING     0x00002000  /* CONF: roaming enabled */#define	IEEE80211_F_SWRETRY     0x00004000  /* CONF: sw tx retry enabled */#define	IEEE80211_F_TXPMGT      0x00018000  /* STATUS: tx power */#define IEEE80211_F_TXPOW_OFF   0x00000000  /* TX Power: radio disabled */#define IEEE80211_F_TXPOW_FIXED 0x00008000  /* TX Power: fixed rate */#define IEEE80211_F_TXPOW_AUTO  0x00010000  /* TX Power: undefined */#define	IEEE80211_F_SHSLOT      0x00020000  /* CONF: short slot time */#define	IEEE80211_F_SHPREAMBLE  0x00040000  /* CONF: short preamble *//* * ic_caps*/#define	IEEE80211_C_WEP         0x0001  /* CAPABILITY: WEP available  */#define	IEEE80211_C_IBSS        0x0002  /* CAPABILITY: IBSS available */#define	IEEE80211_C_PMGT        0x0004  /* CAPABILITY: Power mgmt     */#define	IEEE80211_C_HOSTAP      0x0008  /* CAPABILITY: HOSTAP avail   */#define	IEEE80211_C_AHDEMO      0x0010  /* CAPABILITY: Old Adhoc Demo */#define	IEEE80211_C_SWRETRY     0x0020  /* CAPABILITY: sw tx retry    */#define	IEEE80211_C_TXPMGT      0x0040  /* CAPABILITY: tx power mgmt  */#define	IEEE80211_C_SHSLOT      0x0080  /* CAPABILITY: short slottime */#define	IEEE80211_C_SHPREAMBLE  0x0100  /* CAPABILITY: short preamble */#define	IEEE80211_C_MONITOR     0x0200  /* CAPABILITY: monitor mode   */#define	IEEE80211_C_RCVMGT      0x0400  /* CAPABILITY: rcv mgt frames */enum ieee80211_opmode {  IEEE80211_M_STA     = 1,      /* infrastructure station */  IEEE80211_M_IBSS    = 0,      /* IBSS (adhoc) station */  IEEE80211_M_AHDEMO  = 3,      /* Old lucent compatible adhoc demo */  IEEE80211_M_HOSTAP  = 6,      /* Software Access Point */  IEEE80211_M_MONITOR = 8       /* Monitor mode */};/***************************************************************************//*                          ieee80211_prot.h                               *//***************************************************************************//* * 802.11 protocol implementation definitions.*/enum ieee80211_state {	IEEE80211_S_INIT	= 0,	      /* default state */	IEEE80211_S_SCAN	= 1,	      /* scanning */	IEEE80211_S_AUTH	= 2,	      /* try to authenticate */	IEEE80211_S_ASSOC	= 3,	      /* try to assoc */	IEEE80211_S_RUN		= 4,	      /* associated */};#define	IEEE80211_S_MAX		(IEEE80211_S_RUN+1)/***************************************************************************//*                          ieee80211_crypto.h                             *//***************************************************************************//* * 802.11 protocol crypto-related definitions. */#define	IEEE80211_KEYBUF_SIZE	16struct ieee80211_wepkey {  int wk_len;  u_int8_t wk_key[IEEE80211_KEYBUF_SIZE];};/***************************************************************************//*                          ieee80211_node.h                               *//***************************************************************************/struct ieee80211_rateset {  u_int8_t rs_nrates;  u_int8_t rs_rates[IEEE80211_RATE_MAXSIZE];};/***************************************************************************//*                          ieee80211_var.h                                *//***************************************************************************/struct ieee80211com {  u_int8_t                  ic_myaddr[IEEE80211_ADDR_LEN];  struct ieee80211_rateset  ic_sup_rates[IEEE80211_MODE_MAX];  u_int16_t                 ChannelList;  u_int32_t                 ic_flags;           /* state flags */  u_int32_t                 ic_caps;            /* capabilities */  enum ieee80211_opmode     ic_opmode;          /* operation mode */  enum ieee80211_state      ic_state;           /* 802.11 state */  u_int16_t                 ic_ibss_chan;  int                       ic_fixed_rate;      /* index to ic_sup_rates[] */  int                       ic_des_esslen;  u_int8_t                  ic_des_essid[IEEE80211_NWID_LEN];  struct ieee80211_wepkey   ic_nw_keys[IEEE80211_WEP_NKID];  int                       ic_wep_txkey;       /* default tx key index */};/***************************************************************************//*                             if_wivar.h                                  *//***************************************************************************/struct wi_softc {  /*   * This is our Interrupt stuff   */  int                 InterruptInitDone;   HANDLE volatile     InterruptEvent;  u_int16_t           EventStatus;  /*   * Now here comes the FreeBSD stuff...   */  struct ieee80211com sc_ic;    int                 PromiscuousMode;  int                 wi_gone;  int                 sc_enabled;  int                 sc_reset;  int                 sc_firmware_type;  u_int32_t           sc_pri_firmware_ver;  /* Primary firmware */  u_int32_t           sc_sta_firmware_ver;  /* Station firmware */  int                 wi_cmd_count;  int                 sc_flags;  int                 sc_bap_id;  int                 sc_bap_off;  u_int16_t           sc_portnum;  /*   * RSSI interpretation    */  u_int16_t           sc_min_rssi;          /* clamp sc_min_rssi < RSSI */  u_int16_t           sc_max_rssi;          /* clamp RSSI < sc_max_rssi */  u_int16_t           sc_dbm_offset;        /* dBm ~ RSSI - sc_dbm_offset */  u_int16_t           sc_max_datalen;  u_int16_t           sc_system_scale;  u_int16_t           sc_cnfauthmode;  u_int16_t           sc_roaming_mode;  u_int16_t           sc_microwave_oven;  u_int16_t           sc_authtype;  int                 sc_buflen;            /* TX buffer size */  int                 sc_ntxbuf;  struct {    int d_fid;    int d_len;  } sc_txd[WI_NTXBUF];                      /* TX buffers */  int                 sc_txnext;            /* index of next TX */  int                 sc_txcur;             /* index of current TX */  int                 sc_tx_timer;  int                 sc_scan_timer;  u_int16_t           sc_ibss_port;};typedef struct wi_softc WI_SOFTC;/*-------------------------------------------------------------------------*//* global macros                                                           *//*-------------------------------------------------------------------------*/#define device_t              NUTDEVICE*#define device_get_softc(_a)  (struct wi_softc*)_a->dev_dcb/*-------------------------------------------------------------------------*//* Prototypes                                                              *//*-------------------------------------------------------------------------*/int   wlandrv_ProbeDevice (void);int   wlandrv_Attach      (device_t dev);void  wlandrv_Init        (device_t dev);int   wlandrv_PutPacket   (NUTDEVICE * dev, NETBUF * nb);int   wlandrv_IOCTL       (NUTDEVICE * dev, int req, void *conf);#endif /* !__WLANDRV_H__ */

⌨️ 快捷键说明

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