diff --git a/applications/main/gpio/usb_uart_bridge.c b/applications/main/gpio/usb_uart_bridge.c index 3e1cefb933d..57417f61378 100644 --- a/applications/main/gpio/usb_uart_bridge.c +++ b/applications/main/gpio/usb_uart_bridge.c @@ -113,7 +113,7 @@ static void usb_uart_vcp_init(UsbUartBridge* usb_uart, uint8_t vcp_ch) { furi_check(furi_hal_usb_set_config(&usb_cdc_dual, NULL) == true); cli_vcp_enable(usb_uart->cli_vcp); } - furi_hal_cdc_set_callbacks(vcp_ch, (CdcCallbacks*)&cdc_cb, usb_uart); + furi_hal_cdc_set_callbacks(vcp_ch, &cdc_cb, usb_uart); } static void usb_uart_vcp_deinit(UsbUartBridge* usb_uart, uint8_t vcp_ch) { diff --git a/applications/main/subghz/views/subghz_read_raw.c b/applications/main/subghz/views/subghz_read_raw.c index 5665818697e..c7dd4620d72 100644 --- a/applications/main/subghz/views/subghz_read_raw.c +++ b/applications/main/subghz/views/subghz_read_raw.c @@ -146,11 +146,12 @@ void subghz_read_raw_update_sin(SubGhzReadRAW* instance) { } static int8_t subghz_read_raw_tab_sin(uint8_t x) { - const uint8_t tab_sin[64] = {0, 3, 6, 9, 12, 16, 19, 22, 25, 28, 31, 34, 37, - 40, 43, 46, 49, 51, 54, 57, 60, 63, 65, 68, 71, 73, - 76, 78, 81, 83, 85, 88, 90, 92, 94, 96, 98, 100, 102, - 104, 106, 107, 109, 111, 112, 113, 115, 116, 117, 118, 120, 121, - 122, 122, 123, 124, 125, 125, 126, 126, 126, 127, 127, 127}; + static const uint8_t tab_sin[64] = {0, 3, 6, 9, 12, 16, 19, 22, 25, 28, 31, + 34, 37, 40, 43, 46, 49, 51, 54, 57, 60, 63, + 65, 68, 71, 73, 76, 78, 81, 83, 85, 88, 90, + 92, 94, 96, 98, 100, 102, 104, 106, 107, 109, 111, + 112, 113, 115, 116, 117, 118, 120, 121, 122, 122, 123, + 124, 125, 125, 126, 126, 126, 127, 127, 127}; int8_t r = tab_sin[((x & 0x40) ? -x - 1 : x) & 0x3f]; if(x & 0x80) return -r; diff --git a/applications/services/cli/cli_vcp.c b/applications/services/cli/cli_vcp.c index 9db1bec4378..c13b49c7f18 100644 --- a/applications/services/cli/cli_vcp.c +++ b/applications/services/cli/cli_vcp.c @@ -130,7 +130,7 @@ static void cli_vcp_cdc_ctrl_line_callback(void* context, CdcCtrlLine ctrl_lines } } -static CdcCallbacks cdc_callbacks = { +static const CdcCallbacks cdc_callbacks = { .tx_ep_callback = cli_vcp_cdc_tx_done, .rx_ep_callback = cli_vcp_cdc_rx, .state_callback = cli_vcp_cdc_state_callback, diff --git a/lib/lfrfid/protocols/protocol_nexwatch.c b/lib/lfrfid/protocols/protocol_nexwatch.c index 08324803f73..745b0a7324c 100644 --- a/lib/lfrfid/protocols/protocol_nexwatch.c +++ b/lib/lfrfid/protocols/protocol_nexwatch.c @@ -15,17 +15,6 @@ #define NEXWATCH_US_PER_BIT (255) #define NEXWATCH_ENCODER_PULSES_PER_BIT (16) -typedef struct { - uint8_t magic; - char desc[13]; - uint8_t chk; -} ProtocolNexwatchMagic; - -static ProtocolNexwatchMagic magic_items[] = { - {0xBE, "Quadrakey", 0}, - {0x88, "Nexkey", 0}, - {0x86, "Honeywell", 0}}; - typedef struct { uint8_t data_index; uint8_t bit_clock_index; @@ -143,10 +132,10 @@ static bool protocol_nexwatch_decoder_feed_internal(bool polarity, uint32_t time return result; } -static void protocol_nexwatch_descramble(uint32_t* id, uint32_t* scrambled) { +static void protocol_nexwatch_descramble(uint32_t* id, const uint32_t* scrambled) { // 255 = Not used/Unknown other values are the bit offset in the ID/FC values - const uint8_t hex_2_id[] = {31, 27, 23, 19, 15, 11, 7, 3, 30, 26, 22, 18, 14, 10, 6, 2, - 29, 25, 21, 17, 13, 9, 5, 1, 28, 24, 20, 16, 12, 8, 4, 0}; + static const uint8_t hex_2_id[] = {31, 27, 23, 19, 15, 11, 7, 3, 30, 26, 22, 18, 14, 10, 6, 2, + 29, 25, 21, 17, 13, 9, 5, 1, 28, 24, 20, 16, 12, 8, 4, 0}; *id = 0; for(uint8_t idx = 0; idx < 32; idx++) { @@ -264,27 +253,33 @@ LevelDuration protocol_nexwatch_encoder_yield(ProtocolNexwatch* protocol) { } static void protocol_nexwatch_render_data_internal( - ProtocolNexwatch* protocol, + const ProtocolNexwatch* protocol, FuriString* result, bool brief) { uint32_t id = 0; - uint32_t scrambled = bit_lib_get_bits_32(protocol->data, 8, 32); + const uint32_t scrambled = bit_lib_get_bits_32(protocol->data, 8, 32); protocol_nexwatch_descramble(&id, &scrambled); - uint8_t m_idx; - uint8_t mode = bit_lib_get_bits(protocol->data, 40, 4); - uint8_t parity = bit_lib_get_bits(protocol->data, 44, 4); - uint8_t chk = bit_lib_get_bits(protocol->data, 48, 8); + const uint8_t mode = bit_lib_get_bits(protocol->data, 40, 4); + const uint8_t parity = bit_lib_get_bits(protocol->data, 44, 4); + const uint8_t chk = bit_lib_get_bits(protocol->data, 48, 8); - for(m_idx = 0; m_idx < COUNT_OF(magic_items); m_idx++) { - magic_items[m_idx].chk = protocol_nexwatch_checksum(magic_items[m_idx].magic, id, parity); - if(magic_items[m_idx].chk == chk) { + typedef struct { + const char* desc; + uint8_t magic; + } ProtocolNexwatchMagic; + + static const ProtocolNexwatchMagic magic_items[] = { + {"Quadrakey", 0xBE}, {"Nexkey", 0x88}, {"Honeywell", 0x86}}; + + const char* type = "Unknown"; + for(size_t idx = 0; idx < COUNT_OF(magic_items); idx++) { + if(protocol_nexwatch_checksum(magic_items[idx].magic, id, parity) == chk) { + type = magic_items[idx].desc; break; } } - const char* type = m_idx < COUNT_OF(magic_items) ? magic_items[m_idx].desc : "Unknown"; - if(brief) { furi_string_printf( result, diff --git a/lib/toolbox/cli/shell/cli_shell.c b/lib/toolbox/cli/shell/cli_shell.c index 3516b51ce29..43448891928 100644 --- a/lib/toolbox/cli/shell/cli_shell.c +++ b/lib/toolbox/cli/shell/cli_shell.c @@ -25,7 +25,7 @@ typedef enum { CliShellComponentMAX, //components[i]; for(size_t j = 0; j < set->count; j++) { diff --git a/lib/toolbox/cli/shell/cli_shell_completions.c b/lib/toolbox/cli/shell/cli_shell_completions.c index 64133fe93ca..bf90618006e 100644 --- a/lib/toolbox/cli/shell/cli_shell_completions.c +++ b/lib/toolbox/cli/shell/cli_shell_completions.c @@ -351,7 +351,7 @@ static bool key_combo_esc(CliKeyCombo combo, void* context) { return true; } -CliShellKeyComboSet cli_shell_completions_key_combo_set = { +const CliShellKeyComboSet cli_shell_completions_key_combo_set = { .fallback = hide_if_open_and_continue_handling, .count = 7, .records = diff --git a/lib/toolbox/cli/shell/cli_shell_completions.h b/lib/toolbox/cli/shell/cli_shell_completions.h index d49a1982d29..b2379bd96c9 100644 --- a/lib/toolbox/cli/shell/cli_shell_completions.h +++ b/lib/toolbox/cli/shell/cli_shell_completions.h @@ -18,7 +18,7 @@ CliShellCompletions* void cli_shell_completions_free(CliShellCompletions* completions); -extern CliShellKeyComboSet cli_shell_completions_key_combo_set; +extern const CliShellKeyComboSet cli_shell_completions_key_combo_set; #ifdef __cplusplus } diff --git a/lib/toolbox/cli/shell/cli_shell_line.c b/lib/toolbox/cli/shell/cli_shell_line.c index 4826ba25234..4cd945cb8e2 100644 --- a/lib/toolbox/cli/shell/cli_shell_line.c +++ b/lib/toolbox/cli/shell/cli_shell_line.c @@ -355,7 +355,7 @@ static bool cli_shell_line_input_normal(CliKeyCombo combo, void* context) { return true; } -CliShellKeyComboSet cli_shell_line_key_combo_set = { +const CliShellKeyComboSet cli_shell_line_key_combo_set = { .fallback = cli_shell_line_input_normal, .count = 14, .records = diff --git a/lib/toolbox/cli/shell/cli_shell_line.h b/lib/toolbox/cli/shell/cli_shell_line.h index e40a12bd6f8..17d4d2ea402 100644 --- a/lib/toolbox/cli/shell/cli_shell_line.h +++ b/lib/toolbox/cli/shell/cli_shell_line.h @@ -35,7 +35,7 @@ void cli_shell_line_ensure_not_overwriting_history(CliShellLine* line); void cli_shell_line_set_about_to_exit(CliShellLine* line); -extern CliShellKeyComboSet cli_shell_line_key_combo_set; +extern const CliShellKeyComboSet cli_shell_line_key_combo_set; #ifdef __cplusplus } diff --git a/targets/f18/api_symbols.csv b/targets/f18/api_symbols.csv index 27b65e20228..33555c67d8c 100644 --- a/targets/f18/api_symbols.csv +++ b/targets/f18/api_symbols.csv @@ -1,5 +1,5 @@ entry,status,name,type,params -Version,+,87.0,, +Version,+,88.0,, Header,+,applications/services/bt/bt_service/bt.h,, Header,+,applications/services/bt/bt_service/bt_keys_storage.h,, Header,+,applications/services/cli/cli.h,, @@ -1227,8 +1227,8 @@ Function,+,furi_hal_bus_reset,void,FuriHalBus Function,+,furi_hal_cdc_get_ctrl_line_state,uint8_t,uint8_t Function,+,furi_hal_cdc_get_port_settings,usb_cdc_line_coding*,uint8_t Function,+,furi_hal_cdc_receive,int32_t,"uint8_t, uint8_t*, uint16_t" -Function,+,furi_hal_cdc_send,void,"uint8_t, uint8_t*, uint16_t" -Function,+,furi_hal_cdc_set_callbacks,void,"uint8_t, CdcCallbacks*, void*" +Function,+,furi_hal_cdc_send,void,"uint8_t, const uint8_t*, uint16_t" +Function,+,furi_hal_cdc_set_callbacks,void,"uint8_t, const CdcCallbacks*, void*" Function,-,furi_hal_clock_deinit_early,void, Function,-,furi_hal_clock_init,void, Function,-,furi_hal_clock_init_early,void, diff --git a/targets/f7/api_symbols.csv b/targets/f7/api_symbols.csv index 15a3d360b11..5cb123a61f1 100644 --- a/targets/f7/api_symbols.csv +++ b/targets/f7/api_symbols.csv @@ -1,5 +1,5 @@ entry,status,name,type,params -Version,+,87.0,, +Version,+,88.0,, Header,+,applications/drivers/subghz/cc1101_ext/cc1101_ext_interconnect.h,, Header,+,applications/services/bt/bt_service/bt.h,, Header,+,applications/services/bt/bt_service/bt_keys_storage.h,, @@ -1348,8 +1348,8 @@ Function,+,furi_hal_bus_reset,void,FuriHalBus Function,+,furi_hal_cdc_get_ctrl_line_state,uint8_t,uint8_t Function,+,furi_hal_cdc_get_port_settings,usb_cdc_line_coding*,uint8_t Function,+,furi_hal_cdc_receive,int32_t,"uint8_t, uint8_t*, uint16_t" -Function,+,furi_hal_cdc_send,void,"uint8_t, uint8_t*, uint16_t" -Function,+,furi_hal_cdc_set_callbacks,void,"uint8_t, CdcCallbacks*, void*" +Function,+,furi_hal_cdc_send,void,"uint8_t, const uint8_t*, uint16_t" +Function,+,furi_hal_cdc_set_callbacks,void,"uint8_t, const CdcCallbacks*, void*" Function,-,furi_hal_clock_deinit_early,void, Function,-,furi_hal_clock_init,void, Function,-,furi_hal_clock_init_early,void, diff --git a/targets/f7/furi_hal/furi_hal_usb_cdc.c b/targets/f7/furi_hal/furi_hal_usb_cdc.c index f9c1d3a426a..0742853c092 100644 --- a/targets/f7/furi_hal/furi_hal_usb_cdc.c +++ b/targets/f7/furi_hal/furi_hal_usb_cdc.c @@ -396,7 +396,7 @@ static usbd_respond cdc_control(usbd_device* dev, usbd_ctlreq* req, usbd_rqc_cal static usbd_device* usb_dev; static volatile FuriHalUsbInterface* cdc_if_cur = NULL; static volatile bool connected = false; -static volatile CdcCallbacks* callbacks[IF_NUM_MAX] = {NULL}; +static volatile const CdcCallbacks* callbacks[IF_NUM_MAX] = {}; static void* cb_ctx[IF_NUM_MAX]; FuriHalUsbInterface usb_cdc_single = { @@ -472,7 +472,7 @@ static void cdc_deinit(usbd_device* dev) { cdc_if_cur = NULL; } -void furi_hal_cdc_set_callbacks(uint8_t if_num, CdcCallbacks* cb, void* context) { +void furi_hal_cdc_set_callbacks(uint8_t if_num, const CdcCallbacks* cb, void* context) { furi_check(if_num < IF_NUM_MAX); if(callbacks[if_num] != NULL) { @@ -504,7 +504,7 @@ uint8_t furi_hal_cdc_get_ctrl_line_state(uint8_t if_num) { return cdc_ctrl_line_state[if_num]; } -void furi_hal_cdc_send(uint8_t if_num, uint8_t* buf, uint16_t len) { +void furi_hal_cdc_send(uint8_t if_num, const uint8_t* buf, uint16_t len) { if(if_num == 0) { usbd_ep_write(usb_dev, CDC0_TXD_EP, buf, len); } else if(if_num == 1) { diff --git a/targets/f7/furi_hal/furi_hal_usb_cdc.h b/targets/f7/furi_hal/furi_hal_usb_cdc.h index 50d45669812..b26ac31e2ef 100644 --- a/targets/f7/furi_hal/furi_hal_usb_cdc.h +++ b/targets/f7/furi_hal/furi_hal_usb_cdc.h @@ -27,13 +27,13 @@ typedef struct { void (*config_callback)(void* context, struct usb_cdc_line_coding* config); } CdcCallbacks; -void furi_hal_cdc_set_callbacks(uint8_t if_num, CdcCallbacks* cb, void* context); +void furi_hal_cdc_set_callbacks(uint8_t if_num, const CdcCallbacks* cb, void* context); struct usb_cdc_line_coding* furi_hal_cdc_get_port_settings(uint8_t if_num); uint8_t furi_hal_cdc_get_ctrl_line_state(uint8_t if_num); -void furi_hal_cdc_send(uint8_t if_num, uint8_t* buf, uint16_t len); +void furi_hal_cdc_send(uint8_t if_num, const uint8_t* buf, uint16_t len); int32_t furi_hal_cdc_receive(uint8_t if_num, uint8_t* buf, uint16_t max_len);