include/uapi/linux/virtio_can.h

Source file repositories/reference/linux-study-clean/include/uapi/linux/virtio_can.h

File Facts

System
Linux kernel
Corpus path
include/uapi/linux/virtio_can.h
Extension
.h
Size
2197 bytes
Lines
79
Domain
Core OS
Bucket
Core Kernel Interface
Inferred role
Core OS: implementation source
Status
source implementation candidate

Why This File Exists

Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.

Dependency Surface

Detected Declarations

Annotated Snippet

struct virtio_can_config {
#define VIRTIO_CAN_S_CTRL_BUSOFF (1u << 0) /* Controller BusOff */
	/* CAN controller status */
	__le16 status;
};

/* TX queue message types */
struct virtio_can_tx_out {
#define VIRTIO_CAN_TX                   0x0001
	__le16 msg_type;
	__le16 length; /* 0..8 CC, 0..64 CAN-FD, 0..2048 CAN-XL, 12 bits */
	__u8 reserved_classic_dlc; /* If CAN classic length = 8 then DLC can be 8..15 */
	__u8 padding;
	__le16 reserved_xl_priority; /* May be needed for CAN XL priority */
	__le32 flags;
	__le32 can_id;
	__u8 sdu[] __counted_by_le(length);
};

struct virtio_can_tx_in {
	__u8 result;
};

/* RX queue message types */
struct virtio_can_rx {
#define VIRTIO_CAN_RX                   0x0101
	__le16 msg_type;
	__le16 length; /* 0..8 CC, 0..64 CAN-FD, 0..2048 CAN-XL, 12 bits */
	__u8 reserved_classic_dlc; /* If CAN classic length = 8 then DLC can be 8..15 */
	__u8 padding;
	__le16 reserved_xl_priority; /* May be needed for CAN XL priority */
	__le32 flags;
	__le32 can_id;
	__u8 sdu[] __counted_by_le(length);
};

/* Control queue message types */
struct virtio_can_control_out {
#define VIRTIO_CAN_SET_CTRL_MODE_START  0x0201
#define VIRTIO_CAN_SET_CTRL_MODE_STOP   0x0202
	__le16 msg_type;
};

struct virtio_can_control_in {
	__u8 result;
};

#endif /* #ifndef _LINUX_VIRTIO_VIRTIO_CAN_H */

Annotation

Implementation Notes