Home | History | Annotate | Download | only in include
      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 #ifdef __cplusplus
     31 extern "C" {
     32 #endif
     33 
     34 typedef struct {
     35   struct nfc_nci_device nci_device;
     36   // below declarations are private variables within Broadcom HAL
     37   void* data;
     38 } bcm2079x_dev_t;
     39 
     40 /*
     41 All functions return POSIX error codes (see errno):
     42   0 means success.
     43   non-zero means failure; for example EACCES.
     44 */
     45 
     46 extern int HaiInitializeLibrary(const bcm2079x_dev_t* device);
     47 extern int HaiTerminateLibrary();
     48 extern int HaiOpen(const bcm2079x_dev_t* device,
     49                    nfc_stack_callback_t* halCallbackFunc,
     50                    nfc_stack_data_callback_t* halDataCallbackFunc);
     51 extern int HaiClose(const bcm2079x_dev_t* device);
     52 extern int HaiCoreInitialized(const bcm2079x_dev_t* device,
     53                               uint8_t* coreInitResponseParams);
     54 extern int HaiWrite(const bcm2079x_dev_t* dev, uint16_t dataLen,
     55                     const uint8_t* data);
     56 extern int HaiPreDiscover(const bcm2079x_dev_t* device);
     57 extern int HaiControlGranted(const bcm2079x_dev_t* device);
     58 extern int HaiPowerCycle(const bcm2079x_dev_t* device);
     59 extern int HaiGetMaxNfcee(const bcm2079x_dev_t* device, uint8_t* maxNfcee);
     60 
     61 #ifdef __cplusplus
     62 }
     63 #endif
     64