2 * Copyright (c) 2013 Qualcomm Atheros, Inc.
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted (subject to the limitations in the
7 * disclaimer below) provided that the following conditions are met:
9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
12 * * Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the
17 * * Neither the name of Qualcomm Atheros nor the names of its
18 * contributors may be used to endorse or promote products derived
19 * from this software without specific prior written permission.
21 * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
22 * GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
23 * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
24 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
25 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
26 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
27 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
28 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
29 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
30 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
31 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
32 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
33 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38 * @Abstract: internal data and structure definitions for WMI service
43 #ifndef WMI_INTERNAL_H_
44 #define WMI_INTERNAL_H_
46 #define WMI_CMD_ALIGNMENT_SIZE 128
50 /* WMI debug log definitions */
52 #define WMI_DBG0_LOG(debugid) \
53 DBGLOG_ARG0_RECORD(DBGLOG_HEADER_UPPER_HALF(debugid, \
54 DBGLOG_MODULEID_WMI, 0))
56 #define WMI_DBG1_LOG(debugid, arg1) \
57 DBGLOG_ARG1_RECORD(DBGLOG_HEADER_UPPER_HALF(debugid, \
58 DBGLOG_MODULEID_WMI, 1), arg1)
60 #define WMI_DBG2_LOG(debugid, arg1, arg2) \
61 DBGLOG_ARG2_RECORD(DBGLOG_HEADER_UPPER_HALF(debugid, \
62 DBGLOG_MODULEID_WMI, 2), arg1, arg2)
65 #define WMI_DBG0_LOG(debugid)
66 #define WMI_DBG1_LOG(debugid, arg1)
67 #define WMI_DBG2_LOG(debugid, arg1, arg2)
68 #endif /* WMI_DEBUG */
70 #define EVT_PKT_IN_USE (1 << 0)
71 #define EVT_PKT_IS_FREE(e) !((e)->Flags & EVT_PKT_IN_USE)
72 #define EVT_MARK_FREE(e) (e)->Flags &= ~EVT_PKT_IN_USE;
73 #define EVT_MARK_INUSE(e) (e)->Flags |= EVT_PKT_IN_USE
74 #define IS_EVT_CLASS_BUFFERED(ec) ((ec) != WMI_EVT_CLASS_DIRECT_BUFFER)
76 typedef struct _WMI_POOL_STATE {
77 int MaxAllocation; /* maximum allocations allowed for this pool */
78 int CurrentAllocation; /* current allocations outstanding */
81 typedef struct _WMI_SVC_CONTEXT {
82 htc_handle_t HtcHandle;
83 pool_handle_t PoolHandle;
84 int PendingEvents; /* no. of pending events */
85 HTC_SERVICE WMIControlService; /* registered control service */
86 HTC_ENDPOINT_ID ControlEp; /* endpoint assigned to us */
87 WMI_DISPATCH_TABLE *pDispatchHead; /* dispatch list head ptr */
88 WMI_DISPATCH_TABLE *pDispatchTail; /* dispatch list tail ptr */
90 // Left a door for extension the structure
94 #endif /*WMI_INTERNAL_H_*/