MCEXEC_UP_TRANSFER: generalize MCEXEC_UP_LOAD_IMAGE ioctl() to allow transfer in both directions

This commit is contained in:
Balazs Gerofi bgerofi@riken.jp
2014-05-22 12:42:23 +09:00
parent f810aa56b8
commit 84c18ef38e
4 changed files with 40 additions and 19 deletions

View File

@@ -388,7 +388,7 @@ int load_elf_desc(char *filename, struct program_load_desc **desc_p)
void transfer_image(int fd, struct program_load_desc *desc)
{
struct program_transfer pt;
struct remote_transfer pt;
unsigned long s, e, flen, rpa;
int i, l, lr;
FILE *fp;
@@ -407,9 +407,10 @@ void transfer_image(int fd, struct program_load_desc *desc)
desc->sections[i].offset, flen);
while (s < e) {
pt.dest = rpa;
pt.src = dma_buf;
pt.sz = PAGE_SIZE;
pt.rphys = rpa;
pt.userp = dma_buf;
pt.size = PAGE_SIZE;
pt.direction = MCEXEC_UP_TRANSFER_TO_REMOTE;
lr = 0;
memset(dma_buf, 0, PAGE_SIZE);
@@ -438,7 +439,7 @@ void transfer_image(int fd, struct program_load_desc *desc)
/* No more left to upload.. */
if (lr == 0 && flen == 0) break;
if (ioctl(fd, MCEXEC_UP_LOAD_IMAGE,
if (ioctl(fd, MCEXEC_UP_TRANSFER,
(unsigned long)&pt)) {
perror("dma");
break;