1 #ifndef __NVKM_RAMHT_H__
2 #define __NVKM_RAMHT_H__
3 #include <core/gpuobj.h>
4 
5 struct nvkm_ramht_data {
6 	struct nvkm_gpuobj *inst;
7 	int chid;
8 	u32 handle;
9 };
10 
11 struct nvkm_ramht {
12 	struct nvkm_device *device;
13 	struct nvkm_gpuobj *parent;
14 	struct nvkm_gpuobj *gpuobj;
15 	int size;
16 	int bits;
17 	struct nvkm_ramht_data data[];
18 };
19 
20 int  nvkm_ramht_new(struct nvkm_device *, u32 size, u32 align,
21 		    struct nvkm_gpuobj *, struct nvkm_ramht **);
22 void nvkm_ramht_del(struct nvkm_ramht **);
23 int  nvkm_ramht_insert(struct nvkm_ramht *, struct nvkm_object *,
24 		       int chid, int addr, u32 handle, u32 context);
25 void nvkm_ramht_remove(struct nvkm_ramht *, int cookie);
26 struct nvkm_gpuobj *
27 nvkm_ramht_search(struct nvkm_ramht *, int chid, u32 handle);
28 #endif
29