| #ifndef __NVKM_SW_NV50_H__ |
| #define __NVKM_SW_NV50_H__ |
| |
| #include <engine/software.h> |
| |
| struct nv50_software_oclass { |
| struct nouveau_oclass base; |
| struct nouveau_oclass *cclass; |
| struct nouveau_oclass *sclass; |
| }; |
| |
| struct nv50_software_priv { |
| struct nouveau_software base; |
| }; |
| |
| int nv50_software_ctor(struct nouveau_object *, struct nouveau_object *, |
| struct nouveau_oclass *, void *, u32, |
| struct nouveau_object **); |
| |
| struct nv50_software_cclass { |
| struct nouveau_oclass base; |
| int (*vblank)(void *, int); |
| }; |
| |
| struct nv50_software_chan { |
| struct nouveau_software_chan base; |
| struct { |
| struct nouveau_eventh **event; |
| int nr_event; |
| u32 channel; |
| u32 ctxdma; |
| u64 offset; |
| u32 value; |
| } vblank; |
| }; |
| |
| int nv50_software_context_ctor(struct nouveau_object *, |
| struct nouveau_object *, |
| struct nouveau_oclass *, void *, u32, |
| struct nouveau_object **); |
| void nv50_software_context_dtor(struct nouveau_object *); |
| |
| int nv50_software_mthd_vblsem_value(struct nouveau_object *, u32, void *, u32); |
| int nv50_software_mthd_vblsem_release(struct nouveau_object *, u32, void *, u32); |
| int nv50_software_mthd_flip(struct nouveau_object *, u32, void *, u32); |
| |
| #endif |