• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 __NOUVEAU_DRM_H__
7 #define __NOUVEAU_DRM_H__
8 #define DRM_NOUVEAU_EVENT_NVIF                                       0x80000000
9 #include "drm.h"
10 #if defined(__cplusplus)
11 extern "C" {
12 #endif
13 #define NOUVEAU_GEM_DOMAIN_CPU       (1 << 0)
14 #define NOUVEAU_GEM_DOMAIN_VRAM      (1 << 1)
15 #define NOUVEAU_GEM_DOMAIN_GART      (1 << 2)
16 #define NOUVEAU_GEM_DOMAIN_MAPPABLE  (1 << 3)
17 #define NOUVEAU_GEM_DOMAIN_COHERENT  (1 << 4)
18 #define NOUVEAU_GEM_TILE_COMP        0x00030000
19 #define NOUVEAU_GEM_TILE_LAYOUT_MASK 0x0000ff00
20 #define NOUVEAU_GEM_TILE_16BPP       0x00000001
21 #define NOUVEAU_GEM_TILE_32BPP       0x00000002
22 #define NOUVEAU_GEM_TILE_ZETA        0x00000004
23 #define NOUVEAU_GEM_TILE_NONCONTIG   0x00000008
24 struct drm_nouveau_gem_info {
25 	__u32 handle;
26 	__u32 domain;
27 	__u64 size;
28 	__u64 offset;
29 	__u64 map_handle;
30 	__u32 tile_mode;
31 	__u32 tile_flags;
32 };
33 struct drm_nouveau_gem_new {
34 	struct drm_nouveau_gem_info info;
35 	__u32 channel_hint;
36 	__u32 align;
37 };
38 #define NOUVEAU_GEM_MAX_BUFFERS 1024
39 struct drm_nouveau_gem_pushbuf_bo_presumed {
40 	__u32 valid;
41 	__u32 domain;
42 	__u64 offset;
43 };
44 struct drm_nouveau_gem_pushbuf_bo {
45 	__u64 user_priv;
46 	__u32 handle;
47 	__u32 read_domains;
48 	__u32 write_domains;
49 	__u32 valid_domains;
50 	struct drm_nouveau_gem_pushbuf_bo_presumed presumed;
51 };
52 #define NOUVEAU_GEM_RELOC_LOW  (1 << 0)
53 #define NOUVEAU_GEM_RELOC_HIGH (1 << 1)
54 #define NOUVEAU_GEM_RELOC_OR   (1 << 2)
55 #define NOUVEAU_GEM_MAX_RELOCS 1024
56 struct drm_nouveau_gem_pushbuf_reloc {
57 	__u32 reloc_bo_index;
58 	__u32 reloc_bo_offset;
59 	__u32 bo_index;
60 	__u32 flags;
61 	__u32 data;
62 	__u32 vor;
63 	__u32 tor;
64 };
65 #define NOUVEAU_GEM_MAX_PUSH 512
66 struct drm_nouveau_gem_pushbuf_push {
67 	__u32 bo_index;
68 	__u32 pad;
69 	__u64 offset;
70 	__u64 length;
71 };
72 struct drm_nouveau_gem_pushbuf {
73 	__u32 channel;
74 	__u32 nr_buffers;
75 	__u64 buffers;
76 	__u32 nr_relocs;
77 	__u32 nr_push;
78 	__u64 relocs;
79 	__u64 push;
80 	__u32 suffix0;
81 	__u32 suffix1;
82 	__u64 vram_available;
83 	__u64 gart_available;
84 };
85 #define NOUVEAU_GEM_CPU_PREP_NOWAIT                                  0x00000001
86 #define NOUVEAU_GEM_CPU_PREP_WRITE                                   0x00000004
87 struct drm_nouveau_gem_cpu_prep {
88 	__u32 handle;
89 	__u32 flags;
90 };
91 struct drm_nouveau_gem_cpu_fini {
92 	__u32 handle;
93 };
94 #define DRM_NOUVEAU_GETPARAM           0x00
95 #define DRM_NOUVEAU_SETPARAM           0x01
96 #define DRM_NOUVEAU_CHANNEL_ALLOC      0x02
97 #define DRM_NOUVEAU_CHANNEL_FREE       0x03
98 #define DRM_NOUVEAU_GROBJ_ALLOC        0x04
99 #define DRM_NOUVEAU_NOTIFIEROBJ_ALLOC  0x05
100 #define DRM_NOUVEAU_GPUOBJ_FREE        0x06
101 #define DRM_NOUVEAU_NVIF               0x07
102 #define DRM_NOUVEAU_GEM_NEW            0x40
103 #define DRM_NOUVEAU_GEM_PUSHBUF        0x41
104 #define DRM_NOUVEAU_GEM_CPU_PREP       0x42
105 #define DRM_NOUVEAU_GEM_CPU_FINI       0x43
106 #define DRM_NOUVEAU_GEM_INFO           0x44
107 #define DRM_IOCTL_NOUVEAU_GEM_NEW            DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_GEM_NEW, struct drm_nouveau_gem_new)
108 #define DRM_IOCTL_NOUVEAU_GEM_PUSHBUF        DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_GEM_PUSHBUF, struct drm_nouveau_gem_pushbuf)
109 #define DRM_IOCTL_NOUVEAU_GEM_CPU_PREP       DRM_IOW (DRM_COMMAND_BASE + DRM_NOUVEAU_GEM_CPU_PREP, struct drm_nouveau_gem_cpu_prep)
110 #define DRM_IOCTL_NOUVEAU_GEM_CPU_FINI       DRM_IOW (DRM_COMMAND_BASE + DRM_NOUVEAU_GEM_CPU_FINI, struct drm_nouveau_gem_cpu_fini)
111 #define DRM_IOCTL_NOUVEAU_GEM_INFO           DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_GEM_INFO, struct drm_nouveau_gem_info)
112 #if defined(__cplusplus)
113 }
114 #endif
115 #endif
116