syscalls: implement basic execve syscall, no argc, argv, envp support yet
This commit is contained in:
@@ -189,4 +189,36 @@ void test_iso9660()
|
||||
printf("Total bytes read: ");
|
||||
printf("0x%X\n", total_bytes);
|
||||
}
|
||||
}
|
||||
|
||||
int vsf_read_file_by_path(const char* path, uint8_t** buffer, l9660_dir* dir)
|
||||
{
|
||||
l9660_file* file = (l9660_file*)malloc(sizeof(l9660_file));
|
||||
|
||||
l9660_status err;
|
||||
|
||||
err = l9660_openat(file, dir, path);
|
||||
if (err != L9660_OK)
|
||||
{
|
||||
debug_log("read_file: err: 0x%X\n", err);
|
||||
return err;
|
||||
}
|
||||
|
||||
debug_log("HEHE %s\n", path);
|
||||
|
||||
l9660_seek(file, L9660_SEEK_END, 0);
|
||||
uint32_t file_size = l9660_tell(file);
|
||||
debug_log("file_size: %X\n", file_size);
|
||||
l9660_seek(file, L9660_SEEK_SET, 0);
|
||||
|
||||
*buffer = (uint8_t*)malloc(file_size);
|
||||
debug_log("eeee\n");
|
||||
|
||||
size_t read;
|
||||
|
||||
read = vfs_read_file(file, *buffer);
|
||||
free(file);
|
||||
debug_log("bytes read: 0x%X\n", read);
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user