1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23struct hci_request {
24 struct hci_dev *hdev;
25 struct sk_buff_head cmd_q;
26
27
28
29
30 int err;
31};
32
33void hci_req_init(struct hci_request *req, struct hci_dev *hdev);
34int hci_req_run(struct hci_request *req, hci_req_complete_t complete);
35int hci_req_run_skb(struct hci_request *req, hci_req_complete_skb_t complete);
36void hci_req_add(struct hci_request *req, u16 opcode, u32 plen,
37 const void *param);
38void hci_req_add_ev(struct hci_request *req, u16 opcode, u32 plen,
39 const void *param, u8 event);
40void hci_req_cmd_complete(struct hci_dev *hdev, u16 opcode, u8 status,
41 hci_req_complete_t *req_complete,
42 hci_req_complete_skb_t *req_complete_skb);
43
44struct sk_buff *hci_prepare_cmd(struct hci_dev *hdev, u16 opcode, u32 plen,
45 const void *param);
46
47void hci_req_add_le_scan_disable(struct hci_request *req);
48void hci_req_add_le_passive_scan(struct hci_request *req);
49
50void hci_update_page_scan(struct hci_dev *hdev);
51void __hci_update_page_scan(struct hci_request *req);
52
53int hci_update_random_address(struct hci_request *req, bool require_privacy,
54 u8 *own_addr_type);
55
56void hci_update_background_scan(struct hci_dev *hdev);
57void __hci_update_background_scan(struct hci_request *req);
58