static int h4_close(void){ // first remove run loop handler btstack_run_loop_remove_data_source(&hci_transport_h4_dma_ds); // close device // ... return 0; }
void uhid_unregister(bthid_dev_t *dev) { if (!dev->ds) return; btstack_run_loop_remove_data_source(dev->ds); // auto-destroy close(dev->ds->fd); free(dev->ds); }
/** * @brief Deinitialize SPI */ static int btstack_em9304_spi_embedded_close(void){ // remove data source btstack_run_loop_disable_data_source_callbacks(&btstack_em9304_spi_embedded_data_source, DATA_SOURCE_CALLBACK_POLL); btstack_run_loop_remove_data_source(&btstack_em9304_spi_embedded_data_source); // stop lower layer hal_em9304_spi_deinit(); return 0; }
static int h4_close(void){ // remove data source btstack_run_loop_disable_data_source_callbacks(&hci_transport_h4_dma_ds, DATA_SOURCE_CALLBACK_POLL); btstack_run_loop_remove_data_source(&hci_transport_h4_dma_ds); // close device // ... return 0; }
static int h4_close(void){ mtk_bt_disable(hci_transport_h4->ds->fd); // first remove run loop handler btstack_run_loop_remove_data_source(hci_transport_h4->ds); // free struct free(hci_transport_h4->ds); hci_transport_h4->ds = NULL; return 0; }