xref: /haiku/headers/os/bluetooth/bluetooth.h (revision 68ea01249e1e2088933cb12f9c28d4e5c5d1c9ef)
1 /*
2  * Copyright 2007 Oliver Ruiz Dorantes, oliver.ruiz.dorantes_at_gmail.com
3  * Copyright 2008 Mika Lindqvist, monni1995_at_gmail.com
4  * All rights reserved. Distributed under the terms of the MIT License.
5  */
6 #ifndef _BLUETOOTH_H
7 #define _BLUETOOTH_H
8 
9 #include <ByteOrder.h>
10 
11 /* Bluetooth version */
12 #define BLUETOOTH_1_1B		0
13 #define BLUETOOTH_1_1		1
14 #define BLUETOOTH_1_2		2
15 #define BLUETOOTH_2_0		3
16 
17 #define BLUETOOTH_VERSION	BLUETOOTH_2_0
18 
19 
20 /* Bluetooth common types */
21 
22 /* BD Address */
23 typedef struct {
24 	uint8 b[6];
25 } __attribute__((packed)) bdaddr_t;
26 
27 
28 #define BDADDR_NULL			((bdaddr_t) {{0, 0, 0, 0, 0, 0}})
29 #define BDADDR_LOCAL		((bdaddr_t) {{0, 0, 0, 0xff, 0xff, 0xff}})
30 #define BDADDR_BROADCAST	((bdaddr_t) {{0xff, 0xff, 0xff, 0xff, 0xff, 0xff}})
31 #define BDADDR_ANY			BDADDR_BROADCAST
32 
33 
34 /* Link key */
35 typedef struct {
36 	uint8 l[16];
37 } __attribute__((packed)) linkkey_t;
38 
39 
40 /* 128 integer type needed for SDP */
41 struct int128 {
42 	int8	b[16];
43 };
44 typedef struct int128	int128;
45 typedef struct int128	uint128;
46 
47 /* Protocol definitions - add to as required... */
48 #define BLUETOOTH_PROTO_HCI		134	/* HCI protocol number */
49 #define BLUETOOTH_PROTO_L2CAP	135	/* L2CAP protocol number */
50 #define BLUETOOTH_PROTO_RFCOMM	136	/* RFCOMM protocol number */
51 
52 #define BLUETOOTH_PROTO_MAX		256
53 
54 
55 #endif // _BLUETOOTH_H
56