static void btpan_tap_fd_signaled(int fd, int type, int flags, uint32_t user_id) { assert(btpan_cb.tap_fd == fd); if (btpan_cb.tap_fd != fd) return; if(flags & SOCK_THREAD_FD_EXCEPTION) { btpan_cb.tap_fd = -1; btpan_tap_close(fd); btif_pan_close_all_conns(); } else if(flags & SOCK_THREAD_FD_RD) bta_dmexecutecallback(btu_exec_tap_fd_read, (void *)fd); }
static void pan_disable() { if(btpan_cb.enabled) { btpan_cb.enabled = 0; BTA_PanDisable(); if(btpan_cb.tap_fd != -1) { btpan_tap_close(btpan_cb.tap_fd); btpan_cb.tap_fd = -1; } } }
static void pan_disable() { if (btpan_cb.enabled) { btpan_cb.enabled = 0; BTA_PanDisable(); if (btpan_cb.tap_fd != INVALID_FD) { btpan_tap_close(btpan_cb.tap_fd); btpan_cb.tap_fd = INVALID_FD; } } }
static void btpan_tap_fd_signaled(int fd, int type, int flags, uint32_t user_id) { assert(btpan_cb.tap_fd == INVALID_FD || btpan_cb.tap_fd == fd); if (btpan_cb.tap_fd != fd) { BTIF_TRACE_WARNING("%s Signaled on mismatched fds exp:%d act:%d\n", __func__, btpan_cb.tap_fd, fd); return; } if (flags & SOCK_THREAD_FD_EXCEPTION) { btpan_cb.tap_fd = INVALID_FD; btpan_tap_close(fd); btif_pan_close_all_conns(); } else if (flags & SOCK_THREAD_FD_RD) bta_dmexecutecallback(btu_exec_tap_fd_read, INT_TO_PTR(fd)); }
static void btpan_close_conn(btpan_conn_t* conn) { BTIF_TRACE_DEBUG1("btpan_close_conn: %p",conn); if (conn && conn->state == PAN_STATE_OPEN) { BTIF_TRACE_DEBUG0("btpan_close_conn: PAN_STATE_OPEN"); conn->state = PAN_STATE_CLOSE; btpan_cb.open_count--; if (btpan_cb.open_count == 0) { destroy_tap_read_thread(); if (btpan_cb.tap_fd != -1) { btpan_tap_close(btpan_cb.tap_fd); btpan_cb.tap_fd = -1; } } } }