64 lines · c
1/* SPDX-License-Identifier: MIT */2#ifndef __NOUVEAU_ABI16_H__3#define __NOUVEAU_ABI16_H__4 5#define ABI16_IOCTL_ARGS \6 struct drm_device *dev, void *data, struct drm_file *file_priv7 8int nouveau_abi16_ioctl_getparam(ABI16_IOCTL_ARGS);9int nouveau_abi16_ioctl_channel_alloc(ABI16_IOCTL_ARGS);10int nouveau_abi16_ioctl_channel_free(ABI16_IOCTL_ARGS);11int nouveau_abi16_ioctl_grobj_alloc(ABI16_IOCTL_ARGS);12int nouveau_abi16_ioctl_notifierobj_alloc(ABI16_IOCTL_ARGS);13int nouveau_abi16_ioctl_gpuobj_free(ABI16_IOCTL_ARGS);14 15struct nouveau_abi16_ntfy {16 struct nvif_object object;17 struct list_head head;18 struct nvkm_mm_node *node;19};20 21struct nouveau_abi16_chan {22 struct list_head head;23 struct nouveau_channel *chan;24 struct nvif_object ce;25 struct list_head notifiers;26 struct nouveau_bo *ntfy;27 struct nouveau_vma *ntfy_vma;28 struct nvkm_mm heap;29 struct nouveau_sched *sched;30};31 32struct nouveau_abi16 {33 struct nouveau_cli *cli;34 struct list_head channels;35 struct list_head objects;36};37 38struct nouveau_abi16 *nouveau_abi16_get(struct drm_file *);39int nouveau_abi16_put(struct nouveau_abi16 *, int);40void nouveau_abi16_fini(struct nouveau_abi16 *);41s32 nouveau_abi16_swclass(struct nouveau_drm *);42int nouveau_abi16_ioctl(struct drm_file *, void __user *user, u32 size);43 44#define NOUVEAU_GEM_DOMAIN_VRAM (1 << 1)45#define NOUVEAU_GEM_DOMAIN_GART (1 << 2)46 47struct drm_nouveau_grobj_alloc {48 int channel;49 uint32_t handle;50 int class;51};52 53struct drm_nouveau_setparam {54 uint64_t param;55 uint64_t value;56};57 58#define DRM_IOCTL_NOUVEAU_SETPARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_SETPARAM, struct drm_nouveau_setparam)59#define DRM_IOCTL_NOUVEAU_GROBJ_ALLOC DRM_IOW (DRM_COMMAND_BASE + DRM_NOUVEAU_GROBJ_ALLOC, struct drm_nouveau_grobj_alloc)60#define DRM_IOCTL_NOUVEAU_NOTIFIEROBJ_ALLOC DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_NOTIFIEROBJ_ALLOC, struct drm_nouveau_notifierobj_alloc)61#define DRM_IOCTL_NOUVEAU_GPUOBJ_FREE DRM_IOW (DRM_COMMAND_BASE + DRM_NOUVEAU_GPUOBJ_FREE, struct drm_nouveau_gpuobj_free)62 63#endif64