include/uapi/linux/virtio_scsi.h
Source file repositories/reference/linux-study-clean/include/uapi/linux/virtio_scsi.h
File Facts
- System
- Linux kernel
- Corpus path
include/uapi/linux/virtio_scsi.h- Extension
.h- Size
- 6085 bytes
- Lines
- 173
- 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.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/virtio_types.h
Detected Declarations
struct virtio_scsi_cmd_reqstruct virtio_scsi_cmd_req_pistruct virtio_scsi_cmd_respstruct virtio_scsi_ctrl_tmf_reqstruct virtio_scsi_ctrl_tmf_respstruct virtio_scsi_ctrl_an_reqstruct virtio_scsi_ctrl_an_respstruct virtio_scsi_eventstruct virtio_scsi_config
Annotated Snippet
struct virtio_scsi_cmd_req {
__u8 lun[8]; /* Logical Unit Number */
__virtio64 tag; /* Command identifier */
__u8 task_attr; /* Task attribute */
__u8 prio; /* SAM command priority field */
__u8 crn;
__u8 cdb[VIRTIO_SCSI_CDB_SIZE];
} __attribute__((packed));
/* SCSI command request, followed by protection information */
struct virtio_scsi_cmd_req_pi {
__u8 lun[8]; /* Logical Unit Number */
__virtio64 tag; /* Command identifier */
__u8 task_attr; /* Task attribute */
__u8 prio; /* SAM command priority field */
__u8 crn;
__virtio32 pi_bytesout; /* DataOUT PI Number of bytes */
__virtio32 pi_bytesin; /* DataIN PI Number of bytes */
__u8 cdb[VIRTIO_SCSI_CDB_SIZE];
} __attribute__((packed));
/* Response, followed by sense data and data-in */
struct virtio_scsi_cmd_resp {
__virtio32 sense_len; /* Sense data length */
__virtio32 resid; /* Residual bytes in data buffer */
__virtio16 status_qualifier; /* Status qualifier */
__u8 status; /* Command completion status */
__u8 response; /* Response values */
__u8 sense[VIRTIO_SCSI_SENSE_SIZE];
} __attribute__((packed));
/* Task Management Request */
struct virtio_scsi_ctrl_tmf_req {
__virtio32 type;
__virtio32 subtype;
__u8 lun[8];
__virtio64 tag;
} __attribute__((packed));
struct virtio_scsi_ctrl_tmf_resp {
__u8 response;
} __attribute__((packed));
/* Asynchronous notification query/subscription */
struct virtio_scsi_ctrl_an_req {
__virtio32 type;
__u8 lun[8];
__virtio32 event_requested;
} __attribute__((packed));
struct virtio_scsi_ctrl_an_resp {
__virtio32 event_actual;
__u8 response;
} __attribute__((packed));
struct virtio_scsi_event {
__virtio32 event;
__u8 lun[8];
__virtio32 reason;
} __attribute__((packed));
struct virtio_scsi_config {
__virtio32 num_queues;
__virtio32 seg_max;
__virtio32 max_sectors;
__virtio32 cmd_per_lun;
__virtio32 event_info_size;
__virtio32 sense_size;
__virtio32 cdb_size;
__virtio16 max_channel;
__virtio16 max_target;
__virtio32 max_lun;
} __attribute__((packed));
/* Feature Bits */
#define VIRTIO_SCSI_F_INOUT 0
#define VIRTIO_SCSI_F_HOTPLUG 1
#define VIRTIO_SCSI_F_CHANGE 2
#define VIRTIO_SCSI_F_T10_PI 3
/* Response codes */
#define VIRTIO_SCSI_S_OK 0
#define VIRTIO_SCSI_S_OVERRUN 1
#define VIRTIO_SCSI_S_ABORTED 2
#define VIRTIO_SCSI_S_BAD_TARGET 3
#define VIRTIO_SCSI_S_RESET 4
#define VIRTIO_SCSI_S_BUSY 5
#define VIRTIO_SCSI_S_TRANSPORT_FAILURE 6
#define VIRTIO_SCSI_S_TARGET_FAILURE 7
#define VIRTIO_SCSI_S_NEXUS_FAILURE 8
Annotation
- Immediate include surface: `linux/virtio_types.h`.
- Detected declarations: `struct virtio_scsi_cmd_req`, `struct virtio_scsi_cmd_req_pi`, `struct virtio_scsi_cmd_resp`, `struct virtio_scsi_ctrl_tmf_req`, `struct virtio_scsi_ctrl_tmf_resp`, `struct virtio_scsi_ctrl_an_req`, `struct virtio_scsi_ctrl_an_resp`, `struct virtio_scsi_event`, `struct virtio_scsi_config`.
- Atlas domain: Core OS / Core Kernel Interface.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.