/* SPDX-License-Identifier: MIT */
|
#ifndef __NVKM_RAMHT_H__
|
#define __NVKM_RAMHT_H__
|
#include <core/gpuobj.h>
|
struct nvkm_object;
|
|
struct nvkm_ramht_data {
|
struct nvkm_gpuobj *inst;
|
int chid;
|
u32 handle;
|
};
|
|
struct nvkm_ramht {
|
struct nvkm_device *device;
|
struct nvkm_gpuobj *parent;
|
struct nvkm_gpuobj *gpuobj;
|
int size;
|
int bits;
|
struct nvkm_ramht_data data[];
|
};
|
|
int nvkm_ramht_new(struct nvkm_device *, u32 size, u32 align,
|
struct nvkm_gpuobj *, struct nvkm_ramht **);
|
void nvkm_ramht_del(struct nvkm_ramht **);
|
int nvkm_ramht_insert(struct nvkm_ramht *, struct nvkm_object *,
|
int chid, int addr, u32 handle, u32 context);
|
void nvkm_ramht_remove(struct nvkm_ramht *, int cookie);
|
struct nvkm_gpuobj *
|
nvkm_ramht_search(struct nvkm_ramht *, int chid, u32 handle);
|
#endif
|