1 #ifndef __NOUVEAU_DMAOBJ_H__
2 #define __NOUVEAU_DMAOBJ_H__
4 #include <core/object.h>
5 #include <core/engine.h>
9 struct nouveau_dmaobj {
10 struct nouveau_object base;
18 struct nouveau_dmaeng {
19 struct nouveau_engine base;
21 /* creates a "physical" dma object from a struct nouveau_dmaobj */
22 int (*bind)(struct nouveau_dmaeng *dmaeng,
23 struct nouveau_object *parent,
24 struct nouveau_dmaobj *dmaobj,
25 struct nouveau_gpuobj **);
28 #define nouveau_dmaeng_create(p,e,c,d) \
29 nouveau_engine_create((p), (e), (c), true, "DMAOBJ", "dmaobj", (d))
30 #define nouveau_dmaeng_destroy(p) \
31 nouveau_engine_destroy(&(p)->base)
32 #define nouveau_dmaeng_init(p) \
33 nouveau_engine_init(&(p)->base)
34 #define nouveau_dmaeng_fini(p,s) \
35 nouveau_engine_fini(&(p)->base, (s))
37 #define _nouveau_dmaeng_dtor _nouveau_engine_dtor
38 #define _nouveau_dmaeng_init _nouveau_engine_init
39 #define _nouveau_dmaeng_fini _nouveau_engine_fini
41 extern struct nouveau_oclass nv04_dmaeng_oclass;
42 extern struct nouveau_oclass nv50_dmaeng_oclass;
43 extern struct nouveau_oclass nvc0_dmaeng_oclass;
44 extern struct nouveau_oclass nvd0_dmaeng_oclass;
46 extern struct nouveau_oclass nouveau_dmaobj_sclass[];