hci_if
const struct hci_if *hci_if; /* bthci driver interface */
struct hci_unit *hci_attach(const struct hci_if *, device_t, uint16_t);
(*unit->hci_if->get_stats)(unit->hci_dev, &btr->btr_stats, 0);
(*unit->hci_if->get_stats)(unit->hci_dev, &btr->btr_stats, 1);
err = (*unit->hci_if->enable)(unit->hci_dev);
(*unit->hci_if->disable)(unit->hci_dev);
(*unit->hci_if->disable)(unit->hci_dev);
(*unit->hci_if->output_cmd)(unit->hci_dev, m);
(*unit->hci_if->output_acl)(unit->hci_dev, m);
(*unit->hci_if->output_sco)(unit->hci_dev, m);
hci_attach(const struct hci_if *hci_if, device_t dev, uint16_t flags)
KKASSERT(hci_if->enable != NULL);
KKASSERT(hci_if->disable != NULL);
KKASSERT(hci_if->output_cmd != NULL);
KKASSERT(hci_if->output_acl != NULL);
KKASSERT(hci_if->output_sco != NULL);
KKASSERT(hci_if->get_stats != NULL);
unit->hci_if = hci_if;