122851890Sopenharmony_ci/*
222851890Sopenharmony_ci * This header was generated from the Linux kernel headers by update_headers.py,
322851890Sopenharmony_ci * to provide necessary information from kernel to userspace, such as constants,
422851890Sopenharmony_ci * structures, and macros, and thus, contains no copyrightable information.
522851890Sopenharmony_ci */
622851890Sopenharmony_ci#ifndef QXL_DRM_H
722851890Sopenharmony_ci#define QXL_DRM_H
822851890Sopenharmony_ci#include "drm.h"
922851890Sopenharmony_ci#if defined(__cplusplus)
1022851890Sopenharmony_ciextern "C" {
1122851890Sopenharmony_ci#endif
1222851890Sopenharmony_ci#define QXL_GEM_DOMAIN_CPU 0
1322851890Sopenharmony_ci#define QXL_GEM_DOMAIN_VRAM 1
1422851890Sopenharmony_ci#define QXL_GEM_DOMAIN_SURFACE 2
1522851890Sopenharmony_ci#define DRM_QXL_ALLOC       0x00
1622851890Sopenharmony_ci#define DRM_QXL_MAP         0x01
1722851890Sopenharmony_ci#define DRM_QXL_EXECBUFFER  0x02
1822851890Sopenharmony_ci#define DRM_QXL_UPDATE_AREA 0x03
1922851890Sopenharmony_ci#define DRM_QXL_GETPARAM    0x04
2022851890Sopenharmony_ci#define DRM_QXL_CLIENTCAP   0x05
2122851890Sopenharmony_ci#define DRM_QXL_ALLOC_SURF  0x06
2222851890Sopenharmony_cistruct drm_qxl_alloc {
2322851890Sopenharmony_ci	__u32 size;
2422851890Sopenharmony_ci	__u32 handle;
2522851890Sopenharmony_ci};
2622851890Sopenharmony_cistruct drm_qxl_map {
2722851890Sopenharmony_ci	__u64 offset;
2822851890Sopenharmony_ci	__u32 handle;
2922851890Sopenharmony_ci	__u32 pad;
3022851890Sopenharmony_ci};
3122851890Sopenharmony_ci#define QXL_RELOC_TYPE_BO 1
3222851890Sopenharmony_ci#define QXL_RELOC_TYPE_SURF 2
3322851890Sopenharmony_cistruct drm_qxl_reloc {
3422851890Sopenharmony_ci	__u64 src_offset;
3522851890Sopenharmony_ci	__u64 dst_offset;
3622851890Sopenharmony_ci	__u32 src_handle;
3722851890Sopenharmony_ci	__u32 dst_handle;
3822851890Sopenharmony_ci	__u32 reloc_type;
3922851890Sopenharmony_ci	__u32 pad;
4022851890Sopenharmony_ci};
4122851890Sopenharmony_cistruct drm_qxl_command {
4222851890Sopenharmony_ci	__u64		command;
4322851890Sopenharmony_ci	__u64		relocs;
4422851890Sopenharmony_ci	__u32		type;
4522851890Sopenharmony_ci	__u32		command_size;
4622851890Sopenharmony_ci	__u32		relocs_num;
4722851890Sopenharmony_ci	__u32                pad;
4822851890Sopenharmony_ci};
4922851890Sopenharmony_cistruct drm_qxl_execbuffer {
5022851890Sopenharmony_ci	__u32		flags;
5122851890Sopenharmony_ci	__u32		commands_num;
5222851890Sopenharmony_ci	__u64		commands;
5322851890Sopenharmony_ci};
5422851890Sopenharmony_cistruct drm_qxl_update_area {
5522851890Sopenharmony_ci	__u32 handle;
5622851890Sopenharmony_ci	__u32 top;
5722851890Sopenharmony_ci	__u32 left;
5822851890Sopenharmony_ci	__u32 bottom;
5922851890Sopenharmony_ci	__u32 right;
6022851890Sopenharmony_ci	__u32 pad;
6122851890Sopenharmony_ci};
6222851890Sopenharmony_ci#define QXL_PARAM_NUM_SURFACES 1
6322851890Sopenharmony_ci#define QXL_PARAM_MAX_RELOCS 2
6422851890Sopenharmony_cistruct drm_qxl_getparam {
6522851890Sopenharmony_ci	__u64 param;
6622851890Sopenharmony_ci	__u64 value;
6722851890Sopenharmony_ci};
6822851890Sopenharmony_cistruct drm_qxl_clientcap {
6922851890Sopenharmony_ci	__u32 index;
7022851890Sopenharmony_ci	__u32 pad;
7122851890Sopenharmony_ci};
7222851890Sopenharmony_cistruct drm_qxl_alloc_surf {
7322851890Sopenharmony_ci	__u32 format;
7422851890Sopenharmony_ci	__u32 width;
7522851890Sopenharmony_ci	__u32 height;
7622851890Sopenharmony_ci	__s32 stride;
7722851890Sopenharmony_ci	__u32 handle;
7822851890Sopenharmony_ci	__u32 pad;
7922851890Sopenharmony_ci};
8022851890Sopenharmony_ci#define DRM_IOCTL_QXL_ALLOC \
8122851890Sopenharmony_ci	DRM_IOWR(DRM_COMMAND_BASE + DRM_QXL_ALLOC, struct drm_qxl_alloc)
8222851890Sopenharmony_ci#define DRM_IOCTL_QXL_MAP \
8322851890Sopenharmony_ci	DRM_IOWR(DRM_COMMAND_BASE + DRM_QXL_MAP, struct drm_qxl_map)
8422851890Sopenharmony_ci#define DRM_IOCTL_QXL_EXECBUFFER \
8522851890Sopenharmony_ci	DRM_IOW(DRM_COMMAND_BASE + DRM_QXL_EXECBUFFER,\
8622851890Sopenharmony_ci		struct drm_qxl_execbuffer)
8722851890Sopenharmony_ci#define DRM_IOCTL_QXL_UPDATE_AREA \
8822851890Sopenharmony_ci	DRM_IOW(DRM_COMMAND_BASE + DRM_QXL_UPDATE_AREA,\
8922851890Sopenharmony_ci		struct drm_qxl_update_area)
9022851890Sopenharmony_ci#define DRM_IOCTL_QXL_GETPARAM \
9122851890Sopenharmony_ci	DRM_IOWR(DRM_COMMAND_BASE + DRM_QXL_GETPARAM,\
9222851890Sopenharmony_ci		struct drm_qxl_getparam)
9322851890Sopenharmony_ci#define DRM_IOCTL_QXL_CLIENTCAP \
9422851890Sopenharmony_ci	DRM_IOW(DRM_COMMAND_BASE + DRM_QXL_CLIENTCAP,\
9522851890Sopenharmony_ci		struct drm_qxl_clientcap)
9622851890Sopenharmony_ci#define DRM_IOCTL_QXL_ALLOC_SURF \
9722851890Sopenharmony_ci	DRM_IOWR(DRM_COMMAND_BASE + DRM_QXL_ALLOC_SURF,\
9822851890Sopenharmony_ci		struct drm_qxl_alloc_surf)
9922851890Sopenharmony_ci#if defined(__cplusplus)
10022851890Sopenharmony_ci}
10122851890Sopenharmony_ci#endif
10222851890Sopenharmony_ci#endif
103