at master 2.1 kB view raw
1/* SPDX-License-Identifier: MIT */ 2 3#ifndef __NOVA_DRM_H__ 4#define __NOVA_DRM_H__ 5 6#include "drm.h" 7 8/* DISCLAIMER: Do not use, this is not a stable uAPI. 9 * 10 * This uAPI serves only testing purposes as long as this driver is still in 11 * development. It is required to implement and test infrastructure which is 12 * upstreamed in the context of this driver. See also [1]. 13 * 14 * [1] https://lore.kernel.org/dri-devel/Zfsj0_tb-0-tNrJy@cassiopeiae/T/#u 15 */ 16 17#if defined(__cplusplus) 18extern "C" { 19#endif 20 21/* 22 * NOVA_GETPARAM_VRAM_BAR_SIZE 23 * 24 * Query the VRAM BAR size in bytes. 25 */ 26#define NOVA_GETPARAM_VRAM_BAR_SIZE 0x1 27 28/** 29 * struct drm_nova_getparam - query GPU and driver metadata 30 */ 31struct drm_nova_getparam { 32 /** 33 * @param: The identifier of the parameter to query. 34 */ 35 __u64 param; 36 37 /** 38 * @value: The value for the specified parameter. 39 */ 40 __u64 value; 41}; 42 43/** 44 * struct drm_nova_gem_create - create a new DRM GEM object 45 */ 46struct drm_nova_gem_create { 47 /** 48 * @handle: The handle of the new DRM GEM object. 49 */ 50 __u32 handle; 51 52 /** 53 * @pad: 32 bit padding, should be 0. 54 */ 55 __u32 pad; 56 57 /** 58 * @size: The size of the new DRM GEM object. 59 */ 60 __u64 size; 61}; 62 63/** 64 * struct drm_nova_gem_info - query DRM GEM object metadata 65 */ 66struct drm_nova_gem_info { 67 /** 68 * @handle: The handle of the DRM GEM object to query. 69 */ 70 __u32 handle; 71 72 /** 73 * @pad: 32 bit padding, should be 0. 74 */ 75 __u32 pad; 76 77 /** 78 * @size: The size of the DRM GEM obejct. 79 */ 80 __u64 size; 81}; 82 83#define DRM_NOVA_GETPARAM 0x00 84#define DRM_NOVA_GEM_CREATE 0x01 85#define DRM_NOVA_GEM_INFO 0x02 86 87/* Note: this is an enum so that it can be resolved by Rust bindgen. */ 88enum { 89 DRM_IOCTL_NOVA_GETPARAM = DRM_IOWR(DRM_COMMAND_BASE + DRM_NOVA_GETPARAM, 90 struct drm_nova_getparam), 91 DRM_IOCTL_NOVA_GEM_CREATE = DRM_IOWR(DRM_COMMAND_BASE + DRM_NOVA_GEM_CREATE, 92 struct drm_nova_gem_create), 93 DRM_IOCTL_NOVA_GEM_INFO = DRM_IOWR(DRM_COMMAND_BASE + DRM_NOVA_GEM_INFO, 94 struct drm_nova_gem_info), 95}; 96 97#if defined(__cplusplus) 98} 99#endif 100 101#endif /* __NOVA_DRM_H__ */