qcacld-3.0: Initial snapshot of ihelium wlan driver to match code-scanned SU Release 5.0.0.139. This is open-source version of wlan for next Android release. Change-Id: Icf598ca97da74f84bea607e4e902d1889806f507
183 lines
4.7 KiB
C
183 lines
4.7 KiB
C
/*
|
|
* Copyright (c) 2012, 2014 The Linux Foundation. All rights reserved.
|
|
*
|
|
* Previously licensed under the 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 was originally distributed by Qualcomm Atheros, Inc.
|
|
* under proprietary terms before Copyright ownership was assigned
|
|
* to the Linux Foundation.
|
|
*/
|
|
|
|
/*
|
|
* This file contains extensions of the WMI protocol specified in the
|
|
* Wireless Module Interface (WMI). It includes definitions of all
|
|
* extended commands and events. Extensions include useful commands
|
|
* that are not directly related to wireless activities. They may
|
|
* be hardware-specific, and they might not be supported on all
|
|
* implementations.
|
|
*
|
|
* Extended WMIX commands are encapsulated in a WMI message with
|
|
* cmd=WMI_EXTENSION_CMD.
|
|
*/
|
|
|
|
#ifndef _WMIX_H_
|
|
#define _WMIX_H_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*
|
|
* Extended WMI commands are those that are needed during wireless
|
|
* operation, but which are not really wireless commands. This allows,
|
|
* for instance, platform-specific commands. Extended WMI commands are
|
|
* embedded in a WMI command message with WMI_COMMAND_ID=WMI_EXTENSION_CMDID.
|
|
* Extended WMI events are similarly embedded in a WMI event message with
|
|
* WMI_EVENT_ID=WMI_EXTENSION_EVENTID.
|
|
*/
|
|
typedef struct {
|
|
A_UINT32 commandId;
|
|
} POSTPACK WMIX_CMD_HDR;
|
|
|
|
typedef enum {
|
|
WMIX_DSETOPEN_REPLY_CMDID = 0x2001,
|
|
WMIX_DSETDATA_REPLY_CMDID,
|
|
WMIX_HB_CHALLENGE_RESP_CMDID,
|
|
WMIX_DBGLOG_CFG_MODULE_CMDID,
|
|
WMIX_PROF_CFG_CMDID, /* 0x200a */
|
|
WMIX_PROF_ADDR_SET_CMDID,
|
|
WMIX_PROF_START_CMDID,
|
|
WMIX_PROF_STOP_CMDID,
|
|
WMIX_PROF_COUNT_GET_CMDID,
|
|
} WMIX_COMMAND_ID;
|
|
|
|
typedef enum {
|
|
WMIX_DSETOPENREQ_EVENTID = 0x3001,
|
|
WMIX_DSETCLOSE_EVENTID,
|
|
WMIX_DSETDATAREQ_EVENTID,
|
|
WMIX_HB_CHALLENGE_RESP_EVENTID,
|
|
WMIX_DBGLOG_EVENTID,
|
|
WMIX_PROF_COUNT_EVENTID,
|
|
WMIX_PKTLOG_EVENTID,
|
|
} WMIX_EVENT_ID;
|
|
|
|
/*
|
|
* =============DataSet support=================
|
|
*/
|
|
|
|
/*
|
|
* WMIX_DSETOPENREQ_EVENTID
|
|
* DataSet Open Request Event
|
|
*/
|
|
typedef struct {
|
|
A_UINT32 dset_id;
|
|
A_UINT32 targ_dset_handle; /* echo'ed, not used by Host, */
|
|
A_UINT32 targ_reply_fn; /* echo'ed, not used by Host, */
|
|
A_UINT32 targ_reply_arg; /* echo'ed, not used by Host, */
|
|
} POSTPACK WMIX_DSETOPENREQ_EVENT;
|
|
|
|
/*
|
|
* WMIX_DSETCLOSE_EVENTID
|
|
* DataSet Close Event
|
|
*/
|
|
typedef struct {
|
|
A_UINT32 access_cookie;
|
|
} POSTPACK WMIX_DSETCLOSE_EVENT;
|
|
|
|
/*
|
|
* WMIX_DSETDATAREQ_EVENTID
|
|
* DataSet Data Request Event
|
|
*/
|
|
typedef struct {
|
|
A_UINT32 access_cookie;
|
|
A_UINT32 offset;
|
|
A_UINT32 length;
|
|
A_UINT32 targ_buf; /* echo'ed, not used by Host, */
|
|
A_UINT32 targ_reply_fn; /* echo'ed, not used by Host, */
|
|
A_UINT32 targ_reply_arg; /* echo'ed, not used by Host, */
|
|
} WMIX_DSETDATAREQ_EVENT;
|
|
|
|
typedef struct {
|
|
A_UINT32 status;
|
|
A_UINT32 targ_dset_handle;
|
|
A_UINT32 targ_reply_fn;
|
|
A_UINT32 targ_reply_arg;
|
|
A_UINT32 access_cookie;
|
|
A_UINT32 size;
|
|
A_UINT32 version;
|
|
} WMIX_DSETOPEN_REPLY_CMD;
|
|
|
|
typedef struct {
|
|
A_UINT32 status;
|
|
A_UINT32 targ_buf;
|
|
A_UINT32 targ_reply_fn;
|
|
A_UINT32 targ_reply_arg;
|
|
A_UINT32 length;
|
|
A_UINT8 buf[1];
|
|
} WMIX_DSETDATA_REPLY_CMD;
|
|
|
|
/*
|
|
* =============Error Detection support=================
|
|
*/
|
|
|
|
/*
|
|
* WMIX_HB_CHALLENGE_RESP_CMDID
|
|
* Heartbeat Challenge Response command
|
|
*/
|
|
typedef struct {
|
|
A_UINT32 cookie;
|
|
A_UINT32 source;
|
|
} WMIX_HB_CHALLENGE_RESP_CMD;
|
|
|
|
/*
|
|
* WMIX_HB_CHALLENGE_RESP_EVENTID
|
|
* Heartbeat Challenge Response Event
|
|
*/
|
|
#define WMIX_HB_CHALLENGE_RESP_EVENT WMIX_HB_CHALLENGE_RESP_CMD
|
|
|
|
/*
|
|
* =============Target Profiling support=================
|
|
*/
|
|
|
|
typedef struct {
|
|
A_UINT32 period; /* Time (in 30.5us ticks) between samples */
|
|
A_UINT32 nbins;
|
|
} WMIX_PROF_CFG_CMD;
|
|
|
|
typedef struct {
|
|
A_UINT32 addr;
|
|
} WMIX_PROF_ADDR_SET_CMD;
|
|
|
|
/*
|
|
* Target responds to Hosts's earlier WMIX_PROF_COUNT_GET_CMDID request
|
|
* using a WMIX_PROF_COUNT_EVENT with
|
|
* addr set to the next address
|
|
* count set to the corresponding count
|
|
*/
|
|
typedef struct {
|
|
A_UINT32 addr;
|
|
A_UINT32 count;
|
|
} WMIX_PROF_COUNT_EVENT;
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif /* _WMIX_H_ */
|