libbluetooth 0.1.0

Raw FFI bindings for Unix' libbluetooth.
Documentation
use std::os::raw::c_int;

use crate::bluetooth::bdaddr_t;
use libc::sa_family_t;

pub const RFCOMM_DEFAULT_MTU: i32 = 127;
pub const RFCOMM_PSM: i32 = 3;
STRUCT! {struct sockaddr_rc {
    rc_family: sa_family_t,
    rc_bdaddr: bdaddr_t,
    rc_channel: u8,
}}
pub const RFCOMM_CONNINFO: i32 = 0x02;
STRUCT! {struct rfcomm_conninfo {
    hci_handle: u16,
    dev_class: [u8; 3],
}}
pub const RFCOMM_LM: i32 = 0x03;
pub const RFCOMM_LM_MASTER: i32 = 0x0001;
pub const RFCOMM_LM_AUTH: i32 = 0x0002;
pub const RFCOMM_LM_ENCRYPT: i32 = 0x0004;
pub const RFCOMM_LM_TRUSTED: i32 = 0x0008;
pub const RFCOMM_LM_RELIABLE: i32 = 0x0010;
pub const RFCOMM_LM_SECURE: i32 = 0x0020;
pub const RFCOMM_MAX_DEV: i32 = 256;
pub const RFCOMMCREATEDEV: u64 = request_code_write!('R', 200, std::mem::size_of::<c_int>());
pub const RFCOMMRELEASEDEV: u64 = request_code_write!('R', 201, std::mem::size_of::<c_int>());
pub const RFCOMMGETDEVLIST: u64 = request_code_read!('R', 210, std::mem::size_of::<c_int>());
pub const RFCOMMGETDEVINFO: u64 = request_code_read!('R', 211, std::mem::size_of::<c_int>());
STRUCT! {struct rfcomm_dev_req {
    dev_id: i16,
    flags: u32,
    src: bdaddr_t,
    dst: bdaddr_t,
    channel: u8,
}}
pub const RFCOMM_REUSE_DLC: i32 = 0;
pub const RFCOMM_RELEASE_ONHUP: i32 = 1;
pub const RFCOMM_HANGUP_NOW: i32 = 2;
pub const RFCOMM_TTY_ATTACHED: i32 = 3;
STRUCT! {struct rfcomm_dev_info {
    id: i16,
    flags: u32,
    state: u16,
    src: bdaddr_t,
    dst: bdaddr_t,
    channel: u8,
}}
STRUCT! {struct rfcomm_dev_list_req {
    dev_num: u16,
    dev_info: [rfcomm_dev_info; 0],
}}