xref: /netbsd-src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core/oclass.h (revision 41ec02673d281bbb3d38e6c78504ce6e30c228c1)
1 /*	$NetBSD: oclass.h,v 1.2 2021/12/18 23:45:33 riastradh Exp $	*/
2 
3 #ifndef __NVKM_OCLASS_H__
4 #define __NVKM_OCLASS_H__
5 #include <core/os.h>
6 #include <core/debug.h>
7 struct nvkm_oclass;
8 struct nvkm_object;
9 
10 struct nvkm_sclass {
11 	int minver;
12 	int maxver;
13 	s32 oclass;
14 	const struct nvkm_object_func *func;
15 	int (*ctor)(const struct nvkm_oclass *, void *data, u32 size,
16 		    struct nvkm_object **);
17 };
18 
19 struct nvkm_oclass {
20 	int (*ctor)(const struct nvkm_oclass *, void *data, u32 size,
21 		    struct nvkm_object **);
22 	struct nvkm_sclass base;
23 	const void *priv;
24 	const void *engn;
25 	u32 handle;
26 	u8  route;
27 	u64 token;
28 	u64 object;
29 	struct nvkm_client *client;
30 	struct nvkm_object *parent;
31 	struct nvkm_engine *engine;
32 };
33 #endif
34