HalAdaptation.h revision b20cbf35a541d380f32d1f43a78feb44e9e0dc1b
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/****************************************************************************** 20e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 21e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * HAL Adaptation Interface (HAI). This interface regulates the interaction 22e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * between standard Android HAL and Broadcom-specific HAL. It adapts 23e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * Broadcom-specific features to the Android framework. 24e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 25e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project ******************************************************************************/ 26e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#pragma once 27e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include <hardware/hardware.h> 28e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include <hardware/nfc.h> 29e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 30e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 31e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifdef __cplusplus 32e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectextern "C" { 33e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 34e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 35e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 36e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct 37e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 38e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project struct nfc_nci_device nci_device; 39e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project //below declarations are private variables within Broadcom HAL 40e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project void* data; 41e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} 42e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectbcm2079x_dev_t; 43e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 44e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 45e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* 46e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectAll functions return POSIX error codes (see errno): 47e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 0 means success. 48e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project non-zero means failure; for example EACCES. 49e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*/ 50e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 51e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 52e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectextern int HaiInitializeLibrary (const bcm2079x_dev_t* device); 53e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectextern int HaiTerminateLibrary (); 54e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectextern int HaiOpen (const bcm2079x_dev_t* device, nfc_stack_callback_t* halCallbackFunc, nfc_stack_data_callback_t* halDataCallbackFunc); 55e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectextern int HaiClose (const bcm2079x_dev_t* device); 56e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectextern int HaiCoreInitialized (const bcm2079x_dev_t* device, uint8_t* coreInitResponseParams); 57e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectextern int HaiWrite (const bcm2079x_dev_t* dev, uint16_t dataLen, const uint8_t* data); 58e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectextern int HaiPreDiscover (const bcm2079x_dev_t* device); 59e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectextern int HaiControlGranted (const bcm2079x_dev_t* device); 60e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectextern int HaiPowerCycle (const bcm2079x_dev_t* device); 61b20cbf35a541d380f32d1f43a78feb44e9e0dc1bPaul Chaissonextern int HaiGetMaxNfcee (const bcm2079x_dev_t* device, uint8_t* maxNfcee); 62e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 63e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 64e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifdef __cplusplus 65e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} 66e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 67