@@ -3723,9 +3723,11 @@ pub const CAN_ERR_FLAG: canid_t = 0x20000000;
37233723pub const CAN_SFF_MASK : canid_t = 0x000007FF ;
37243724pub const CAN_EFF_MASK : canid_t = 0x1FFFFFFF ;
37253725pub const CAN_ERR_MASK : canid_t = 0x1FFFFFFF ;
3726+ pub const CANXL_PRIO_MASK : :: canid_t = CAN_SFF_MASK ;
37263727
37273728pub const CAN_SFF_ID_BITS : :: c_int = 11 ;
37283729pub const CAN_EFF_ID_BITS : :: c_int = 29 ;
3730+ pub const CANXL_PRIO_BITS : :: c_int = CAN_SFF_ID_BITS ;
37293731
37303732pub const CAN_MAX_DLC : :: c_int = 8 ;
37313733pub const CAN_MAX_DLEN : usize = 8 ;
@@ -3735,10 +3737,26 @@ pub const CANFD_MAX_DLEN: usize = 64;
37353737pub const CANFD_BRS : :: c_int = 0x01 ;
37363738pub const CANFD_ESI : :: c_int = 0x02 ;
37373739
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+
37383749cfg_if ! {
37393750 if #[ cfg( libc_align) ] {
37403751 pub const CAN_MTU : usize = :: mem:: size_of:: <can_frame>( ) ;
37413752 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 ;
37423760 }
37433761}
37443762
@@ -3764,6 +3782,7 @@ pub const CAN_RAW_LOOPBACK: ::c_int = 3;
37643782pub const CAN_RAW_RECV_OWN_MSGS : :: c_int = 4 ;
37653783pub const CAN_RAW_FD_FRAMES : :: c_int = 5 ;
37663784pub const CAN_RAW_JOIN_FILTERS : :: c_int = 6 ;
3785+ pub const CAN_RAW_XL_FRAMES : :: c_int = 7 ;
37673786
37683787// linux/can/j1939.h
37693788pub const SOL_CAN_J1939 : :: c_int = SOL_CAN_BASE + CAN_J1939 ;
0 commit comments