brintos

brintos / linux-shallow public Read only

0
0
Text · 2.1 KiB · af6b4e1 Raw
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