516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx/*
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx * CDDL HEADER START
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx *
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx * The contents of this file are subject to the terms of the
a399b7655a1d835aa8606c2b29e4e777baac8635zf * Common Development and Distribution License (the "License").
a399b7655a1d835aa8606c2b29e4e777baac8635zf * You may not use this file except in compliance with the License.
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx *
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx * or http://www.opensolaris.org/os/licensing.
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx * See the License for the specific language governing permissions
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx * and limitations under the License.
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx *
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx * When distributing Covered Code, include this CDDL HEADER in each
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx * If applicable, add the following below this CDDL HEADER, with the
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx * fields enclosed by brackets "[]" replaced with your own identifying
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx * information: Portions Copyright [yyyy] [name of copyright owner]
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx *
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx * CDDL HEADER END
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx */
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx/*
e2cf88ac9d753a00c17aa235f6afdc76574fe3a6Quaker Fang * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx * Use is subject to license terms.
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx */
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx/*
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx * Macro and date structures defined for 802.11 wifi config tool.
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx */
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#ifndef __WIFI_IOCTL_H
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define __WIFI_IOCTL_H
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#include <sys/types.h>
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#ifdef __cplusplus
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxextern "C" {
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#endif
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define MAX_KEY_LENGTH 26
0d2f4bc964616a7fec76406480264fcaa2cfbc14ff#define MAX_ESSID_LENGTH (32 + 1) /* max essid length is 32 */
0d2f4bc964616a7fec76406480264fcaa2cfbc14ff /* one more for '\0' */
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define MAX_CHANNEL_NUM 99
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define MAX_RSSI 15
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define MAX_NWEPKEYS 4
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define NET_802_11 80211
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define MAX_BUF_LEN 65536
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define MAX_SCAN_SUPPORT_RATES 8
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx/*
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx * ioctls
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx */
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WLAN_IOCTL_BASE 0x1000
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WLAN_GET_VERSION (WLAN_IOCTL_BASE + 0x0)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WLAN_SET_PARAM (WLAN_IOCTL_BASE + 0x2)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WLAN_GET_PARAM (WLAN_IOCTL_BASE + 0x3)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WLAN_COMMAND (WLAN_IOCTL_BASE + 0x4)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx/*
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx * parameters
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx */
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_PARAMETERS_BASE 0x2000
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_BSSID (WL_PARAMETERS_BASE + 0x0)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_ESSID (WL_PARAMETERS_BASE + 0x1)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_NODE_NAME (WL_PARAMETERS_BASE + 0x2)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_PHY_SUPPORT (WL_PARAMETERS_BASE + 0x3)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_PHY_CONFIG (WL_PARAMETERS_BASE + 0x4)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_DOMAIN (WL_PARAMETERS_BASE + 0x5)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_POWER_MODE (WL_PARAMETERS_BASE + 0x6)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_TX_POWER (WL_PARAMETERS_BASE + 0x7)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_RSSI (WL_PARAMETERS_BASE + 0x8)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_RSSI_THRESHOLD (WL_PARAMETERS_BASE + 0x9)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_ESS_LIST (WL_PARAMETERS_BASE + 0xa)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_BSS_TYPE (WL_PARAMETERS_BASE + 0xb)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_CREATE_IBSS (WL_PARAMETERS_BASE + 0xc)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_RTS_THRESHOLD (WL_PARAMETERS_BASE + 0xd)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_SHORT_RETRY (WL_PARAMETERS_BASE + 0xe)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_LONG_RETRY (WL_PARAMETERS_BASE + 0xf)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_BEACON_PERIOD (WL_PARAMETERS_BASE + 0x10)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_TX_LIFETIME (WL_PARAMETERS_BASE + 0x11)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_RX_LIFETIME (WL_PARAMETERS_BASE + 0x12)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_FRAG_THRESHOLD (WL_PARAMETERS_BASE + 0x13)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_VENDOR_ID (WL_PARAMETERS_BASE + 0x14)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_PRODUCT_ID (WL_PARAMETERS_BASE + 0x15)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_NUM_ANTS (WL_PARAMETERS_BASE + 0x16)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_RX_ANTENNA (WL_PARAMETERS_BASE + 0x17)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_TX_ANTENNA (WL_PARAMETERS_BASE + 0x18)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_SUPPORTED_RATES (WL_PARAMETERS_BASE + 0x19)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_DESIRED_RATES (WL_PARAMETERS_BASE + 0x1a)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_WEP_KEY_TAB (WL_PARAMETERS_BASE + 0x1b)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_WEP_KEY_ID (WL_PARAMETERS_BASE + 0x1c)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_WEP_MAPPING_TAB (WL_PARAMETERS_BASE + 0x1d)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_WEP_MAPPING_LEN (WL_PARAMETERS_BASE + 0x1e)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_ENCRYPTION (WL_PARAMETERS_BASE + 0x1f)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_AUTH_MODE (WL_PARAMETERS_BASE + 0x20)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_EXCL_UNENC (WL_PARAMETERS_BASE + 0x21)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_RFMON (WL_PARAMETERS_BASE + 0x22)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_RADIO (WL_PARAMETERS_BASE + 0x23)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_LINKSTATUS (WL_PARAMETERS_BASE + 0x24)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_DEV_DEPEND (WL_PARAMETERS_BASE + 0x25)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx/*
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx * commands
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx */
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_COMMAND_BASE 0x3000
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_SCAN (WL_COMMAND_BASE + 0x0)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_DISASSOCIATE (WL_COMMAND_BASE + 0x1)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_REASSOCIATE (WL_COMMAND_BASE + 0x2)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_LOAD_DEFAULTS (WL_COMMAND_BASE + 0x3)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_ASSOCIAT (WL_COMMAND_BASE + 0x4)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx/*
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx * domains
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx */
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx/* --USA */
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_DOMAIN_BASE 0x4000
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_DOMAIN_FCC (WL_DOMAIN_BASE + 0x0)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx/* --Canada */
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_DOMAIN_DOC (WL_DOMAIN_BASE + 0x1)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx/* --Most of Europe */
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_DOMAIN_ETSI (WL_DOMAIN_BASE + 0x2)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx/* --Spain */
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_DOMAIN_SPAIN (WL_DOMAIN_BASE + 0x3)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx/* --France */
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_DOMAIN_FRANCE (WL_DOMAIN_BASE + 0x4)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx/* --Japan */
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_DOMAIN_MKK (WL_DOMAIN_BASE + 0x5)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx/*
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx * power mode
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx */
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_PM_AM 0x0
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_PM_MPS 0x1
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_PM_FAST 0x2
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_PM_USER 0x3
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx/*
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx * rates
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx */
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_RATE_BASIC_SET 0x80
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_RATE_1M 2
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_RATE_2M 4
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_RATE_5_5M 11
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_RATE_6M 12
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_RATE_9M 18
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_RATE_11M 22
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_RATE_12M 24
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_RATE_18M 36
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_RATE_22M 44
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_RATE_24M 48
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_RATE_33M 66
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_RATE_36M 72
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_RATE_48M 96
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_RATE_54M 108
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx/*
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx * wep operations
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx */
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_WEP_OPERATION_BASE 0x6000
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_ADD (WL_WEP_OPERATION_BASE + 0x0)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_DEL (WL_WEP_OPERATION_BASE + 0x1)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_NUL (WL_WEP_OPERATION_BASE + 0x2)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_IND (WL_WEP_OPERATION_BASE + 0x3)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_NOENCRYPTION 0x0
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_ENC_WEP 0x1
a399b7655a1d835aa8606c2b29e4e777baac8635zf#define WL_ENC_WPA 0x2
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_OPENSYSTEM 0x1
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_SHAREDKEY 0x2
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx/*
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx * linkstatus
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx */
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_CONNECTED 0x0
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_NOTCONNECTED 0x1
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx/*
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx * prives
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx */
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_PRIV_BASE 0x7000
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_PRIV_RW (WL_PRIV_BASE + 0x0)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_PRIV_R (WL_PRIV_BASE + 0x1)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_PRIV_W (WL_PRIV_BASE + 0x2)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_PRIV_INT (WL_PRIV_BASE + 0x3)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_PRIV_INT_ARRAY (WL_PRIV_BASE + 0x4)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_PRIV_BYTE (WL_PRIV_BASE + 0x5)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_PRIV_BYTE_ARRAY (WL_PRIV_BASE + 0x6)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_PRIV_STRING (WL_PRIV_BASE + 0x7)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_PRIV_STRING_ARRAY (WL_PRIV_BASE + 0x8)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx/*
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx * return values
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx */
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_SUCCESS 0x0
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_NOTSUPPORTED EINVAL
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_LACK_FEATURE ENOTSUP
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_HW_ERROR EIO
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_ACCESS_DENIED EACCES
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_RETURN_BASE 0x7000
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_READONLY (WL_RETURN_BASE + 0x1)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_WRITEONLY (WL_RETURN_BASE + 0x2)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_NOAP (WL_RETURN_BASE + 0x3)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx/*
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx * other values
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx */
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_OTHER_BASE 0x8000
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_FHSS (WL_OTHER_BASE + 0x0)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_DSSS (WL_OTHER_BASE + 0x1)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_IRBASE (WL_OTHER_BASE + 0x2)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_OFDM (WL_OTHER_BASE + 0x3)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_HRDS (WL_OTHER_BASE + 0x4)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_ERP (WL_OTHER_BASE + 0x5)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_BSS_BSS 1
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_BSS_IBSS 3
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WL_BSS_ANY 2
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx/*
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx * field_offset
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx */
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#define WIFI_BUF_OFFSET offsetof(wldp_t, wldp_buf)
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx/*
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx * type definationes
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx */
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef boolean_t wl_create_ibss_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef char wl_bssid_t[6];
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef struct wl_essid {
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_essid_length;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx char wl_essid_essid[34];
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx}wl_essid_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef struct wl_nodename {
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_nodename_length;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx char wl_nodename_name[34];
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx} wl_nodename_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef struct wl_phy_supported {
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_phy_support_num;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_phy_support_phy_types[1];
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx} wl_phy_supported_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef struct wl_fhss {
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_fhss_subtype;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_fhss_channel;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_fhss_hoptime;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_fhss_hoppattern;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_fhss_hopset;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_fhss_dwelltime;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx} wl_fhss_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef struct wl_dsss {
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_dsss_subtype;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_dsss_channel;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx boolean_t wl_dsss_have_short_preamble;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_dsss_preamble_mode;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx boolean_t wl_dsss_agility_enabled;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx boolean_t wl_dsss_have_pbcc;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx boolean_t wl_dsss_pbcc_enable;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx} wl_dsss_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef struct wl_ofdm {
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_ofdm_subtype;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_ofdm_frequency;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_ofdm_freq_supported;
e2cf88ac9d753a00c17aa235f6afdc76574fe3a6Quaker Fang boolean_t wl_ofdm_ht_enabled;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx} wl_ofdm_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef struct wl_erp {
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_erp_subtype;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_erp_channel;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx boolean_t wl_erp_have_short_preamble;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_erp_preamble_mode;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx boolean_t wl_erp_have_agility;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx boolean_t wl_erp_agility_enabled;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx boolean_t wl_erp_have_pbcc;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx boolean_t wl_erp_pbcc_enabled;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx boolean_t wl_erp_have_dsss_ofdm;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx boolean_t wl_erp_dsss_ofdm_enabled;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx boolean_t wl_erp_have_sst;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx boolean_t wl_erp_sst_enabled;
e2cf88ac9d753a00c17aa235f6afdc76574fe3a6Quaker Fang boolean_t wl_erp_ht_enabled;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx} wl_erp_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef union wl_phy_conf {
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx wl_fhss_t wl_phy_fhss_conf;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx wl_dsss_t wl_phy_dsss_conf;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx wl_ofdm_t wl_phy_ofdm_conf;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx wl_erp_t wl_phy_erp_conf;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx} wl_phy_conf_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef uint32_t wl_domain_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef struct wl_ps_mode {
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_ps_mode;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_ps_max_sleep;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_ps_min_sleep;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_ps_max_awake;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_ps_min_awake;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx boolean_t wl_ps_nobroadcast;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx} wl_ps_mode_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef uint32_t wl_linkstatus_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef uint32_t wl_tx_pwer_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef uint32_t wl_rssi_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef uint32_t wl_rssi_threshold_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef uint32_t wl_bss_type_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef uint32_t wl_authmode_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef uint32_t wl_encryption_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef uint32_t wl_wep_key_id_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef boolean_t wl_radio_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef uint32_t wl_rts_threshold_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef uint32_t wl_short_retry_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef uint32_t wl_long_retry_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef uint32_t wl_beacon_period_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef uint32_t wl_tx_lifetime_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef uint32_t wl_rx_lifetime_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef uint32_t wl_frag_threshold_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef char wl_vendor_t[128];
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef char wl_product_t[128];
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef uint32_t wl_num_ants_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef uint32_t wl_rx_antenna_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef uint32_t wl_tx_antenna_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef struct wl_rates {
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_rates_num;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx char wl_rates_rates[1];
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx} wl_rates_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef struct wl_ess_conf {
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_ess_conf_length;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx wl_essid_t wl_ess_conf_essid;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx wl_bssid_t wl_ess_conf_bssid;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx char wl_ess_conf_reserved[2];
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx wl_bss_type_t wl_ess_conf_bsstype;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx wl_authmode_t wl_ess_conf_authmode;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx boolean_t wl_ess_conf_wepenabled;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx wl_rssi_t wl_ess_conf_sl;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx union {
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx wl_fhss_t wl_phy_fhss_conf;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx wl_dsss_t wl_phy_dsss_conf;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx wl_ofdm_t wl_phy_ofdm_conf;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx wl_erp_t wl_phy_erp_conf;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx } wl_phy_conf;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx char wl_supported_rates[MAX_SCAN_SUPPORT_RATES];
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx} wl_ess_conf_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef struct wl_ess_list {
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_ess_list_num;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx wl_ess_conf_t wl_ess_list_ess[1];
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx} wl_ess_list_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef struct wl_wep_key {
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_wep_length;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx char wl_wep_key[MAX_KEY_LENGTH];
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_wep_operation;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx} wl_wep_key_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef wl_wep_key_t wl_wep_key_tab_t[MAX_NWEPKEYS];
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef struct wep_mapping {
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_wep_map_index;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx boolean_t wl_wep_map_wepon;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx char wl_wep_map_mac_addr[6];
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx char wl_wep_map_reserved[2];
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx wl_wep_key_t wl_wep_map_wepkey;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx} wep_mapping_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef wep_mapping_t wep_mapping_tab_t[1];
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef struct wl_priv_param {
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx char wl_priv_name[8];
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_priv_type;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_priv_size;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx char wl_priv_value[1];
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx} wl_priv_param_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef struct wl_dev_depend {
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_dev_depend_num;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_dev_depend_ret_idx;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx wl_priv_param_t wl_dev_depend_priv[1];
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx} wl_dev_depend_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef struct wlan_ver {
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_ver_major;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wl_ver_minor;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx} wlan_ver_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhxtypedef struct wldp {
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wldp_length;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wldp_type;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wldp_result;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wldp_id;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx uint32_t wldp_buf[1];
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx} wldp_t;
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#ifdef __cplusplus
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx}
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#endif
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx
516fc7f3e48e25d0375ea3f93ead33ec38bc597bhx#endif /* __WIFI_IOCTL_H */