Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/usr.sbin/bluetooth/hccontrol/hccontrol.h
107769 views
1
/*-
2
* hccontrol.h
3
*
4
* SPDX-License-Identifier: BSD-2-Clause
5
*
6
* Copyright (c) 2001-2002 Maksim Yevmenkin <[email protected]>
7
* All rights reserved.
8
*
9
* Redistribution and use in source and binary forms, with or without
10
* modification, are permitted provided that the following conditions
11
* are met:
12
* 1. Redistributions of source code must retain the above copyright
13
* notice, this list of conditions and the following disclaimer.
14
* 2. Redistributions in binary form must reproduce the above copyright
15
* notice, this list of conditions and the following disclaimer in the
16
* documentation and/or other materials provided with the distribution.
17
*
18
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
19
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
22
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28
* SUCH DAMAGE.
29
*
30
* $Id: hccontrol.h,v 1.2 2003/05/19 17:29:29 max Exp $
31
*/
32
33
#ifndef _HCCONTROL_H_
34
#define _HCCONTROL_H_
35
36
#define OK 0 /* everything was OK */
37
#define ERROR 1 /* could not execute command */
38
#define FAILED 2 /* error was reported */
39
#define USAGE 3 /* invalid parameters */
40
41
#define MAX_NODE_NUM 16 /* max number of nodes */
42
43
struct hci_command {
44
char const *command;
45
char const *description;
46
int (*handler)(int, int, char **);
47
};
48
49
extern int timeout;
50
extern int verbose;
51
extern struct hci_command link_control_commands[];
52
extern struct hci_command link_policy_commands[];
53
extern struct hci_command host_controller_baseband_commands[];
54
extern struct hci_command info_commands[];
55
extern struct hci_command status_commands[];
56
extern struct hci_command node_commands[];
57
extern struct hci_command le_commands[];
58
59
int hci_request (int, int, char const *, int, char *, int *);
60
int hci_simple_request (int, int, char *, int *);
61
int hci_send (int, char const *, int);
62
int hci_recv (int, char *, int *);
63
64
char const * hci_link2str (int);
65
char const * hci_pin2str (int);
66
char const * hci_scan2str (int);
67
char const * hci_encrypt2str (int, int);
68
char const * hci_coding2str (int);
69
char const * hci_vdata2str (int);
70
char const * hci_hmode2str (int, char *, int);
71
char const * hci_ver2str (int);
72
char const * hci_lmpver2str (int);
73
char const * hci_manufacturer2str(int);
74
char const * hci_commands2str (uint8_t *, char *, int);
75
char const * hci_features2str (uint8_t *, char *, int);
76
char const * hci_le_features2str (uint8_t *, char *, int);
77
char const * hci_cc2str (int);
78
char const * hci_con_state2str (int);
79
char const * hci_status2str (int);
80
char const * hci_bdaddr2str (bdaddr_t const *);
81
char const * hci_addrtype2str (int type);
82
char const * hci_role2str (int role);
83
char const * hci_mc_accuracy2str (int accuracy);
84
char const * hci_le_chanmap2str (uint8_t *, char *, int);
85
86
void dump_adv_data(int len, uint8_t* advdata);
87
void print_adv_data(int len, uint8_t* advdata);
88
89
#endif /* _HCCONTROL_H_ */
90
91
92