pub use crate::linux::can::*;
s! {
pub struct bcm_timeval {
pub tv_sec: c_long,
pub tv_usec: c_long,
}
pub struct bcm_msg_head {
pub opcode: u32,
pub flags: u32,
pub count: u32,
pub ival1: bcm_timeval,
pub ival2: bcm_timeval,
pub can_id: canid_t,
pub nframes: u32,
pub frames: [can_frame; 0],
}
}
c_enum! {
#[repr(u32)]
pub enum #anon {
pub TX_SETUP = 1,
pub TX_DELETE,
pub TX_READ,
pub TX_SEND,
pub RX_SETUP,
pub RX_DELETE,
pub RX_READ,
pub TX_STATUS,
pub TX_EXPIRED,
pub RX_STATUS,
pub RX_TIMEOUT,
pub RX_CHANGED,
}
}
pub const SETTIMER: u32 = 0x0001;
pub const STARTTIMER: u32 = 0x0002;
pub const TX_COUNTEVT: u32 = 0x0004;
pub const TX_ANNOUNCE: u32 = 0x0008;
pub const TX_CP_CAN_ID: u32 = 0x0010;
pub const RX_FILTER_ID: u32 = 0x0020;
pub const RX_CHECK_DLC: u32 = 0x0040;
pub const RX_NO_AUTOTIMER: u32 = 0x0080;
pub const RX_ANNOUNCE_RESUME: u32 = 0x0100;
pub const TX_RESET_MULTI_IDX: u32 = 0x0200;
pub const RX_RTR_FRAME: u32 = 0x0400;
pub const CAN_FD_FRAME: u32 = 0x0800;