static void process_evt(struct bthost *bthost, const void *data, uint16_t len) { const struct bt_hci_evt_hdr *hdr = data; const void *param; if (len < sizeof(*hdr)) return; if (sizeof(*hdr) + hdr->plen != len) return; param = data + sizeof(*hdr); switch (hdr->evt) { case BT_HCI_EVT_CMD_COMPLETE: evt_cmd_complete(bthost, param, hdr->plen); break; case BT_HCI_EVT_CMD_STATUS: evt_cmd_status(bthost, param, hdr->plen); break; case BT_HCI_EVT_CONN_REQUEST: evt_conn_request(bthost, param, hdr->plen); break; case BT_HCI_EVT_CONN_COMPLETE: evt_conn_complete(bthost, param, hdr->plen); break; case BT_HCI_EVT_DISCONNECT_COMPLETE: evt_disconn_complete(bthost, param, hdr->plen); break; case BT_HCI_EVT_NUM_COMPLETED_PACKETS: evt_num_completed_packets(bthost, param, hdr->plen); break; case BT_HCI_EVT_LE_META_EVENT: evt_le_meta_event(bthost, param, hdr->plen); break; default: printf("Unsupported event 0x%2.2x\n", hdr->evt); break; } }
static void process_evt(struct bthost *bthost, const void *data, uint16_t len) { const struct bt_hci_evt_hdr *hdr = data; const void *param; if (len < sizeof(*hdr)) return; if (sizeof(*hdr) + hdr->plen != len) return; param = data + sizeof(*hdr); switch (hdr->evt) { case BT_HCI_EVT_CMD_COMPLETE: evt_cmd_complete(bthost, param, hdr->plen); break; case BT_HCI_EVT_CMD_STATUS: evt_cmd_status(bthost, param, hdr->plen); break; case BT_HCI_EVT_CONN_REQUEST: evt_conn_request(bthost, param, hdr->plen); break; case BT_HCI_EVT_CONN_COMPLETE: evt_conn_complete(bthost, param, hdr->plen); break; case BT_HCI_EVT_DISCONNECT_COMPLETE: evt_disconn_complete(bthost, param, hdr->plen); break; case BT_HCI_EVT_NUM_COMPLETED_PACKETS: evt_num_completed_packets(bthost, param, hdr->plen); break; case BT_HCI_EVT_AUTH_COMPLETE: evt_auth_complete(bthost, param, hdr->plen); break; case BT_HCI_EVT_PIN_CODE_REQUEST: evt_pin_code_request(bthost, param, hdr->plen); break; case BT_HCI_EVT_LINK_KEY_REQUEST: evt_link_key_request(bthost, param, hdr->plen); break; case BT_HCI_EVT_LINK_KEY_NOTIFY: evt_link_key_notify(bthost, param, hdr->plen); break; case BT_HCI_EVT_ENCRYPT_CHANGE: evt_encrypt_change(bthost, param, hdr->plen); break; case BT_HCI_EVT_IO_CAPABILITY_RESPONSE: evt_io_cap_response(bthost, param, hdr->plen); break; case BT_HCI_EVT_IO_CAPABILITY_REQUEST: evt_io_cap_request(bthost, param, hdr->plen); break; case BT_HCI_EVT_USER_CONFIRM_REQUEST: evt_user_confirm_request(bthost, param, hdr->plen); break; case BT_HCI_EVT_SIMPLE_PAIRING_COMPLETE: evt_simple_pairing_complete(bthost, param, hdr->plen); break; case BT_HCI_EVT_LE_META_EVENT: evt_le_meta_event(bthost, param, hdr->plen); break; default: printf("Unsupported event 0x%2.2x\n", hdr->evt); break; } }