]>
git.wh0rd.org - home.git/blob - dump.c
8 int main(int argc
, char *argv
[])
10 void *l1_addr
= (void *)0xf0000000;
11 void *src_addr
, *dst_addr
;
13 enum { AUTO
, DMA
, CORE
} use_dma
= AUTO
;
16 if (!strcmp(argv
[1], "-d"))
18 else if (!strcmp(argv
[1], "-c"))
26 "Usage: dump [-d|-c] <address> <count>\n"
27 " -d - use DMA for copy (default if address >= %p)\n"
28 " -c - use core loads (default if address < %p)\n"
29 "Values are in hex.\n", l1_addr
, l1_addr
);
33 src_addr
= (void *)strtoul(argv
[1], NULL
, 16);
34 count
= strtoul(argv
[2], NULL
, 16);
36 use_dma
= (src_addr
>= l1_addr
? DMA
: CORE
);
38 fprintf(stderr
, "Copying %zi bytes from %p\n", count
, src_addr
);
40 dst_addr
= malloc(count
);
41 fprintf(stderr
, "%smemcpy(%p, %p, %zi);\n",
42 (use_dma
== DMA
? "dma_" : ""),
43 dst_addr
, src_addr
, count
);
45 dma_memcpy(dst_addr
, src_addr
, count
);
47 memcpy(dst_addr
, src_addr
, count
);
48 fprintf(stderr
, "write(%i, %p, %zi);\n", 1, dst_addr
, count
);
49 write(1, dst_addr
, count
);