1 | #ifndef __NVKM_SW_NV50_H__ |
2 | #define __NVKM_SW_NV50_H__ |
3 | |
4 | #include <engine/software.h> |
5 | |
6 | struct nv50_software_oclass { |
7 | struct nouveau_oclass base; |
8 | struct nouveau_oclass *cclass; |
9 | struct nouveau_oclass *sclass; |
10 | }; |
11 | |
12 | struct nv50_software_priv { |
13 | struct nouveau_software base; |
14 | }; |
15 | |
16 | int nv50_software_ctor(struct nouveau_object *, struct nouveau_object *, |
17 | struct nouveau_oclass *, void *, u32, |
18 | struct nouveau_object **); |
19 | |
20 | struct nv50_software_cclass { |
21 | struct nouveau_oclass base; |
22 | int (*vblank)(void *, int); |
23 | }; |
24 | |
25 | struct nv50_software_chan { |
26 | struct nouveau_software_chan base; |
27 | struct { |
28 | struct nouveau_eventh **event; |
29 | int nr_event; |
30 | u32 channel; |
31 | u32 ctxdma; |
32 | u64 offset; |
33 | u32 value; |
34 | } vblank; |
35 | }; |
36 | |
37 | int nv50_software_context_ctor(struct nouveau_object *, |
38 | struct nouveau_object *, |
39 | struct nouveau_oclass *, void *, u32, |
40 | struct nouveau_object **); |
41 | void nv50_software_context_dtor(struct nouveau_object *); |
42 | |
43 | int nv50_software_mthd_vblsem_value(struct nouveau_object *, u32, void *, u32); |
44 | int nv50_software_mthd_vblsem_release(struct nouveau_object *, u32, void *, u32); |
45 | int nv50_software_mthd_flip(struct nouveau_object *, u32, void *, u32); |
46 | |
47 | #endif |
48 | |