syscalls: implement basic execve syscall, no argc, argv, envp support yet

This commit is contained in:
2025-09-14 17:17:42 +03:00
parent 4c26652ee2
commit 91e0379fc9
9 changed files with 192 additions and 38 deletions
+32
View File
@@ -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;
}