drivers/gpu/drm/qxl/qxl_dev.h

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/qxl/qxl_dev.h

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/qxl/qxl_dev.h
Extension
.h
Size
18125 bytes
Lines
877
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 qxl_point_fix {
	QXLFIXED x;
	QXLFIXED y;
};

struct qxl_point {
	int32_t x;
	int32_t y;
};

struct qxl_point_1_6 {
	int16_t x;
	int16_t y;
};

struct qxl_rect {
	int32_t top;
	int32_t left;
	int32_t bottom;
	int32_t right;
};

struct qxl_urect {
	uint32_t top;
	uint32_t left;
	uint32_t bottom;
	uint32_t right;
};

/* qxl-1 compat: append only */
struct qxl_rom {
	uint32_t magic;
	uint32_t id;
	uint32_t update_id;
	uint32_t compression_level;
	uint32_t log_level;
	uint32_t mode;			  /* qxl-1 */
	uint32_t modes_offset;
	uint32_t num_io_pages;
	uint32_t pages_offset;		  /* qxl-1 */
	uint32_t draw_area_offset;	  /* qxl-1 */
	uint32_t surface0_area_size;	  /* qxl-1 name: draw_area_size */
	uint32_t ram_header_offset;
	uint32_t mm_clock;
	/* appended for qxl-2 */
	uint32_t n_surfaces;
	uint64_t flags;
	uint8_t slots_start;
	uint8_t slots_end;
	uint8_t slot_gen_bits;
	uint8_t slot_id_bits;
	uint8_t slot_generation;
	/* appended for qxl-4 */
	uint8_t client_present;
	uint8_t client_capabilities[58];
	uint32_t client_monitors_config_crc;
	struct {
		uint16_t count;
	uint16_t padding;
		struct qxl_urect heads[64];
	} client_monitors_config;
};

/* qxl-1 compat: fixed */
struct qxl_mode {
	uint32_t id;
	uint32_t x_res;
	uint32_t y_res;
	uint32_t bits;
	uint32_t stride;
	uint32_t x_mili;
	uint32_t y_mili;
	uint32_t orientation;
};

/* qxl-1 compat: fixed */
struct qxl_modes {
	uint32_t n_modes;
	struct qxl_mode modes[];
};

/* qxl-1 compat: append only */
enum qxl_cmd_type {
	QXL_CMD_NOP,
	QXL_CMD_DRAW,
	QXL_CMD_UPDATE,
	QXL_CMD_CURSOR,
	QXL_CMD_MESSAGE,
	QXL_CMD_SURFACE,
};

Annotation

Implementation Notes