0001 #ifndef __NVKM_OCLASS_H__
0002 #define __NVKM_OCLASS_H__
0003 #include <core/os.h>
0004 #include <core/debug.h>
0005 struct nvkm_oclass;
0006 struct nvkm_object;
0007
0008 struct nvkm_sclass {
0009 int minver;
0010 int maxver;
0011 s32 oclass;
0012 const struct nvkm_object_func *func;
0013 int (*ctor)(const struct nvkm_oclass *, void *data, u32 size,
0014 struct nvkm_object **);
0015 };
0016
0017 struct nvkm_oclass {
0018 int (*ctor)(const struct nvkm_oclass *, void *data, u32 size,
0019 struct nvkm_object **);
0020 struct nvkm_sclass base;
0021 const void *priv;
0022 const void *engn;
0023 u32 handle;
0024 u8 route;
0025 u64 token;
0026 u64 object;
0027 struct nvkm_client *client;
0028 struct nvkm_object *parent;
0029 struct nvkm_engine *engine;
0030 };
0031 #endif