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