#ifndef __NVKM_SW_NV50_H__ #define __NVKM_SW_NV50_H__ #define nv50_sw_chan(p) container_of((p), struct nv50_sw_chan, base) #include "priv.h" #include "chan.h" #include "nvsw.h" #include struct nv50_sw_oclass { struct nvkm_oclass base; const struct nvkm_sw_func *func; }; int nv50_sw_ctor(struct nvkm_object *, struct nvkm_object *, struct nvkm_oclass *, void *, u32, struct nvkm_object **); struct nv50_sw_cclass { struct nvkm_oclass base; int (*vblank)(struct nvkm_notify *); const struct nvkm_sw_chan_func *chan; }; struct nv50_sw_chan { struct nvkm_sw_chan base; struct { struct nvkm_notify notify[4]; u32 ctxdma; u64 offset; u32 value; } vblank; }; void *nv50_sw_chan_dtor(struct nvkm_sw_chan *); #endif