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[];