1e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************
2e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
3e9629bad30a9f478b336ab46b8e6e02f7f87af46Evan Chu *  Copyright (C) 2012-2014 Broadcom Corporation
4e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
5e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  Licensed under the Apache License, Version 2.0 (the "License");
6e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  you may not use this file except in compliance with the License.
7e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  You may obtain a copy of the License at:
8e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
9e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  http://www.apache.org/licenses/LICENSE-2.0
10e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
11e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  Unless required by applicable law or agreed to in writing, software
12e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  distributed under the License is distributed on an "AS IS" BASIS,
13e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  See the License for the specific language governing permissions and
15e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  limitations under the License.
16e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
17e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project ******************************************************************************/
185c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen
19e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_HAL_TARGET_H
20e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_HAL_TARGET_H
21e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
22e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifdef BUILDCFG
23e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "buildcfg_hal.h"
24e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
25e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
26e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "data_types.h"
27e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
28e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Define export prefixes for modules exported by HAL */
29e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_API
30e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_API
31e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
32e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
33e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef UDRV_API
34e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UDRV_API
35e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
36e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
37e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef EXPORT_API
38e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define EXPORT_API
39e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
40e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
41e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
42e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************
43e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
44e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Task configuration
45e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
46e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project******************************************************************************/
47e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
48e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Definitions of task IDs for inter-task messaging */
49e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_HAL_TASK
50e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_HAL_TASK                0
51e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
52e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
53e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The number of GKI tasks in the software system. */
54e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_MAX_TASKS
55e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_MAX_TASKS               1
56e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
57e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
585c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen
595c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen/******************************************************************************
605c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen**
615c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen** Buffer pool assignment
625c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen**
635c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen******************************************************************************/
645c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen
655c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen/* GKI pool for NCI messages */
665c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#ifndef NFC_HAL_NCI_POOL_ID
675c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#define NFC_HAL_NCI_POOL_ID         GKI_POOL_ID_1
685c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#endif
695c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen
705c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#ifndef NFC_HAL_NCI_POOL_BUF_SIZE
715c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#define NFC_HAL_NCI_POOL_BUF_SIZE   GKI_BUF1_SIZE
725c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#endif
735c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen
745c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen
75e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************
76e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
77e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Timer configuration
78e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
79e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project******************************************************************************/
80e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
81e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The number of GKI timers in the software system. */
82e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_NUM_TIMERS
83e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_NUM_TIMERS              2
84e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
85e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
86e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* A conversion value for translating ticks to calculate GKI timer.  */
87e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef TICKS_PER_SEC
88e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define TICKS_PER_SEC               100
89e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
90e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
91e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/************************************************************************
92e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**  Utility macros converting ticks to time with user define OS ticks per sec
93e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**/
94e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_MS_TO_TICKS
95e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_MS_TO_TICKS(x)   ((x) / (1000 / TICKS_PER_SEC))
96e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
97e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
98e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_SECS_TO_TICKS
99e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_SECS_TO_TICKS(x)   ((x) * (TICKS_PER_SEC))
100e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
101e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
102e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_TICKS_TO_MS
103e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_TICKS_TO_MS(x)   ((x) * 1000 / TICKS_PER_SEC)
104e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
105e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
106e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_TICKS_TO_SECS
107e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_TICKS_TO_SECS(x)   ((x) / TICKS_PER_SEC)
108e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
109e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
110e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
111e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
112e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* TICK per second from OS (OS dependent change this macro accordingly to various OS) */
113e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef OS_TICKS_PER_SEC
114e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define OS_TICKS_PER_SEC               1000
115e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
116e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
117e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/************************************************************************
118e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**  Utility macros converting ticks to time with user define OS ticks per sec
119e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**/
120e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
121e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_OS_TICKS_TO_MS
122e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_OS_TICKS_TO_MS(x)   ((x) * 1000 / OS_TICKS_PER_SEC)
123e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
124e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
125e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
126e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_OS_TICKS_TO_SECS
127e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_OS_TICKS_TO_SECS(x)   ((x) / OS_TICKS_PER_SEC))
128e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
129e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
130e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
131e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* delay in ticks before stopping system tick. */
132e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_DELAY_STOP_SYS_TICK
133e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_DELAY_STOP_SYS_TICK     10
134e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
135e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
136e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Option to guarantee no preemption during timer expiration (most system don't need this) */
137e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_TIMER_LIST_NOPREEMPT
138e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_TIMER_LIST_NOPREEMPT    FALSE
139e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
140e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
141e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************
142e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
143e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Buffer configuration
144e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
145e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project******************************************************************************/
146e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
147e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* TRUE if GKI uses dynamic buffers. */
148e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_USE_DYNAMIC_BUFFERS
149e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_USE_DYNAMIC_BUFFERS     FALSE
150e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
151e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
152e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The size of the buffers in pool 0. */
153e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_BUF0_SIZE
154e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_BUF0_SIZE               64
155e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
156e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
157e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The number of buffers in buffer pool 0. */
158e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_BUF0_MAX
159e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_BUF0_MAX                8
160e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
161e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
162e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The ID of buffer pool 0. */
163e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_POOL_ID_0
164e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_POOL_ID_0               0
165e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
166e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
167e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The size of the buffers in pool 1. */
168e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_BUF1_SIZE
169e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_BUF1_SIZE               288
170e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
171e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
172e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The number of buffers in buffer pool 1. */
173e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_BUF1_MAX
174e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_BUF1_MAX                8
175e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
176e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
177e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The ID of buffer pool 1. */
178e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_POOL_ID_1
179e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_POOL_ID_1               1
180e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
181e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
182e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The size of the largest PUBLIC fixed buffer in system. */
183e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_MAX_BUF_SIZE
184e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_MAX_BUF_SIZE            GKI_BUF1_SIZE
185e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
186e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
187e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The pool ID of the largest PUBLIC fixed buffer in system. */
188e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_MAX_BUF_SIZE_POOL_ID
189e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_MAX_BUF_SIZE_POOL_ID    GKI_POOL_ID_1
190e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
191e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
192e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* buffer size for USERIAL, it must large enough to hold NFC_HDR and max packet size */
193e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef USERIAL_POOL_BUF_SIZE
194e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define USERIAL_POOL_BUF_SIZE       GKI_BUF1_SIZE
195e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
196e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
197e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* buffer pool ID for USERIAL */
198e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef USERIAL_POOL_ID
199e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define USERIAL_POOL_ID             GKI_POOL_ID_1
200e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
201e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
202e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_NUM_FIXED_BUF_POOLS
203e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_NUM_FIXED_BUF_POOLS     2
204e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
205e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
206e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The number of fixed and dynamic buffer pools */
207e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_NUM_TOTAL_BUF_POOLS
208e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_NUM_TOTAL_BUF_POOLS     2
209e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
210e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
211e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The buffer pool usage mask. */
212e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_DEF_BUFPOOL_PERM_MASK
213e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_DEF_BUFPOOL_PERM_MASK   0xfff0
214e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
215e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
216e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The buffer corruption check flag. */
217e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_ENABLE_BUF_CORRUPTION_CHECK
218e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_ENABLE_BUF_CORRUPTION_CHECK TRUE
219e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
220e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
221e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The GKI severe error macro. */
222e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_SEVERE
223e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_SEVERE(code)
224e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
225e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
226e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* TRUE if GKI includes debug functionality. */
227e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_DEBUG
228e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_DEBUG                   FALSE
229e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
230e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
231e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Maximum number of exceptions logged. */
232e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_MAX_EXCEPTION
233e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_MAX_EXCEPTION           8
234e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
235e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
236e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Maximum number of chars stored for each exception message. */
237e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_MAX_EXCEPTION_MSGLEN
238e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_MAX_EXCEPTION_MSGLEN    64
239e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
240e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
241e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_SEND_MSG_FROM_ISR
242e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_SEND_MSG_FROM_ISR    FALSE
243e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
244e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
245e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
2465c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#if defined(GKI_DEBUG) && (GKI_DEBUG == TRUE)
2475c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#ifdef LOG_TAG
2485c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#undef LOG_TAG
2495c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#endif
2505c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#define LOG_TAG "GKI_LINUX"
251e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* GKI Trace Macros */
252e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_TRACE_0(m)                          LogMsg(TRACE_CTRL_GENERAL | TRACE_LAYER_GKI | TRACE_ORG_GKI | TRACE_TYPE_GENERIC,m)
253e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_TRACE_1(m,p1)                       LogMsg(TRACE_CTRL_GENERAL | TRACE_LAYER_GKI | TRACE_ORG_GKI | TRACE_TYPE_GENERIC,m,p1)
254e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_TRACE_2(m,p1,p2)                    LogMsg(TRACE_CTRL_GENERAL | TRACE_LAYER_GKI | TRACE_ORG_GKI | TRACE_TYPE_GENERIC,m,p1,p2)
255e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_TRACE_3(m,p1,p2,p3)                 LogMsg(TRACE_CTRL_GENERAL | TRACE_LAYER_GKI | TRACE_ORG_GKI | TRACE_TYPE_GENERIC,m,p1,p2,p3)
256e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_TRACE_4(m,p1,p2,p3,p4)              LogMsg(TRACE_CTRL_GENERAL | TRACE_LAYER_GKI | TRACE_ORG_GKI | TRACE_TYPE_GENERIC,m,p1,p2,p3,p4)
257e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_TRACE_5(m,p1,p2,p3,p4,p5)           LogMsg(TRACE_CTRL_GENERAL | TRACE_LAYER_GKI | TRACE_ORG_GKI | TRACE_TYPE_GENERIC,m,p1,p2,p3,p4,p5)
258e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_TRACE_6(m,p1,p2,p3,p4,p5,p6)        LogMsg(TRACE_CTRL_GENERAL | TRACE_LAYER_GKI | TRACE_ORG_GKI | TRACE_TYPE_GENERIC,m,p1,p2,p3,p4,p5,p6)
2595c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#else
2605c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#define GKI_TRACE_0(m)
2615c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#define GKI_TRACE_1(m,p1)
2625c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#define GKI_TRACE_2(m,p1,p2)
2635c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#define GKI_TRACE_3(m,p1,p2,p3)
2645c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#define GKI_TRACE_4(m,p1,p2,p3,p4)
2655c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#define GKI_TRACE_5(m,p1,p2,p3,p4,p5)
2665c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#define GKI_TRACE_6(m,p1,p2,p3,p4,p5,p6)
2675c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen
2685c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#endif
269e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
270e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_TRACE_ERROR_0(m)                    LogMsg(TRACE_CTRL_GENERAL | TRACE_LAYER_GKI | TRACE_ORG_GKI | TRACE_TYPE_ERROR,m)
271e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_TRACE_ERROR_1(m,p1)                 LogMsg(TRACE_CTRL_GENERAL | TRACE_LAYER_GKI | TRACE_ORG_GKI | TRACE_TYPE_ERROR,m,p1)
272e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_TRACE_ERROR_2(m,p1,p2)              LogMsg(TRACE_CTRL_GENERAL | TRACE_LAYER_GKI | TRACE_ORG_GKI | TRACE_TYPE_ERROR,m,p1,p2)
273e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_TRACE_ERROR_3(m,p1,p2,p3)           LogMsg(TRACE_CTRL_GENERAL | TRACE_LAYER_GKI | TRACE_ORG_GKI | TRACE_TYPE_ERROR,m,p1,p2,p3)
274e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_TRACE_ERROR_4(m,p1,p2,p3,p4)        LogMsg(TRACE_CTRL_GENERAL | TRACE_LAYER_GKI | TRACE_ORG_GKI | TRACE_TYPE_ERROR,m,p1,p2,p3,p4)
275e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_TRACE_ERROR_5(m,p1,p2,p3,p4,p5)     LogMsg(TRACE_CTRL_GENERAL | TRACE_LAYER_GKI | TRACE_ORG_GKI | TRACE_TYPE_ERROR,m,p1,p2,p3,p4,p5)
276e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_TRACE_ERROR_6(m,p1,p2,p3,p4,p5,p6)  LogMsg(TRACE_CTRL_GENERAL | TRACE_LAYER_GKI | TRACE_ORG_GKI | TRACE_TYPE_ERROR,m,p1,p2,p3,p4,p5,p6)
277e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
278e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifdef __cplusplus
279e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectextern "C"
280e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{
281e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
282e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
283e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectextern void LogMsg (UINT32 trace_set_mask, const char *fmt_str, ...);
284e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
285e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifdef __cplusplus
286e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project}
287e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
288e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
289e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif  /* GKI_TARGET_H */
290