//! Header: `linux/can/netlink.h` use crate::prelude::*; s! { pub struct can_bittiming { pub bitrate: u32, pub sample_point: u32, pub tq: u32, pub prop_seg: u32, pub phase_seg1: u32, pub phase_seg2: u32, pub sjw: u32, pub brp: u32, } pub struct can_bittiming_const { pub name: [c_char; 16], pub tseg1_min: u32, pub tseg1_max: u32, pub tseg2_min: u32, pub tseg2_max: u32, pub sjw_max: u32, pub brp_min: u32, pub brp_max: u32, pub brp_inc: u32, } pub struct can_clock { pub freq: u32, } pub struct can_berr_counter { pub txerr: u16, pub rxerr: u16, } pub struct can_ctrlmode { pub mask: u32, pub flags: u32, } pub struct can_device_stats { pub bus_error: u32, pub error_warning: u32, pub error_passive: u32, pub bus_off: u32, pub arbitration_lost: u32, pub restarts: u32, } } c_enum! { #[repr(c_uint)] pub enum can_state { pub CAN_STATE_ERROR_ACTIVE = 0, pub CAN_STATE_ERROR_WARNING, pub CAN_STATE_ERROR_PASSIVE, pub CAN_STATE_BUS_OFF, pub CAN_STATE_STOPPED, pub CAN_STATE_SLEEPING, } } pub const CAN_CTRLMODE_LOOPBACK: u32 = 0x01; pub const CAN_CTRLMODE_LISTENONLY: u32 = 0x02; pub const CAN_CTRLMODE_3_SAMPLES: u32 = 0x04; pub const CAN_CTRLMODE_ONE_SHOT: u32 = 0x08; pub const CAN_CTRLMODE_BERR_REPORTING: u32 = 0x10; pub const CAN_CTRLMODE_FD: u32 = 0x20; pub const CAN_CTRLMODE_PRESUME_ACK: u32 = 0x40; pub const CAN_CTRLMODE_FD_NON_ISO: u32 = 0x80; pub const CAN_CTRLMODE_CC_LEN8_DLC: u32 = 0x100; pub const CAN_CTRLMODE_TDC_AUTO: u32 = 0x200; pub const CAN_CTRLMODE_TDC_MANUAL: u32 = 0x400; c_enum! { #[repr(c_int)] pub enum #anon { pub IFLA_CAN_UNSPEC = 0, pub IFLA_CAN_BITTIMING, pub IFLA_CAN_BITTIMING_CONST, pub IFLA_CAN_CLOCK, pub IFLA_CAN_STATE, pub IFLA_CAN_CTRLMODE, pub IFLA_CAN_RESTART_MS, pub IFLA_CAN_RESTART, pub IFLA_CAN_BERR_COUNTER, pub IFLA_CAN_DATA_BITTIMING, pub IFLA_CAN_DATA_BITTIMING_CONST, pub IFLA_CAN_TERMINATION, pub IFLA_CAN_TERMINATION_CONST, pub IFLA_CAN_BITRATE_CONST, pub IFLA_CAN_DATA_BITRATE_CONST, pub IFLA_CAN_BITRATE_MAX, pub IFLA_CAN_TDC, pub IFLA_CAN_CTRLMODE_EXT, } } c_enum! { #[repr(c_int)] pub enum #anon { pub IFLA_CAN_TDC_UNSPEC = 0, pub IFLA_CAN_TDC_TDCV_MIN, pub IFLA_CAN_TDC_TDCV_MAX, pub IFLA_CAN_TDC_TDCO_MIN, pub IFLA_CAN_TDC_TDCO_MAX, pub IFLA_CAN_TDC_TDCF_MIN, pub IFLA_CAN_TDC_TDCF_MAX, pub IFLA_CAN_TDC_TDCV, pub IFLA_CAN_TDC_TDCO, pub IFLA_CAN_TDC_TDCF, } } c_enum! { #[repr(c_int)] pub enum #anon { pub IFLA_CAN_CTRLMODE_UNSPEC = 0, pub IFLA_CAN_CTRLMODE_SUPPORTED, } } pub const CAN_TERMINATION_DISABLED: u16 = 0;