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