Linux-libre 5.3.12-gnu
[librecmc/linux-libre.git] / drivers / gpu / drm / nouveau / include / nvkm / core / oclass.h
1 #ifndef __NVKM_OCLASS_H__
2 #define __NVKM_OCLASS_H__
3 #include <core/os.h>
4 #include <core/debug.h>
5 struct nvkm_oclass;
6 struct nvkm_object;
7
8 struct nvkm_sclass {
9         int minver;
10         int maxver;
11         s32 oclass;
12         const struct nvkm_object_func *func;
13         int (*ctor)(const struct nvkm_oclass *, void *data, u32 size,
14                     struct nvkm_object **);
15 };
16
17 struct nvkm_oclass {
18         int (*ctor)(const struct nvkm_oclass *, void *data, u32 size,
19                     struct nvkm_object **);
20         struct nvkm_sclass base;
21         const void *priv;
22         const void *engn;
23         u32 handle;
24         u8  route;
25         u64 token;
26         u64 object;
27         struct nvkm_client *client;
28         struct nvkm_object *parent;
29         struct nvkm_engine *engine;
30 };
31 #endif