apps,nanos-lite,loader: use fs_filesz() to get file size
This commit is contained in:
parent
23fb3f227c
commit
19a8127d8b
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in New Issue