| #ifndef __NOUVEAU_CHAN_H__ |
| #define __NOUVEAU_CHAN_H__ |
| |
| struct nouveau_cli; |
| |
| struct nouveau_channel { |
| struct nouveau_cli *cli; |
| struct nouveau_drm *drm; |
| |
| u32 handle; |
| u32 vram; |
| u32 gart; |
| |
| struct { |
| struct nouveau_bo *buffer; |
| struct nouveau_vma vma; |
| u32 handle; |
| } push; |
| |
| /* TODO: this will be reworked in the near future */ |
| bool accel_done; |
| void *fence; |
| struct { |
| int max; |
| int free; |
| int cur; |
| int put; |
| int ib_base; |
| int ib_max; |
| int ib_free; |
| int ib_put; |
| } dma; |
| u32 user_get_hi; |
| u32 user_get; |
| u32 user_put; |
| |
| struct nvif_object *object; |
| }; |
| |
| |
| int nouveau_channel_new(struct nouveau_drm *, struct nouveau_cli *, |
| u32 parent, u32 handle, u32 arg0, u32 arg1, |
| struct nouveau_channel **); |
| void nouveau_channel_del(struct nouveau_channel **); |
| int nouveau_channel_idle(struct nouveau_channel *); |
| |
| #endif |