1 #ifndef __NV04_INSTMEM_H__
2 #define __NV04_INSTMEM_H__
3 #include "priv.h"
4 
5 #include <core/mm.h>
6 
7 extern struct nvkm_instobj_impl nv04_instobj_oclass;
8 
9 struct nv04_instmem_priv {
10 	struct nvkm_instmem base;
11 
12 	void __iomem *iomem;
13 	struct nvkm_mm heap;
14 
15 	struct nvkm_gpuobj *vbios;
16 	struct nvkm_ramht  *ramht;
17 	struct nvkm_gpuobj *ramro;
18 	struct nvkm_gpuobj *ramfc;
19 };
20 
21 static inline struct nv04_instmem_priv *
nv04_instmem(void * obj)22 nv04_instmem(void *obj)
23 {
24 	return (void *)nvkm_instmem(obj);
25 }
26 
27 struct nv04_instobj_priv {
28 	struct nvkm_instobj base;
29 	struct nvkm_mm_node *mem;
30 };
31 
32 void nv04_instmem_dtor(struct nvkm_object *);
33 
34 int nv04_instmem_alloc(struct nvkm_instmem *, struct nvkm_object *,
35 		       u32 size, u32 align, struct nvkm_object **pobject);
36 #endif
37