libc/new/linux_uapi/linux/can/
netlink.rs1use 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;