1655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/**************************************************************************** 2655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng **************************************************************************** 3655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 4655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** This header was automatically generated from a Linux kernel header 5655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** of the same name, to make information necessary for userspace to 6655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** call into the kernel available to libc. It contains only constants, 7655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** structures, and macros generated from the original header, and thus, 8655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** contains no copyrightable information. 9655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 10655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** To edit the content of this header, modify the corresponding 11655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** source file (e.g. under external/kernel-headers/original/) then 12655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** run bionic/libc/kernel/tools/update_all.py 13655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 14655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** Any manual change here will be lost the next time this script will 15655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** be run. You've been warned! 16655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 17655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng **************************************************************************** 18655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************/ 19655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef __NOUVEAU_DRM_H__ 20655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define __NOUVEAU_DRM_H__ 2182d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define DRM_NOUVEAU_EVENT_NVIF 0x80000000 22106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#include "drm.h" 23106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#ifdef __cplusplus 24106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#endif 25106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define NOUVEAU_GEM_DOMAIN_CPU (1 << 0) 2605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define NOUVEAU_GEM_DOMAIN_VRAM (1 << 1) 27655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NOUVEAU_GEM_DOMAIN_GART (1 << 2) 28655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NOUVEAU_GEM_DOMAIN_MAPPABLE (1 << 3) 2905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define NOUVEAU_GEM_DOMAIN_COHERENT (1 << 4) 30655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NOUVEAU_GEM_TILE_COMP 0x00030000 31655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NOUVEAU_GEM_TILE_LAYOUT_MASK 0x0000ff00 32655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NOUVEAU_GEM_TILE_16BPP 0x00000001 33655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NOUVEAU_GEM_TILE_32BPP 0x00000002 34655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NOUVEAU_GEM_TILE_ZETA 0x00000004 35655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NOUVEAU_GEM_TILE_NONCONTIG 0x00000008 36655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_nouveau_gem_info { 37106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 handle; 38106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 domain; 39106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 size; 40106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 offset; 41106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 map_handle; 42106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 tile_mode; 43106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 tile_flags; 44655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 45655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_nouveau_gem_new { 46d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct drm_nouveau_gem_info info; 47106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 channel_hint; 48106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 align; 49106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris}; 50655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NOUVEAU_GEM_MAX_BUFFERS 1024 51655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_nouveau_gem_pushbuf_bo_presumed { 52106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 valid; 53106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 domain; 54106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 offset; 55655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 56655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_nouveau_gem_pushbuf_bo { 57106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 user_priv; 58106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 handle; 59106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 read_domains; 60106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 write_domains; 61106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 valid_domains; 62d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct drm_nouveau_gem_pushbuf_bo_presumed presumed; 63655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 64655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NOUVEAU_GEM_RELOC_LOW (1 << 0) 65655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NOUVEAU_GEM_RELOC_HIGH (1 << 1) 66655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NOUVEAU_GEM_RELOC_OR (1 << 2) 67655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NOUVEAU_GEM_MAX_RELOCS 1024 68655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_nouveau_gem_pushbuf_reloc { 69106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 reloc_bo_index; 70106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 reloc_bo_offset; 71106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 bo_index; 72106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 flags; 73106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 data; 74106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 vor; 75106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 tor; 76655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 77655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NOUVEAU_GEM_MAX_PUSH 512 78655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_nouveau_gem_pushbuf_push { 79106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 bo_index; 80106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 pad; 81106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 offset; 82106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 length; 83655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 84655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_nouveau_gem_pushbuf { 85106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 channel; 86106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 nr_buffers; 87106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 buffers; 88106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 nr_relocs; 89106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 nr_push; 90106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 relocs; 91106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 push; 92106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 suffix0; 93106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 suffix1; 94106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 vram_available; 95106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 gart_available; 96655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 97655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NOUVEAU_GEM_CPU_PREP_NOWAIT 0x00000001 98655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NOUVEAU_GEM_CPU_PREP_WRITE 0x00000004 99106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferrisstruct drm_nouveau_gem_cpu_prep { 100106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 handle; 101106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 flags; 102655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 103655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_nouveau_gem_cpu_fini { 104106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 handle; 105655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 106655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_NOUVEAU_GETPARAM 0x00 107655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_NOUVEAU_SETPARAM 0x01 108655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_NOUVEAU_CHANNEL_ALLOC 0x02 109655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_NOUVEAU_CHANNEL_FREE 0x03 110655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_NOUVEAU_GROBJ_ALLOC 0x04 111655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_NOUVEAU_NOTIFIEROBJ_ALLOC 0x05 112655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_NOUVEAU_GPUOBJ_FREE 0x06 11382d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define DRM_NOUVEAU_NVIF 0x07 114655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_NOUVEAU_GEM_NEW 0x40 115655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_NOUVEAU_GEM_PUSHBUF 0x41 11682d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define DRM_NOUVEAU_GEM_CPU_PREP 0x42 117655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_NOUVEAU_GEM_CPU_FINI 0x43 118655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_NOUVEAU_GEM_INFO 0x44 119655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_IOCTL_NOUVEAU_GEM_NEW DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_GEM_NEW, struct drm_nouveau_gem_new) 12082d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define DRM_IOCTL_NOUVEAU_GEM_PUSHBUF DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_GEM_PUSHBUF, struct drm_nouveau_gem_pushbuf) 121d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define DRM_IOCTL_NOUVEAU_GEM_CPU_PREP DRM_IOW(DRM_COMMAND_BASE + DRM_NOUVEAU_GEM_CPU_PREP, struct drm_nouveau_gem_cpu_prep) 122d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define DRM_IOCTL_NOUVEAU_GEM_CPU_FINI DRM_IOW(DRM_COMMAND_BASE + DRM_NOUVEAU_GEM_CPU_FINI, struct drm_nouveau_gem_cpu_fini) 123655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_IOCTL_NOUVEAU_GEM_INFO DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_GEM_INFO, struct drm_nouveau_gem_info) 124106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#ifdef __cplusplus 12582d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#endif 126106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#endif 127