Skip to main content

libbluetooth/
rfcomm.rs

1use std::os::raw::c_int;
2
3use crate::bluetooth::bdaddr_t;
4use libc::sa_family_t;
5
6pub const RFCOMM_DEFAULT_MTU: i32 = 127;
7pub const RFCOMM_PSM: i32 = 3;
8STRUCT! {struct sockaddr_rc {
9    rc_family: sa_family_t,
10    rc_bdaddr: bdaddr_t,
11    rc_channel: u8,
12}}
13pub const RFCOMM_CONNINFO: i32 = 0x02;
14STRUCT! {struct rfcomm_conninfo {
15    hci_handle: u16,
16    dev_class: [u8; 3],
17}}
18pub const RFCOMM_LM: i32 = 0x03;
19pub const RFCOMM_LM_MASTER: i32 = 0x0001;
20pub const RFCOMM_LM_AUTH: i32 = 0x0002;
21pub const RFCOMM_LM_ENCRYPT: i32 = 0x0004;
22pub const RFCOMM_LM_TRUSTED: i32 = 0x0008;
23pub const RFCOMM_LM_RELIABLE: i32 = 0x0010;
24pub const RFCOMM_LM_SECURE: i32 = 0x0020;
25pub const RFCOMM_MAX_DEV: i32 = 256;
26pub const RFCOMMCREATEDEV: u64 = request_code_write!('R', 200, std::mem::size_of::<c_int>());
27pub const RFCOMMRELEASEDEV: u64 = request_code_write!('R', 201, std::mem::size_of::<c_int>());
28pub const RFCOMMGETDEVLIST: u64 = request_code_read!('R', 210, std::mem::size_of::<c_int>());
29pub const RFCOMMGETDEVINFO: u64 = request_code_read!('R', 211, std::mem::size_of::<c_int>());
30STRUCT! {struct rfcomm_dev_req {
31    dev_id: i16,
32    flags: u32,
33    src: bdaddr_t,
34    dst: bdaddr_t,
35    channel: u8,
36}}
37pub const RFCOMM_REUSE_DLC: i32 = 0;
38pub const RFCOMM_RELEASE_ONHUP: i32 = 1;
39pub const RFCOMM_HANGUP_NOW: i32 = 2;
40pub const RFCOMM_TTY_ATTACHED: i32 = 3;
41STRUCT! {struct rfcomm_dev_info {
42    id: i16,
43    flags: u32,
44    state: u16,
45    src: bdaddr_t,
46    dst: bdaddr_t,
47    channel: u8,
48}}
49STRUCT! {struct rfcomm_dev_list_req {
50    dev_num: u16,
51    dev_info: [rfcomm_dev_info; 0],
52}}