apps,nanos-lite,loader: use fs_filesz() to get file size

This commit is contained in:
Zihao Yu 2017-08-04 13:46:31 +08:00
parent 23fb3f227c
commit 19a8127d8b
2 changed files with 6 additions and 1 deletions

View File

@ -27,6 +27,10 @@ enum {FD_STDIN, FD_STDOUT, FD_STDERR, FD_FB, FD_EVENTS, FD_DISPINFO, FD_NORMAL};
Fstate files[FD_NORMAL + NR_FILES];
size_t fs_filesz(int fd) {
return file_table[ files[fd].index ].size;
}
void ramdisk_read(void *, uint32_t, uint32_t);
void ramdisk_write(const void *, uint32_t, uint32_t);
size_t read_events(void *buf);

View File

@ -5,6 +5,7 @@
#define INIT_FILE "/bin/hello"
void ramdisk_read(void *, off_t, size_t);
size_t fs_filesz(int fd);
#define STACK_SIZE (128 * PGSIZE)
@ -12,7 +13,7 @@ uintptr_t loader() {
Log("Loading user program %s...", INIT_FILE);
int fd = fs_open(INIT_FILE, 0, 0);
ssize_t len = fs_read(fd, (void *)0x4000000, 0x10000000); // read many enough
ssize_t len = fs_read(fd, (void *)0x4000000, fs_filesz(fd));
fs_close(fd);
Log("Read %d bytes", len);