GNU Linux-libre 4.19.286-gnu1
[releases.git] / drivers / gpu / drm / nouveau / include / nvkm / core / ramht.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __NVKM_RAMHT_H__
3 #define __NVKM_RAMHT_H__
4 #include <core/gpuobj.h>
5 struct nvkm_object;
6
7 struct nvkm_ramht_data {
8         struct nvkm_gpuobj *inst;
9         int chid;
10         u32 handle;
11 };
12
13 struct nvkm_ramht {
14         struct nvkm_device *device;
15         struct nvkm_gpuobj *parent;
16         struct nvkm_gpuobj *gpuobj;
17         int size;
18         int bits;
19         struct nvkm_ramht_data data[];
20 };
21
22 int  nvkm_ramht_new(struct nvkm_device *, u32 size, u32 align,
23                     struct nvkm_gpuobj *, struct nvkm_ramht **);
24 void nvkm_ramht_del(struct nvkm_ramht **);
25 int  nvkm_ramht_insert(struct nvkm_ramht *, struct nvkm_object *,
26                        int chid, int addr, u32 handle, u32 context);
27 void nvkm_ramht_remove(struct nvkm_ramht *, int cookie);
28 struct nvkm_gpuobj *
29 nvkm_ramht_search(struct nvkm_ramht *, int chid, u32 handle);
30 #endif