Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion libc-test/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3851,8 +3851,9 @@ fn test_linux(target: &str) {
"linux/can.h",
"linux/can/bcm.h",
"linux/can/error.h",
"linux/can/raw.h",
"linux/can/j1939.h",
"linux/can/netlink.h",
"linux/can/raw.h",
"linux/cn_proc.h",
"linux/connector.h",
"linux/dccp.h",
Expand Down Expand Up @@ -4506,6 +4507,7 @@ fn test_linux(target: &str) {
});

let c_enums = [
"can_state",
"membarrier_cmd",
"pid_type",
"proc_cn_event",
Expand Down
55 changes: 55 additions & 0 deletions libc-test/semver/linux.txt
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,17 @@ CANXL_SEC
CANXL_XLF
CAN_BCM
CAN_BUS_OFF_THRESHOLD
CAN_CTRLMODE_3_SAMPLES
CAN_CTRLMODE_BERR_REPORTING
CAN_CTRLMODE_CC_LEN8_DLC
CAN_CTRLMODE_FD
CAN_CTRLMODE_FD_NON_ISO
CAN_CTRLMODE_LISTENONLY
CAN_CTRLMODE_LOOPBACK
CAN_CTRLMODE_ONE_SHOT
CAN_CTRLMODE_PRESUME_ACK
CAN_CTRLMODE_TDC_AUTO
CAN_CTRLMODE_TDC_MANUAL
CAN_EFF_FLAG
CAN_EFF_ID_BITS
CAN_EFF_MASK
Expand Down Expand Up @@ -321,6 +332,13 @@ CAN_RAW_XL_FRAMES
CAN_RTR_FLAG
CAN_SFF_ID_BITS
CAN_SFF_MASK
CAN_STATE_BUS_OFF
CAN_STATE_ERROR_ACTIVE
CAN_STATE_ERROR_PASSIVE
CAN_STATE_ERROR_WARNING
CAN_STATE_SLEEPING
CAN_STATE_STOPPED
CAN_TERMINATION_DISABLED
CAN_TP16
CAN_TP20
CBAUD
Expand Down Expand Up @@ -1058,6 +1076,36 @@ IFLA_AF_SPEC
IFLA_ALLMULTI
IFLA_ALT_IFNAME
IFLA_BROADCAST
IFLA_CAN_BERR_COUNTER
IFLA_CAN_BITRATE_CONST
IFLA_CAN_BITRATE_MAX
IFLA_CAN_BITTIMING
IFLA_CAN_BITTIMING_CONST
IFLA_CAN_CLOCK
IFLA_CAN_CTRLMODE
IFLA_CAN_CTRLMODE_EXT
IFLA_CAN_CTRLMODE_SUPPORTED
IFLA_CAN_CTRLMODE_UNSPEC
IFLA_CAN_DATA_BITRATE_CONST
IFLA_CAN_DATA_BITTIMING
IFLA_CAN_DATA_BITTIMING_CONST
IFLA_CAN_RESTART
IFLA_CAN_RESTART_MS
IFLA_CAN_STATE
IFLA_CAN_TDC
IFLA_CAN_TDC_TDCF
IFLA_CAN_TDC_TDCF_MAX
IFLA_CAN_TDC_TDCF_MIN
IFLA_CAN_TDC_TDCO
IFLA_CAN_TDC_TDCO_MAX
IFLA_CAN_TDC_TDCO_MIN
IFLA_CAN_TDC_TDCV
IFLA_CAN_TDC_TDCV_MAX
IFLA_CAN_TDC_TDCV_MIN
IFLA_CAN_TDC_UNSPEC
IFLA_CAN_TERMINATION
IFLA_CAN_TERMINATION_CONST
IFLA_CAN_UNSPEC
IFLA_CARRIER
IFLA_CARRIER_CHANGES
IFLA_CARRIER_DOWN_COUNT
Expand Down Expand Up @@ -3961,9 +4009,16 @@ bcm_timeval
blkcnt64_t
brk
bsearch
can_berr_counter
can_bittiming
can_bittiming_const
can_clock
can_ctrlmode
can_device_stats
can_err_mask_t
can_filter
can_frame
can_state
canfd_frame
canid_t
canxl_frame
Expand Down
1 change: 1 addition & 0 deletions src/new/linux_uapi/linux/can.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
pub(crate) mod bcm;
pub(crate) mod error;
pub(crate) mod j1939;
pub(crate) mod netlink;
pub(crate) mod raw;

use crate::prelude::*;
Expand Down
125 changes: 125 additions & 0 deletions src/new/linux_uapi/linux/can/netlink.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
//! 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;
1 change: 1 addition & 0 deletions src/new/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,7 @@ cfg_if! {
pub use linux::can::bcm::*;
pub use linux::can::error::*;
pub use linux::can::j1939::*;
pub use linux::can::netlink::*;
pub use linux::can::raw::*;
pub use linux::can::*;
pub use linux::keyctl::*;
Expand Down
Loading