o mount and getfree working

This commit is contained in:
david
2009-06-03 12:12:12 +02:00
parent 551ecb1915
commit 4419128348
11 changed files with 77 additions and 47 deletions

View File

@@ -47,18 +47,18 @@ DSTATUS disk_initialize (BYTE drv) {
int fd = open(IMAGE_NAME, O_RDWR);
if (fd == -1) {
perror("Error opening file for writing");
perror("DISKIO::disk_initialize: Error opening file for writing");
exit(EXIT_FAILURE);
}
int size = lseek(fd,0,SEEK_END);
lseek(fd,0,SEEK_SET);
printf("Open Image (size %i)\n",size);
image_addr = (BYTE*)mmap(0, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
printf("DISKIO::disk_initialize: Open Image (size %i) %p\n",size,image_addr);
if (image_addr == MAP_FAILED) {
close(fd);
perror("Error mmapping the file");
perror("DISKIO::disk_initialize: Error mmapping the file");
exit(EXIT_FAILURE);
}
@@ -94,8 +94,9 @@ DRESULT disk_read (
DWORD offset = sector * 512;
int size = count * 512;
printf("disk_read: sector=%li count=%i addr=%p off=%li size=%i\n",sector,count,image_addr + offset,offset,size);
printf("DISKIO::disk_read: sector=%li count=%i addr=%p off=%li size=%i\n",sector,count,image_addr + offset,offset,size);
memcpy(buff,image_addr + offset,size);
printf("DISKIO::disk_read: done\n");
return RES_OK;
}