This commit is contained in:
Willy-JL
2023-11-16 02:19:28 +00:00
135 changed files with 3318 additions and 1252 deletions

View File

@@ -1,5 +1,5 @@
entry,status,name,type,params
Version,+,44.0,,
Version,+,46.0,,
Header,+,applications/drivers/subghz/cc1101_ext/cc1101_ext_interconnect.h,,
Header,+,applications/main/archive/helpers/archive_helpers_ext.h,,
Header,+,applications/services/applications.h,,
@@ -45,6 +45,8 @@ Header,+,lib/digital_signal/digital_sequence.h,,
Header,+,lib/digital_signal/digital_signal.h,,
Header,+,lib/drivers/cc1101_regs.h,,
Header,+,lib/drivers/rgb_backlight.h,,
Header,+,lib/drivers/st25r3916.h,,
Header,+,lib/drivers/st25r3916_reg.h,,
Header,+,lib/flipper_application/api_hashtable/api_hashtable.h,,
Header,+,lib/flipper_application/api_hashtable/compilesort.hpp,,
Header,+,lib/flipper_application/flipper_application.h,,
@@ -122,7 +124,7 @@ Header,+,lib/nfc/nfc_scanner.h,,
Header,+,lib/nfc/protocols/iso14443_3a/iso14443_3a.h,,
Header,+,lib/nfc/protocols/iso14443_3a/iso14443_3a_listener.h,,
Header,+,lib/nfc/protocols/iso14443_3a/iso14443_3a_poller.h,,
Header,+,lib/nfc/protocols/iso14443_3a/iso14443_3a_poller_sync_api.h,,
Header,+,lib/nfc/protocols/iso14443_3a/iso14443_3a_poller_sync.h,,
Header,+,lib/nfc/protocols/iso14443_3b/iso14443_3b.h,,
Header,+,lib/nfc/protocols/iso14443_3b/iso14443_3b_poller.h,,
Header,+,lib/nfc/protocols/iso14443_4a/iso14443_4a.h,,
@@ -133,13 +135,13 @@ Header,+,lib/nfc/protocols/iso14443_4b/iso14443_4b_poller.h,,
Header,+,lib/nfc/protocols/mf_classic/mf_classic.h,,
Header,+,lib/nfc/protocols/mf_classic/mf_classic_listener.h,,
Header,+,lib/nfc/protocols/mf_classic/mf_classic_poller.h,,
Header,+,lib/nfc/protocols/mf_classic/mf_classic_poller_sync_api.h,,
Header,+,lib/nfc/protocols/mf_classic/mf_classic_poller_sync.h,,
Header,+,lib/nfc/protocols/mf_desfire/mf_desfire.h,,
Header,+,lib/nfc/protocols/mf_desfire/mf_desfire_poller.h,,
Header,+,lib/nfc/protocols/mf_ultralight/mf_ultralight.h,,
Header,+,lib/nfc/protocols/mf_ultralight/mf_ultralight_listener.h,,
Header,+,lib/nfc/protocols/mf_ultralight/mf_ultralight_poller.h,,
Header,+,lib/nfc/protocols/mf_ultralight/mf_ultralight_poller_sync_api.h,,
Header,+,lib/nfc/protocols/mf_ultralight/mf_ultralight_poller_sync.h,,
Header,+,lib/nfc/protocols/slix/slix.h,,
Header,+,lib/nfc/protocols/st25tb/st25tb.h,,
Header,+,lib/nfc/protocols/st25tb/st25tb_poller.h,,
@@ -1647,7 +1649,7 @@ Function,+,furi_pubsub_subscribe,FuriPubSubSubscription*,"FuriPubSub*, FuriPubSu
Function,+,furi_pubsub_unsubscribe,void,"FuriPubSub*, FuriPubSubSubscription*"
Function,+,furi_record_close,void,const char*
Function,+,furi_record_create,void,"const char*, void*"
Function,-,furi_record_destroy,_Bool,const char*
Function,+,furi_record_destroy,_Bool,const char*
Function,+,furi_record_exists,_Bool,const char*
Function,-,furi_record_init,void,
Function,+,furi_record_open,void*,const char*
@@ -1944,9 +1946,13 @@ Function,+,iso14443_3a_get_sak,uint8_t,const Iso14443_3aData*
Function,+,iso14443_3a_get_uid,const uint8_t*,"const Iso14443_3aData*, size_t*"
Function,+,iso14443_3a_is_equal,_Bool,"const Iso14443_3aData*, const Iso14443_3aData*"
Function,+,iso14443_3a_load,_Bool,"Iso14443_3aData*, FlipperFormat*, uint32_t"
Function,+,iso14443_3a_poller_read,Iso14443_3aError,"Nfc*, Iso14443_3aData*"
Function,+,iso14443_3a_poller_activate,Iso14443_3aError,"Iso14443_3aPoller*, Iso14443_3aData*"
Function,+,iso14443_3a_poller_check_presence,Iso14443_3aError,Iso14443_3aPoller*
Function,+,iso14443_3a_poller_halt,Iso14443_3aError,Iso14443_3aPoller*
Function,+,iso14443_3a_poller_send_standard_frame,Iso14443_3aError,"Iso14443_3aPoller*, const BitBuffer*, BitBuffer*, uint32_t"
Function,+,iso14443_3a_poller_sync_read,Iso14443_3aError,"Nfc*, Iso14443_3aData*"
Function,+,iso14443_3a_poller_txrx,Iso14443_3aError,"Iso14443_3aPoller*, const BitBuffer*, BitBuffer*, uint32_t"
Function,+,iso14443_3a_poller_txrx_custom_parity,Iso14443_3aError,"Iso14443_3aPoller*, const BitBuffer*, BitBuffer*, uint32_t"
Function,+,iso14443_3a_reset,void,Iso14443_3aData*
Function,+,iso14443_3a_save,_Bool,"const Iso14443_3aData*, FlipperFormat*"
Function,+,iso14443_3a_set_atqa,void,"Iso14443_3aData*, const uint8_t[2]"
@@ -1965,6 +1971,9 @@ Function,+,iso14443_3b_get_fwt_fc_max,uint32_t,const Iso14443_3bData*
Function,+,iso14443_3b_get_uid,const uint8_t*,"const Iso14443_3bData*, size_t*"
Function,+,iso14443_3b_is_equal,_Bool,"const Iso14443_3bData*, const Iso14443_3bData*"
Function,+,iso14443_3b_load,_Bool,"Iso14443_3bData*, FlipperFormat*, uint32_t"
Function,+,iso14443_3b_poller_activate,Iso14443_3bError,"Iso14443_3bPoller*, Iso14443_3bData*"
Function,+,iso14443_3b_poller_halt,Iso14443_3bError,Iso14443_3bPoller*
Function,+,iso14443_3b_poller_send_frame,Iso14443_3bError,"Iso14443_3bPoller*, const BitBuffer*, BitBuffer*"
Function,+,iso14443_3b_reset,void,Iso14443_3bData*
Function,+,iso14443_3b_save,_Bool,"const Iso14443_3bData*, FlipperFormat*"
Function,+,iso14443_3b_set_uid,_Bool,"Iso14443_3bData*, const uint8_t*, size_t"
@@ -1983,6 +1992,9 @@ Function,+,iso14443_4a_get_historical_bytes,const uint8_t*,"const Iso14443_4aDat
Function,+,iso14443_4a_get_uid,const uint8_t*,"const Iso14443_4aData*, size_t*"
Function,+,iso14443_4a_is_equal,_Bool,"const Iso14443_4aData*, const Iso14443_4aData*"
Function,+,iso14443_4a_load,_Bool,"Iso14443_4aData*, FlipperFormat*, uint32_t"
Function,+,iso14443_4a_poller_halt,Iso14443_4aError,Iso14443_4aPoller*
Function,+,iso14443_4a_poller_read_ats,Iso14443_4aError,"Iso14443_4aPoller*, Iso14443_4aAtsData*"
Function,+,iso14443_4a_poller_send_block,Iso14443_4aError,"Iso14443_4aPoller*, const BitBuffer*, BitBuffer*"
Function,+,iso14443_4a_reset,void,Iso14443_4aData*
Function,+,iso14443_4a_save,_Bool,"const Iso14443_4aData*, FlipperFormat*"
Function,+,iso14443_4a_set_uid,_Bool,"Iso14443_4aData*, const uint8_t*, size_t"
@@ -1997,6 +2009,8 @@ Function,+,iso14443_4b_get_device_name,const char*,"const Iso14443_4bData*, NfcD
Function,+,iso14443_4b_get_uid,const uint8_t*,"const Iso14443_4bData*, size_t*"
Function,+,iso14443_4b_is_equal,_Bool,"const Iso14443_4bData*, const Iso14443_4bData*"
Function,+,iso14443_4b_load,_Bool,"Iso14443_4bData*, FlipperFormat*, uint32_t"
Function,+,iso14443_4b_poller_halt,Iso14443_4bError,Iso14443_4bPoller*
Function,+,iso14443_4b_poller_send_block,Iso14443_4bError,"Iso14443_4bPoller*, const BitBuffer*, BitBuffer*"
Function,+,iso14443_4b_reset,void,Iso14443_4bData*
Function,+,iso14443_4b_save,_Bool,"const Iso14443_4bData*, FlipperFormat*"
Function,+,iso14443_4b_set_uid,_Bool,"Iso14443_4bData*, const uint8_t*, size_t"
@@ -2226,14 +2240,21 @@ Function,+,mf_classic_is_sector_read,_Bool,"const MfClassicData*, uint8_t"
Function,+,mf_classic_is_sector_trailer,_Bool,uint8_t
Function,+,mf_classic_is_value_block,_Bool,"MfClassicSectorTrailer*, uint8_t"
Function,+,mf_classic_load,_Bool,"MfClassicData*, FlipperFormat*, uint32_t"
Function,+,mf_classic_poller_auth,MfClassicError,"Nfc*, uint8_t, MfClassicKey*, MfClassicKeyType, MfClassicAuthContext*"
Function,+,mf_classic_poller_change_value,MfClassicError,"Nfc*, uint8_t, MfClassicKey*, MfClassicKeyType, int32_t, int32_t*"
Function,+,mf_classic_poller_collect_nt,MfClassicError,"Nfc*, uint8_t, MfClassicKeyType, MfClassicNt*"
Function,+,mf_classic_poller_detect_type,MfClassicError,"Nfc*, MfClassicType*"
Function,+,mf_classic_poller_read,MfClassicError,"Nfc*, const MfClassicDeviceKeys*, MfClassicData*"
Function,+,mf_classic_poller_read_block,MfClassicError,"Nfc*, uint8_t, MfClassicKey*, MfClassicKeyType, MfClassicBlock*"
Function,+,mf_classic_poller_read_value,MfClassicError,"Nfc*, uint8_t, MfClassicKey*, MfClassicKeyType, int32_t*"
Function,+,mf_classic_poller_write_block,MfClassicError,"Nfc*, uint8_t, MfClassicKey*, MfClassicKeyType, MfClassicBlock*"
Function,+,mf_classic_poller_auth,MfClassicError,"MfClassicPoller*, uint8_t, MfClassicKey*, MfClassicKeyType, MfClassicAuthContext*"
Function,+,mf_classic_poller_get_nt,MfClassicError,"MfClassicPoller*, uint8_t, MfClassicKeyType, MfClassicNt*"
Function,+,mf_classic_poller_halt,MfClassicError,MfClassicPoller*
Function,+,mf_classic_poller_read_block,MfClassicError,"MfClassicPoller*, uint8_t, MfClassicBlock*"
Function,+,mf_classic_poller_sync_auth,MfClassicError,"Nfc*, uint8_t, MfClassicKey*, MfClassicKeyType, MfClassicAuthContext*"
Function,+,mf_classic_poller_sync_change_value,MfClassicError,"Nfc*, uint8_t, MfClassicKey*, MfClassicKeyType, int32_t, int32_t*"
Function,+,mf_classic_poller_sync_collect_nt,MfClassicError,"Nfc*, uint8_t, MfClassicKeyType, MfClassicNt*"
Function,+,mf_classic_poller_sync_detect_type,MfClassicError,"Nfc*, MfClassicType*"
Function,+,mf_classic_poller_sync_read,MfClassicError,"Nfc*, const MfClassicDeviceKeys*, MfClassicData*"
Function,+,mf_classic_poller_sync_read_block,MfClassicError,"Nfc*, uint8_t, MfClassicKey*, MfClassicKeyType, MfClassicBlock*"
Function,+,mf_classic_poller_sync_read_value,MfClassicError,"Nfc*, uint8_t, MfClassicKey*, MfClassicKeyType, int32_t*"
Function,+,mf_classic_poller_sync_write_block,MfClassicError,"Nfc*, uint8_t, MfClassicKey*, MfClassicKeyType, MfClassicBlock*"
Function,+,mf_classic_poller_value_cmd,MfClassicError,"MfClassicPoller*, uint8_t, MfClassicValueCommand, int32_t"
Function,+,mf_classic_poller_value_transfer,MfClassicError,"MfClassicPoller*, uint8_t"
Function,+,mf_classic_poller_write_block,MfClassicError,"MfClassicPoller*, uint8_t, MfClassicBlock*"
Function,+,mf_classic_reset,void,MfClassicData*
Function,+,mf_classic_save,_Bool,"const MfClassicData*, FlipperFormat*"
Function,+,mf_classic_set_block_read,void,"MfClassicData*, uint8_t, MfClassicBlock*"
@@ -2253,8 +2274,24 @@ Function,+,mf_desfire_get_file_settings,const MfDesfireFileSettings*,"const MfDe
Function,+,mf_desfire_get_uid,const uint8_t*,"const MfDesfireData*, size_t*"
Function,+,mf_desfire_is_equal,_Bool,"const MfDesfireData*, const MfDesfireData*"
Function,+,mf_desfire_load,_Bool,"MfDesfireData*, FlipperFormat*, uint32_t"
Function,+,mf_desfire_poller_read_application,MfDesfireError,"MfDesfirePoller*, MfDesfireApplication*"
Function,+,mf_desfire_poller_read_application_ids,MfDesfireError,"MfDesfirePoller*, SimpleArray*"
Function,+,mf_desfire_poller_read_applications,MfDesfireError,"MfDesfirePoller*, const SimpleArray*, SimpleArray*"
Function,+,mf_desfire_poller_read_file_data,MfDesfireError,"MfDesfirePoller*, MfDesfireFileId, uint32_t, size_t, MfDesfireFileData*"
Function,+,mf_desfire_poller_read_file_data_multi,MfDesfireError,"MfDesfirePoller*, const SimpleArray*, const SimpleArray*, SimpleArray*"
Function,+,mf_desfire_poller_read_file_ids,MfDesfireError,"MfDesfirePoller*, SimpleArray*"
Function,+,mf_desfire_poller_read_file_records,MfDesfireError,"MfDesfirePoller*, MfDesfireFileId, uint32_t, size_t, MfDesfireFileData*"
Function,+,mf_desfire_poller_read_file_settings,MfDesfireError,"MfDesfirePoller*, MfDesfireFileId, MfDesfireFileSettings*"
Function,+,mf_desfire_poller_read_file_settings_multi,MfDesfireError,"MfDesfirePoller*, const SimpleArray*, SimpleArray*"
Function,+,mf_desfire_poller_read_file_value,MfDesfireError,"MfDesfirePoller*, MfDesfireFileId, MfDesfireFileData*"
Function,+,mf_desfire_poller_read_free_memory,MfDesfireError,"MfDesfirePoller*, MfDesfireFreeMemory*"
Function,+,mf_desfire_poller_read_key_settings,MfDesfireError,"MfDesfirePoller*, MfDesfireKeySettings*"
Function,+,mf_desfire_poller_read_key_versions,MfDesfireError,"MfDesfirePoller*, SimpleArray*, uint32_t"
Function,+,mf_desfire_poller_read_version,MfDesfireError,"MfDesfirePoller*, MfDesfireVersion*"
Function,+,mf_desfire_poller_select_application,MfDesfireError,"MfDesfirePoller*, const MfDesfireApplicationId*"
Function,+,mf_desfire_reset,void,MfDesfireData*
Function,+,mf_desfire_save,_Bool,"const MfDesfireData*, FlipperFormat*"
Function,+,mf_desfire_send_chunks,MfDesfireError,"MfDesfirePoller*, const BitBuffer*, BitBuffer*"
Function,+,mf_desfire_set_uid,_Bool,"MfDesfireData*, const uint8_t*, size_t"
Function,+,mf_desfire_verify,_Bool,"MfDesfireData*, const FuriString*"
Function,+,mf_ultralight_alloc,MfUltralightData*,
@@ -2275,13 +2312,22 @@ Function,+,mf_ultralight_is_counter_configured,_Bool,const MfUltralightData*
Function,+,mf_ultralight_is_equal,_Bool,"const MfUltralightData*, const MfUltralightData*"
Function,+,mf_ultralight_is_page_pwd_or_pack,_Bool,"MfUltralightType, uint16_t"
Function,+,mf_ultralight_load,_Bool,"MfUltralightData*, FlipperFormat*, uint32_t"
Function,+,mf_ultralight_poller_read_card,MfUltralightError,"Nfc*, MfUltralightData*"
Function,+,mf_ultralight_poller_read_counter,MfUltralightError,"Nfc*, uint8_t, MfUltralightCounter*"
Function,+,mf_ultralight_poller_read_page,MfUltralightError,"Nfc*, uint16_t, MfUltralightPage*"
Function,+,mf_ultralight_poller_read_signature,MfUltralightError,"Nfc*, MfUltralightSignature*"
Function,+,mf_ultralight_poller_read_tearing_flag,MfUltralightError,"Nfc*, uint8_t, MfUltralightTearingFlag*"
Function,+,mf_ultralight_poller_read_version,MfUltralightError,"Nfc*, MfUltralightVersion*"
Function,+,mf_ultralight_poller_write_page,MfUltralightError,"Nfc*, uint16_t, MfUltralightPage*"
Function,+,mf_ultralight_poller_auth_pwd,MfUltralightError,"MfUltralightPoller*, MfUltralightPollerAuthContext*"
Function,+,mf_ultralight_poller_authenticate,MfUltralightError,MfUltralightPoller*
Function,+,mf_ultralight_poller_read_counter,MfUltralightError,"MfUltralightPoller*, uint8_t, MfUltralightCounter*"
Function,+,mf_ultralight_poller_read_page,MfUltralightError,"MfUltralightPoller*, uint8_t, MfUltralightPageReadCommandData*"
Function,+,mf_ultralight_poller_read_page_from_sector,MfUltralightError,"MfUltralightPoller*, uint8_t, uint8_t, MfUltralightPageReadCommandData*"
Function,+,mf_ultralight_poller_read_signature,MfUltralightError,"MfUltralightPoller*, MfUltralightSignature*"
Function,+,mf_ultralight_poller_read_tearing_flag,MfUltralightError,"MfUltralightPoller*, uint8_t, MfUltralightTearingFlag*"
Function,+,mf_ultralight_poller_read_version,MfUltralightError,"MfUltralightPoller*, MfUltralightVersion*"
Function,+,mf_ultralight_poller_sync_read_card,MfUltralightError,"Nfc*, MfUltralightData*"
Function,+,mf_ultralight_poller_sync_read_counter,MfUltralightError,"Nfc*, uint8_t, MfUltralightCounter*"
Function,+,mf_ultralight_poller_sync_read_page,MfUltralightError,"Nfc*, uint16_t, MfUltralightPage*"
Function,+,mf_ultralight_poller_sync_read_signature,MfUltralightError,"Nfc*, MfUltralightSignature*"
Function,+,mf_ultralight_poller_sync_read_tearing_flag,MfUltralightError,"Nfc*, uint8_t, MfUltralightTearingFlag*"
Function,+,mf_ultralight_poller_sync_read_version,MfUltralightError,"Nfc*, MfUltralightVersion*"
Function,+,mf_ultralight_poller_sync_write_page,MfUltralightError,"Nfc*, uint16_t, MfUltralightPage*"
Function,+,mf_ultralight_poller_write_page,MfUltralightError,"MfUltralightPoller*, uint8_t, const MfUltralightPage*"
Function,+,mf_ultralight_reset,void,MfUltralightData*
Function,+,mf_ultralight_save,_Bool,"const MfUltralightData*, FlipperFormat*"
Function,+,mf_ultralight_set_uid,_Bool,"MfUltralightData*, const uint8_t*, size_t"
@@ -2376,6 +2422,7 @@ Function,+,nfc_poller_free,void,NfcPoller*
Function,+,nfc_poller_get_data,const NfcDeviceData*,const NfcPoller*
Function,+,nfc_poller_get_protocol,NfcProtocol,const NfcPoller*
Function,+,nfc_poller_start,void,"NfcPoller*, NfcGenericCallback, void*"
Function,+,nfc_poller_start_ex,void,"NfcPoller*, NfcGenericCallbackEx, void*"
Function,+,nfc_poller_stop,void,NfcPoller*
Function,+,nfc_poller_trx,NfcError,"Nfc*, const BitBuffer*, BitBuffer*, uint32_t"
Function,+,nfc_protocol_get_parent,NfcProtocol,NfcProtocol
@@ -2716,6 +2763,29 @@ Function,+,srand,void,unsigned
Function,-,srand48,void,long
Function,-,srandom,void,unsigned
Function,+,sscanf,int,"const char*, const char*, ..."
Function,+,st25r3916_change_reg_bits,void,"FuriHalSpiBusHandle*, uint8_t, uint8_t, uint8_t"
Function,+,st25r3916_change_test_reg_bits,void,"FuriHalSpiBusHandle*, uint8_t, uint8_t, uint8_t"
Function,+,st25r3916_check_reg,_Bool,"FuriHalSpiBusHandle*, uint8_t, uint8_t, uint8_t"
Function,+,st25r3916_clear_reg_bits,void,"FuriHalSpiBusHandle*, uint8_t, uint8_t"
Function,+,st25r3916_direct_cmd,void,"FuriHalSpiBusHandle*, uint8_t"
Function,+,st25r3916_get_irq,uint32_t,FuriHalSpiBusHandle*
Function,+,st25r3916_mask_irq,void,"FuriHalSpiBusHandle*, uint32_t"
Function,+,st25r3916_modify_reg,void,"FuriHalSpiBusHandle*, uint8_t, uint8_t, uint8_t"
Function,+,st25r3916_read_burst_regs,void,"FuriHalSpiBusHandle*, uint8_t, uint8_t*, uint8_t"
Function,+,st25r3916_read_fifo,_Bool,"FuriHalSpiBusHandle*, uint8_t*, size_t, size_t*"
Function,+,st25r3916_read_pta_mem,void,"FuriHalSpiBusHandle*, uint8_t*, size_t"
Function,+,st25r3916_read_reg,void,"FuriHalSpiBusHandle*, uint8_t, uint8_t*"
Function,+,st25r3916_read_test_reg,void,"FuriHalSpiBusHandle*, uint8_t, uint8_t*"
Function,+,st25r3916_reg_read_fifo,void,"FuriHalSpiBusHandle*, uint8_t*, size_t"
Function,+,st25r3916_reg_write_fifo,void,"FuriHalSpiBusHandle*, const uint8_t*, size_t"
Function,+,st25r3916_set_reg_bits,void,"FuriHalSpiBusHandle*, uint8_t, uint8_t"
Function,+,st25r3916_write_burst_regs,void,"FuriHalSpiBusHandle*, uint8_t, const uint8_t*, uint8_t"
Function,+,st25r3916_write_fifo,void,"FuriHalSpiBusHandle*, const uint8_t*, size_t"
Function,+,st25r3916_write_pta_mem,void,"FuriHalSpiBusHandle*, const uint8_t*, size_t"
Function,+,st25r3916_write_ptf_mem,void,"FuriHalSpiBusHandle*, const uint8_t*, size_t"
Function,+,st25r3916_write_pttsn_mem,void,"FuriHalSpiBusHandle*, uint8_t*, size_t"
Function,+,st25r3916_write_reg,void,"FuriHalSpiBusHandle*, uint8_t, uint8_t"
Function,+,st25r3916_write_test_reg,void,"FuriHalSpiBusHandle*, uint8_t, uint8_t"
Function,+,st25tb_alloc,St25tbData*,
Function,+,st25tb_copy,void,"St25tbData*, const St25tbData*"
Function,+,st25tb_free,void,St25tbData*
@@ -2725,11 +2795,18 @@ Function,+,st25tb_get_device_name,const char*,"const St25tbData*, NfcDeviceNameT
Function,+,st25tb_get_uid,const uint8_t*,"const St25tbData*, size_t*"
Function,+,st25tb_is_equal,_Bool,"const St25tbData*, const St25tbData*"
Function,+,st25tb_load,_Bool,"St25tbData*, FlipperFormat*, uint32_t"
Function,+,st25tb_poller_activate,St25tbError,"St25tbPoller*, St25tbData*"
Function,+,st25tb_poller_get_uid,St25tbError,"St25tbPoller*, uint8_t*"
Function,+,st25tb_poller_halt,St25tbError,St25tbPoller*
Function,+,st25tb_poller_initiate,St25tbError,"St25tbPoller*, uint8_t*"
Function,+,st25tb_poller_read_block,St25tbError,"St25tbPoller*, uint32_t*, uint8_t"
Function,+,st25tb_poller_send_frame,St25tbError,"St25tbPoller*, const BitBuffer*, BitBuffer*, uint32_t"
Function,+,st25tb_reset,void,St25tbData*
Function,+,st25tb_save,_Bool,"const St25tbData*, FlipperFormat*"
Function,+,st25tb_set_uid,_Bool,"St25tbData*, const uint8_t*, size_t"
Function,+,st25tb_verify,_Bool,"St25tbData*, const FuriString*"
Function,+,storage_common_copy,FS_Error,"Storage*, const char*, const char*"
Function,+,storage_common_equivalent_path,_Bool,"Storage*, const char*, const char*, _Bool"
Function,+,storage_common_exists,_Bool,"Storage*, const char*"
Function,+,storage_common_fs_info,FS_Error,"Storage*, const char*, uint64_t*, uint64_t*"
Function,+,storage_common_merge,FS_Error,"Storage*, const char*, const char*"
@@ -2749,7 +2826,7 @@ Function,-,storage_dir_rewind,_Bool,File*
Function,+,storage_error_get_desc,const char*,FS_Error
Function,+,storage_file_alloc,File*,Storage*
Function,+,storage_file_close,_Bool,File*
Function,+,storage_file_copy_to_file,_Bool,"File*, File*, uint32_t"
Function,+,storage_file_copy_to_file,_Bool,"File*, File*, size_t"
Function,+,storage_file_eof,_Bool,File*
Function,+,storage_file_exists,_Bool,"Storage*, const char*"
Function,+,storage_file_expand,_Bool,"File*, uint64_t"
@@ -2760,13 +2837,13 @@ Function,-,storage_file_get_internal_error,int32_t,File*
Function,+,storage_file_is_dir,_Bool,File*
Function,+,storage_file_is_open,_Bool,File*
Function,+,storage_file_open,_Bool,"File*, const char*, FS_AccessMode, FS_OpenMode"
Function,+,storage_file_read,uint16_t,"File*, void*, uint16_t"
Function,+,storage_file_read,size_t,"File*, void*, size_t"
Function,+,storage_file_seek,_Bool,"File*, uint32_t, _Bool"
Function,+,storage_file_size,uint64_t,File*
Function,+,storage_file_sync,_Bool,File*
Function,+,storage_file_tell,uint64_t,File*
Function,+,storage_file_truncate,_Bool,File*
Function,+,storage_file_write,uint16_t,"File*, const void*, uint16_t"
Function,+,storage_file_write,size_t,"File*, const void*, size_t"
Function,+,storage_get_next_filename,void,"Storage*, const char*, const char*, const char*, FuriString*, uint8_t"
Function,+,storage_get_pubsub,FuriPubSub*,Storage*
Function,+,storage_int_backup,FS_Error,"Storage*, const char*"
1 entry status name type params
2 Version + 44.0 46.0
3 Header + applications/drivers/subghz/cc1101_ext/cc1101_ext_interconnect.h
4 Header + applications/main/archive/helpers/archive_helpers_ext.h
5 Header + applications/services/applications.h
45 Header + lib/digital_signal/digital_signal.h
46 Header + lib/drivers/cc1101_regs.h
47 Header + lib/drivers/rgb_backlight.h
48 Header + lib/drivers/st25r3916.h
49 Header + lib/drivers/st25r3916_reg.h
50 Header + lib/flipper_application/api_hashtable/api_hashtable.h
51 Header + lib/flipper_application/api_hashtable/compilesort.hpp
52 Header + lib/flipper_application/flipper_application.h
124 Header + lib/nfc/protocols/iso14443_3a/iso14443_3a.h
125 Header + lib/nfc/protocols/iso14443_3a/iso14443_3a_listener.h
126 Header + lib/nfc/protocols/iso14443_3a/iso14443_3a_poller.h
127 Header + lib/nfc/protocols/iso14443_3a/iso14443_3a_poller_sync_api.h lib/nfc/protocols/iso14443_3a/iso14443_3a_poller_sync.h
128 Header + lib/nfc/protocols/iso14443_3b/iso14443_3b.h
129 Header + lib/nfc/protocols/iso14443_3b/iso14443_3b_poller.h
130 Header + lib/nfc/protocols/iso14443_4a/iso14443_4a.h
135 Header + lib/nfc/protocols/mf_classic/mf_classic.h
136 Header + lib/nfc/protocols/mf_classic/mf_classic_listener.h
137 Header + lib/nfc/protocols/mf_classic/mf_classic_poller.h
138 Header + lib/nfc/protocols/mf_classic/mf_classic_poller_sync_api.h lib/nfc/protocols/mf_classic/mf_classic_poller_sync.h
139 Header + lib/nfc/protocols/mf_desfire/mf_desfire.h
140 Header + lib/nfc/protocols/mf_desfire/mf_desfire_poller.h
141 Header + lib/nfc/protocols/mf_ultralight/mf_ultralight.h
142 Header + lib/nfc/protocols/mf_ultralight/mf_ultralight_listener.h
143 Header + lib/nfc/protocols/mf_ultralight/mf_ultralight_poller.h
144 Header + lib/nfc/protocols/mf_ultralight/mf_ultralight_poller_sync_api.h lib/nfc/protocols/mf_ultralight/mf_ultralight_poller_sync.h
145 Header + lib/nfc/protocols/slix/slix.h
146 Header + lib/nfc/protocols/st25tb/st25tb.h
147 Header + lib/nfc/protocols/st25tb/st25tb_poller.h
1649 Function + furi_pubsub_unsubscribe void FuriPubSub*, FuriPubSubSubscription*
1650 Function + furi_record_close void const char*
1651 Function + furi_record_create void const char*, void*
1652 Function - + furi_record_destroy _Bool const char*
1653 Function + furi_record_exists _Bool const char*
1654 Function - furi_record_init void
1655 Function + furi_record_open void* const char*
1946 Function + iso14443_3a_get_uid const uint8_t* const Iso14443_3aData*, size_t*
1947 Function + iso14443_3a_is_equal _Bool const Iso14443_3aData*, const Iso14443_3aData*
1948 Function + iso14443_3a_load _Bool Iso14443_3aData*, FlipperFormat*, uint32_t
1949 Function + iso14443_3a_poller_read iso14443_3a_poller_activate Iso14443_3aError Nfc*, Iso14443_3aData* Iso14443_3aPoller*, Iso14443_3aData*
1950 Function + iso14443_3a_poller_check_presence Iso14443_3aError Iso14443_3aPoller*
1951 Function + iso14443_3a_poller_halt Iso14443_3aError Iso14443_3aPoller*
1952 Function + iso14443_3a_poller_send_standard_frame Iso14443_3aError Iso14443_3aPoller*, const BitBuffer*, BitBuffer*, uint32_t
1953 Function + iso14443_3a_poller_sync_read Iso14443_3aError Nfc*, Iso14443_3aData*
1954 Function + iso14443_3a_poller_txrx Iso14443_3aError Iso14443_3aPoller*, const BitBuffer*, BitBuffer*, uint32_t
1955 Function + iso14443_3a_poller_txrx_custom_parity Iso14443_3aError Iso14443_3aPoller*, const BitBuffer*, BitBuffer*, uint32_t
1956 Function + iso14443_3a_reset void Iso14443_3aData*
1957 Function + iso14443_3a_save _Bool const Iso14443_3aData*, FlipperFormat*
1958 Function + iso14443_3a_set_atqa void Iso14443_3aData*, const uint8_t[2]
1971 Function + iso14443_3b_get_uid const uint8_t* const Iso14443_3bData*, size_t*
1972 Function + iso14443_3b_is_equal _Bool const Iso14443_3bData*, const Iso14443_3bData*
1973 Function + iso14443_3b_load _Bool Iso14443_3bData*, FlipperFormat*, uint32_t
1974 Function + iso14443_3b_poller_activate Iso14443_3bError Iso14443_3bPoller*, Iso14443_3bData*
1975 Function + iso14443_3b_poller_halt Iso14443_3bError Iso14443_3bPoller*
1976 Function + iso14443_3b_poller_send_frame Iso14443_3bError Iso14443_3bPoller*, const BitBuffer*, BitBuffer*
1977 Function + iso14443_3b_reset void Iso14443_3bData*
1978 Function + iso14443_3b_save _Bool const Iso14443_3bData*, FlipperFormat*
1979 Function + iso14443_3b_set_uid _Bool Iso14443_3bData*, const uint8_t*, size_t
1992 Function + iso14443_4a_get_uid const uint8_t* const Iso14443_4aData*, size_t*
1993 Function + iso14443_4a_is_equal _Bool const Iso14443_4aData*, const Iso14443_4aData*
1994 Function + iso14443_4a_load _Bool Iso14443_4aData*, FlipperFormat*, uint32_t
1995 Function + iso14443_4a_poller_halt Iso14443_4aError Iso14443_4aPoller*
1996 Function + iso14443_4a_poller_read_ats Iso14443_4aError Iso14443_4aPoller*, Iso14443_4aAtsData*
1997 Function + iso14443_4a_poller_send_block Iso14443_4aError Iso14443_4aPoller*, const BitBuffer*, BitBuffer*
1998 Function + iso14443_4a_reset void Iso14443_4aData*
1999 Function + iso14443_4a_save _Bool const Iso14443_4aData*, FlipperFormat*
2000 Function + iso14443_4a_set_uid _Bool Iso14443_4aData*, const uint8_t*, size_t
2009 Function + iso14443_4b_get_uid const uint8_t* const Iso14443_4bData*, size_t*
2010 Function + iso14443_4b_is_equal _Bool const Iso14443_4bData*, const Iso14443_4bData*
2011 Function + iso14443_4b_load _Bool Iso14443_4bData*, FlipperFormat*, uint32_t
2012 Function + iso14443_4b_poller_halt Iso14443_4bError Iso14443_4bPoller*
2013 Function + iso14443_4b_poller_send_block Iso14443_4bError Iso14443_4bPoller*, const BitBuffer*, BitBuffer*
2014 Function + iso14443_4b_reset void Iso14443_4bData*
2015 Function + iso14443_4b_save _Bool const Iso14443_4bData*, FlipperFormat*
2016 Function + iso14443_4b_set_uid _Bool Iso14443_4bData*, const uint8_t*, size_t
2240 Function + mf_classic_is_sector_trailer _Bool uint8_t
2241 Function + mf_classic_is_value_block _Bool MfClassicSectorTrailer*, uint8_t
2242 Function + mf_classic_load _Bool MfClassicData*, FlipperFormat*, uint32_t
2243 Function + mf_classic_poller_auth MfClassicError Nfc*, uint8_t, MfClassicKey*, MfClassicKeyType, MfClassicAuthContext* MfClassicPoller*, uint8_t, MfClassicKey*, MfClassicKeyType, MfClassicAuthContext*
2244 Function + mf_classic_poller_change_value mf_classic_poller_get_nt MfClassicError Nfc*, uint8_t, MfClassicKey*, MfClassicKeyType, int32_t, int32_t* MfClassicPoller*, uint8_t, MfClassicKeyType, MfClassicNt*
2245 Function + mf_classic_poller_collect_nt mf_classic_poller_halt MfClassicError Nfc*, uint8_t, MfClassicKeyType, MfClassicNt* MfClassicPoller*
2246 Function + mf_classic_poller_detect_type mf_classic_poller_read_block MfClassicError Nfc*, MfClassicType* MfClassicPoller*, uint8_t, MfClassicBlock*
2247 Function + mf_classic_poller_read mf_classic_poller_sync_auth MfClassicError Nfc*, const MfClassicDeviceKeys*, MfClassicData* Nfc*, uint8_t, MfClassicKey*, MfClassicKeyType, MfClassicAuthContext*
2248 Function + mf_classic_poller_read_block mf_classic_poller_sync_change_value MfClassicError Nfc*, uint8_t, MfClassicKey*, MfClassicKeyType, MfClassicBlock* Nfc*, uint8_t, MfClassicKey*, MfClassicKeyType, int32_t, int32_t*
2249 Function + mf_classic_poller_read_value mf_classic_poller_sync_collect_nt MfClassicError Nfc*, uint8_t, MfClassicKey*, MfClassicKeyType, int32_t* Nfc*, uint8_t, MfClassicKeyType, MfClassicNt*
2250 Function + mf_classic_poller_write_block mf_classic_poller_sync_detect_type MfClassicError Nfc*, uint8_t, MfClassicKey*, MfClassicKeyType, MfClassicBlock* Nfc*, MfClassicType*
2251 Function + mf_classic_poller_sync_read MfClassicError Nfc*, const MfClassicDeviceKeys*, MfClassicData*
2252 Function + mf_classic_poller_sync_read_block MfClassicError Nfc*, uint8_t, MfClassicKey*, MfClassicKeyType, MfClassicBlock*
2253 Function + mf_classic_poller_sync_read_value MfClassicError Nfc*, uint8_t, MfClassicKey*, MfClassicKeyType, int32_t*
2254 Function + mf_classic_poller_sync_write_block MfClassicError Nfc*, uint8_t, MfClassicKey*, MfClassicKeyType, MfClassicBlock*
2255 Function + mf_classic_poller_value_cmd MfClassicError MfClassicPoller*, uint8_t, MfClassicValueCommand, int32_t
2256 Function + mf_classic_poller_value_transfer MfClassicError MfClassicPoller*, uint8_t
2257 Function + mf_classic_poller_write_block MfClassicError MfClassicPoller*, uint8_t, MfClassicBlock*
2258 Function + mf_classic_reset void MfClassicData*
2259 Function + mf_classic_save _Bool const MfClassicData*, FlipperFormat*
2260 Function + mf_classic_set_block_read void MfClassicData*, uint8_t, MfClassicBlock*
2274 Function + mf_desfire_get_uid const uint8_t* const MfDesfireData*, size_t*
2275 Function + mf_desfire_is_equal _Bool const MfDesfireData*, const MfDesfireData*
2276 Function + mf_desfire_load _Bool MfDesfireData*, FlipperFormat*, uint32_t
2277 Function + mf_desfire_poller_read_application MfDesfireError MfDesfirePoller*, MfDesfireApplication*
2278 Function + mf_desfire_poller_read_application_ids MfDesfireError MfDesfirePoller*, SimpleArray*
2279 Function + mf_desfire_poller_read_applications MfDesfireError MfDesfirePoller*, const SimpleArray*, SimpleArray*
2280 Function + mf_desfire_poller_read_file_data MfDesfireError MfDesfirePoller*, MfDesfireFileId, uint32_t, size_t, MfDesfireFileData*
2281 Function + mf_desfire_poller_read_file_data_multi MfDesfireError MfDesfirePoller*, const SimpleArray*, const SimpleArray*, SimpleArray*
2282 Function + mf_desfire_poller_read_file_ids MfDesfireError MfDesfirePoller*, SimpleArray*
2283 Function + mf_desfire_poller_read_file_records MfDesfireError MfDesfirePoller*, MfDesfireFileId, uint32_t, size_t, MfDesfireFileData*
2284 Function + mf_desfire_poller_read_file_settings MfDesfireError MfDesfirePoller*, MfDesfireFileId, MfDesfireFileSettings*
2285 Function + mf_desfire_poller_read_file_settings_multi MfDesfireError MfDesfirePoller*, const SimpleArray*, SimpleArray*
2286 Function + mf_desfire_poller_read_file_value MfDesfireError MfDesfirePoller*, MfDesfireFileId, MfDesfireFileData*
2287 Function + mf_desfire_poller_read_free_memory MfDesfireError MfDesfirePoller*, MfDesfireFreeMemory*
2288 Function + mf_desfire_poller_read_key_settings MfDesfireError MfDesfirePoller*, MfDesfireKeySettings*
2289 Function + mf_desfire_poller_read_key_versions MfDesfireError MfDesfirePoller*, SimpleArray*, uint32_t
2290 Function + mf_desfire_poller_read_version MfDesfireError MfDesfirePoller*, MfDesfireVersion*
2291 Function + mf_desfire_poller_select_application MfDesfireError MfDesfirePoller*, const MfDesfireApplicationId*
2292 Function + mf_desfire_reset void MfDesfireData*
2293 Function + mf_desfire_save _Bool const MfDesfireData*, FlipperFormat*
2294 Function + mf_desfire_send_chunks MfDesfireError MfDesfirePoller*, const BitBuffer*, BitBuffer*
2295 Function + mf_desfire_set_uid _Bool MfDesfireData*, const uint8_t*, size_t
2296 Function + mf_desfire_verify _Bool MfDesfireData*, const FuriString*
2297 Function + mf_ultralight_alloc MfUltralightData*
2312 Function + mf_ultralight_is_equal _Bool const MfUltralightData*, const MfUltralightData*
2313 Function + mf_ultralight_is_page_pwd_or_pack _Bool MfUltralightType, uint16_t
2314 Function + mf_ultralight_load _Bool MfUltralightData*, FlipperFormat*, uint32_t
2315 Function + mf_ultralight_poller_read_card mf_ultralight_poller_auth_pwd MfUltralightError Nfc*, MfUltralightData* MfUltralightPoller*, MfUltralightPollerAuthContext*
2316 Function + mf_ultralight_poller_read_counter mf_ultralight_poller_authenticate MfUltralightError Nfc*, uint8_t, MfUltralightCounter* MfUltralightPoller*
2317 Function + mf_ultralight_poller_read_page mf_ultralight_poller_read_counter MfUltralightError Nfc*, uint16_t, MfUltralightPage* MfUltralightPoller*, uint8_t, MfUltralightCounter*
2318 Function + mf_ultralight_poller_read_signature mf_ultralight_poller_read_page MfUltralightError Nfc*, MfUltralightSignature* MfUltralightPoller*, uint8_t, MfUltralightPageReadCommandData*
2319 Function + mf_ultralight_poller_read_tearing_flag mf_ultralight_poller_read_page_from_sector MfUltralightError Nfc*, uint8_t, MfUltralightTearingFlag* MfUltralightPoller*, uint8_t, uint8_t, MfUltralightPageReadCommandData*
2320 Function + mf_ultralight_poller_read_version mf_ultralight_poller_read_signature MfUltralightError Nfc*, MfUltralightVersion* MfUltralightPoller*, MfUltralightSignature*
2321 Function + mf_ultralight_poller_write_page mf_ultralight_poller_read_tearing_flag MfUltralightError Nfc*, uint16_t, MfUltralightPage* MfUltralightPoller*, uint8_t, MfUltralightTearingFlag*
2322 Function + mf_ultralight_poller_read_version MfUltralightError MfUltralightPoller*, MfUltralightVersion*
2323 Function + mf_ultralight_poller_sync_read_card MfUltralightError Nfc*, MfUltralightData*
2324 Function + mf_ultralight_poller_sync_read_counter MfUltralightError Nfc*, uint8_t, MfUltralightCounter*
2325 Function + mf_ultralight_poller_sync_read_page MfUltralightError Nfc*, uint16_t, MfUltralightPage*
2326 Function + mf_ultralight_poller_sync_read_signature MfUltralightError Nfc*, MfUltralightSignature*
2327 Function + mf_ultralight_poller_sync_read_tearing_flag MfUltralightError Nfc*, uint8_t, MfUltralightTearingFlag*
2328 Function + mf_ultralight_poller_sync_read_version MfUltralightError Nfc*, MfUltralightVersion*
2329 Function + mf_ultralight_poller_sync_write_page MfUltralightError Nfc*, uint16_t, MfUltralightPage*
2330 Function + mf_ultralight_poller_write_page MfUltralightError MfUltralightPoller*, uint8_t, const MfUltralightPage*
2331 Function + mf_ultralight_reset void MfUltralightData*
2332 Function + mf_ultralight_save _Bool const MfUltralightData*, FlipperFormat*
2333 Function + mf_ultralight_set_uid _Bool MfUltralightData*, const uint8_t*, size_t
2422 Function + nfc_poller_get_data const NfcDeviceData* const NfcPoller*
2423 Function + nfc_poller_get_protocol NfcProtocol const NfcPoller*
2424 Function + nfc_poller_start void NfcPoller*, NfcGenericCallback, void*
2425 Function + nfc_poller_start_ex void NfcPoller*, NfcGenericCallbackEx, void*
2426 Function + nfc_poller_stop void NfcPoller*
2427 Function + nfc_poller_trx NfcError Nfc*, const BitBuffer*, BitBuffer*, uint32_t
2428 Function + nfc_protocol_get_parent NfcProtocol NfcProtocol
2763 Function - srand48 void long
2764 Function - srandom void unsigned
2765 Function + sscanf int const char*, const char*, ...
2766 Function + st25r3916_change_reg_bits void FuriHalSpiBusHandle*, uint8_t, uint8_t, uint8_t
2767 Function + st25r3916_change_test_reg_bits void FuriHalSpiBusHandle*, uint8_t, uint8_t, uint8_t
2768 Function + st25r3916_check_reg _Bool FuriHalSpiBusHandle*, uint8_t, uint8_t, uint8_t
2769 Function + st25r3916_clear_reg_bits void FuriHalSpiBusHandle*, uint8_t, uint8_t
2770 Function + st25r3916_direct_cmd void FuriHalSpiBusHandle*, uint8_t
2771 Function + st25r3916_get_irq uint32_t FuriHalSpiBusHandle*
2772 Function + st25r3916_mask_irq void FuriHalSpiBusHandle*, uint32_t
2773 Function + st25r3916_modify_reg void FuriHalSpiBusHandle*, uint8_t, uint8_t, uint8_t
2774 Function + st25r3916_read_burst_regs void FuriHalSpiBusHandle*, uint8_t, uint8_t*, uint8_t
2775 Function + st25r3916_read_fifo _Bool FuriHalSpiBusHandle*, uint8_t*, size_t, size_t*
2776 Function + st25r3916_read_pta_mem void FuriHalSpiBusHandle*, uint8_t*, size_t
2777 Function + st25r3916_read_reg void FuriHalSpiBusHandle*, uint8_t, uint8_t*
2778 Function + st25r3916_read_test_reg void FuriHalSpiBusHandle*, uint8_t, uint8_t*
2779 Function + st25r3916_reg_read_fifo void FuriHalSpiBusHandle*, uint8_t*, size_t
2780 Function + st25r3916_reg_write_fifo void FuriHalSpiBusHandle*, const uint8_t*, size_t
2781 Function + st25r3916_set_reg_bits void FuriHalSpiBusHandle*, uint8_t, uint8_t
2782 Function + st25r3916_write_burst_regs void FuriHalSpiBusHandle*, uint8_t, const uint8_t*, uint8_t
2783 Function + st25r3916_write_fifo void FuriHalSpiBusHandle*, const uint8_t*, size_t
2784 Function + st25r3916_write_pta_mem void FuriHalSpiBusHandle*, const uint8_t*, size_t
2785 Function + st25r3916_write_ptf_mem void FuriHalSpiBusHandle*, const uint8_t*, size_t
2786 Function + st25r3916_write_pttsn_mem void FuriHalSpiBusHandle*, uint8_t*, size_t
2787 Function + st25r3916_write_reg void FuriHalSpiBusHandle*, uint8_t, uint8_t
2788 Function + st25r3916_write_test_reg void FuriHalSpiBusHandle*, uint8_t, uint8_t
2789 Function + st25tb_alloc St25tbData*
2790 Function + st25tb_copy void St25tbData*, const St25tbData*
2791 Function + st25tb_free void St25tbData*
2795 Function + st25tb_get_uid const uint8_t* const St25tbData*, size_t*
2796 Function + st25tb_is_equal _Bool const St25tbData*, const St25tbData*
2797 Function + st25tb_load _Bool St25tbData*, FlipperFormat*, uint32_t
2798 Function + st25tb_poller_activate St25tbError St25tbPoller*, St25tbData*
2799 Function + st25tb_poller_get_uid St25tbError St25tbPoller*, uint8_t*
2800 Function + st25tb_poller_halt St25tbError St25tbPoller*
2801 Function + st25tb_poller_initiate St25tbError St25tbPoller*, uint8_t*
2802 Function + st25tb_poller_read_block St25tbError St25tbPoller*, uint32_t*, uint8_t
2803 Function + st25tb_poller_send_frame St25tbError St25tbPoller*, const BitBuffer*, BitBuffer*, uint32_t
2804 Function + st25tb_reset void St25tbData*
2805 Function + st25tb_save _Bool const St25tbData*, FlipperFormat*
2806 Function + st25tb_set_uid _Bool St25tbData*, const uint8_t*, size_t
2807 Function + st25tb_verify _Bool St25tbData*, const FuriString*
2808 Function + storage_common_copy FS_Error Storage*, const char*, const char*
2809 Function + storage_common_equivalent_path _Bool Storage*, const char*, const char*, _Bool
2810 Function + storage_common_exists _Bool Storage*, const char*
2811 Function + storage_common_fs_info FS_Error Storage*, const char*, uint64_t*, uint64_t*
2812 Function + storage_common_merge FS_Error Storage*, const char*, const char*
2826 Function + storage_error_get_desc const char* FS_Error
2827 Function + storage_file_alloc File* Storage*
2828 Function + storage_file_close _Bool File*
2829 Function + storage_file_copy_to_file _Bool File*, File*, uint32_t File*, File*, size_t
2830 Function + storage_file_eof _Bool File*
2831 Function + storage_file_exists _Bool Storage*, const char*
2832 Function + storage_file_expand _Bool File*, uint64_t
2837 Function + storage_file_is_dir _Bool File*
2838 Function + storage_file_is_open _Bool File*
2839 Function + storage_file_open _Bool File*, const char*, FS_AccessMode, FS_OpenMode
2840 Function + storage_file_read uint16_t size_t File*, void*, uint16_t File*, void*, size_t
2841 Function + storage_file_seek _Bool File*, uint32_t, _Bool
2842 Function + storage_file_size uint64_t File*
2843 Function + storage_file_sync _Bool File*
2844 Function + storage_file_tell uint64_t File*
2845 Function + storage_file_truncate _Bool File*
2846 Function + storage_file_write uint16_t size_t File*, const void*, uint16_t File*, const void*, size_t
2847 Function + storage_get_next_filename void Storage*, const char*, const char*, const char*, FuriString*, uint8_t
2848 Function + storage_get_pubsub FuriPubSub* Storage*
2849 Function + storage_int_backup FS_Error Storage*, const char*

