📄 at76c503.h
字号:
/* -*- linux-c -*- *//* $Id: at76c503.h,v 1.15 2003/07/11 20:53:32 jal2 Exp $ * * USB at76c503 driver * * Copyright (c) 2002 - 2003 Oliver Kurth <oku@masqmail.cx> * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of * the License, or (at your option) any later version. * */#ifndef _AT76C503_H#define _AT76C503_H#include <linux/netdevice.h>#include <linux/etherdevice.h>#include <linux/wireless.h>#include "ieee802_11.h" /* we need some constants here *//* this wasn't even defined in early 2.4.x kernels ... */#ifndef SIOCIWFIRSTPRIV# define SIOCIWFIRSTPRIV SIOCDEVPRIVATE#endif/* WIRELESS_EXT 8 does not provide iw_point ! */#if WIRELESS_EXT <= 8/* this comes from <linux/wireless.h> */#undef IW_MAX_SPY #define IW_MAX_SPY 0#endif/* our private ioctl's *//* set preamble length*/#define PRIV_IOCTL_SET_SHORT_PREAMBLE (SIOCIWFIRSTPRIV + 0x0)/* set debug parameter */#define PRIV_IOCTL_SET_DEBUG (SIOCIWFIRSTPRIV + 0x1)/* set authentication mode: 0 - open, 1 - shared key */#define PRIV_IOCTL_SET_AUTH_MODE (SIOCIWFIRSTPRIV + 0x2)/* dump bss table */#define PRIV_IOCTL_LIST_BSS (SIOCIWFIRSTPRIV + 0x3)/* set power save mode (incl. the Atmel proprietary smart save mode */#define PRIV_IOCTL_SET_POWERSAVE_MODE (SIOCIWFIRSTPRIV + 0x4)/* set min and max channel times for scan */#define PRIV_IOCTL_SET_SCAN_TIMES (SIOCIWFIRSTPRIV + 0x5)/* set scan mode */#define PRIV_IOCTL_SET_SCAN_MODE (SIOCIWFIRSTPRIV + 0x6)#define DEVICE_VENDOR_REQUEST_OUT 0x40#define DEVICE_VENDOR_REQUEST_IN 0xc0#define INTERFACE_VENDOR_REQUEST_OUT 0x41#define INTERFACE_VENDOR_REQUEST_IN 0xc1#define CLASS_REQUEST_OUT 0x21#define CLASS_REQUEST_IN 0xa1#define CMD_STATUS_IDLE 0x00#define CMD_STATUS_COMPLETE 0x01#define CMD_STATUS_UNKNOWN 0x02#define CMD_STATUS_INVALID_PARAMETER 0x03#define CMD_STATUS_FUNCTION_NOT_SUPPORTED 0x04#define CMD_STATUS_TIME_OUT 0x07#define CMD_STATUS_IN_PROGRESS 0x08#define CMD_STATUS_HOST_FAILURE 0xff#define CMD_STATUS_SCAN_FAILED 0xf0#define OPMODE_NONE 0x00#define OPMODE_NETCARD 0x01#define OPMODE_CONFIG 0x02#define OPMODE_DFU 0x03#define OPMODE_NOFLASHNETCARD 0x04#define CMD_SET_MIB 0x01#define CMD_GET_MIB 0x02#define CMD_SCAN 0x03#define CMD_JOIN 0x04#define CMD_START_IBSS 0x05#define CMD_RADIO 0x06#define CMD_STARTUP 0x0B#define CMD_GETOPMODE 0x33#define MIB_LOCAL 0x01#define MIB_MAC_ADD 0x02#define MIB_MAC 0x03#define MIB_MAC_MGMT 0x05#define MIB_MAC_WEP 0x06#define MIB_PHY 0x07#define MIB_FW_VERSION 0x08#define MIB_MDOMAIN 0x09#define ADHOC_MODE 1#define INFRASTRUCTURE_MODE 2/* values for struct mib_local, field preamble_type */#define PREAMBLE_TYPE_SHORT 1#define PREAMBLE_TYPE_LONG 0/* values for tx_rate */#define TX_RATE_1MBIT 0#define TX_RATE_2MBIT 1#define TX_RATE_5_5MBIT 2#define TX_RATE_11MBIT 3#define TX_RATE_AUTO 4/* power management modi */#define PM_ACTIVE 1#define PM_SAVE 2#define PM_SMART_SAVE 3/* offsets into the MIBs we use to configure the device */#define TX_AUTORATE_FALLBACK_OFFSET offsetof(struct mib_local,txautorate_fallback)#define FRAGMENTATION_OFFSET offsetof(struct mib_mac,frag_threshold)#define PREAMBLE_TYPE_OFFSET offsetof(struct mib_local,preamble_type)#define RTS_OFFSET offsetof(struct mib_mac, rts_threshold) /* valid only for rfmd and 505 !*/#define IBSS_CHANGE_OK_OFFSET offsetof(struct mib_mac_mgmt, ibss_change)#define IROAMING_OFFSET \ offsetof(struct mib_mac_mgmt, multi_domain_capability_enabled)/* the AssocID */#define STATION_ID_OFFSET offsetof(struct mib_mac_mgmt, station_id)#define POWER_MGMT_MODE_OFFSET offsetof(struct mib_mac_mgmt, power_mgmt_mode)#define LISTEN_INTERVAL_OFFSET offsetof(struct mib_mac, listen_interval)#define BOARDTYPE_INTERSIL 0#define BOARDTYPE_RFMD 1#define BOARDTYPE_R505 2struct hwcfg_r505 { u8 cr39_values[14]; u8 reserved1[14]; u8 bb_cr[14]; u8 pidvid[4]; u8 mac_addr[ETH_ALEN]; u8 regulatory_domain; u8 reserved2[14]; u8 cr15_values[14]; u8 reserved3[3];} __attribute__ ((packed));struct hwcfg_rfmd { u8 cr20_values[14]; u8 cr21_values[14]; u8 bb_cr[14]; u8 pidvid[4]; u8 mac_addr[ETH_ALEN]; u8 regulatory_domain; u8 low_power_values[14]; u8 normal_power_values[14]; u8 reserved1[3]; } __attribute__ ((packed));struct hwcfg_intersil { u8 mac_addr[ETH_ALEN]; u8 cr31_values[14]; u8 cr58_values[14]; u8 pidvid[4]; u8 regulatory_domain; u8 reserved[1];} __attribute__ ((packed));#define WEP_KEY_SIZE 13#define NR_WEP_KEYS 4#define WEP_SMALL_KEY_LEN (40/8)#define WEP_LARGE_KEY_LEN (104/8)struct at76c503_card_config{ u8 exclude_unencrypted; u8 promiscuous_mode; u8 short_retry_limit; u8 encryption_type; u16 rts_threshold; u16 fragmentation_threshold; // 256..2346 u8 basic_rate_set[4]; u8 auto_rate_fallback; //0,1 u8 channel; u8 privacy_invoked; u8 wep_default_key_id; // 0..3 u8 current_ssid[32]; u8 wep_default_key_value[4][WEP_KEY_SIZE]; u8 ssid_len; u8 short_preamble; u16 beacon_period;} __attribute__ ((packed));struct at76c503_command{ u8 cmd; u8 reserved; u16 size;} __attribute__ ((packed));/* the length of the Atmel firmware specific rx header before IEEE 802.11 starts */#define AT76C503_RX_HDRLEN offsetof(struct at76c503_rx_buffer, packet)struct at76c503_rx_buffer { u16 wlength; u8 rx_rate; u8 newbss; u8 fragmentation; u8 rssi; u8 link_quality; u8 noise_level; u8 rx_time[4]; u8 packet[IEEE802_11_MAX_FRAME_LEN];} __attribute__ ((packed));/* the length of the Atmel firmware specific tx header before IEEE 802.11 starts */#define AT76C503_TX_HDRLEN offsetof(struct at76c503_tx_buffer, packet)struct at76c503_tx_buffer { u16 wlength; u8 tx_rate; u8 padding; u8 reserved[4]; u8 packet[IEEE802_11_MAX_FRAME_LEN];} __attribute__ ((packed));/* defines for scan_type below */#define SCAN_TYPE_ACTIVE 0#define SCAN_TYPE_PASSIVE 1struct at76c503_start_scan { u8 bssid[ETH_ALEN]; u8 essid[32]; u8 scan_type; u8 channel; u16 probe_delay; u16 min_channel_time; u16 max_channel_time; u8 essid_size; u8 international_scan;} __attribute__ ((packed));struct at76c503_start_bss { u8 bssid[ETH_ALEN]; u8 essid[32]; u8 bss_type; u8 channel; u8 essid_size; u8 reserved[3];} __attribute__ ((packed));struct at76c503_join { u8 bssid[ETH_ALEN]; u8 essid[32]; u8 bss_type; u8 channel; u16 timeout; u8 essid_size; u8 reserved;} __attribute__ ((packed));struct set_mib_buffer { u8 type; u8 size; u8 index; u8 reserved; u8 data[72];} __attribute__ ((packed));struct mib_local { u16 reserved0; u8 beacon_enable; u8 txautorate_fallback; u8 reserved1; u8 ssid_size; u8 promiscuous_mode; u16 reserved2; u8 preamble_type; u16 reserved3;} __attribute__ ((packed));struct mib_mac_addr { u8 mac_addr[ETH_ALEN]; u8 res[2]; /* ??? */ u8 group_addr[4][ETH_ALEN]; u8 group_addr_status[4];} __attribute__ ((packed));struct mib_mac { u32 max_tx_msdu_lifetime; u32 max_rx_lifetime; u16 frag_threshold; u16 rts_threshold; u16 cwmin; u16 cwmax; u8 short_retry_time;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -