1 // SPDX-License-Identifier: GPL-2.0-only 2 /* 3 * Copyright (C) 2020 Google Corporation 4 */ 5 6 #define MSFT_FEATURE_MASK_BREDR_RSSI_MONITOR BIT(0) 7 #define MSFT_FEATURE_MASK_LE_CONN_RSSI_MONITOR BIT(1) 8 #define MSFT_FEATURE_MASK_LE_ADV_RSSI_MONITOR 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_do_open(struct hci_dev *hdev); 17 void msft_do_close(struct hci_dev *hdev); 18 void msft_vendor_evt(struct hci_dev *hdev, struct sk_buff *skb); 19 __u64 msft_get_features(struct hci_dev *hdev); 20 int msft_add_monitor_pattern(struct hci_dev *hdev, struct adv_monitor *monitor); 21 int msft_remove_monitor(struct hci_dev *hdev, struct adv_monitor *monitor, 22 u16 handle); 23 int msft_set_filter_enable(struct hci_dev *hdev, bool enable); 24 25 #else 26 27 static inline bool msft_monitor_supported(struct hci_dev *hdev) 28 { 29 return false; 30 } 31 32 static inline void msft_do_open(struct hci_dev *hdev) {} 33 static inline void msft_do_close(struct hci_dev *hdev) {} 34 static inline void msft_vendor_evt(struct hci_dev *hdev, struct sk_buff *skb) {} 35 static inline __u64 msft_get_features(struct hci_dev *hdev) { return 0; } 36 static inline int msft_add_monitor_pattern(struct hci_dev *hdev, 37 struct adv_monitor *monitor) 38 { 39 return -EOPNOTSUPP; 40 } 41 42 static inline int msft_remove_monitor(struct hci_dev *hdev, 43 struct adv_monitor *monitor, 44 u16 handle) 45 { 46 return -EOPNOTSUPP; 47 } 48 49 static inline int msft_set_filter_enable(struct hci_dev *hdev, bool enable) 50 { 51 return -EOPNOTSUPP; 52 } 53 54 #endif 55