1f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#ifndef __NV30_TRANSFER_H__
2f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define __NV30_TRANSFER_H__
3f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
4f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct nv30_rect {
5f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   struct nouveau_bo *bo;
6f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   unsigned offset;
7f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   unsigned domain;
8f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   unsigned pitch;
9f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   unsigned cpp;
10f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   unsigned w;
11f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   unsigned h;
12f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   unsigned d;
13f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   unsigned z;
14f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   unsigned x0;
15f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   unsigned x1;
16f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   unsigned y0;
17f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   unsigned y1;
18f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org};
19f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
20f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgenum nv30_transfer_filter {
21f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   NEAREST = 0,
22f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   BILINEAR
23f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org};
24f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
25f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid
26f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnv30_transfer_rect(struct nv30_context *, enum nv30_transfer_filter filter,
27f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                   struct nv30_rect *, struct nv30_rect *);
28f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
29f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid
30f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnv30_transfer_push_data(struct nouveau_context *,
31f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                        struct nouveau_bo *, unsigned offset, unsigned domain,
32f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                        unsigned size, void *data);
33f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
34f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid
35f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnv30_transfer_copy_data(struct nouveau_context *,
36f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                        struct nouveau_bo *, unsigned dstoff, unsigned dstdom,
37f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                        struct nouveau_bo *, unsigned srcoff, unsigned srcdom,
38f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                        unsigned size);
39f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
40f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#endif
41