Nut/OS  4.10.3
API Reference
wlandrv.c File Reference
#include <compiler.h>
#include <stdio.h>
#include <stddef.h>
#include <string.h>
#include <sys/timer.h>
#include <sys/thread.h>
#include <sys/event.h>
#include <errno.h>
#include <netinet/if_ether.h>
#include <net/ether.h>
#include <net/if_var.h>
#include <dev/irqreg.h>
#include <dev/wlantypes.h>
#include <dev/pcmcia.h>
#include <dev/wlancfg.h>
#include <dev/wlan.h>
#include <dev/wlandrv.h>
Include dependency graph for wlandrv.c:

Go to the source code of this file.

Data Structures

struct  wi_card_ident
struct  ieee80211_frame_addr4
struct  wi_frame
struct  wi_ssid
struct  LLCS_SNAP_HEADER

Defines

#define __WLANDRV_C__
#define Debug(_x)
#define Debug2(_x)
#define panic
#define WI_LOCK(sc)   NutEventWait(&hDeviceSemaphore,0)
#define WI_UNLOCK(sc)   NutEventPost(&hDeviceSemaphore)
#define ieee80211_new_state(_a, _b, _c)   _a->ic_state=_b
#define isset(_a, _b)   (*_a & (1<<_b))
#define CSR_WRITE_2(_a, _b, _c)   pcmcia_WriteReg(_b,_c)
#define CSR_READ_2(_a, _b)   pcmcia_ReadReg(_b)
#define WLAN_MIN_ETHERNET_FRAME_LEN   60
#define WLAN_MAX_ETHERNET_FRAME_LEN   1514
#define WLAN_ETHERNET_HEADER_LEN   14
#define WI_INTRS   (WI_EV_RX | WI_EV_ALLOC | WI_EV_INFO)

Functions

void DumpWlanData (BYTE *pBuffer, WORD wBufferSize)
void wi_stop (struct wi_softc *sc, int disable)
void RxThread (void *arg)
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)

Variables

struct wi_card_ident wi_card_ident []

Define Documentation

#define __WLANDRV_C__

Definition at line 79 of file wlandrv.c.

#define Debug (   _x)

Definition at line 109 of file wlandrv.c.

Referenced by DumpWlanData(), RxThread(), wlandrv_Attach(), wlandrv_Init(), and wlandrv_PutPacket().

#define Debug2 (   _x)

Definition at line 110 of file wlandrv.c.

#define panic

Definition at line 111 of file wlandrv.c.

#define WI_LOCK (   sc)    NutEventWait(&hDeviceSemaphore,0)

Definition at line 114 of file wlandrv.c.

Referenced by RxThread(), wlandrv_Init(), wlandrv_IOCTL(), and wlandrv_PutPacket().

#define WI_UNLOCK (   sc)    NutEventPost(&hDeviceSemaphore)

Definition at line 115 of file wlandrv.c.

Referenced by RxThread(), wlandrv_Init(), wlandrv_IOCTL(), and wlandrv_PutPacket().

#define ieee80211_new_state (   _a,
  _b,
  _c 
)    _a->ic_state=_b

Definition at line 117 of file wlandrv.c.

Referenced by wi_stop(), and wlandrv_Init().

#define isset (   _a,
  _b 
)    (*_a & (1<<_b))

Definition at line 118 of file wlandrv.c.

#define CSR_WRITE_2 (   _a,
  _b,
  _c 
)    pcmcia_WriteReg(_b,_c)

Definition at line 120 of file wlandrv.c.

Referenced by RxThread(), wi_stop(), and wlandrv_Init().

#define CSR_READ_2 (   _a,
  _b 
)    pcmcia_ReadReg(_b)

Definition at line 121 of file wlandrv.c.

#define WLAN_MIN_ETHERNET_FRAME_LEN   60

Definition at line 126 of file wlandrv.c.

#define WLAN_MAX_ETHERNET_FRAME_LEN   1514

Definition at line 127 of file wlandrv.c.

#define WLAN_ETHERNET_HEADER_LEN   14

Definition at line 128 of file wlandrv.c.

#define WI_INTRS   (WI_EV_RX | WI_EV_ALLOC | WI_EV_INFO)

Definition at line 133 of file wlandrv.c.

Referenced by RxThread(), and wlandrv_Init().


Function Documentation

void DumpWlanData ( BYTE pBuffer,
WORD  wBufferSize 
)

Definition at line 264 of file wlandrv.c.

References Debug.

Referenced by wlandrv_PutPacket().

int wlandrv_ProbeDevice ( void  )

Definition at line 1385 of file wlandrv.c.

References NutSleep(), pcmcia_ReadReg(), pcmcia_WriteMem(), pcmcia_WriteReg(), RESET_BIT, RESET_EN_PORT, RESET_PORT, WI_COR_OFFSET, WI_COR_VALUE, WI_HFA384X_SWSUPPORT0_OFF, and WI_PRISM2STA_MAGIC.

Referenced by WlanInit().

Here is the call graph for this function:

int wlandrv_Attach ( device_t  dev)

Definition at line 1434 of file wlandrv.c.

