These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / gpu / drm / nouveau / include / nvkm / core / oproxy.h
1 #ifndef __NVKM_OPROXY_H__
2 #define __NVKM_OPROXY_H__
3 #define nvkm_oproxy(p) container_of((p), struct nvkm_oproxy, base)
4 #include <core/object.h>
5
6 struct nvkm_oproxy {
7         const struct nvkm_oproxy_func *func;
8         struct nvkm_object base;
9         struct nvkm_object *object;
10 };
11
12 struct nvkm_oproxy_func {
13         void (*dtor[2])(struct nvkm_oproxy *);
14         int  (*init[2])(struct nvkm_oproxy *);
15         int  (*fini[2])(struct nvkm_oproxy *, bool suspend);
16 };
17
18 void nvkm_oproxy_ctor(const struct nvkm_oproxy_func *,
19                       const struct nvkm_oclass *, struct nvkm_oproxy *);
20 int  nvkm_oproxy_new_(const struct nvkm_oproxy_func *,
21                       const struct nvkm_oclass *, struct nvkm_oproxy **);
22 #endif