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

1//! Header: `linux/can/netlink.h`
2
3use crate::prelude::*;
4
5s! {
6    pub struct can_bittiming {
7        pub bitrate: u32,
8        pub sample_point: u32,
9        pub tq: u32,
10        pub prop_seg: u32,
11        pub phase_seg1: u32,
12        pub phase_seg2: u32,
13        pub sjw: u32,
14        pub brp: u32,
15    }
16
17    pub struct can_bittiming_const {
18        pub name: [c_char; 16],
19        pub tseg1_min: u32,
20        pub tseg1_max: u32,
21        pub tseg2_min: u32,
22        pub tseg2_max: u32,
23        pub sjw_max: u32,
24        pub brp_min: u32,
25        pub brp_max: u32,
26        pub brp_inc: u32,
27    }
28
29    pub struct can_clock {
30        pub freq: u32,
31    }
32
33    pub struct can_berr_counter {
34        pub txerr: u16,
35        pub rxerr: u16,
36    }
37
38    pub struct can_ctrlmode {
39        pub mask: u32,
40        pub flags: u32,
41    }
42
43    pub struct can_device_stats {
44        pub bus_error: u32,
45        pub error_warning: u32,
46        pub error_passive: u32,
47        pub bus_off: u32,
48        pub arbitration_lost: u32,
49        pub restarts: u32,
50    }
51}
52
53c_enum! {
54    #[repr(c_uint)]
55    pub enum can_state {
56        pub CAN_STATE_ERROR_ACTIVE = 0,
57        pub CAN_STATE_ERROR_WARNING,
58        pub CAN_STATE_ERROR_PASSIVE,
59        pub CAN_STATE_BUS_OFF,
60        pub CAN_STATE_STOPPED,
61        pub CAN_STATE_SLEEPING,
62    }
63}
64
65pub const CAN_CTRLMODE_LOOPBACK: u32 = 0x01;
66pub const CAN_CTRLMODE_LISTENONLY: u32 = 0x02;
67pub const CAN_CTRLMODE_3_SAMPLES: u32 = 0x04;
68pub const CAN_CTRLMODE_ONE_SHOT: u32 = 0x08;
69pub const CAN_CTRLMODE_BERR_REPORTING: u32 = 0x10;
70pub const CAN_CTRLMODE_FD: u32 = 0x20;
71pub const CAN_CTRLMODE_PRESUME_ACK: u32 = 0x40;
72pub const CAN_CTRLMODE_FD_NON_ISO: u32 = 0x80;
73pub const CAN_CTRLMODE_CC_LEN8_DLC: u32 = 0x100;
74pub const CAN_CTRLMODE_TDC_AUTO: u32 = 0x200;
75pub const CAN_CTRLMODE_TDC_MANUAL: u32 = 0x400;
76
77c_enum! {
78    #[repr(c_int)]
79    pub enum #anon {
80        pub IFLA_CAN_UNSPEC = 0,
81        pub IFLA_CAN_BITTIMING,
82        pub IFLA_CAN_BITTIMING_CONST,
83        pub IFLA_CAN_CLOCK,
84        pub IFLA_CAN_STATE,
85        pub IFLA_CAN_CTRLMODE,
86        pub IFLA_CAN_RESTART_MS,
87        pub IFLA_CAN_RESTART,
88        pub IFLA_CAN_BERR_COUNTER,
89        pub IFLA_CAN_DATA_BITTIMING,
90        pub IFLA_CAN_DATA_BITTIMING_CONST,
91        pub IFLA_CAN_TERMINATION,
92        pub IFLA_CAN_TERMINATION_CONST,
93        pub IFLA_CAN_BITRATE_CONST,
94        pub IFLA_CAN_DATA_BITRATE_CONST,
95        pub IFLA_CAN_BITRATE_MAX,
96        pub IFLA_CAN_TDC,
97        pub IFLA_CAN_CTRLMODE_EXT,
98    }
99}
100
101c_enum! {
102    #[repr(c_int)]
103    pub enum #anon {
104        pub IFLA_CAN_TDC_UNSPEC = 0,
105        pub IFLA_CAN_TDC_TDCV_MIN,
106        pub IFLA_CAN_TDC_TDCV_MAX,
107        pub IFLA_CAN_TDC_TDCO_MIN,
108        pub IFLA_CAN_TDC_TDCO_MAX,
109        pub IFLA_CAN_TDC_TDCF_MIN,
110        pub IFLA_CAN_TDC_TDCF_MAX,
111        pub IFLA_CAN_TDC_TDCV,
112        pub IFLA_CAN_TDC_TDCO,
113        pub IFLA_CAN_TDC_TDCF,
114    }
115}
116
117c_enum! {
118    #[repr(c_int)]
119    pub enum #anon {
120        pub IFLA_CAN_CTRLMODE_UNSPEC = 0,
121        pub IFLA_CAN_CTRLMODE_SUPPORTED,
122    }
123}
124
125pub const CAN_TERMINATION_DISABLED: u16 = 0;