@@ -3723,9 +3723,11 @@ pub const CAN_ERR_FLAG: canid_t = 0x20000000;
3723
3723
pub const CAN_SFF_MASK : canid_t = 0x000007FF ;
3724
3724
pub const CAN_EFF_MASK : canid_t = 0x1FFFFFFF ;
3725
3725
pub const CAN_ERR_MASK : canid_t = 0x1FFFFFFF ;
3726
+ pub const CANXL_PRIO_MASK : :: canid_t = CAN_SFF_MASK ;
3726
3727
3727
3728
pub const CAN_SFF_ID_BITS : :: c_int = 11 ;
3728
3729
pub const CAN_EFF_ID_BITS : :: c_int = 29 ;
3730
+ pub const CANXL_PRIO_BITS : :: c_int = CAN_SFF_ID_BITS ;
3729
3731
3730
3732
pub const CAN_MAX_DLC : :: c_int = 8 ;
3731
3733
pub const CAN_MAX_DLEN : usize = 8 ;
@@ -3735,10 +3737,26 @@ pub const CANFD_MAX_DLEN: usize = 64;
3735
3737
pub const CANFD_BRS : :: c_int = 0x01 ;
3736
3738
pub const CANFD_ESI : :: c_int = 0x02 ;
3737
3739
3740
+ pub const CANXL_MIN_DLC : :: c_int = 0 ;
3741
+ pub const CANXL_MAX_DLC : :: c_int = 2047 ;
3742
+ pub const CANXL_MAX_DLC_MASK : :: c_int = 0x07FF ;
3743
+ pub const CANXL_MIN_DLEN : usize = 1 ;
3744
+ pub const CANXL_MAX_DLEN : usize = 2048 ;
3745
+
3746
+ pub const CANXL_XLF : :: c_int = 0x80 ;
3747
+ pub const CANXL_SEC : :: c_int = 0x01 ;
3748
+
3738
3749
cfg_if ! {
3739
3750
if #[ cfg( libc_align) ] {
3740
3751
pub const CAN_MTU : usize = :: mem:: size_of:: <can_frame>( ) ;
3741
3752
pub const CANFD_MTU : usize = :: mem:: size_of:: <canfd_frame>( ) ;
3753
+ pub const CANXL_MTU : usize = :: mem:: size_of:: <canxl_frame>( ) ;
3754
+ // FIXME: use `core::mem::offset_of!` once that is available
3755
+ // https://github.com/rust-lang/rfcs/pull/3308
3756
+ // pub const CANXL_HDR_SIZE: usize = core::mem::offset_of!(canxl_frame, data);
3757
+ pub const CANXL_HDR_SIZE : usize = 12 ;
3758
+ pub const CANXL_MIN_MTU : usize = CANXL_HDR_SIZE + 64 ;
3759
+ pub const CANXL_MAX_MTU : usize = CANXL_MTU ;
3742
3760
}
3743
3761
}
3744
3762
@@ -3764,6 +3782,7 @@ pub const CAN_RAW_LOOPBACK: ::c_int = 3;
3764
3782
pub const CAN_RAW_RECV_OWN_MSGS : :: c_int = 4 ;
3765
3783
pub const CAN_RAW_FD_FRAMES : :: c_int = 5 ;
3766
3784
pub const CAN_RAW_JOIN_FILTERS : :: c_int = 6 ;
3785
+ pub const CAN_RAW_XL_FRAMES : :: c_int = 7 ;
3767
3786
3768
3787
// linux/can/j1939.h
3769
3788
pub const SOL_CAN_J1939 : :: c_int = SOL_CAN_BASE + CAN_J1939 ;
0 commit comments