115 lines
4.3 KiB
C
115 lines
4.3 KiB
C
|
//------------------------------------------------------------------------------
|
||
|
// ISC License (ISC)
|
||
|
//
|
||
|
// Copyright (c) 2004-2010, The Linux Foundation
|
||
|
// All rights reserved.
|
||
|
// Software was previously licensed under ISC license by Qualcomm Atheros, Inc.
|
||
|
//
|
||
|
//
|
||
|
// Permission to use, copy, modify, and/or distribute this software for any
|
||
|
// purpose with or without fee is hereby granted, provided that the above
|
||
|
// copyright notice and this permission notice appear in all copies.
|
||
|
//
|
||
|
// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||
|
// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||
|
// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||
|
// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||
|
// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||
|
// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||
|
// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||
|
//
|
||
|
//
|
||
|
//------------------------------------------------------------------------------
|
||
|
//==============================================================================
|
||
|
// This file contains local definitios for the wmi host module.
|
||
|
//
|
||
|
// Author(s): ="Atheros"
|
||
|
//==============================================================================
|
||
|
#ifndef _WMI_HOST_H_
|
||
|
#define _WMI_HOST_H_
|
||
|
|
||
|
#include "roaming.h"
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
struct wmi_stats {
|
||
|
A_UINT32 cmd_len_err;
|
||
|
A_UINT32 cmd_id_err;
|
||
|
};
|
||
|
|
||
|
#define LE_READ_4(p) \
|
||
|
((A_UINT32) \
|
||
|
((((A_UINT8 *)(p))[0] ) | (((A_UINT8 *)(p))[1] << 8) | \
|
||
|
(((A_UINT8 *)(p))[2] << 16) | (((A_UINT8 *)(p))[3] << 24)))
|
||
|
|
||
|
|
||
|
#define SSID_IE_LEN_INDEX 13
|
||
|
|
||
|
|
||
|
/* Host side link management data structures */
|
||
|
#define SIGNAL_QUALITY_THRESHOLD_LEVELS 6
|
||
|
#define SIGNAL_QUALITY_UPPER_THRESHOLD_LEVELS SIGNAL_QUALITY_THRESHOLD_LEVELS
|
||
|
#define SIGNAL_QUALITY_LOWER_THRESHOLD_LEVELS SIGNAL_QUALITY_THRESHOLD_LEVELS
|
||
|
typedef struct sq_threshold_params_s {
|
||
|
A_INT16 upper_threshold[SIGNAL_QUALITY_UPPER_THRESHOLD_LEVELS];
|
||
|
A_INT16 lower_threshold[SIGNAL_QUALITY_LOWER_THRESHOLD_LEVELS];
|
||
|
A_UINT32 upper_threshold_valid_count;
|
||
|
A_UINT32 lower_threshold_valid_count;
|
||
|
A_UINT32 polling_interval;
|
||
|
A_UINT8 weight;
|
||
|
A_UINT8 last_rssi; //normally you would expect this to be bss specific but we keep only one instance because its only valid when the device is in a connected state. Not sure if it belongs to host or target.
|
||
|
A_UINT8 last_rssi_poll_event; //Not sure if it belongs to host or target
|
||
|
} SQ_THRESHOLD_PARAMS;
|
||
|
|
||
|
/*
|
||
|
* Virtual device specific wmi_t data structure
|
||
|
*/
|
||
|
|
||
|
struct wmi_t {
|
||
|
void *wmi_devt;
|
||
|
struct ieee80211_node_table wmi_scan_table;
|
||
|
A_UINT8 wmi_bssid[ATH_MAC_LEN];
|
||
|
A_UINT8 wmi_powerMode;
|
||
|
A_UINT8 wmi_phyMode;
|
||
|
A_UINT8 wmi_keepaliveInterval;
|
||
|
SQ_THRESHOLD_PARAMS wmi_SqThresholdParams[SIGNAL_QUALITY_METRICS_NUM_MAX];
|
||
|
CRYPTO_TYPE wmi_pair_crypto_type;
|
||
|
CRYPTO_TYPE wmi_grp_crypto_type;
|
||
|
WMI_SET_HT_CAP_CMD wmi_ht_cap[A_NUM_BANDS];
|
||
|
A_BOOL wmi_is_wmm_enabled;
|
||
|
A_UINT8 wmi_dev_index;
|
||
|
struct wmi_stats wmi_stats;
|
||
|
A_UINT8 wmi_user_phy;
|
||
|
A_UINT8 wmi_user_ht[A_NUM_BANDS];
|
||
|
void (* host_sleep_mode_event_fn)(void *);
|
||
|
void *host_sleep_mode_event_fn_arg;
|
||
|
};
|
||
|
|
||
|
/*
|
||
|
* Virtual device independent wmi data structure
|
||
|
*/
|
||
|
|
||
|
struct wmi_priv_t {
|
||
|
A_BOOL wmi_ready;
|
||
|
A_BOOL wmi_numQoSStream;
|
||
|
A_UINT8 wmi_fatPipeExists;
|
||
|
A_UINT16 wmi_streamExistsForAC[WMM_NUM_AC];
|
||
|
HTC_ENDPOINT_ID wmi_endpoint_id;
|
||
|
A_MUTEX_T wmi_lock;
|
||
|
};
|
||
|
#define LOCK_WMI(w) A_MUTEX_LOCK(&(w)->wmi_lock);
|
||
|
#define UNLOCK_WMI(w) A_MUTEX_UNLOCK(&(w)->wmi_lock);
|
||
|
|
||
|
int
|
||
|
iswmmoui(const A_UINT8 *frm);
|
||
|
|
||
|
int
|
||
|
iswmmparam(const A_UINT8 *frm);
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif /* _WMI_HOST_H_ */
|