References ieee80211com::ChannelList, Debug, device_get_softc, ENXIO, htole16, ieee80211com::ic_caps, ieee80211com::ic_fixed_rate, ieee80211com::ic_ibss_chan, ieee80211com::ic_myaddr, ieee80211com::ic_opmode, ieee80211com::ic_state, ieee80211com::ic_sup_rates, IEEE80211_ADDR_LEN, IEEE80211_AUTH_OPEN, IEEE80211_C_AHDEMO, IEEE80211_C_HOSTAP, IEEE80211_C_IBSS, IEEE80211_C_MONITOR, IEEE80211_C_PMGT, IEEE80211_C_WEP, IEEE80211_M_STA, IEEE80211_MODE_11B, IEEE80211_RATE_MAXSIZE, IEEE80211_RATE_SIZE, IEEE80211_S_INIT, le16toh, NutEventPost(), ieee80211_rateset::rs_nrates, ieee80211_rateset::rs_rates, wi_softc::sc_authtype, wi_softc::sc_cnfauthmode, wi_softc::sc_dbm_offset, wi_softc::sc_firmware_type, wi_softc::sc_flags, wi_softc::sc_ibss_port, wi_softc::sc_ic, wi_softc::sc_max_datalen, wi_softc::sc_max_rssi, wi_softc::sc_min_rssi, wi_softc::sc_ntxbuf, wi_softc::sc_portnum, wi_softc::sc_roaming_mode, wi_softc::sc_sta_firmware_ver, wi_softc::sc_system_scale, wi_softc::wi_cmd_count, WI_DEFAULT_AUTHTYPE, WI_DEFAULT_PORT, WI_DEFAULT_ROAMING, WI_FLAGS_BUG_AUTOINC, WI_FLAGS_HAS_DBMADJUST, WI_FLAGS_HAS_DIVERSITY, WI_FLAGS_HAS_FRAGTHR, WI_FLAGS_HAS_MOR, WI_FLAGS_HAS_ROAMING, WI_FLAGS_HAS_SYSSCALE, WI_INTERSIL, WI_LUCENT, WI_LUCENT_DBM_OFFSET, WI_LUCENT_MAX_RSSI, WI_LUCENT_MIN_RSSI, WI_NTXBUF, WI_PRISM_DBM_OFFSET, WI_PRISM_MAX_RSSI, WI_PRISM_MIN_RSSI, WI_RID_CHANNEL_LIST, WI_RID_DATA_RATES, WI_RID_DBM_ADJUST, WI_RID_MAC_NODE, WI_RID_OWN_CHNL, WI_RID_WEP_AVAIL, and WI_SYMBOL.

Referenced by WlanInit().

Here is the call graph for this function:

void wlandrv_Init ( device_t  dev)

Definition at line 1660 of file wlandrv.c.

References CSR_WRITE_2, wi_softc::d_fid, wi_softc::d_len, Debug, device_get_softc, EICR, FALSE, htole16, ieee80211com::ic_caps, ieee80211com::ic_des_essid, ieee80211com::ic_des_esslen, ieee80211com::ic_flags, ieee80211com::ic_ibss_chan, ieee80211com::ic_myaddr, ieee80211com::ic_opmode, IEEE80211_ADDR_LEN, IEEE80211_C_WEP, IEEE80211_CHAN_ANYC, IEEE80211_F_DESBSSID, IEEE80211_F_IBSSON, IEEE80211_F_PMGTON, IEEE80211_M_AHDEMO, IEEE80211_M_HOSTAP, IEEE80211_M_IBSS, IEEE80211_M_MONITOR, IEEE80211_M_STA, IEEE80211_MAX_LEN, ieee80211_new_state, IEEE80211_S_RUN, INT7, wi_softc::InterruptInitDone, memset(), NutRegisterIrqHandler(), NutThreadCreate(), wi_softc::PromiscuousMode, RxThread(), sbi, wi_softc::sc_buflen, wi_softc::sc_enabled, wi_softc::sc_firmware_type, wi_softc::sc_flags, wi_softc::sc_ibss_port, wi_softc::sc_ic, wi_softc::sc_max_datalen, wi_softc::sc_microwave_oven, wi_softc::sc_ntxbuf, wi_softc::sc_portnum, wi_softc::sc_roaming_mode, wi_softc::sc_system_scale, wi_softc::sc_txcur, wi_softc::sc_txd, wi_softc::sc_txnext, sig_INTERRUPT7, WI_CMD_DEBUG, WI_CMD_DISABLE, WI_CMD_ENABLE, WI_FLAGS_HAS_FRAGTHR, WI_FLAGS_HAS_MOR, WI_FLAGS_HAS_ROAMING, WI_FLAGS_HAS_SYSSCALE, WI_FLAGS_OUTRANGE, wi_softc::wi_gone, WI_INT_EN, WI_INTERSIL, WI_INTRS, WI_LOCK, WI_LUCENT, WI_PORT0, WI_PORTTYPE_ADHOC, WI_PORTTYPE_BSS, WI_PORTTYPE_HOSTAP, WI_RID_BASIC_RATE, WI_RID_CREATE_IBSS, WI_RID_DESIRED_SSID, WI_RID_DTIM_PERIOD, WI_RID_FRAG_THRESH, WI_RID_MAC_NODE, WI_RID_MAX_DATALEN, WI_RID_MAX_SLEEP, WI_RID_MICROWAVE_OVEN, WI_RID_NODENAME, WI_RID_OWN_BEACON_INT, WI_RID_OWN_CHNL, WI_RID_OWN_SSID, WI_RID_PM_ENABLED, WI_RID_PORTTYPE, WI_RID_PROMISC, WI_RID_ROAMING_MODE, WI_RID_RTS_THRESH, WI_RID_SUPPORT_RATE, WI_RID_SYSTEM_SCALE, wi_stop(), WI_SYMBOL, WI_TEST_MONITOR, and WI_UNLOCK.

