0001
0002 #ifndef __NVKM_RAMHT_H__
0003 #define __NVKM_RAMHT_H__
0004 #include <core/gpuobj.h>
0005 struct nvkm_object;
0006
0007 struct nvkm_ramht_data {
0008 struct nvkm_gpuobj *inst;
0009 int chid;
0010 u32 handle;
0011 };
0012
0013 struct nvkm_ramht {
0014 struct nvkm_device *device;
0015 struct nvkm_gpuobj *parent;
0016 struct nvkm_gpuobj *gpuobj;
0017 int size;
0018 int bits;
0019 struct nvkm_ramht_data data[];
0020 };
0021
0022 int nvkm_ramht_new(struct nvkm_device *, u32 size, u32 align,
0023 struct nvkm_gpuobj *, struct nvkm_ramht **);
0024 void nvkm_ramht_del(struct nvkm_ramht **);
0025 int nvkm_ramht_insert(struct nvkm_ramht *, struct nvkm_object *,
0026 int chid, int addr, u32 handle, u32 context);
0027 void nvkm_ramht_remove(struct nvkm_ramht *, int cookie);
0028 struct nvkm_gpuobj *
0029 nvkm_ramht_search(struct nvkm_ramht *, int chid, u32 handle);
0030 #endif