include/uapi/scsi/scsi_bsg_ufs.h

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

File Facts

System
Linux kernel
Corpus path
include/uapi/scsi/scsi_bsg_ufs.h
Extension
.h
Size
5636 bytes
Lines
222
Domain
Repository Root And Misc
Bucket
include
Inferred role
Repository Root And Misc: implementation source
Status
source implementation candidate

Why This File Exists

Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.

Dependency Surface

Detected Declarations

Annotated Snippet

struct utp_upiu_header {
	union {
		struct {
			__be32 dword_0;
			__be32 dword_1;
			__be32 dword_2;
		};
		struct {
			__u8 transaction_code;
			__u8 flags;
			__u8 lun;
			__u8 task_tag;
#if defined(__BIG_ENDIAN)
			__u8 iid: 4;
			__u8 command_set_type: 4;
#elif defined(__LITTLE_ENDIAN)
			__u8 command_set_type: 4;
			__u8 iid: 4;
#else
#error
#endif
			union {
				__u8 tm_function;
				__u8 query_function;
			} __attribute__((packed));
			__u8 response;
			__u8 status;
			__u8 ehs_length;
			__u8 device_information;
			__be16 data_segment_length;
		};
	};
};

/**
 * struct utp_upiu_query - QUERY REQUEST UPIU structure.
 * @opcode: query function to perform B-0
 * @idn: descriptor or attribute identification number B-1
 * @index: Index that further identifies which data to access B-2
 * @selector: Index that further identifies which data to access B-3
 * @reserved_osf: spec reserved field B-4,5
 * @length: number of descriptor bytes to read or write B-6,7
 * @value: if @opcode == UPIU_QUERY_OPCODE_WRITE_ATTR, the value to be written B-6,7
 * @reserved: reserved for future use DW-6,7
 */
struct utp_upiu_query {
	__u8 opcode;
	__u8 idn;
	__u8 index;
	__u8 selector;
	__be16 reserved_osf;
	__be16 length;
	__be32 value;
	__be32 reserved[2];
};

/**
 * struct utp_upiu_query_v4_0 - upiu request buffer structure for
 * query request >= UFS 4.0 spec.
 * @opcode: command to perform B-0
 * @idn: a value that indicates the particular type of data B-1
 * @index: Index to further identify data B-2
 * @selector: Index to further identify data B-3
 * @osf3: spec field B-4
 * @osf4: spec field B-5
 * @osf5: spec field B 6,7
 * @osf6: spec field DW 8,9
 * @osf7: spec field DW 10,11
 */
struct utp_upiu_query_v4_0 {
	__u8 opcode;
	__u8 idn;
	__u8 index;
	__u8 selector;
	__u8 osf3;
	__u8 osf4;
	__be16 osf5;
	__be32 osf6;
	__be32 osf7;
	/* private: */
	__be32 reserved;
};

/**
 * struct utp_upiu_cmd - Command UPIU structure
 * @exp_data_transfer_len: Data Transfer Length DW-3
 * @cdb: Command Descriptor Block CDB DW-4 to DW-7
 */
struct utp_upiu_cmd {
	__be32 exp_data_transfer_len;

Annotation

Implementation Notes