#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifndef ESP_PLATFORM #include #endif /** * This file is a C file instead of C++, so we can import all headers as C code. * The intent is to catch errors that only show up when compiling as C and not as C++. * For example: wrong header includes. */ const struct ModuleSymbol KERNEL_SYMBOLS[] = { // device DEFINE_MODULE_SYMBOL(device_construct), DEFINE_MODULE_SYMBOL(device_destruct), DEFINE_MODULE_SYMBOL(device_add), DEFINE_MODULE_SYMBOL(device_remove), DEFINE_MODULE_SYMBOL(device_start), DEFINE_MODULE_SYMBOL(device_stop), DEFINE_MODULE_SYMBOL(device_construct_add), DEFINE_MODULE_SYMBOL(device_construct_add_start), DEFINE_MODULE_SYMBOL(device_set_parent), DEFINE_MODULE_SYMBOL(device_get_parent), DEFINE_MODULE_SYMBOL(device_set_driver), DEFINE_MODULE_SYMBOL(device_get_driver), DEFINE_MODULE_SYMBOL(device_set_driver_data), DEFINE_MODULE_SYMBOL(device_get_driver_data), DEFINE_MODULE_SYMBOL(device_is_added), DEFINE_MODULE_SYMBOL(device_is_ready), DEFINE_MODULE_SYMBOL(device_is_compatible), DEFINE_MODULE_SYMBOL(device_lock), DEFINE_MODULE_SYMBOL(device_try_lock), DEFINE_MODULE_SYMBOL(device_unlock), DEFINE_MODULE_SYMBOL(device_get_type), DEFINE_MODULE_SYMBOL(device_for_each), DEFINE_MODULE_SYMBOL(device_for_each_child), DEFINE_MODULE_SYMBOL(device_for_each_of_type), DEFINE_MODULE_SYMBOL(device_exists_of_type), DEFINE_MODULE_SYMBOL(device_find_by_name), DEFINE_MODULE_SYMBOL(device_find_first_active_by_type), // driver DEFINE_MODULE_SYMBOL(driver_construct), DEFINE_MODULE_SYMBOL(driver_destruct), DEFINE_MODULE_SYMBOL(driver_add), DEFINE_MODULE_SYMBOL(driver_remove), DEFINE_MODULE_SYMBOL(driver_construct_add), DEFINE_MODULE_SYMBOL(driver_remove_destruct), DEFINE_MODULE_SYMBOL(driver_bind), DEFINE_MODULE_SYMBOL(driver_unbind), DEFINE_MODULE_SYMBOL(driver_is_compatible), DEFINE_MODULE_SYMBOL(driver_find_compatible), DEFINE_MODULE_SYMBOL(driver_get_device_type), // drivers/gpio_controller DEFINE_MODULE_SYMBOL(gpio_descriptor_acquire), DEFINE_MODULE_SYMBOL(gpio_descriptor_release), DEFINE_MODULE_SYMBOL(gpio_descriptor_set_level), DEFINE_MODULE_SYMBOL(gpio_descriptor_get_level), DEFINE_MODULE_SYMBOL(gpio_descriptor_set_flags), DEFINE_MODULE_SYMBOL(gpio_descriptor_get_flags), DEFINE_MODULE_SYMBOL(gpio_descriptor_get_native_pin_number), DEFINE_MODULE_SYMBOL(gpio_descriptor_get_pin_number), DEFINE_MODULE_SYMBOL(gpio_descriptor_get_owner_type), DEFINE_MODULE_SYMBOL(gpio_controller_get_pin_count), DEFINE_MODULE_SYMBOL(gpio_controller_init_descriptors), DEFINE_MODULE_SYMBOL(gpio_controller_deinit_descriptors), DEFINE_MODULE_SYMBOL(GPIO_CONTROLLER_TYPE), // drivers/i2c_controller DEFINE_MODULE_SYMBOL(i2c_controller_read), DEFINE_MODULE_SYMBOL(i2c_controller_write), DEFINE_MODULE_SYMBOL(i2c_controller_write_read), DEFINE_MODULE_SYMBOL(i2c_controller_read_register), DEFINE_MODULE_SYMBOL(i2c_controller_write_register), DEFINE_MODULE_SYMBOL(i2c_controller_write_register_array), DEFINE_MODULE_SYMBOL(i2c_controller_has_device_at_address), DEFINE_MODULE_SYMBOL(i2c_controller_register8_set), DEFINE_MODULE_SYMBOL(i2c_controller_register8_get), DEFINE_MODULE_SYMBOL(i2c_controller_register8_set_bits), DEFINE_MODULE_SYMBOL(i2c_controller_register8_reset_bits), DEFINE_MODULE_SYMBOL(I2C_CONTROLLER_TYPE), // drivers/i2s_controller DEFINE_MODULE_SYMBOL(i2s_controller_read), DEFINE_MODULE_SYMBOL(i2s_controller_write), DEFINE_MODULE_SYMBOL(i2s_controller_set_config), DEFINE_MODULE_SYMBOL(i2s_controller_get_config), DEFINE_MODULE_SYMBOL(i2s_controller_reset), DEFINE_MODULE_SYMBOL(i2s_controller_set_rx_tdm_config), DEFINE_MODULE_SYMBOL(I2S_CONTROLLER_TYPE), // drivers/root DEFINE_MODULE_SYMBOL(root_is_model), // drivers/spi_controller DEFINE_MODULE_SYMBOL(spi_controller_lock), DEFINE_MODULE_SYMBOL(spi_controller_try_lock), DEFINE_MODULE_SYMBOL(spi_controller_unlock), DEFINE_MODULE_SYMBOL(SPI_CONTROLLER_TYPE), // drivers/uart_controller DEFINE_MODULE_SYMBOL(uart_controller_open), DEFINE_MODULE_SYMBOL(uart_controller_close), DEFINE_MODULE_SYMBOL(uart_controller_is_open), DEFINE_MODULE_SYMBOL(uart_controller_read_byte), DEFINE_MODULE_SYMBOL(uart_controller_read_bytes), DEFINE_MODULE_SYMBOL(uart_controller_read_until), DEFINE_MODULE_SYMBOL(uart_controller_write_byte), DEFINE_MODULE_SYMBOL(uart_controller_write_bytes), DEFINE_MODULE_SYMBOL(uart_controller_set_config), DEFINE_MODULE_SYMBOL(uart_controller_get_config), DEFINE_MODULE_SYMBOL(uart_controller_get_available), DEFINE_MODULE_SYMBOL(uart_controller_flush_input), DEFINE_MODULE_SYMBOL(UART_CONTROLLER_TYPE), // drivers/bluetooth DEFINE_MODULE_SYMBOL(bluetooth_find_first_ready_device), DEFINE_MODULE_SYMBOL(bluetooth_get_radio_state), DEFINE_MODULE_SYMBOL(bluetooth_set_radio_enabled), DEFINE_MODULE_SYMBOL(bluetooth_scan_start), DEFINE_MODULE_SYMBOL(bluetooth_scan_stop), DEFINE_MODULE_SYMBOL(bluetooth_is_scanning), DEFINE_MODULE_SYMBOL(bluetooth_pair), DEFINE_MODULE_SYMBOL(bluetooth_unpair), DEFINE_MODULE_SYMBOL(bluetooth_get_paired_peers), DEFINE_MODULE_SYMBOL(bluetooth_connect), DEFINE_MODULE_SYMBOL(bluetooth_disconnect), DEFINE_MODULE_SYMBOL(bluetooth_add_event_callback), DEFINE_MODULE_SYMBOL(bluetooth_remove_event_callback), DEFINE_MODULE_SYMBOL(bluetooth_set_device_name), DEFINE_MODULE_SYMBOL(bluetooth_get_device_name), DEFINE_MODULE_SYMBOL(bluetooth_set_hid_host_active), DEFINE_MODULE_SYMBOL(bluetooth_fire_event), DEFINE_MODULE_SYMBOL(BLUETOOTH_TYPE), // drivers/bluetooth_serial DEFINE_MODULE_SYMBOL(bluetooth_serial_get_device), DEFINE_MODULE_SYMBOL(bluetooth_serial_start), DEFINE_MODULE_SYMBOL(bluetooth_serial_stop), DEFINE_MODULE_SYMBOL(bluetooth_serial_write), DEFINE_MODULE_SYMBOL(bluetooth_serial_read), DEFINE_MODULE_SYMBOL(bluetooth_serial_is_connected), DEFINE_MODULE_SYMBOL(BLUETOOTH_SERIAL_TYPE), // drivers/bluetooth_midi DEFINE_MODULE_SYMBOL(bluetooth_midi_get_device), DEFINE_MODULE_SYMBOL(bluetooth_midi_start), DEFINE_MODULE_SYMBOL(bluetooth_midi_stop), DEFINE_MODULE_SYMBOL(bluetooth_midi_send), DEFINE_MODULE_SYMBOL(bluetooth_midi_is_connected), DEFINE_MODULE_SYMBOL(BLUETOOTH_MIDI_TYPE), // drivers/bluetooth_hid_device DEFINE_MODULE_SYMBOL(bluetooth_hid_device_get_device), DEFINE_MODULE_SYMBOL(bluetooth_hid_device_start), DEFINE_MODULE_SYMBOL(bluetooth_hid_device_stop), DEFINE_MODULE_SYMBOL(bluetooth_hid_device_send_key), DEFINE_MODULE_SYMBOL(bluetooth_hid_device_send_keyboard), DEFINE_MODULE_SYMBOL(bluetooth_hid_device_send_consumer), DEFINE_MODULE_SYMBOL(bluetooth_hid_device_send_mouse), DEFINE_MODULE_SYMBOL(bluetooth_hid_device_send_gamepad), DEFINE_MODULE_SYMBOL(bluetooth_hid_device_is_connected), DEFINE_MODULE_SYMBOL(BLUETOOTH_HID_DEVICE_TYPE), // drivers/usb_host_hid DEFINE_MODULE_SYMBOL(usb_host_hid_is_connected), DEFINE_MODULE_SYMBOL(USB_HOST_HID_TYPE), // drivers/usb_host_midi DEFINE_MODULE_SYMBOL(usb_midi_set_callback), DEFINE_MODULE_SYMBOL(usb_midi_is_connected), DEFINE_MODULE_SYMBOL(USB_HOST_MIDI_TYPE), // drivers/usb_host_msc DEFINE_MODULE_SYMBOL(usb_msc_eject), DEFINE_MODULE_SYMBOL(USB_HOST_MSC_TYPE), // concurrent/dispatcher DEFINE_MODULE_SYMBOL(dispatcher_alloc), DEFINE_MODULE_SYMBOL(dispatcher_free), DEFINE_MODULE_SYMBOL(dispatcher_dispatch_timed), DEFINE_MODULE_SYMBOL(dispatcher_consume_timed), // concurrent/event_group DEFINE_MODULE_SYMBOL(event_group_set), DEFINE_MODULE_SYMBOL(event_group_clear), DEFINE_MODULE_SYMBOL(event_group_get), DEFINE_MODULE_SYMBOL(event_group_wait), // concurrent/thread DEFINE_MODULE_SYMBOL(thread_alloc), DEFINE_MODULE_SYMBOL(thread_alloc_full), DEFINE_MODULE_SYMBOL(thread_free), DEFINE_MODULE_SYMBOL(thread_set_name), DEFINE_MODULE_SYMBOL(thread_set_stack_size), DEFINE_MODULE_SYMBOL(thread_set_affinity), DEFINE_MODULE_SYMBOL(thread_set_main_function), DEFINE_MODULE_SYMBOL(thread_set_priority), DEFINE_MODULE_SYMBOL(thread_set_state_callback), DEFINE_MODULE_SYMBOL(thread_get_state), DEFINE_MODULE_SYMBOL(thread_start), DEFINE_MODULE_SYMBOL(thread_join), DEFINE_MODULE_SYMBOL(thread_get_task_handle), DEFINE_MODULE_SYMBOL(thread_get_return_code), DEFINE_MODULE_SYMBOL(thread_get_stack_space), DEFINE_MODULE_SYMBOL(thread_get_current), // concurrent/timer DEFINE_MODULE_SYMBOL(timer_alloc), DEFINE_MODULE_SYMBOL(timer_free), DEFINE_MODULE_SYMBOL(timer_start), DEFINE_MODULE_SYMBOL(timer_stop), DEFINE_MODULE_SYMBOL(timer_reset_with_interval), DEFINE_MODULE_SYMBOL(timer_reset), DEFINE_MODULE_SYMBOL(timer_is_running), DEFINE_MODULE_SYMBOL(timer_get_expiry_time), DEFINE_MODULE_SYMBOL(timer_set_pending_callback), DEFINE_MODULE_SYMBOL(timer_set_callback_priority), // error DEFINE_MODULE_SYMBOL(error_to_string), // file system DEFINE_MODULE_SYMBOL(file_system_mount), DEFINE_MODULE_SYMBOL(file_system_unmount), DEFINE_MODULE_SYMBOL(file_system_is_mounted), DEFINE_MODULE_SYMBOL(file_system_get_path), // log #ifndef ESP_PLATFORM DEFINE_MODULE_SYMBOL(log_generic), #endif // module DEFINE_MODULE_SYMBOL(module_construct), DEFINE_MODULE_SYMBOL(module_destruct), DEFINE_MODULE_SYMBOL(module_add), DEFINE_MODULE_SYMBOL(module_remove), DEFINE_MODULE_SYMBOL(module_construct_add_start), DEFINE_MODULE_SYMBOL(module_start), DEFINE_MODULE_SYMBOL(module_stop), DEFINE_MODULE_SYMBOL(module_is_started), DEFINE_MODULE_SYMBOL(module_resolve_symbol), DEFINE_MODULE_SYMBOL(module_resolve_symbol_global), // terminator MODULE_SYMBOL_TERMINATOR };