1/*
2 * This header was generated from the Linux kernel headers by update_headers.py,
3 * to provide necessary information from kernel to userspace, such as constants,
4 * structures, and macros, and thus, contains no copyrightable information.
5 */
6#ifndef QXL_DRM_H
7#define QXL_DRM_H
8#include "drm.h"
9#if defined(__cplusplus)
10extern "C" {
11#endif
12#define QXL_GEM_DOMAIN_CPU 0
13#define QXL_GEM_DOMAIN_VRAM 1
14#define QXL_GEM_DOMAIN_SURFACE 2
15#define DRM_QXL_ALLOC       0x00
16#define DRM_QXL_MAP         0x01
17#define DRM_QXL_EXECBUFFER  0x02
18#define DRM_QXL_UPDATE_AREA 0x03
19#define DRM_QXL_GETPARAM    0x04
20#define DRM_QXL_CLIENTCAP   0x05
21#define DRM_QXL_ALLOC_SURF  0x06
22struct drm_qxl_alloc {
23	__u32 size;
24	__u32 handle;
25};
26struct drm_qxl_map {
27	__u64 offset;
28	__u32 handle;
29	__u32 pad;
30};
31#define QXL_RELOC_TYPE_BO 1
32#define QXL_RELOC_TYPE_SURF 2
33struct drm_qxl_reloc {
34	__u64 src_offset;
35	__u64 dst_offset;
36	__u32 src_handle;
37	__u32 dst_handle;
38	__u32 reloc_type;
39	__u32 pad;
40};
41struct drm_qxl_command {
42	__u64		command;
43	__u64		relocs;
44	__u32		type;
45	__u32		command_size;
46	__u32		relocs_num;
47	__u32                pad;
48};
49struct drm_qxl_execbuffer {
50	__u32		flags;
51	__u32		commands_num;
52	__u64		commands;
53};
54struct drm_qxl_update_area {
55	__u32 handle;
56	__u32 top;
57	__u32 left;
58	__u32 bottom;
59	__u32 right;
60	__u32 pad;
61};
62#define QXL_PARAM_NUM_SURFACES 1
63#define QXL_PARAM_MAX_RELOCS 2
64struct drm_qxl_getparam {
65	__u64 param;
66	__u64 value;
67};
68struct drm_qxl_clientcap {
69	__u32 index;
70	__u32 pad;
71};
72struct drm_qxl_alloc_surf {
73	__u32 format;
74	__u32 width;
75	__u32 height;
76	__s32 stride;
77	__u32 handle;
78	__u32 pad;
79};
80#define DRM_IOCTL_QXL_ALLOC \
81	DRM_IOWR(DRM_COMMAND_BASE + DRM_QXL_ALLOC, struct drm_qxl_alloc)
82#define DRM_IOCTL_QXL_MAP \
83	DRM_IOWR(DRM_COMMAND_BASE + DRM_QXL_MAP, struct drm_qxl_map)
84#define DRM_IOCTL_QXL_EXECBUFFER \
85	DRM_IOW(DRM_COMMAND_BASE + DRM_QXL_EXECBUFFER,\
86		struct drm_qxl_execbuffer)
87#define DRM_IOCTL_QXL_UPDATE_AREA \
88	DRM_IOW(DRM_COMMAND_BASE + DRM_QXL_UPDATE_AREA,\
89		struct drm_qxl_update_area)
90#define DRM_IOCTL_QXL_GETPARAM \
91	DRM_IOWR(DRM_COMMAND_BASE + DRM_QXL_GETPARAM,\
92		struct drm_qxl_getparam)
93#define DRM_IOCTL_QXL_CLIENTCAP \
94	DRM_IOW(DRM_COMMAND_BASE + DRM_QXL_CLIENTCAP,\
95		struct drm_qxl_clientcap)
96#define DRM_IOCTL_QXL_ALLOC_SURF \
97	DRM_IOWR(DRM_COMMAND_BASE + DRM_QXL_ALLOC_SURF,\
98		struct drm_qxl_alloc_surf)
99#if defined(__cplusplus)
100}
101#endif
102#endif
103