1
mirror of https://github.com/DarkFlippers/unleashed-firmware.git synced 2025-12-12 04:34:43 +04:00

Merge branch 'ofw_dev' into dev

This commit is contained in:
MX
2023-11-17 02:20:27 +03:00
137 changed files with 3308 additions and 1249 deletions

View File

@@ -1,5 +1,5 @@
entry,status,name,type,params
Version,+,44.0,,
Version,+,46.0,,
Header,+,applications/services/bt/bt_service/bt.h,,
Header,+,applications/services/cli/cli.h,,
Header,+,applications/services/cli/cli_vcp.h,,
@@ -39,6 +39,8 @@ Header,+,applications/services/storage/storage.h,,
Header,+,lib/digital_signal/digital_sequence.h,,
Header,+,lib/digital_signal/digital_signal.h,,
Header,+,lib/drivers/cc1101_regs.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,,
@@ -1374,7 +1376,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*
@@ -2045,7 +2047,31 @@ 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,+,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*"
@@ -2064,7 +2090,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_free,void,File*
@@ -2074,13 +2100,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/services/bt/bt_service/bt.h
4 Header + applications/services/cli/cli.h
5 Header + applications/services/cli/cli_vcp.h
39 Header + lib/digital_signal/digital_sequence.h
40 Header + lib/digital_signal/digital_signal.h
41 Header + lib/drivers/cc1101_regs.h
42 Header + lib/drivers/st25r3916.h
43 Header + lib/drivers/st25r3916_reg.h
44 Header + lib/flipper_application/api_hashtable/api_hashtable.h
45 Header + lib/flipper_application/api_hashtable/compilesort.hpp
46 Header + lib/flipper_application/flipper_application.h
1376 Function + furi_pubsub_unsubscribe void FuriPubSub*, FuriPubSubSubscription*
1377 Function + furi_record_close void const char*
1378 Function + furi_record_create void const char*, void*
1379 Function - + furi_record_destroy _Bool const char*
1380 Function + furi_record_exists _Bool const char*
1381 Function - furi_record_init void
1382 Function + furi_record_open void* const char*
2047 Function - srand48 void long
2048 Function - srandom void unsigned
2049 Function + sscanf int const char*, const char*, ...
2050 Function + st25r3916_change_reg_bits void FuriHalSpiBusHandle*, uint8_t, uint8_t, uint8_t
2051 Function + st25r3916_change_test_reg_bits void FuriHalSpiBusHandle*, uint8_t, uint8_t, uint8_t
2052 Function + st25r3916_check_reg _Bool FuriHalSpiBusHandle*, uint8_t, uint8_t, uint8_t
2053 Function + st25r3916_clear_reg_bits void FuriHalSpiBusHandle*, uint8_t, uint8_t
2054 Function + st25r3916_direct_cmd void FuriHalSpiBusHandle*, uint8_t
2055 Function + st25r3916_get_irq uint32_t FuriHalSpiBusHandle*
2056 Function + st25r3916_mask_irq void FuriHalSpiBusHandle*, uint32_t
2057 Function + st25r3916_modify_reg void FuriHalSpiBusHandle*, uint8_t, uint8_t, uint8_t
2058 Function + st25r3916_read_burst_regs void FuriHalSpiBusHandle*, uint8_t, uint8_t*, uint8_t
2059 Function + st25r3916_read_fifo _Bool FuriHalSpiBusHandle*, uint8_t*, size_t, size_t*
2060 Function + st25r3916_read_pta_mem void FuriHalSpiBusHandle*, uint8_t*, size_t
2061 Function + st25r3916_read_reg void FuriHalSpiBusHandle*, uint8_t, uint8_t*
2062 Function + st25r3916_read_test_reg void FuriHalSpiBusHandle*, uint8_t, uint8_t*
2063 Function + st25r3916_reg_read_fifo void FuriHalSpiBusHandle*, uint8_t*, size_t
2064 Function + st25r3916_reg_write_fifo void FuriHalSpiBusHandle*, const uint8_t*, size_t
2065 Function + st25r3916_set_reg_bits void FuriHalSpiBusHandle*, uint8_t, uint8_t
2066 Function + st25r3916_write_burst_regs void FuriHalSpiBusHandle*, uint8_t, const uint8_t*, uint8_t
2067 Function + st25r3916_write_fifo void FuriHalSpiBusHandle*, const uint8_t*, size_t
2068 Function + st25r3916_write_pta_mem void FuriHalSpiBusHandle*, const uint8_t*, size_t
2069 Function + st25r3916_write_ptf_mem void FuriHalSpiBusHandle*, const uint8_t*, size_t
2070 Function + st25r3916_write_pttsn_mem void FuriHalSpiBusHandle*, uint8_t*, size_t
2071 Function + st25r3916_write_reg void FuriHalSpiBusHandle*, uint8_t, uint8_t
2072 Function + st25r3916_write_test_reg void FuriHalSpiBusHandle*, uint8_t, uint8_t
2073 Function + storage_common_copy FS_Error Storage*, const char*, const char*
2074 Function + storage_common_equivalent_path _Bool Storage*, const char*, const char*, _Bool
2075 Function + storage_common_exists _Bool Storage*, const char*
2076 Function + storage_common_fs_info FS_Error Storage*, const char*, uint64_t*, uint64_t*
2077 Function + storage_common_merge FS_Error Storage*, const char*, const char*
2090 Function + storage_error_get_desc const char* FS_Error
2091 Function + storage_file_alloc File* Storage*
2092 Function + storage_file_close _Bool File*
2093 Function + storage_file_copy_to_file _Bool File*, File*, uint32_t File*, File*, size_t
2094 Function + storage_file_eof _Bool File*
2095 Function + storage_file_exists _Bool Storage*, const char*
2096 Function + storage_file_free void File*
2100 Function + storage_file_is_dir _Bool File*
2101 Function + storage_file_is_open _Bool File*
2102 Function + storage_file_open _Bool File*, const char*, FS_AccessMode, FS_OpenMode
2103 Function + storage_file_read uint16_t size_t File*, void*, uint16_t File*, void*, size_t
2104 Function + storage_file_seek _Bool File*, uint32_t, _Bool
2105 Function + storage_file_size uint64_t File*
2106 Function + storage_file_sync _Bool File*
2107 Function + storage_file_tell uint64_t File*
2108 Function + storage_file_truncate _Bool File*
2109 Function + storage_file_write uint16_t size_t File*, const void*, uint16_t File*, const void*, size_t
2110 Function + storage_get_next_filename void Storage*, const char*, const char*, const char*, FuriString*, uint8_t
2111 Function + storage_get_pubsub FuriPubSub* Storage*
2112 Function + storage_int_backup FS_Error Storage*, const char*

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/services/bt/bt_service/bt.h,,
Header,+,applications/services/cli/cli.h,,
@@ -40,6 +40,8 @@ Header,+,applications/services/storage/storage.h,,
Header,+,lib/digital_signal/digital_sequence.h,,
Header,+,lib/digital_signal/digital_signal.h,,
Header,+,lib/drivers/cc1101_regs.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,,
@@ -117,7 +119,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,,
@@ -128,13 +130,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,,
@@ -1607,7 +1609,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*
@@ -1900,9 +1902,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]"
@@ -1921,6 +1927,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"
@@ -1939,6 +1948,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"
@@ -1953,6 +1965,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"
@@ -2180,14 +2194,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*"
@@ -2207,8 +2228,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*,
@@ -2229,13 +2266,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"
@@ -2329,6 +2375,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
@@ -2648,6 +2695,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*
@@ -2657,11 +2727,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*"
@@ -2680,7 +2757,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_free,void,File*
@@ -2690,13 +2767,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/services/bt/bt_service/bt.h
5 Header + applications/services/cli/cli.h
40 Header + lib/digital_signal/digital_sequence.h
41 Header + lib/digital_signal/digital_signal.h
42 Header + lib/drivers/cc1101_regs.h
43 Header + lib/drivers/st25r3916.h
44 Header + lib/drivers/st25r3916_reg.h
45 Header + lib/flipper_application/api_hashtable/api_hashtable.h
46 Header + lib/flipper_application/api_hashtable/compilesort.hpp
47 Header + lib/flipper_application/flipper_application.h
119 Header + lib/nfc/protocols/iso14443_3a/iso14443_3a.h
120 Header + lib/nfc/protocols/iso14443_3a/iso14443_3a_listener.h
121 Header + lib/nfc/protocols/iso14443_3a/iso14443_3a_poller.h
122 Header + lib/nfc/protocols/iso14443_3a/iso14443_3a_poller_sync_api.h lib/nfc/protocols/iso14443_3a/iso14443_3a_poller_sync.h
123 Header + lib/nfc/protocols/iso14443_3b/iso14443_3b.h
124 Header + lib/nfc/protocols/iso14443_3b/iso14443_3b_poller.h
125 Header + lib/nfc/protocols/iso14443_4a/iso14443_4a.h
130 Header + lib/nfc/protocols/mf_classic/mf_classic.h
131 Header + lib/nfc/protocols/mf_classic/mf_classic_listener.h
132 Header + lib/nfc/protocols/mf_classic/mf_classic_poller.h
133 Header + lib/nfc/protocols/mf_classic/mf_classic_poller_sync_api.h lib/nfc/protocols/mf_classic/mf_classic_poller_sync.h
134 Header + lib/nfc/protocols/mf_desfire/mf_desfire.h
135 Header + lib/nfc/protocols/mf_desfire/mf_desfire_poller.h
136 Header + lib/nfc/protocols/mf_ultralight/mf_ultralight.h
137 Header + lib/nfc/protocols/mf_ultralight/mf_ultralight_listener.h
138 Header + lib/nfc/protocols/mf_ultralight/mf_ultralight_poller.h
139 Header + lib/nfc/protocols/mf_ultralight/mf_ultralight_poller_sync_api.h lib/nfc/protocols/mf_ultralight/mf_ultralight_poller_sync.h
140 Header + lib/nfc/protocols/slix/slix.h
141 Header + lib/nfc/protocols/st25tb/st25tb.h
142 Header + lib/nfc/protocols/st25tb/st25tb_poller.h
1609 Function + furi_pubsub_unsubscribe void FuriPubSub*, FuriPubSubSubscription*
1610 Function + furi_record_close void const char*
1611 Function + furi_record_create void const char*, void*
1612 Function - + furi_record_destroy _Bool const char*
1613 Function + furi_record_exists _Bool const char*
1614 Function - furi_record_init void
1615 Function + furi_record_open void* const char*
1902 Function + iso14443_3a_get_uid const uint8_t* const Iso14443_3aData*, size_t*
1903 Function + iso14443_3a_is_equal _Bool const Iso14443_3aData*, const Iso14443_3aData*
1904 Function + iso14443_3a_load _Bool Iso14443_3aData*, FlipperFormat*, uint32_t
1905 Function + iso14443_3a_poller_read iso14443_3a_poller_activate Iso14443_3aError Nfc*, Iso14443_3aData* Iso14443_3aPoller*, Iso14443_3aData*
1906 Function + iso14443_3a_poller_check_presence Iso14443_3aError Iso14443_3aPoller*
1907 Function + iso14443_3a_poller_halt Iso14443_3aError Iso14443_3aPoller*
1908 Function + iso14443_3a_poller_send_standard_frame Iso14443_3aError Iso14443_3aPoller*, const BitBuffer*, BitBuffer*, uint32_t
1909 Function + iso14443_3a_poller_sync_read Iso14443_3aError Nfc*, Iso14443_3aData*
1910 Function + iso14443_3a_poller_txrx Iso14443_3aError Iso14443_3aPoller*, const BitBuffer*, BitBuffer*, uint32_t
1911 Function + iso14443_3a_poller_txrx_custom_parity Iso14443_3aError Iso14443_3aPoller*, const BitBuffer*, BitBuffer*, uint32_t
1912 Function + iso14443_3a_reset void Iso14443_3aData*
1913 Function + iso14443_3a_save _Bool const Iso14443_3aData*, FlipperFormat*
1914 Function + iso14443_3a_set_atqa void Iso14443_3aData*, const uint8_t[2]
1927 Function + iso14443_3b_get_uid const uint8_t* const Iso14443_3bData*, size_t*
1928 Function + iso14443_3b_is_equal _Bool const Iso14443_3bData*, const Iso14443_3bData*
1929 Function + iso14443_3b_load _Bool Iso14443_3bData*, FlipperFormat*, uint32_t
1930 Function + iso14443_3b_poller_activate Iso14443_3bError Iso14443_3bPoller*, Iso14443_3bData*
1931 Function + iso14443_3b_poller_halt Iso14443_3bError Iso14443_3bPoller*
1932 Function + iso14443_3b_poller_send_frame Iso14443_3bError Iso14443_3bPoller*, const BitBuffer*, BitBuffer*
1933 Function + iso14443_3b_reset void Iso14443_3bData*
1934 Function + iso14443_3b_save _Bool const Iso14443_3bData*, FlipperFormat*
1935 Function + iso14443_3b_set_uid _Bool Iso14443_3bData*, const uint8_t*, size_t
1948 Function + iso14443_4a_get_uid const uint8_t* const Iso14443_4aData*, size_t*
1949 Function + iso14443_4a_is_equal _Bool const Iso14443_4aData*, const Iso14443_4aData*
1950 Function + iso14443_4a_load _Bool Iso14443_4aData*, FlipperFormat*, uint32_t
1951 Function + iso14443_4a_poller_halt Iso14443_4aError Iso14443_4aPoller*
1952 Function + iso14443_4a_poller_read_ats Iso14443_4aError Iso14443_4aPoller*, Iso14443_4aAtsData*
1953 Function + iso14443_4a_poller_send_block Iso14443_4aError Iso14443_4aPoller*, const BitBuffer*, BitBuffer*
1954 Function + iso14443_4a_reset void Iso14443_4aData*
1955 Function + iso14443_4a_save _Bool const Iso14443_4aData*, FlipperFormat*
1956 Function + iso14443_4a_set_uid _Bool Iso14443_4aData*, const uint8_t*, size_t
1965 Function + iso14443_4b_get_uid const uint8_t* const Iso14443_4bData*, size_t*
1966 Function + iso14443_4b_is_equal _Bool const Iso14443_4bData*, const Iso14443_4bData*
1967 Function + iso14443_4b_load _Bool Iso14443_4bData*, FlipperFormat*, uint32_t
1968 Function + iso14443_4b_poller_halt Iso14443_4bError Iso14443_4bPoller*
1969 Function + iso14443_4b_poller_send_block Iso14443_4bError Iso14443_4bPoller*, const BitBuffer*, BitBuffer*
1970 Function + iso14443_4b_reset void Iso14443_4bData*
1971 Function + iso14443_4b_save _Bool const Iso14443_4bData*, FlipperFormat*
1972 Function + iso14443_4b_set_uid _Bool Iso14443_4bData*, const uint8_t*, size_t
2194 Function + mf_classic_is_sector_trailer _Bool uint8_t
2195 Function + mf_classic_is_value_block _Bool MfClassicSectorTrailer*, uint8_t
2196 Function + mf_classic_load _Bool MfClassicData*, FlipperFormat*, uint32_t
2197 Function + mf_classic_poller_auth MfClassicError Nfc*, uint8_t, MfClassicKey*, MfClassicKeyType, MfClassicAuthContext* MfClassicPoller*, uint8_t, MfClassicKey*, MfClassicKeyType, MfClassicAuthContext*
2198 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*
2199 Function + mf_classic_poller_collect_nt mf_classic_poller_halt MfClassicError Nfc*, uint8_t, MfClassicKeyType, MfClassicNt* MfClassicPoller*
2200 Function + mf_classic_poller_detect_type mf_classic_poller_read_block MfClassicError Nfc*, MfClassicType* MfClassicPoller*, uint8_t, MfClassicBlock*
2201 Function + mf_classic_poller_read mf_classic_poller_sync_auth MfClassicError Nfc*, const MfClassicDeviceKeys*, MfClassicData* Nfc*, uint8_t, MfClassicKey*, MfClassicKeyType, MfClassicAuthContext*
2202 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*
2203 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*
2204 Function + mf_classic_poller_write_block mf_classic_poller_sync_detect_type MfClassicError Nfc*, uint8_t, MfClassicKey*, MfClassicKeyType, MfClassicBlock* Nfc*, MfClassicType*
2205 Function + mf_classic_poller_sync_read MfClassicError Nfc*, const MfClassicDeviceKeys*, MfClassicData*
2206 Function + mf_classic_poller_sync_read_block MfClassicError Nfc*, uint8_t, MfClassicKey*, MfClassicKeyType, MfClassicBlock*
2207 Function + mf_classic_poller_sync_read_value MfClassicError Nfc*, uint8_t, MfClassicKey*, MfClassicKeyType, int32_t*
2208 Function + mf_classic_poller_sync_write_block MfClassicError Nfc*, uint8_t, MfClassicKey*, MfClassicKeyType, MfClassicBlock*
2209 Function + mf_classic_poller_value_cmd MfClassicError MfClassicPoller*, uint8_t, MfClassicValueCommand, int32_t
2210 Function + mf_classic_poller_value_transfer MfClassicError MfClassicPoller*, uint8_t
2211 Function + mf_classic_poller_write_block MfClassicError MfClassicPoller*, uint8_t, MfClassicBlock*
2212 Function + mf_classic_reset void MfClassicData*
2213 Function + mf_classic_save _Bool const MfClassicData*, FlipperFormat*
2214 Function + mf_classic_set_block_read void MfClassicData*, uint8_t, MfClassicBlock*
2228 Function + mf_desfire_get_uid const uint8_t* const MfDesfireData*, size_t*
2229 Function + mf_desfire_is_equal _Bool const MfDesfireData*, const MfDesfireData*
2230 Function + mf_desfire_load _Bool MfDesfireData*, FlipperFormat*, uint32_t
2231 Function + mf_desfire_poller_read_application MfDesfireError MfDesfirePoller*, MfDesfireApplication*
2232 Function + mf_desfire_poller_read_application_ids MfDesfireError MfDesfirePoller*, SimpleArray*
2233 Function + mf_desfire_poller_read_applications MfDesfireError MfDesfirePoller*, const SimpleArray*, SimpleArray*
2234 Function + mf_desfire_poller_read_file_data MfDesfireError MfDesfirePoller*, MfDesfireFileId, uint32_t, size_t, MfDesfireFileData*
2235 Function + mf_desfire_poller_read_file_data_multi MfDesfireError MfDesfirePoller*, const SimpleArray*, const SimpleArray*, SimpleArray*
2236 Function + mf_desfire_poller_read_file_ids MfDesfireError MfDesfirePoller*, SimpleArray*
2237 Function + mf_desfire_poller_read_file_records MfDesfireError MfDesfirePoller*, MfDesfireFileId, uint32_t, size_t, MfDesfireFileData*
2238 Function + mf_desfire_poller_read_file_settings MfDesfireError MfDesfirePoller*, MfDesfireFileId, MfDesfireFileSettings*
2239 Function + mf_desfire_poller_read_file_settings_multi MfDesfireError MfDesfirePoller*, const SimpleArray*, SimpleArray*
2240 Function + mf_desfire_poller_read_file_value MfDesfireError MfDesfirePoller*, MfDesfireFileId, MfDesfireFileData*
2241 Function + mf_desfire_poller_read_free_memory MfDesfireError MfDesfirePoller*, MfDesfireFreeMemory*
2242 Function + mf_desfire_poller_read_key_settings MfDesfireError MfDesfirePoller*, MfDesfireKeySettings*
2243 Function + mf_desfire_poller_read_key_versions MfDesfireError MfDesfirePoller*, SimpleArray*, uint32_t
2244 Function + mf_desfire_poller_read_version MfDesfireError MfDesfirePoller*, MfDesfireVersion*
2245 Function + mf_desfire_poller_select_application MfDesfireError MfDesfirePoller*, const MfDesfireApplicationId*
2246 Function + mf_desfire_reset void MfDesfireData*
2247 Function + mf_desfire_save _Bool const MfDesfireData*, FlipperFormat*
2248 Function + mf_desfire_send_chunks MfDesfireError MfDesfirePoller*, const BitBuffer*, BitBuffer*
2249 Function + mf_desfire_set_uid _Bool MfDesfireData*, const uint8_t*, size_t
2250 Function + mf_desfire_verify _Bool MfDesfireData*, const FuriString*
2251 Function + mf_ultralight_alloc MfUltralightData*
2266 Function + mf_ultralight_is_equal _Bool const MfUltralightData*, const MfUltralightData*
2267 Function + mf_ultralight_is_page_pwd_or_pack _Bool MfUltralightType, uint16_t
2268 Function + mf_ultralight_load _Bool MfUltralightData*, FlipperFormat*, uint32_t
2269 Function + mf_ultralight_poller_read_card mf_ultralight_poller_auth_pwd MfUltralightError Nfc*, MfUltralightData* MfUltralightPoller*, MfUltralightPollerAuthContext*
2270 Function + mf_ultralight_poller_read_counter mf_ultralight_poller_authenticate MfUltralightError Nfc*, uint8_t, MfUltralightCounter* MfUltralightPoller*
2271 Function + mf_ultralight_poller_read_page mf_ultralight_poller_read_counter MfUltralightError Nfc*, uint16_t, MfUltralightPage* MfUltralightPoller*, uint8_t, MfUltralightCounter*
2272 Function + mf_ultralight_poller_read_signature mf_ultralight_poller_read_page MfUltralightError Nfc*, MfUltralightSignature* MfUltralightPoller*, uint8_t, MfUltralightPageReadCommandData*
2273 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*
2274 Function + mf_ultralight_poller_read_version mf_ultralight_poller_read_signature MfUltralightError Nfc*, MfUltralightVersion* MfUltralightPoller*, MfUltralightSignature*
2275 Function + mf_ultralight_poller_write_page mf_ultralight_poller_read_tearing_flag MfUltralightError Nfc*, uint16_t, MfUltralightPage* MfUltralightPoller*, uint8_t, MfUltralightTearingFlag*
2276 Function + mf_ultralight_poller_read_version MfUltralightError MfUltralightPoller*, MfUltralightVersion*
2277 Function + mf_ultralight_poller_sync_read_card MfUltralightError Nfc*, MfUltralightData*
2278 Function + mf_ultralight_poller_sync_read_counter MfUltralightError Nfc*, uint8_t, MfUltralightCounter*
2279 Function + mf_ultralight_poller_sync_read_page MfUltralightError Nfc*, uint16_t, MfUltralightPage*
2280 Function + mf_ultralight_poller_sync_read_signature MfUltralightError Nfc*, MfUltralightSignature*
2281 Function + mf_ultralight_poller_sync_read_tearing_flag MfUltralightError Nfc*, uint8_t, MfUltralightTearingFlag*
2282 Function + mf_ultralight_poller_sync_read_version MfUltralightError Nfc*, MfUltralightVersion*
2283 Function + mf_ultralight_poller_sync_write_page MfUltralightError Nfc*, uint16_t, MfUltralightPage*
2284 Function + mf_ultralight_poller_write_page MfUltralightError MfUltralightPoller*, uint8_t, const MfUltralightPage*
2285 Function + mf_ultralight_reset void MfUltralightData*
2286 Function + mf_ultralight_save _Bool const MfUltralightData*, FlipperFormat*
2287 Function + mf_ultralight_set_uid _Bool MfUltralightData*, const uint8_t*, size_t
2375 Function + nfc_poller_get_data const NfcDeviceData* const NfcPoller*
2376 Function + nfc_poller_get_protocol NfcProtocol const NfcPoller*
2377 Function + nfc_poller_start void NfcPoller*, NfcGenericCallback, void*
2378 Function + nfc_poller_start_ex void NfcPoller*, NfcGenericCallbackEx, void*
2379 Function + nfc_poller_stop void NfcPoller*
2380 Function + nfc_poller_trx NfcError Nfc*, const BitBuffer*, BitBuffer*, uint32_t
2381 Function + nfc_protocol_get_parent NfcProtocol NfcProtocol
2695 Function - srand48 void long
2696 Function - srandom void unsigned
2697 Function + sscanf int const char*, const char*, ...
2698 Function + st25r3916_change_reg_bits void FuriHalSpiBusHandle*, uint8_t, uint8_t, uint8_t
2699 Function + st25r3916_change_test_reg_bits void FuriHalSpiBusHandle*, uint8_t, uint8_t, uint8_t
2700 Function + st25r3916_check_reg _Bool FuriHalSpiBusHandle*, uint8_t, uint8_t, uint8_t
2701 Function + st25r3916_clear_reg_bits void FuriHalSpiBusHandle*, uint8_t, uint8_t
2702 Function + st25r3916_direct_cmd void FuriHalSpiBusHandle*, uint8_t
2703 Function + st25r3916_get_irq uint32_t FuriHalSpiBusHandle*
2704 Function + st25r3916_mask_irq void FuriHalSpiBusHandle*, uint32_t
2705 Function + st25r3916_modify_reg void FuriHalSpiBusHandle*, uint8_t, uint8_t, uint8_t
2706 Function + st25r3916_read_burst_regs void FuriHalSpiBusHandle*, uint8_t, uint8_t*, uint8_t
2707 Function + st25r3916_read_fifo _Bool FuriHalSpiBusHandle*, uint8_t*, size_t, size_t*
2708 Function + st25r3916_read_pta_mem void FuriHalSpiBusHandle*, uint8_t*, size_t
2709 Function + st25r3916_read_reg void FuriHalSpiBusHandle*, uint8_t, uint8_t*
2710 Function + st25r3916_read_test_reg void FuriHalSpiBusHandle*, uint8_t, uint8_t*
2711 Function + st25r3916_reg_read_fifo void FuriHalSpiBusHandle*, uint8_t*, size_t
2712 Function + st25r3916_reg_write_fifo void FuriHalSpiBusHandle*, const uint8_t*, size_t
2713 Function + st25r3916_set_reg_bits void FuriHalSpiBusHandle*, uint8_t, uint8_t
2714 Function + st25r3916_write_burst_regs void FuriHalSpiBusHandle*, uint8_t, const uint8_t*, uint8_t
2715 Function + st25r3916_write_fifo void FuriHalSpiBusHandle*, const uint8_t*, size_t
2716 Function + st25r3916_write_pta_mem void FuriHalSpiBusHandle*, const uint8_t*, size_t
2717 Function + st25r3916_write_ptf_mem void FuriHalSpiBusHandle*, const uint8_t*, size_t
2718 Function + st25r3916_write_pttsn_mem void FuriHalSpiBusHandle*, uint8_t*, size_t
2719 Function + st25r3916_write_reg void FuriHalSpiBusHandle*, uint8_t, uint8_t
2720 Function + st25r3916_write_test_reg void FuriHalSpiBusHandle*, uint8_t, uint8_t
2721 Function + st25tb_alloc St25tbData*
2722 Function + st25tb_copy void St25tbData*, const St25tbData*
2723 Function + st25tb_free void St25tbData*
2727 Function + st25tb_get_uid const uint8_t* const St25tbData*, size_t*
2728 Function + st25tb_is_equal _Bool const St25tbData*, const St25tbData*
2729 Function + st25tb_load _Bool St25tbData*, FlipperFormat*, uint32_t
2730 Function + st25tb_poller_activate St25tbError St25tbPoller*, St25tbData*
2731 Function + st25tb_poller_get_uid St25tbError St25tbPoller*, uint8_t*
2732 Function + st25tb_poller_halt St25tbError St25tbPoller*
2733 Function + st25tb_poller_initiate St25tbError St25tbPoller*, uint8_t*
2734 Function + st25tb_poller_read_block St25tbError St25tbPoller*, uint32_t*, uint8_t
2735 Function + st25tb_poller_send_frame St25tbError St25tbPoller*, const BitBuffer*, BitBuffer*, uint32_t
2736 Function + st25tb_reset void St25tbData*
2737 Function + st25tb_save _Bool const St25tbData*, FlipperFormat*
2738 Function + st25tb_set_uid _Bool St25tbData*, const uint8_t*, size_t
2739 Function + st25tb_verify _Bool St25tbData*, const FuriString*
2740 Function + storage_common_copy FS_Error Storage*, const char*, const char*
2741 Function + storage_common_equivalent_path _Bool Storage*, const char*, const char*, _Bool
2742 Function + storage_common_exists _Bool Storage*, const char*
2743 Function + storage_common_fs_info FS_Error Storage*, const char*, uint64_t*, uint64_t*
2744 Function + storage_common_merge FS_Error Storage*, const char*, const char*
2757 Function + storage_error_get_desc const char* FS_Error
2758 Function + storage_file_alloc File* Storage*
2759 Function + storage_file_close _Bool File*
2760 Function + storage_file_copy_to_file _Bool File*, File*, uint32_t File*, File*, size_t
2761 Function + storage_file_eof _Bool File*
2762 Function + storage_file_exists _Bool Storage*, const char*
2763 Function + storage_file_free void File*
2767 Function + storage_file_is_dir _Bool File*
2768 Function + storage_file_is_open _Bool File*
2769 Function + storage_file_open _Bool File*, const char*, FS_AccessMode, FS_OpenMode
2770 Function + storage_file_read uint16_t size_t File*, void*, uint16_t File*, void*, size_t
2771 Function + storage_file_seek _Bool File*, uint32_t, _Bool
2772 Function + storage_file_size uint64_t File*
2773 Function + storage_file_sync _Bool File*
2774 Function + storage_file_tell uint64_t File*
2775 Function + storage_file_truncate _Bool File*
2776 Function + storage_file_write uint16_t size_t File*, const void*, uint16_t File*, const void*, size_t
2777 Function + storage_get_next_filename void Storage*, const char*, const char*, const char*, FuriString*, uint8_t
2778 Function + storage_get_pubsub FuriPubSub* Storage*
2779 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() {