1 /* SPDX-License-Identifier: MIT */ 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 31