xref: /freebsd/usr.sbin/bluetooth/hccontrol/hccontrol.h (revision 42b388439bd3795e09258c57a74ce9eec3651c7b)
11de7b4b8SPedro F. Giffuni /*-
2878ed226SJulian Elischer  * hccontrol.h
3878ed226SJulian Elischer  *
4*4d846d26SWarner Losh  * SPDX-License-Identifier: BSD-2-Clause
51de7b4b8SPedro F. Giffuni  *
6878ed226SJulian Elischer  * Copyright (c) 2001-2002 Maksim Yevmenkin <m_evmenkin@yahoo.com>
7878ed226SJulian Elischer  * All rights reserved.
8878ed226SJulian Elischer  *
9878ed226SJulian Elischer  * Redistribution and use in source and binary forms, with or without
10878ed226SJulian Elischer  * modification, are permitted provided that the following conditions
11878ed226SJulian Elischer  * are met:
12878ed226SJulian Elischer  * 1. Redistributions of source code must retain the above copyright
13878ed226SJulian Elischer  *    notice, this list of conditions and the following disclaimer.
14878ed226SJulian Elischer  * 2. Redistributions in binary form must reproduce the above copyright
15878ed226SJulian Elischer  *    notice, this list of conditions and the following disclaimer in the
16878ed226SJulian Elischer  *    documentation and/or other materials provided with the distribution.
17878ed226SJulian Elischer  *
18878ed226SJulian Elischer  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
19878ed226SJulian Elischer  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20878ed226SJulian Elischer  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21878ed226SJulian Elischer  * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
22878ed226SJulian Elischer  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23878ed226SJulian Elischer  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24878ed226SJulian Elischer  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25878ed226SJulian Elischer  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26878ed226SJulian Elischer  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27878ed226SJulian Elischer  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28878ed226SJulian Elischer  * SUCH DAMAGE.
29878ed226SJulian Elischer  *
300986ab12SMaksim Yevmenkin  * $Id: hccontrol.h,v 1.2 2003/05/19 17:29:29 max Exp $
31878ed226SJulian Elischer  */
32878ed226SJulian Elischer 
33878ed226SJulian Elischer #ifndef _HCCONTROL_H_
34878ed226SJulian Elischer #define _HCCONTROL_H_
35878ed226SJulian Elischer 
36878ed226SJulian Elischer #define	OK			0	/* everything was OK */
37878ed226SJulian Elischer #define	ERROR			1	/* could not execute command */
38878ed226SJulian Elischer #define	FAILED			2	/* error was reported */
39878ed226SJulian Elischer #define	USAGE			3	/* invalid parameters */
40878ed226SJulian Elischer 
41fc5806edSMarkus Brueffer #define	MAX_NODE_NUM		16	/* max number of nodes */
42fc5806edSMarkus Brueffer 
43878ed226SJulian Elischer struct hci_command {
44878ed226SJulian Elischer 	char const		*command;
45878ed226SJulian Elischer 	char const		*description;
46878ed226SJulian Elischer 	int			(*handler)(int, int, char **);
47878ed226SJulian Elischer };
48878ed226SJulian Elischer 
49878ed226SJulian Elischer extern int			 timeout;
50878ed226SJulian Elischer extern int			 verbose;
51878ed226SJulian Elischer extern struct hci_command	 link_control_commands[];
52878ed226SJulian Elischer extern struct hci_command	 link_policy_commands[];
53878ed226SJulian Elischer extern struct hci_command	 host_controller_baseband_commands[];
54878ed226SJulian Elischer extern struct hci_command	 info_commands[];
55878ed226SJulian Elischer extern struct hci_command	 status_commands[];
56878ed226SJulian Elischer extern struct hci_command	 node_commands[];
57bcff2d91STakanori Watanabe extern struct hci_command	 le_commands[];
58878ed226SJulian Elischer 
59878ed226SJulian Elischer int                hci_request         (int, int, char const *, int, char *, int *);
60878ed226SJulian Elischer int                hci_simple_request  (int, int, char *, int *);
61878ed226SJulian Elischer int                hci_send            (int, char const *, int);
62878ed226SJulian Elischer int                hci_recv            (int, char *, int *);
63878ed226SJulian Elischer 
6489facd82SMaksim Yevmenkin char const *	hci_link2str        (int);
6589facd82SMaksim Yevmenkin char const *	hci_pin2str         (int);
6689facd82SMaksim Yevmenkin char const *	hci_scan2str        (int);
6789facd82SMaksim Yevmenkin char const *	hci_encrypt2str     (int, int);
6889facd82SMaksim Yevmenkin char const *	hci_coding2str      (int);
6989facd82SMaksim Yevmenkin char const *	hci_vdata2str       (int);
7089facd82SMaksim Yevmenkin char const *	hci_hmode2str       (int, char *, int);
7189facd82SMaksim Yevmenkin char const *	hci_ver2str         (int);
7289facd82SMaksim Yevmenkin char const *	hci_lmpver2str      (int);
7389facd82SMaksim Yevmenkin char const *	hci_manufacturer2str(int);
741719371aSHans Petter Selasky char const * 	hci_commands2str    (uint8_t *, char *, int);
7589facd82SMaksim Yevmenkin char const *	hci_features2str    (uint8_t *, char *, int);
76ea011491SHans Petter Selasky char const *	hci_le_features2str (uint8_t *, char *, int);
7789facd82SMaksim Yevmenkin char const *	hci_cc2str          (int);
7889facd82SMaksim Yevmenkin char const *	hci_con_state2str   (int);
7989facd82SMaksim Yevmenkin char const *	hci_status2str      (int);
8089facd82SMaksim Yevmenkin char const *	hci_bdaddr2str      (bdaddr_t const *);
819287f06dSTakanori Watanabe char const * 	hci_addrtype2str    (int type);
823ac41cceSTakanori Watanabe char const *    hci_role2str        (int role);
833ac41cceSTakanori Watanabe char const *    hci_mc_accuracy2str (int accuracy);
842b2c6d69STakanori Watanabe char const * 	hci_le_chanmap2str  (uint8_t *, char *, int);
859287f06dSTakanori Watanabe 
869287f06dSTakanori Watanabe void dump_adv_data(int len, uint8_t* advdata);
879287f06dSTakanori Watanabe void print_adv_data(int len, uint8_t* advdata);
88878ed226SJulian Elischer 
89878ed226SJulian Elischer #endif /* _HCCONTROL_H_ */
90878ed226SJulian Elischer 
91