1 #ifndef HAL_FAKES_H_ 2 #define HAL_FAKES_H_ 3 4 #include <android-base/logging.h> 5 6 #include "nfc_hal_api.h" 7 8 class FakeHal; 9 10 extern FakeHal* g_fake_hal; 11 12 // Captures HAL callbacks from entry_funcs and allows a client 13 // to simulate HAL and data packet events. 14 class FakeHal { 15 public: 16 FakeHal(); 17 ~FakeHal(); 18 19 void FuzzedOpen(tHAL_NFC_CBACK* p_hal_cback, 20 tHAL_NFC_DATA_CBACK* p_data_cback); 21 void FuzzedClose(); 22 23 void SimulateHALEvent(uint8_t event, tHAL_NFC_STATUS status); 24 void SimulatePacketArrival(uint8_t mt, uint8_t pbf, uint8_t gid, 25 uint8_t opcode, uint8_t* data, size_t size); 26 27 private: 28 tHAL_NFC_CBACK* hal_callback_; 29 tHAL_NFC_DATA_CBACK* data_callback_; 30 }; 31 32 extern tHAL_NFC_ENTRY fuzzed_hal_entry; 33 34 #endif // HAL_FAKES_H_ 35