libc/new/linux_uapi/linux/can/
bcm.rs

1//! Header: `linux/can/bcm.h`
2
3pub use crate::linux::can::*;
4
5s! {
6    pub struct bcm_timeval {
7        pub tv_sec: c_long,
8        pub tv_usec: c_long,
9    }
10
11    pub struct bcm_msg_head {
12        pub opcode: u32,
13        pub flags: u32,
14        pub count: u32,
15        pub ival1: bcm_timeval,
16        pub ival2: bcm_timeval,
17        pub can_id: canid_t,
18        pub nframes: u32,
19        pub frames: [can_frame; 0],
20    }
21}
22
23c_enum! {
24    #[repr(u32)]
25    pub enum #anon {
26        pub TX_SETUP = 1,
27        pub TX_DELETE,
28        pub TX_READ,
29        pub TX_SEND,
30        pub RX_SETUP,
31        pub RX_DELETE,
32        pub RX_READ,
33        pub TX_STATUS,
34        pub TX_EXPIRED,
35        pub RX_STATUS,
36        pub RX_TIMEOUT,
37        pub RX_CHANGED,
38    }
39}
40
41pub const SETTIMER: u32 = 0x0001;
42pub const STARTTIMER: u32 = 0x0002;
43pub const TX_COUNTEVT: u32 = 0x0004;
44pub const TX_ANNOUNCE: u32 = 0x0008;
45pub const TX_CP_CAN_ID: u32 = 0x0010;
46pub const RX_FILTER_ID: u32 = 0x0020;
47pub const RX_CHECK_DLC: u32 = 0x0040;
48pub const RX_NO_AUTOTIMER: u32 = 0x0080;
49pub const RX_ANNOUNCE_RESUME: u32 = 0x0100;
50pub const TX_RESET_MULTI_IDX: u32 = 0x0200;
51pub const RX_RTR_FRAME: u32 = 0x0400;
52pub const CAN_FD_FRAME: u32 = 0x0800;