1 | // SPDX-License-Identifier: GPL-2.0-only |
2 | /* |
3 | * Copyright (C) 2020 Google Corporation |
4 | */ |
5 | |
6 | #define BIT(0) |
7 | #define BIT(1) |
8 | #define BIT(2) |
9 | #define MSFT_FEATURE_MASK_LE_ADV_MONITOR BIT(3) |
10 | #define MSFT_FEATURE_MASK_CURVE_VALIDITY BIT(4) |
11 | #define MSFT_FEATURE_MASK_CONCURRENT_ADV_MONITOR BIT(5) |
12 | |
13 | #if IS_ENABLED(CONFIG_BT_MSFTEXT) |
14 | |
15 | bool msft_monitor_supported(struct hci_dev *hdev); |
16 | void msft_register(struct hci_dev *hdev); |
17 | void msft_unregister(struct hci_dev *hdev); |
18 | void msft_do_open(struct hci_dev *hdev); |
19 | void msft_do_close(struct hci_dev *hdev); |
20 | void msft_vendor_evt(struct hci_dev *hdev, void *data, struct sk_buff *skb); |
21 | __u64 msft_get_features(struct hci_dev *hdev); |
22 | int msft_add_monitor_pattern(struct hci_dev *hdev, struct adv_monitor *monitor); |
23 | int msft_remove_monitor(struct hci_dev *hdev, struct adv_monitor *monitor); |
24 | void msft_req_add_set_filter_enable(struct hci_request *req, bool enable); |
25 | int msft_set_filter_enable(struct hci_dev *hdev, bool enable); |
26 | int msft_suspend_sync(struct hci_dev *hdev); |
27 | int msft_resume_sync(struct hci_dev *hdev); |
28 | bool msft_curve_validity(struct hci_dev *hdev); |
29 | |
30 | #else |
31 | |
32 | static inline bool msft_monitor_supported(struct hci_dev *hdev) |
33 | { |
34 | return false; |
35 | } |
36 | |
37 | static inline void msft_register(struct hci_dev *hdev) {} |
38 | static inline void msft_unregister(struct hci_dev *hdev) {} |
39 | static inline void msft_do_open(struct hci_dev *hdev) {} |
40 | static inline void msft_do_close(struct hci_dev *hdev) {} |
41 | static inline void msft_vendor_evt(struct hci_dev *hdev, void *data, |
42 | struct sk_buff *skb) {} |
43 | static inline __u64 msft_get_features(struct hci_dev *hdev) { return 0; } |
44 | static inline int msft_add_monitor_pattern(struct hci_dev *hdev, |
45 | struct adv_monitor *monitor) |
46 | { |
47 | return -EOPNOTSUPP; |
48 | } |
49 | |
50 | static inline int msft_remove_monitor(struct hci_dev *hdev, |
51 | struct adv_monitor *monitor) |
52 | { |
53 | return -EOPNOTSUPP; |
54 | } |
55 | |
56 | static inline void msft_req_add_set_filter_enable(struct hci_request *req, |
57 | bool enable) {} |
58 | static inline int msft_set_filter_enable(struct hci_dev *hdev, bool enable) |
59 | { |
60 | return -EOPNOTSUPP; |
61 | } |
62 | |
63 | static inline int msft_suspend_sync(struct hci_dev *hdev) |
64 | { |
65 | return -EOPNOTSUPP; |
66 | } |
67 | |
68 | static inline int msft_resume_sync(struct hci_dev *hdev) |
69 | { |
70 | return -EOPNOTSUPP; |
71 | } |
72 | |
73 | static inline bool msft_curve_validity(struct hci_dev *hdev) |
74 | { |
75 | return false; |
76 | } |
77 | |
78 | #endif |
79 | |