View File

@@ -101,7 +101,7 @@ void furi_hal_flash_init() {
// WRITE_REG(FLASH->SR, FLASH_SR_OPTVERR);
/* Actually, reset all error flags on start */
if(READ_BIT(FLASH->SR, FURI_HAL_FLASH_SR_ERRORS)) {
FURI_LOG_E(TAG, "FLASH->SR 0x%08lX", FLASH->SR);
FURI_LOG_W(TAG, "FLASH->SR 0x%08lX(Known ERRATA)", FLASH->SR);
WRITE_REG(FLASH->SR, FURI_HAL_FLASH_SR_ERRORS);
}
}

View File

@@ -71,12 +71,37 @@ void furi_hal_power_init() {
furi_hal_i2c_acquire(&furi_hal_i2c_handle_power);
// Find and init gauge
if(bq27220_init(&furi_hal_i2c_handle_power)) {
furi_hal_power.gauge_ok = bq27220_apply_data_memory(
&furi_hal_i2c_handle_power, furi_hal_power_gauge_data_memory);
size_t retry = 2;
while(retry > 0) {
furi_hal_power.gauge_ok = bq27220_init(&furi_hal_i2c_handle_power);
if(furi_hal_power.gauge_ok) {
furi_hal_power.gauge_ok = bq27220_apply_data_memory(
&furi_hal_i2c_handle_power, furi_hal_power_gauge_data_memory);
}
if(furi_hal_power.gauge_ok) {
break;
} else {
// Normal startup time is 250ms
// But if we try to access gauge at that stage it will become unresponsive
// 2 seconds timeout needed to restart communication
furi_delay_us(2020202);
}
retry--;
}
// Find and init charger
furi_hal_power.charger_ok = bq25896_init(&furi_hal_i2c_handle_power);
retry = 2;
while(retry > 0) {
furi_hal_power.charger_ok = bq25896_init(&furi_hal_i2c_handle_power);
if(furi_hal_power.charger_ok) {
break;
} else {
// Most likely I2C communication error
// 2 seconds should be enough for all chips on the line to timeout
// Also timing out here is very abnormal
furi_delay_us(2020202);
}
retry--;
}
furi_hal_i2c_release(&furi_hal_i2c_handle_power);
FURI_LOG_I(TAG, "Init OK");

View File

@@ -4,6 +4,7 @@
#include <furi_hal_version.h>
#include <furi_hal_rtc.h>
#include <furi_hal_spi.h>
#include <furi_hal_cortex.h>
#include <furi_hal_interrupt.h>
#include <furi_hal_resources.h>
#include <furi_hal_bus.h>
@@ -29,7 +30,7 @@ static uint32_t furi_hal_subghz_debug_gpio_buff[2];
/** SubGhz state */
typedef enum {
SubGhzStateInit, /**< Init pending */
SubGhzStateBroken, /**< Chip power-on self test failed */
SubGhzStateIdle, /**< Idle, energy save mode */
SubGhzStateAsyncRx, /**< Async RX started */
@@ -96,46 +97,67 @@ const GpioPin* furi_hal_subghz_get_data_gpio() {
void furi_hal_subghz_init() {
furi_assert(furi_hal_subghz.state == SubGhzStateInit);
furi_hal_subghz.state = SubGhzStateIdle;
furi_hal_subghz.state = SubGhzStateBroken;
furi_hal_spi_acquire(&furi_hal_spi_bus_handle_subghz);
do {
#ifdef FURI_HAL_SUBGHZ_TX_GPIO
furi_hal_gpio_init(&FURI_HAL_SUBGHZ_TX_GPIO, GpioModeOutputPushPull, GpioPullNo, GpioSpeedLow);
furi_hal_gpio_init(
&FURI_HAL_SUBGHZ_TX_GPIO, GpioModeOutputPushPull, GpioPullNo, GpioSpeedLow);
#endif
// Reset
furi_hal_gpio_init(&gpio_cc1101_g0, GpioModeAnalog, GpioPullNo, GpioSpeedLow);
cc1101_reset(&furi_hal_spi_bus_handle_subghz);
cc1101_write_reg(&furi_hal_spi_bus_handle_subghz, CC1101_IOCFG0, CC1101IocfgHighImpedance);
// Reset
furi_hal_gpio_init(&gpio_cc1101_g0, GpioModeAnalog, GpioPullNo, GpioSpeedLow);
cc1101_reset(&furi_hal_spi_bus_handle_subghz);
cc1101_write_reg(&furi_hal_spi_bus_handle_subghz, CC1101_IOCFG0, CC1101IocfgHighImpedance);
// Prepare GD0 for power on self test
furi_hal_gpio_init(&gpio_cc1101_g0, GpioModeInput, GpioPullNo, GpioSpeedLow);
// Prepare GD0 for power on self test
furi_hal_gpio_init(&gpio_cc1101_g0, GpioModeInput, GpioPullNo, GpioSpeedLow);
// GD0 low
cc1101_write_reg(&furi_hal_spi_bus_handle_subghz, CC1101_IOCFG0, CC1101IocfgHW);
while(furi_hal_gpio_read(&gpio_cc1101_g0) != false)
;
// GD0 low
FuriHalCortexTimer timeout = furi_hal_cortex_timer_get(10000);
cc1101_write_reg(&furi_hal_spi_bus_handle_subghz, CC1101_IOCFG0, CC1101IocfgHW);
while(furi_hal_gpio_read(&gpio_cc1101_g0) != false &&
!furi_hal_cortex_timer_is_expired(timeout))
;
// GD0 high
cc1101_write_reg(
&furi_hal_spi_bus_handle_subghz, CC1101_IOCFG0, CC1101IocfgHW | CC1101_IOCFG_INV);
while(furi_hal_gpio_read(&gpio_cc1101_g0) != true)
;
if(furi_hal_gpio_read(&gpio_cc1101_g0) != false) {
break;
}
// Reset GD0 to floating state
cc1101_write_reg(&furi_hal_spi_bus_handle_subghz, CC1101_IOCFG0, CC1101IocfgHighImpedance);
furi_hal_gpio_init(&gpio_cc1101_g0, GpioModeAnalog, GpioPullNo, GpioSpeedLow);
// GD0 high
timeout = furi_hal_cortex_timer_get(10000);
cc1101_write_reg(
&furi_hal_spi_bus_handle_subghz, CC1101_IOCFG0, CC1101IocfgHW | CC1101_IOCFG_INV);
while(furi_hal_gpio_read(&gpio_cc1101_g0) != true &&
!furi_hal_cortex_timer_is_expired(timeout))
;
// RF switches
furi_hal_gpio_init(&gpio_rf_sw_0, GpioModeOutputPushPull, GpioPullNo, GpioSpeedLow);
cc1101_write_reg(&furi_hal_spi_bus_handle_subghz, CC1101_IOCFG2, CC1101IocfgHW);
if(furi_hal_gpio_read(&gpio_cc1101_g0) != true) {
break;
}
// Go to sleep
cc1101_shutdown(&furi_hal_spi_bus_handle_subghz);
// Reset GD0 to floating state
cc1101_write_reg(&furi_hal_spi_bus_handle_subghz, CC1101_IOCFG0, CC1101IocfgHighImpedance);
furi_hal_gpio_init(&gpio_cc1101_g0, GpioModeAnalog, GpioPullNo, GpioSpeedLow);
// RF switches
furi_hal_gpio_init(&gpio_rf_sw_0, GpioModeOutputPushPull, GpioPullNo, GpioSpeedLow);
cc1101_write_reg(&furi_hal_spi_bus_handle_subghz, CC1101_IOCFG2, CC1101IocfgHW);
// Go to sleep
cc1101_shutdown(&furi_hal_spi_bus_handle_subghz);
furi_hal_subghz.state = SubGhzStateIdle;
} while(false);
furi_hal_spi_release(&furi_hal_spi_bus_handle_subghz);
FURI_LOG_I(TAG, "Init OK");
if(furi_hal_subghz.state == SubGhzStateIdle) {
FURI_LOG_I(TAG, "Init OK");
} else {
FURI_LOG_E(TAG, "Init Fail");
}
}
void furi_hal_subghz_sleep() {