Change script for apply upstream code
[platform/upstream/connectedhomeip.git] / third_party / bluez / repo / src / hcid.h
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  *
4  *  BlueZ - Bluetooth protocol stack for Linux
5  *
6  *  Copyright (C) 2000-2001  Qualcomm Incorporated
7  *  Copyright (C) 2002-2003  Maxim Krasnyansky <maxk@qualcomm.com>
8  *  Copyright (C) 2002-2010  Marcel Holtmann <marcel@holtmann.org>
9  *
10  *
11  */
12
13 typedef enum {
14         BT_MODE_DUAL,
15         BT_MODE_BREDR,
16         BT_MODE_LE,
17 } bt_mode_t;
18
19 typedef enum {
20         BT_GATT_CACHE_ALWAYS,
21         BT_GATT_CACHE_YES,
22         BT_GATT_CACHE_NO,
23 } bt_gatt_cache_t;
24
25 enum jw_repairing_t {
26         JW_REPAIRING_NEVER,
27         JW_REPAIRING_CONFIRM,
28         JW_REPAIRING_ALWAYS,
29 };
30
31 enum mps_mode_t {
32         MPS_OFF,
33         MPS_SINGLE,
34         MPS_MULTIPLE,
35 };
36
37 struct main_opts {
38         char            *name;
39         uint32_t        class;
40         gboolean        pairable;
41         uint32_t        pairto;
42         uint32_t        discovto;
43         uint32_t        tmpto;
44         uint8_t         privacy;
45
46         struct {
47                 uint16_t        num_entries;
48
49                 uint16_t        br_page_scan_type;
50                 uint16_t        br_page_scan_interval;
51                 uint16_t        br_page_scan_win;
52
53                 uint16_t        br_scan_type;
54                 uint16_t        br_scan_interval;
55                 uint16_t        br_scan_win;
56
57                 uint16_t        br_link_supervision_timeout;
58                 uint16_t        br_page_timeout;
59
60                 uint16_t        br_min_sniff_interval;
61                 uint16_t        br_max_sniff_interval;
62
63                 uint16_t        le_min_adv_interval;
64                 uint16_t        le_max_adv_interval;
65                 uint16_t        le_multi_adv_rotation_interval;
66
67                 uint16_t        le_scan_interval_autoconnect;
68                 uint16_t        le_scan_win_autoconnect;
69                 uint16_t        le_scan_interval_suspend;
70                 uint16_t        le_scan_win_suspend;
71                 uint16_t        le_scan_interval_discovery;
72                 uint16_t        le_scan_win_discovery;
73                 uint16_t        le_scan_interval_adv_monitor;
74                 uint16_t        le_scan_win_adv_monitor;
75                 uint16_t        le_scan_interval_connect;
76                 uint16_t        le_scan_win_connect;
77
78                 uint16_t        le_min_conn_interval;
79                 uint16_t        le_max_conn_interval;
80                 uint16_t        le_conn_latency;
81                 uint16_t        le_conn_lsto;
82                 uint16_t        le_autoconnect_timeout;
83         } default_params;
84
85
86         gboolean        reverse_discovery;
87         gboolean        name_resolv;
88         gboolean        debug_keys;
89         gboolean        fast_conn;
90         gboolean        refresh_discovery;
91
92         uint16_t        did_source;
93         uint16_t        did_vendor;
94         uint16_t        did_product;
95         uint16_t        did_version;
96
97         bt_mode_t       mode;
98         bt_gatt_cache_t gatt_cache;
99         uint16_t        gatt_mtu;
100         uint8_t         gatt_channels;
101         enum mps_mode_t mps;
102
103         uint8_t         key_size;
104
105         enum jw_repairing_t jw_repairing;
106 };
107
108 extern struct main_opts main_opts;
109
110 gboolean plugin_init(const char *enable, const char *disable);
111 void plugin_cleanup(void);
112
113 void rfkill_init(void);
114 void rfkill_exit(void);
115
116 GKeyFile *btd_get_main_conf(void);
117
118 void btd_exit(void);