1/****************************************************************************** 2 * 3 * Copyright (C) 2012 Broadcom Corporation 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at: 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 ******************************************************************************/ 18 19/****************************************************************************** 20 * 21 * HAL Adaptation Interface (HAI). This interface regulates the interaction 22 * between standard Android HAL and Broadcom-specific HAL. It adapts 23 * Broadcom-specific features to the Android framework. 24 * 25 ******************************************************************************/ 26#pragma once 27#include <hardware/hardware.h> 28#include <hardware/nfc.h> 29 30 31#ifdef __cplusplus 32extern "C" { 33#endif 34 35 36typedef struct 37{ 38 struct nfc_nci_device nci_device; 39 //below declarations are private variables within Broadcom HAL 40 void* data; 41} 42bcm2079x_dev_t; 43 44 45/* 46All functions return POSIX error codes (see errno): 47 0 means success. 48 non-zero means failure; for example EACCES. 49*/ 50 51 52extern int HaiInitializeLibrary (const bcm2079x_dev_t* device); 53extern int HaiTerminateLibrary (); 54extern int HaiOpen (const bcm2079x_dev_t* device, nfc_stack_callback_t* halCallbackFunc, nfc_stack_data_callback_t* halDataCallbackFunc); 55extern int HaiClose (const bcm2079x_dev_t* device); 56extern int HaiCoreInitialized (const bcm2079x_dev_t* device, uint8_t* coreInitResponseParams); 57extern int HaiWrite (const bcm2079x_dev_t* dev, uint16_t dataLen, const uint8_t* data); 58extern int HaiPreDiscover (const bcm2079x_dev_t* device); 59extern int HaiControlGranted (const bcm2079x_dev_t* device); 60extern int HaiPowerCycle (const bcm2079x_dev_t* device); 61extern int HaiGetMaxNfcee (const bcm2079x_dev_t* device, uint8_t* maxNfcee); 62 63 64#ifdef __cplusplus 65} 66#endif 67