hci_link
TAILQ_ENTRY(hci_link) hl_next; /* next link on unit */
struct hci_link *hl_link; /* SCO ACL link */
TAILQ_HEAD(,hci_link) hci_links; /* list of ACL/SCO links */
struct hci_link *hci_acl_open(struct hci_unit *, bdaddr_t *);
struct hci_link *hci_acl_newconn(struct hci_unit *, bdaddr_t *);
void hci_acl_close(struct hci_link *, int);
int hci_acl_setmode(struct hci_link *);
void hci_acl_linkmode(struct hci_link *);
int hci_acl_send(struct mbuf *, struct hci_link *, struct l2cap_channel *);
void hci_acl_start(struct hci_link *);
void hci_acl_complete(struct hci_link *, int);
struct hci_link *hci_sco_newconn(struct hci_unit *, bdaddr_t *);
void hci_sco_start(struct hci_link *);
void hci_sco_complete(struct hci_link *, int);
struct hci_link *hci_link_alloc(struct hci_unit *, bdaddr_t *, uint8_t);
void hci_link_free(struct hci_link *, int);
struct hci_link *hci_link_lookup_bdaddr(struct hci_unit *, bdaddr_t *, uint8_t);
struct hci_link *hci_link_lookup_handle(struct hci_unit *, uint16_t);
struct hci_link *link;
struct hci_link *link, *next;
struct hci_link *link;
struct hci_link *link, *next;
struct hci_link *link;
struct hci_link *link;
struct hci_link *link;
struct hci_link *link;
struct hci_link *link;
struct hci_link *link;
struct hci_link *link;
struct hci_link *link;
struct hci_link *
struct hci_link *link;
struct hci_link *
struct hci_link *link;
hci_acl_close(struct hci_link *link, int err)
struct hci_link *
struct hci_link *link;
struct hci_link *link = arg;
hci_acl_setmode(struct hci_link *link)
hci_acl_linkmode(struct hci_link *link)
struct hci_link *link;
hci_acl_send(struct mbuf *m, struct hci_link *link,
hci_acl_start(struct hci_link *link)
struct hci_link *
struct hci_link *link;
hci_acl_complete(struct hci_link *link, int num)
struct hci_link *
struct hci_link *sco, *acl;
struct hci_link *link;
hci_sco_start(struct hci_link *link)
hci_sco_complete(struct hci_link *link, int num)
struct hci_link *
struct hci_link *link;
link = malloc(sizeof(struct hci_link), M_BLUETOOTH, M_NOWAIT | M_ZERO);
hci_link_free(struct hci_link *link, int err)
struct hci_link *link;
struct hci_link *link, *next;
struct hci_link *link;
if (link == M_GETCTX(m, struct hci_link *)) {
struct hci_link *lc_link; /* ACL connection (down) */
struct hci_link *lr_link; /* ACL connection */
void l2cap_recv_frame(struct mbuf *, struct hci_link *);
struct l2cap_req *l2cap_request_lookup(struct hci_link *, uint8_t);
void l2cap_recv_signal(struct mbuf *, struct hci_link *);
int l2cap_send_connect_rsp(struct hci_link *, uint8_t, uint16_t, uint16_t, uint16_t);
l2cap_recv_frame(struct mbuf *m, struct hci_link *link)
struct hci_link *link = chan->lc_link;
l2cap_request_lookup(struct hci_link *link, uint8_t id)
struct hci_link *link = req->lr_link;
l2cap_send_signal(struct hci_link *link, uint8_t code, uint8_t ident,
l2cap_send_command_rej(struct hci_link *link, uint8_t ident,
l2cap_send_connect_rsp(struct hci_link *link, uint8_t ident, uint16_t dcid, uint16_t scid, uint16_t result)
l2cap_recv_command_rej(struct mbuf *m, struct hci_link *link)
l2cap_recv_connect_req(struct mbuf *m, struct hci_link *link)
l2cap_recv_connect_rsp(struct mbuf *m, struct hci_link *link)
l2cap_recv_config_req(struct mbuf *m, struct hci_link *link)
static void l2cap_recv_command_rej(struct mbuf *, struct hci_link *);
static void l2cap_recv_connect_req(struct mbuf *, struct hci_link *);
static void l2cap_recv_connect_rsp(struct mbuf *, struct hci_link *);
static void l2cap_recv_config_req(struct mbuf *, struct hci_link *);
static void l2cap_recv_config_rsp(struct mbuf *, struct hci_link *);
static void l2cap_recv_disconnect_req(struct mbuf *, struct hci_link *);
static void l2cap_recv_disconnect_rsp(struct mbuf *, struct hci_link *);
static void l2cap_recv_info_req(struct mbuf *, struct hci_link *);
static int l2cap_send_signal(struct hci_link *, uint8_t, uint8_t, uint16_t, void *);
static int l2cap_send_command_rej(struct hci_link *, uint8_t, int, ...);
l2cap_recv_config_rsp(struct mbuf *m, struct hci_link *link)
l2cap_recv_signal(struct mbuf *m, struct hci_link *link)
l2cap_recv_disconnect_req(struct mbuf *m, struct hci_link *link)
l2cap_recv_disconnect_rsp(struct mbuf *m, struct hci_link *link)
l2cap_recv_info_req(struct mbuf *m, struct hci_link *link)
struct hci_link *sp_link; /* SCO link */
struct hci_link *acl, *sco;
struct hci_link *sco;