summaryrefslogtreecommitdiff
path: root/include/uapi/linux/can.h
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2024-03-25 11:32:29 +0100
committerIngo Molnar <mingo@kernel.org>2024-03-25 11:32:29 +0100
commitf4566a1e73957800df75a3dd2dccee8a4697f327 (patch)
treeb043b875228c0b25988af66c680d60cae69d761d /include/uapi/linux/can.h
parentb9e6e28663928cab836a19abbdec3d036a07db3b (diff)
parent4cece764965020c22cff7665b18a012006359095 (diff)
downloadlwn-f4566a1e73957800df75a3dd2dccee8a4697f327.tar.gz
lwn-f4566a1e73957800df75a3dd2dccee8a4697f327.zip
Merge tag 'v6.9-rc1' into sched/core, to pick up fixes and to refresh the branch
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'include/uapi/linux/can.h')
-rw-r--r--include/uapi/linux/can.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/include/uapi/linux/can.h b/include/uapi/linux/can.h
index 939db2388208..e78cbd85ce7c 100644
--- a/include/uapi/linux/can.h
+++ b/include/uapi/linux/can.h
@@ -193,9 +193,14 @@ struct canfd_frame {
#define CANXL_XLF 0x80 /* mandatory CAN XL frame flag (must always be set!) */
#define CANXL_SEC 0x01 /* Simple Extended Content (security/segmentation) */
+/* the 8-bit VCID is optionally placed in the canxl_frame.prio element */
+#define CANXL_VCID_OFFSET 16 /* bit offset of VCID in prio element */
+#define CANXL_VCID_VAL_MASK 0xFFUL /* VCID is an 8-bit value */
+#define CANXL_VCID_MASK (CANXL_VCID_VAL_MASK << CANXL_VCID_OFFSET)
+
/**
* struct canxl_frame - CAN with e'X'tended frame 'L'ength frame structure
- * @prio: 11 bit arbitration priority with zero'ed CAN_*_FLAG flags
+ * @prio: 11 bit arbitration priority with zero'ed CAN_*_FLAG flags / VCID
* @flags: additional flags for CAN XL
* @sdt: SDU (service data unit) type
* @len: frame payload length in byte (CANXL_MIN_DLEN .. CANXL_MAX_DLEN)
@@ -205,7 +210,7 @@ struct canfd_frame {
* @prio shares the same position as @can_id from struct can[fd]_frame.
*/
struct canxl_frame {
- canid_t prio; /* 11 bit priority for arbitration (canid_t) */
+ canid_t prio; /* 11 bit priority for arbitration / 8 bit VCID */
__u8 flags; /* additional flags for CAN XL */
__u8 sdt; /* SDU (service data unit) type */
__u16 len; /* frame payload length in byte */