Referenced by RxThread(), wlandrv_IOCTL(), and WlanInit().

Here is the call graph for this function:


Variable Documentation

Initial value:
 {
    

    {WI_NIC_LUCENT_ID, WI_NIC_LUCENT_STR, WI_LUCENT},
    {WI_NIC_SONY_ID, WI_NIC_SONY_STR, WI_LUCENT},
    {WI_NIC_LUCENT_EMB_ID, WI_NIC_LUCENT_EMB_STR, WI_LUCENT},



    {WI_NIC_EVB2_ID, WI_NIC_EVB2_STR, WI_INTERSIL},
    {WI_NIC_HWB3763_ID, WI_NIC_HWB3763_STR, WI_INTERSIL},
    {WI_NIC_HWB3163_ID, WI_NIC_HWB3163_STR, WI_INTERSIL},
    {WI_NIC_HWB3163B_ID, WI_NIC_HWB3163B_STR, WI_INTERSIL},
    {WI_NIC_EVB3_ID, WI_NIC_EVB3_STR, WI_INTERSIL},
    {WI_NIC_HWB1153_ID, WI_NIC_HWB1153_STR, WI_INTERSIL},
    {WI_NIC_P2_SST_ID, WI_NIC_P2_SST_STR, WI_INTERSIL},
    {WI_NIC_EVB2_SST_ID, WI_NIC_EVB2_SST_STR, WI_INTERSIL},
    {WI_NIC_3842_EVA_ID, WI_NIC_3842_EVA_STR, WI_INTERSIL},
    {WI_NIC_3842_PCMCIA_AMD_ID, WI_NIC_3842_PCMCIA_STR, WI_INTERSIL},
    {WI_NIC_3842_PCMCIA_SST_ID, WI_NIC_3842_PCMCIA_STR, WI_INTERSIL},
    {WI_NIC_3842_PCMCIA_ATL_ID, WI_NIC_3842_PCMCIA_STR, WI_INTERSIL},
    {WI_NIC_3842_PCMCIA_ATS_ID, WI_NIC_3842_PCMCIA_STR, WI_INTERSIL},
    {WI_NIC_3842_MINI_AMD_ID, WI_NIC_3842_MINI_STR, WI_INTERSIL},
    {WI_NIC_3842_MINI_SST_ID, WI_NIC_3842_MINI_STR, WI_INTERSIL},
    {WI_NIC_3842_MINI_ATL_ID, WI_NIC_3842_MINI_STR, WI_INTERSIL},
    {WI_NIC_3842_MINI_ATS_ID, WI_NIC_3842_MINI_STR, WI_INTERSIL},
    {WI_NIC_3842_PCI_AMD_ID, WI_NIC_3842_PCI_STR, WI_INTERSIL},
    {WI_NIC_3842_PCI_SST_ID, WI_NIC_3842_PCI_STR, WI_INTERSIL},
    {WI_NIC_3842_PCI_ATS_ID, WI_NIC_3842_PCI_STR, WI_INTERSIL},
    {WI_NIC_3842_PCI_ATL_ID, WI_NIC_3842_PCI_STR, WI_INTERSIL},
    {WI_NIC_P3_PCMCIA_AMD_ID, WI_NIC_P3_PCMCIA_STR, WI_INTERSIL},
    {WI_NIC_P3_PCMCIA_SST_ID, WI_NIC_P3_PCMCIA_STR, WI_INTERSIL},
    {WI_NIC_P3_PCMCIA_ATL_ID, WI_NIC_P3_PCMCIA_STR, WI_INTERSIL},
    {WI_NIC_P3_PCMCIA_ATS_ID, WI_NIC_P3_PCMCIA_STR, WI_INTERSIL},
    {WI_NIC_P3_MINI_AMD_ID, WI_NIC_P3_MINI_STR, WI_INTERSIL},
    {WI_NIC_P3_MINI_SST_ID, WI_NIC_P3_MINI_STR, WI_INTERSIL},
    {WI_NIC_P3_MINI_ATL_ID, WI_NIC_P3_MINI_STR, WI_INTERSIL},
    {WI_NIC_P3_MINI_ATS_ID, WI_NIC_P3_MINI_STR, WI_INTERSIL},

    {0, NULL, 0},
}

Definition at line 198 of file wlandrv.c.