drivers/gpu/drm/xe/abi/guc_lfd_abi.h

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/xe/abi/guc_lfd_abi.h

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/xe/abi/guc_lfd_abi.h
Extension
.h
Size
5511 bytes
Lines
171
Domain
Driver Families
Bucket
drivers/gpu
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct guc_lfd_data {
	/** @header: A 32 bits dword, contains multiple bit fields */
	u32 header;
	/* LFD type. See guc_lfd_type */
#define GUC_LFD_DATA_HEADER_MASK_TYPE		GENMASK(31, 16)
#define GUC_LFD_DATA_HEADER_MASK_MAGIC		GENMASK(15, 0)

	/** @data_count: Number of dwords the `data` field contains. */
	u32 data_count;
	/** @data: Data defined by GUC_LFD_DATA_HEADER_MASK_TYPE */
	u32 data[] __counted_by(data_count);
} __packed;

/**
 * struct guc_lfd_data_log_events_buf - GuC Log Events Buffer.
 * This is optional fw LFD data
 */
struct guc_lfd_data_log_events_buf {
	/**
	 * @log_events_format_version: version of GuC log format of buffer
	 */
	u32 log_events_format_version;
	/**
	 * @log_event: The log event data.
	 * Size in dwords is LFD block size - 1.
	 */
	u32 log_event[];
} __packed;

/** struct guc_lfd_data_os_info - OS Version Information. */
struct guc_lfd_data_os_info {
	/**
	 * @os_id: enum values to identify the OS brand.
	 * See guc_lfd_os_type for the range of types
	 */
	u32 os_id;
	/**
	 * @build_version: ASCII string containing OS build version
	 * information based on os_id. String is padded with null
	 * characters to ensure its DWORD aligned.
	 * Size in dwords is LFD block size - 1.
	 */
	char build_version[];
} __packed;

/**
 * struct guc_lfd_file_header - Header of GuC Log Streaming-LFD-File Format.
 * This structure encapsulates the layout of the guc-log-file format
 */
struct guc_lfd_file_header {
	/**
	 * @magic: A magic number set by producer of a GuC log file to
	 * identify that file is a valid guc-log-file containing a stream
	 * of LFDs.
	 */
	u64 magic;
	/** @version: Version of this file format layout */
	u32 version;
#define GUC_LFD_FILE_HEADER_VERSION_MASK_MAJOR	GENMASK(31, 16)
#define GUC_LFD_FILE_HEADER_VERSION_MASK_MINOR	GENMASK(15, 0)

	/** @stream: A stream of one or more guc_lfd_data LFD blocks */
	u32 stream[];
} __packed;

#endif

Annotation

Implementation Notes