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/****************************************************************************** 29e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 30e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Task configuration 31e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 32e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project******************************************************************************/ 33e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 34e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Definitions of task IDs for inter-task messaging */ 35e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_HAL_TASK 366fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_HAL_TASK 0 37e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 38e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 39e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The number of GKI tasks in the software system. */ 40e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_MAX_TASKS 416fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_MAX_TASKS 1 42e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 43e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 445c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen/****************************************************************************** 455c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen** 465c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen** Buffer pool assignment 475c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen** 485c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen******************************************************************************/ 495c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen 505c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen/* GKI pool for NCI messages */ 515c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#ifndef NFC_HAL_NCI_POOL_ID 526fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_HAL_NCI_POOL_ID GKI_POOL_ID_1 535c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#endif 545c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen 555c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#ifndef NFC_HAL_NCI_POOL_BUF_SIZE 566fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_HAL_NCI_POOL_BUF_SIZE GKI_BUF1_SIZE 575c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#endif 585c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen 59e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************** 60e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 61e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Timer configuration 62e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 63e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project******************************************************************************/ 64e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 65e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The number of GKI timers in the software system. */ 66e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_NUM_TIMERS 676fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_NUM_TIMERS 2 68e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 69e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 70e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* A conversion value for translating ticks to calculate GKI timer. */ 71e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef TICKS_PER_SEC 726fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define TICKS_PER_SEC 100 73e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 74e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 75e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/************************************************************************ 76e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Utility macros converting ticks to time with user define OS ticks per sec 77e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**/ 78e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_MS_TO_TICKS 796fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_MS_TO_TICKS(x) ((x) / (1000 / TICKS_PER_SEC)) 80e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 81e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 82e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_SECS_TO_TICKS 836fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_SECS_TO_TICKS(x) ((x) * (TICKS_PER_SEC)) 84e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 85e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 86e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_TICKS_TO_MS 876fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_TICKS_TO_MS(x) ((x)*1000 / TICKS_PER_SEC) 88e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 89e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 90e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_TICKS_TO_SECS 916fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_TICKS_TO_SECS(x) ((x) / TICKS_PER_SEC) 92e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 93e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 946fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi/* TICK per second from OS (OS dependent change this macro accordingly to 956fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi * various OS) */ 96e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef OS_TICKS_PER_SEC 976fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define OS_TICKS_PER_SEC 1000 98e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 99e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 100e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/************************************************************************ 101e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Utility macros converting ticks to time with user define OS ticks per sec 102e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**/ 103e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 104e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_OS_TICKS_TO_MS 1056fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_OS_TICKS_TO_MS(x) ((x)*1000 / OS_TICKS_PER_SEC) 106e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 107e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 108e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_OS_TICKS_TO_SECS 109e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_OS_TICKS_TO_SECS(x) ((x) / OS_TICKS_PER_SEC)) 110e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 111e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 112e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* delay in ticks before stopping system tick. */ 113e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_DELAY_STOP_SYS_TICK 1146fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_DELAY_STOP_SYS_TICK 10 115e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 116e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 1176fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi/* Option to guarantee no preemption during timer expiration (most system don't 1186fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi * need this) */ 119e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_TIMER_LIST_NOPREEMPT 1206fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_TIMER_LIST_NOPREEMPT FALSE 121e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 122e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 123e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************** 124e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 125e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Buffer configuration 126e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 127e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project******************************************************************************/ 128e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 129e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* TRUE if GKI uses dynamic buffers. */ 130e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_USE_DYNAMIC_BUFFERS 1316fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_USE_DYNAMIC_BUFFERS FALSE 132e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 133e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 134e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The size of the buffers in pool 0. */ 135e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_BUF0_SIZE 1366fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_BUF0_SIZE 64 137e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 138e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 139e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The number of buffers in buffer pool 0. */ 140e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_BUF0_MAX 1416fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_BUF0_MAX 8 142e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 143e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 144e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The ID of buffer pool 0. */ 145e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_POOL_ID_0 1466fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_POOL_ID_0 0 147e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 148e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 149e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The size of the buffers in pool 1. */ 150e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_BUF1_SIZE 1516fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_BUF1_SIZE 288 152e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 153e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 154e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The number of buffers in buffer pool 1. */ 155e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_BUF1_MAX 1566fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_BUF1_MAX 8 157e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 158e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 159e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The ID of buffer pool 1. */ 160e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_POOL_ID_1 1616fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_POOL_ID_1 1 162e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 163e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 164e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The size of the largest PUBLIC fixed buffer in system. */ 165e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_MAX_BUF_SIZE 1666fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_MAX_BUF_SIZE GKI_BUF1_SIZE 167e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 168e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 169e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The pool ID of the largest PUBLIC fixed buffer in system. */ 170e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_MAX_BUF_SIZE_POOL_ID 1716fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_MAX_BUF_SIZE_POOL_ID GKI_POOL_ID_1 172e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 173e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 1746fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi/* buffer size for USERIAL, it must large enough to hold NFC_HDR and max packet 1756fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi * size */ 176e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef USERIAL_POOL_BUF_SIZE 1776fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define USERIAL_POOL_BUF_SIZE GKI_BUF1_SIZE 178e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 179e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 180e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* buffer pool ID for USERIAL */ 181e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef USERIAL_POOL_ID 1826fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define USERIAL_POOL_ID GKI_POOL_ID_1 183e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 184e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 185e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_NUM_FIXED_BUF_POOLS 1866fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_NUM_FIXED_BUF_POOLS 2 187e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 188e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 189e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The number of fixed and dynamic buffer pools */ 190e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_NUM_TOTAL_BUF_POOLS 1916fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_NUM_TOTAL_BUF_POOLS 2 192e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 193e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 194e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The buffer pool usage mask. */ 195e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_DEF_BUFPOOL_PERM_MASK 1966fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_DEF_BUFPOOL_PERM_MASK 0xfff0 197e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 198e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 199e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The buffer corruption check flag. */ 200e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_ENABLE_BUF_CORRUPTION_CHECK 201e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_ENABLE_BUF_CORRUPTION_CHECK TRUE 202e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 203e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 204e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The GKI severe error macro. */ 205e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_SEVERE 206e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define GKI_SEVERE(code) 207e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 208e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 209e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* TRUE if GKI includes debug functionality. */ 210e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_DEBUG 2116fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_DEBUG FALSE 212e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 213e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 214e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Maximum number of exceptions logged. */ 215e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_MAX_EXCEPTION 2166fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_MAX_EXCEPTION 8 217e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 218e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 219e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Maximum number of chars stored for each exception message. */ 220e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_MAX_EXCEPTION_MSGLEN 2216fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_MAX_EXCEPTION_MSGLEN 64 222e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 223e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 224e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef GKI_SEND_MSG_FROM_ISR 2256fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_SEND_MSG_FROM_ISR FALSE 226e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 227e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 228303fec1d79b7ac30a09713e5db9fff299f7227fbRuchi Kandoi#if (GKI_DEBUG == TRUE) 2295c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#ifdef LOG_TAG 2305c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#undef LOG_TAG 2315c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#endif 2325c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#define LOG_TAG "GKI_LINUX" 233e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* GKI Trace Macros */ 2346fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_TRACE_0(m) \ 2356fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi LogMsg(TRACE_CTRL_GENERAL | TRACE_LAYER_GKI | TRACE_ORG_GKI | \ 2366fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi TRACE_TYPE_GENERIC, \ 2376fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi m) 2386fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_TRACE_1(m, p1) \ 2396fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi LogMsg(TRACE_CTRL_GENERAL | TRACE_LAYER_GKI | TRACE_ORG_GKI | \ 2406fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi TRACE_TYPE_GENERIC, \ 2416fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi m, p1) 2426fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_TRACE_2(m, p1, p2) \ 2436fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi LogMsg(TRACE_CTRL_GENERAL | TRACE_LAYER_GKI | TRACE_ORG_GKI | \ 2446fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi TRACE_TYPE_GENERIC, \ 2456fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi m, p1, p2) 2466fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_TRACE_3(m, p1, p2, p3) \ 2476fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi LogMsg(TRACE_CTRL_GENERAL | TRACE_LAYER_GKI | TRACE_ORG_GKI | \ 2486fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi TRACE_TYPE_GENERIC, \ 2496fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi m, p1, p2, p3) 2506fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_TRACE_4(m, p1, p2, p3, p4) \ 2516fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi LogMsg(TRACE_CTRL_GENERAL | TRACE_LAYER_GKI | TRACE_ORG_GKI | \ 2526fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi TRACE_TYPE_GENERIC, \ 2536fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi m, p1, p2, p3, p4) 2546fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_TRACE_5(m, p1, p2, p3, p4, p5) \ 2556fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi LogMsg(TRACE_CTRL_GENERAL | TRACE_LAYER_GKI | TRACE_ORG_GKI | \ 2566fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi TRACE_TYPE_GENERIC, \ 2576fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi m, p1, p2, p3, p4, p5) 2586fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_TRACE_6(m, p1, p2, p3, p4, p5, p6) \ 2596fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi LogMsg(TRACE_CTRL_GENERAL | TRACE_LAYER_GKI | TRACE_ORG_GKI | \ 2606fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi TRACE_TYPE_GENERIC, \ 2616fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi m, p1, p2, p3, p4, p5, p6) 2625c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#else 2635c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#define GKI_TRACE_0(m) 2646fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_TRACE_1(m, p1) 2656fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_TRACE_2(m, p1, p2) 2666fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_TRACE_3(m, p1, p2, p3) 2676fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_TRACE_4(m, p1, p2, p3, p4) 2686fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_TRACE_5(m, p1, p2, p3, p4, p5) 2696fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_TRACE_6(m, p1, p2, p3, p4, p5, p6) 2706fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi 2716fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#endif 2726fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi 2736fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_TRACE_ERROR_0(m) \ 2746fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi LogMsg( \ 2756fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi TRACE_CTRL_GENERAL | TRACE_LAYER_GKI | TRACE_ORG_GKI | TRACE_TYPE_ERROR, \ 2766fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi m) 2776fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_TRACE_ERROR_1(m, p1) \ 2786fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi LogMsg( \ 2796fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi TRACE_CTRL_GENERAL | TRACE_LAYER_GKI | TRACE_ORG_GKI | TRACE_TYPE_ERROR, \ 2806fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi m, p1) 2816fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_TRACE_ERROR_2(m, p1, p2) \ 2826fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi LogMsg( \ 2836fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi TRACE_CTRL_GENERAL | TRACE_LAYER_GKI | TRACE_ORG_GKI | TRACE_TYPE_ERROR, \ 2846fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi m, p1, p2) 2856fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_TRACE_ERROR_3(m, p1, p2, p3) \ 2866fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi LogMsg( \ 2876fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi TRACE_CTRL_GENERAL | TRACE_LAYER_GKI | TRACE_ORG_GKI | TRACE_TYPE_ERROR, \ 2886fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi m, p1, p2, p3) 2896fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_TRACE_ERROR_4(m, p1, p2, p3, p4) \ 2906fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi LogMsg( \ 2916fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi TRACE_CTRL_GENERAL | TRACE_LAYER_GKI | TRACE_ORG_GKI | TRACE_TYPE_ERROR, \ 2926fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi m, p1, p2, p3, p4) 2936fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_TRACE_ERROR_5(m, p1, p2, p3, p4, p5) \ 2946fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi LogMsg( \ 2956fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi TRACE_CTRL_GENERAL | TRACE_LAYER_GKI | TRACE_ORG_GKI | TRACE_TYPE_ERROR, \ 2966fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi m, p1, p2, p3, p4, p5) 2976fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define GKI_TRACE_ERROR_6(m, p1, p2, p3, p4, p5, p6) \ 2986fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi LogMsg( \ 2996fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi TRACE_CTRL_GENERAL | TRACE_LAYER_GKI | TRACE_ORG_GKI | TRACE_TYPE_ERROR, \ 3006fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi m, p1, p2, p3, p4, p5, p6) 301e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 302e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifdef __cplusplus 3036fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoiextern "C" { 304e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 305e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 3066fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoiextern void LogMsg(uint32_t trace_set_mask, const char* fmt_str, ...); 307e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 308e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifdef __cplusplus 309e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} 310e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 311e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 3126fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#endif /* GKI_TARGET_H */ 313