nfc_types.h revision e9df6ba5a8fcccf306a80b1670b423be8fe7746
1e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************** 2e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 3e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * Copyright (C) 2012 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 ******************************************************************************/ 18e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 19e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_TYPES_H 20e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_TYPES_H 21e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 22e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Mask for NFC_HDR event field */ 23e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_EVT_MASK 0xFF00 24e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_SUB_EVT_MASK 0x00FF 25e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 26e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/**************************************************************************** 27e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFC_HAL_TASK definitions 28e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*****************************************************************************/ 29e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 30e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* NFC_HAL_TASK event messages */ 31e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_HAL_EVT_TO_NFC_NCI 0x0100 /* NCI message for sending to NFCC */ 32e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_HAL_EVT_POST_CORE_RESET 0x0200 /* Request to start NCIT quick timer */ 33e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_HAL_EVT_TO_START_QUICK_TIMER 0x0300 /* Request to start chip-specific config */ 34e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_HAL_EVT_HCI 0x0400 /* NCI message for hci persistency data */ 35e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_HAL_EVT_PRE_DISCOVER 0x0500 /* NCI message to issue prediscover config */ 36e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_HAL_EVT_CONTROL_GRANTED 0x0600 /* permission to send commands queued in HAL*/ 37e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 38e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* NFC_HAL_TASK sub event messages */ 39e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_HAL_HCI_RSP_NV_READ_EVT (0x01 | NFC_HAL_EVT_HCI) 40e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_HAL_HCI_RSP_NV_WRITE_EVT (0x02 | NFC_HAL_EVT_HCI) 41e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_HAL_HCI_VSC_TIMEOUT_EVT (0x03 | NFC_HAL_EVT_HCI) 42e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 43e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 44e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Event masks for NFC_TASK messages */ 45e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_EVT_TO_NFC_NCI 0x4000 /* NCI message for sending to host stack */ 46e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_EVT_TO_NFC_ERR 0x4100 /* Error notification to NFC Task */ 47e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_EVT_TO_NFC_MSGS 0x4200 /* Messages between NFC and NCI task */ 48e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 49e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/***************************************************************************** 50e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Macros to get and put bytes to and from a stream (Little Endian format). 51e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*****************************************************************************/ 52e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 53e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UINT32_TO_STREAM(p, u32) {*(p)++ = (UINT8)(u32); *(p)++ = (UINT8)((u32) >> 8); *(p)++ = (UINT8)((u32) >> 16); *(p)++ = (UINT8)((u32) >> 24);} 54e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UINT24_TO_STREAM(p, u24) {*(p)++ = (UINT8)(u24); *(p)++ = (UINT8)((u24) >> 8); *(p)++ = (UINT8)((u24) >> 16);} 55e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UINT16_TO_STREAM(p, u16) {*(p)++ = (UINT8)(u16); *(p)++ = (UINT8)((u16) >> 8);} 56e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UINT8_TO_STREAM(p, u8) {*(p)++ = (UINT8)(u8);} 57e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define INT8_TO_STREAM(p, u8) {*(p)++ = (INT8)(u8);} 58e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define ARRAY32_TO_STREAM(p, a) {register int ijk; for (ijk = 0; ijk < 32; ijk++) *(p)++ = (UINT8) a[31 - ijk];} 59e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define ARRAY16_TO_STREAM(p, a) {register int ijk; for (ijk = 0; ijk < 16; ijk++) *(p)++ = (UINT8) a[15 - ijk];} 60e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define ARRAY8_TO_STREAM(p, a) {register int ijk; for (ijk = 0; ijk < 8; ijk++) *(p)++ = (UINT8) a[7 - ijk];} 61e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define BDADDR_TO_STREAM(p, a) {register int ijk; for (ijk = 0; ijk < BD_ADDR_LEN; ijk++) *(p)++ = (UINT8) a[BD_ADDR_LEN - 1 - ijk];} 62e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define LAP_TO_STREAM(p, a) {register int ijk; for (ijk = 0; ijk < LAP_LEN; ijk++) *(p)++ = (UINT8) a[LAP_LEN - 1 - ijk];} 63e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define DEVCLASS_TO_STREAM(p, a) {register int ijk; for (ijk = 0; ijk < DEV_CLASS_LEN;ijk++) *(p)++ = (UINT8) a[DEV_CLASS_LEN - 1 - ijk];} 64e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define ARRAY_TO_STREAM(p, a, len) {register int ijk; for (ijk = 0; ijk < len; ijk++) *(p)++ = (UINT8) a[ijk];} 65e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define REVERSE_ARRAY_TO_STREAM(p, a, len) {register int ijk; for (ijk = 0; ijk < len; ijk++) *(p)++ = (UINT8) a[len - 1 - ijk];} 66e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 67e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define STREAM_TO_UINT8(u8, p) {u8 = (UINT8)(*(p)); (p) += 1;} 68e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define STREAM_TO_UINT16(u16, p) {u16 = ((UINT16)(*(p)) + (((UINT16)(*((p) + 1))) << 8)); (p) += 2;} 69e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define STREAM_TO_UINT24(u32, p) {u32 = (((UINT32)(*(p))) + ((((UINT32)(*((p) + 1)))) << 8) + ((((UINT32)(*((p) + 2)))) << 16) ); (p) += 3;} 70e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define STREAM_TO_UINT32(u32, p) {u32 = (((UINT32)(*(p))) + ((((UINT32)(*((p) + 1)))) << 8) + ((((UINT32)(*((p) + 2)))) << 16) + ((((UINT32)(*((p) + 3)))) << 24)); (p) += 4;} 71e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define STREAM_TO_BDADDR(a, p) {register int ijk; register UINT8 *pbda = (UINT8 *)a + BD_ADDR_LEN - 1; for (ijk = 0; ijk < BD_ADDR_LEN; ijk++) *pbda-- = *p++;} 72e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define STREAM_TO_ARRAY32(a, p) {register int ijk; register UINT8 *_pa = (UINT8 *)a + 31; for (ijk = 0; ijk < 32; ijk++) *_pa-- = *p++;} 73e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define STREAM_TO_ARRAY16(a, p) {register int ijk; register UINT8 *_pa = (UINT8 *)a + 15; for (ijk = 0; ijk < 16; ijk++) *_pa-- = *p++;} 74e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define STREAM_TO_ARRAY8(a, p) {register int ijk; register UINT8 *_pa = (UINT8 *)a + 7; for (ijk = 0; ijk < 8; ijk++) *_pa-- = *p++;} 75e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define STREAM_TO_DEVCLASS(a, p) {register int ijk; register UINT8 *_pa = (UINT8 *)a + DEV_CLASS_LEN - 1; for (ijk = 0; ijk < DEV_CLASS_LEN; ijk++) *_pa-- = *p++;} 76e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define STREAM_TO_LAP(a, p) {register int ijk; register UINT8 *plap = (UINT8 *)a + LAP_LEN - 1; for (ijk = 0; ijk < LAP_LEN; ijk++) *plap-- = *p++;} 77e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define STREAM_TO_ARRAY(a, p, len) {register int ijk; for (ijk = 0; ijk < len; ijk++) ((UINT8 *) a)[ijk] = *p++;} 78e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define REVERSE_STREAM_TO_ARRAY(a, p, len) {register int ijk; register UINT8 *_pa = (UINT8 *)a + len - 1; for (ijk = 0; ijk < len; ijk++) *_pa-- = *p++;} 79e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 80e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/***************************************************************************** 81e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Macros to get and put bytes to and from a field (Little Endian format). 82e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** These are the same as to stream, except the pointer is not incremented. 83e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*****************************************************************************/ 84e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 85e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UINT32_TO_FIELD(p, u32) {*(UINT8 *)(p) = (UINT8)(u32); *((UINT8 *)(p)+1) = (UINT8)((u32) >> 8); *((UINT8 *)(p)+2) = (UINT8)((u32) >> 16); *((UINT8 *)(p)+3) = (UINT8)((u32) >> 24);} 86e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UINT24_TO_FIELD(p, u24) {*(UINT8 *)(p) = (UINT8)(u24); *((UINT8 *)(p)+1) = (UINT8)((u24) >> 8); *((UINT8 *)(p)+2) = (UINT8)((u24) >> 16);} 87e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UINT16_TO_FIELD(p, u16) {*(UINT8 *)(p) = (UINT8)(u16); *((UINT8 *)(p)+1) = (UINT8)((u16) >> 8);} 88e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UINT8_TO_FIELD(p, u8) {*(UINT8 *)(p) = (UINT8)(u8);} 89e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 90e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 91e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/***************************************************************************** 92e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Macros to get and put bytes to and from a stream (Big Endian format) 93e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*****************************************************************************/ 94e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 95e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UINT32_TO_BE_STREAM(p, u32) {*(p)++ = (UINT8)((u32) >> 24); *(p)++ = (UINT8)((u32) >> 16); *(p)++ = (UINT8)((u32) >> 8); *(p)++ = (UINT8)(u32); } 96e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UINT24_TO_BE_STREAM(p, u24) {*(p)++ = (UINT8)((u24) >> 16); *(p)++ = (UINT8)((u24) >> 8); *(p)++ = (UINT8)(u24);} 97e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UINT16_TO_BE_STREAM(p, u16) {*(p)++ = (UINT8)((u16) >> 8); *(p)++ = (UINT8)(u16);} 98e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UINT8_TO_BE_STREAM(p, u8) {*(p)++ = (UINT8)(u8);} 99e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define ARRAY_TO_BE_STREAM(p, a, len) {register int ijk; for (ijk = 0; ijk < len; ijk++) *(p)++ = (UINT8) a[ijk];} 100e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 101e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define BE_STREAM_TO_UINT8(u8, p) {u8 = (UINT8)(*(p)); (p) += 1;} 102e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define BE_STREAM_TO_UINT16(u16, p) {u16 = (UINT16)(((UINT16)(*(p)) << 8) + (UINT16)(*((p) + 1))); (p) += 2;} 103e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define BE_STREAM_TO_UINT24(u32, p) {u32 = (((UINT32)(*((p) + 2))) + ((UINT32)(*((p) + 1)) << 8) + ((UINT32)(*(p)) << 16)); (p) += 3;} 104e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define BE_STREAM_TO_UINT32(u32, p) {u32 = ((UINT32)(*((p) + 3)) + ((UINT32)(*((p) + 2)) << 8) + ((UINT32)(*((p) + 1)) << 16) + ((UINT32)(*(p)) << 24)); (p) += 4;} 105e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define BE_STREAM_TO_ARRAY(p, a, len) {register int ijk; for (ijk = 0; ijk < len; ijk++) ((UINT8 *) a)[ijk] = *p++;} 106e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 107e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 108e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/***************************************************************************** 109e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Macros to get and put bytes to and from a field (Big Endian format). 110e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** These are the same as to stream, except the pointer is not incremented. 111e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*****************************************************************************/ 112e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 113e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UINT32_TO_BE_FIELD(p, u32) {*(UINT8 *)(p) = (UINT8)((u32) >> 24); *((UINT8 *)(p)+1) = (UINT8)((u32) >> 16); *((UINT8 *)(p)+2) = (UINT8)((u32) >> 8); *((UINT8 *)(p)+3) = (UINT8)(u32); } 114e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UINT24_TO_BE_FIELD(p, u24) {*(UINT8 *)(p) = (UINT8)((u24) >> 16); *((UINT8 *)(p)+1) = (UINT8)((u24) >> 8); *((UINT8 *)(p)+2) = (UINT8)(u24);} 115e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UINT16_TO_BE_FIELD(p, u16) {*(UINT8 *)(p) = (UINT8)((u16) >> 8); *((UINT8 *)(p)+1) = (UINT8)(u16);} 116e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UINT8_TO_BE_FIELD(p, u8) {*(UINT8 *)(p) = (UINT8)(u8);} 117e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 118e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/***************************************************************************** 119e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Define trace levels 120e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*****************************************************************************/ 121e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 122e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define BT_TRACE_LEVEL_NONE 0 /* No trace messages to be generated */ 123e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define BT_TRACE_LEVEL_ERROR 1 /* Error condition trace messages */ 124e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define BT_TRACE_LEVEL_WARNING 2 /* Warning condition trace messages */ 125e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define BT_TRACE_LEVEL_API 3 /* API traces */ 126e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define BT_TRACE_LEVEL_EVENT 4 /* Debug messages for events */ 127e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define BT_TRACE_LEVEL_DEBUG 5 /* Full debug messages */ 128e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 129e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 130e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define TRACE_CTRL_GENERAL 0x00000000 131e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define TRACE_LAYER_NCI 0x00280000 132e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define TRACE_LAYER_GKI 0x001a0000 133e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define TRACE_ORG_STACK 0x00000000 134e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define TRACE_ORG_GKI 0x00000400 135e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 136e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define TRACE_TYPE_ERROR 0x00000000 137e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define TRACE_TYPE_WARNING 0x00000001 138e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define TRACE_TYPE_API 0x00000002 139e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define TRACE_TYPE_EVENT 0x00000003 140e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define TRACE_TYPE_DEBUG 0x00000004 141e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 142e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 143e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Define a function for logging */ 144e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef void (BT_LOG_FUNC) (int trace_type, const char *fmt_str, ...); 145e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 146e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif /* NFC_TYPES_H */ 147e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 148