1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Copyright (c) 2004, 2005 Jeroen Vreeken (pe1rxq@amsat.org) 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Parts of this driver have been derived from a wlan-ng version 6*4882a593Smuzhiyun * modified by ZyDAS. 7*4882a593Smuzhiyun * Copyright (C) 1999 AbsoluteValue Systems, Inc. All Rights Reserved. 8*4882a593Smuzhiyun */ 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun #ifndef _INCLUDE_ZD1201_H_ 11*4882a593Smuzhiyun #define _INCLUDE_ZD1201_H_ 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun #define ZD1201_NUMKEYS 4 14*4882a593Smuzhiyun #define ZD1201_MAXKEYLEN 13 15*4882a593Smuzhiyun #define ZD1201_MAXMULTI 16 16*4882a593Smuzhiyun #define ZD1201_FRAGMAX 2500 17*4882a593Smuzhiyun #define ZD1201_FRAGMIN 256 18*4882a593Smuzhiyun #define ZD1201_RTSMAX 2500 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun #define ZD1201_RXSIZE 3000 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun struct zd1201 { 23*4882a593Smuzhiyun struct usb_device *usb; 24*4882a593Smuzhiyun int removed; 25*4882a593Smuzhiyun struct net_device *dev; 26*4882a593Smuzhiyun struct iw_statistics iwstats; 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun int endp_in; 29*4882a593Smuzhiyun int endp_out; 30*4882a593Smuzhiyun int endp_out2; 31*4882a593Smuzhiyun struct urb *rx_urb; 32*4882a593Smuzhiyun struct urb *tx_urb; 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun unsigned char rxdata[ZD1201_RXSIZE]; 35*4882a593Smuzhiyun int rxlen; 36*4882a593Smuzhiyun wait_queue_head_t rxdataq; 37*4882a593Smuzhiyun int rxdatas; 38*4882a593Smuzhiyun struct hlist_head fraglist; 39*4882a593Smuzhiyun unsigned char txdata[ZD1201_RXSIZE]; 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun int ap; 42*4882a593Smuzhiyun char essid[IW_ESSID_MAX_SIZE+1]; 43*4882a593Smuzhiyun int essidlen; 44*4882a593Smuzhiyun int mac_enabled; 45*4882a593Smuzhiyun int was_enabled; 46*4882a593Smuzhiyun int monitor; 47*4882a593Smuzhiyun int encode_enabled; 48*4882a593Smuzhiyun int encode_restricted; 49*4882a593Smuzhiyun unsigned char encode_keys[ZD1201_NUMKEYS][ZD1201_MAXKEYLEN]; 50*4882a593Smuzhiyun int encode_keylen[ZD1201_NUMKEYS]; 51*4882a593Smuzhiyun }; 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun struct zd1201_frag { 54*4882a593Smuzhiyun struct hlist_node fnode; 55*4882a593Smuzhiyun int seq; 56*4882a593Smuzhiyun struct sk_buff *skb; 57*4882a593Smuzhiyun }; 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun #define ZD1201SIWHOSTAUTH SIOCIWFIRSTPRIV 60*4882a593Smuzhiyun #define ZD1201GIWHOSTAUTH ZD1201SIWHOSTAUTH+1 61*4882a593Smuzhiyun #define ZD1201SIWAUTHSTA SIOCIWFIRSTPRIV+2 62*4882a593Smuzhiyun #define ZD1201SIWMAXASSOC SIOCIWFIRSTPRIV+4 63*4882a593Smuzhiyun #define ZD1201GIWMAXASSOC ZD1201SIWMAXASSOC+1 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun #define ZD1201_FW_TIMEOUT (1000) 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun #define ZD1201_TX_TIMEOUT (2000) 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun #define ZD1201_USB_CMDREQ 0 70*4882a593Smuzhiyun #define ZD1201_USB_RESREQ 1 71*4882a593Smuzhiyun 72*4882a593Smuzhiyun #define ZD1201_CMDCODE_INIT 0x00 73*4882a593Smuzhiyun #define ZD1201_CMDCODE_ENABLE 0x01 74*4882a593Smuzhiyun #define ZD1201_CMDCODE_DISABLE 0x02 75*4882a593Smuzhiyun #define ZD1201_CMDCODE_ALLOC 0x0a 76*4882a593Smuzhiyun #define ZD1201_CMDCODE_INQUIRE 0x11 77*4882a593Smuzhiyun #define ZD1201_CMDCODE_SETRXRID 0x17 78*4882a593Smuzhiyun #define ZD1201_CMDCODE_ACCESS 0x21 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun #define ZD1201_PACKET_EVENTSTAT 0x0 81*4882a593Smuzhiyun #define ZD1201_PACKET_RXDATA 0x1 82*4882a593Smuzhiyun #define ZD1201_PACKET_INQUIRE 0x2 83*4882a593Smuzhiyun #define ZD1201_PACKET_RESOURCE 0x3 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun #define ZD1201_ACCESSBIT 0x0100 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun #define ZD1201_RID_CNFPORTTYPE 0xfc00 88*4882a593Smuzhiyun #define ZD1201_RID_CNFOWNMACADDR 0xfc01 89*4882a593Smuzhiyun #define ZD1201_RID_CNFDESIREDSSID 0xfc02 90*4882a593Smuzhiyun #define ZD1201_RID_CNFOWNCHANNEL 0xfc03 91*4882a593Smuzhiyun #define ZD1201_RID_CNFOWNSSID 0xfc04 92*4882a593Smuzhiyun #define ZD1201_RID_CNFMAXDATALEN 0xfc07 93*4882a593Smuzhiyun #define ZD1201_RID_CNFPMENABLED 0xfc09 94*4882a593Smuzhiyun #define ZD1201_RID_CNFPMEPS 0xfc0a 95*4882a593Smuzhiyun #define ZD1201_RID_CNFMAXSLEEPDURATION 0xfc0c 96*4882a593Smuzhiyun #define ZD1201_RID_CNFDEFAULTKEYID 0xfc23 97*4882a593Smuzhiyun #define ZD1201_RID_CNFDEFAULTKEY0 0xfc24 98*4882a593Smuzhiyun #define ZD1201_RID_CNFDEFAULTKEY1 0xfc25 99*4882a593Smuzhiyun #define ZD1201_RID_CNFDEFAULTKEY2 0xfc26 100*4882a593Smuzhiyun #define ZD1201_RID_CNFDEFAULTKEY3 0xfc27 101*4882a593Smuzhiyun #define ZD1201_RID_CNFWEBFLAGS 0xfc28 102*4882a593Smuzhiyun #define ZD1201_RID_CNFAUTHENTICATION 0xfc2a 103*4882a593Smuzhiyun #define ZD1201_RID_CNFMAXASSOCSTATIONS 0xfc2b 104*4882a593Smuzhiyun #define ZD1201_RID_CNFHOSTAUTH 0xfc2e 105*4882a593Smuzhiyun #define ZD1201_RID_CNFGROUPADDRESS 0xfc80 106*4882a593Smuzhiyun #define ZD1201_RID_CNFFRAGTHRESHOLD 0xfc82 107*4882a593Smuzhiyun #define ZD1201_RID_CNFRTSTHRESHOLD 0xfc83 108*4882a593Smuzhiyun #define ZD1201_RID_TXRATECNTL 0xfc84 109*4882a593Smuzhiyun #define ZD1201_RID_PROMISCUOUSMODE 0xfc85 110*4882a593Smuzhiyun #define ZD1201_RID_CNFBASICRATES 0xfcb3 111*4882a593Smuzhiyun #define ZD1201_RID_AUTHENTICATESTA 0xfce3 112*4882a593Smuzhiyun #define ZD1201_RID_CURRENTBSSID 0xfd42 113*4882a593Smuzhiyun #define ZD1201_RID_COMMSQUALITY 0xfd43 114*4882a593Smuzhiyun #define ZD1201_RID_CURRENTTXRATE 0xfd44 115*4882a593Smuzhiyun #define ZD1201_RID_CNFMAXTXBUFFERNUMBER 0xfda0 116*4882a593Smuzhiyun #define ZD1201_RID_CURRENTCHANNEL 0xfdc1 117*4882a593Smuzhiyun 118*4882a593Smuzhiyun #define ZD1201_INQ_SCANRESULTS 0xf101 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun #define ZD1201_INF_LINKSTATUS 0xf200 121*4882a593Smuzhiyun #define ZD1201_INF_ASSOCSTATUS 0xf201 122*4882a593Smuzhiyun #define ZD1201_INF_AUTHREQ 0xf202 123*4882a593Smuzhiyun 124*4882a593Smuzhiyun #define ZD1201_ASSOCSTATUS_STAASSOC 0x1 125*4882a593Smuzhiyun #define ZD1201_ASSOCSTATUS_REASSOC 0x2 126*4882a593Smuzhiyun #define ZD1201_ASSOCSTATUS_DISASSOC 0x3 127*4882a593Smuzhiyun #define ZD1201_ASSOCSTATUS_ASSOCFAIL 0x4 128*4882a593Smuzhiyun #define ZD1201_ASSOCSTATUS_AUTHFAIL 0x5 129*4882a593Smuzhiyun 130*4882a593Smuzhiyun #define ZD1201_PORTTYPE_IBSS 0 131*4882a593Smuzhiyun #define ZD1201_PORTTYPE_BSS 1 132*4882a593Smuzhiyun #define ZD1201_PORTTYPE_WDS 2 133*4882a593Smuzhiyun #define ZD1201_PORTTYPE_PSEUDOIBSS 3 134*4882a593Smuzhiyun #define ZD1201_PORTTYPE_AP 6 135*4882a593Smuzhiyun 136*4882a593Smuzhiyun #define ZD1201_RATEB1 1 137*4882a593Smuzhiyun #define ZD1201_RATEB2 2 138*4882a593Smuzhiyun #define ZD1201_RATEB5 4 /* 5.5 really, but 5 is shorter :) */ 139*4882a593Smuzhiyun #define ZD1201_RATEB11 8 140*4882a593Smuzhiyun 141*4882a593Smuzhiyun #define ZD1201_CNFAUTHENTICATION_OPENSYSTEM 0x0001 142*4882a593Smuzhiyun #define ZD1201_CNFAUTHENTICATION_SHAREDKEY 0x0002 143*4882a593Smuzhiyun 144*4882a593Smuzhiyun #endif /* _INCLUDE_ZD1201_H_ */ 145