make exec_from_file take l9660_file* instead of a filename

This commit is contained in:
2025-09-23 20:13:34 +03:00
parent f697fab390
commit 2019f87b14
4 changed files with 19 additions and 15 deletions
+1 -10
View File
@@ -135,17 +135,8 @@ void kmain(unsigned int magic, unsigned int info)
l9660_file* file = (l9660_file*)malloc(sizeof(l9660_file));
follow_path("/bin/bash.", file, dir);
//////////////
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);
free(file);
free(dir);
//////////////
exec_from_file("caller.", ".");
exec_from_file(file, ".");
while(1)
{
+12 -4
View File
@@ -6,7 +6,7 @@
#include "../include/paging.h"
#include "../include/task.h"
void exec_from_file(const char* filename, const char* dirname)
void exec_from_file(l9660_file* fs_file, const char* dirname)
{
asm volatile("cli");
int err;
@@ -22,13 +22,21 @@ void exec_from_file(const char* filename, const char* dirname)
uint32_t bss_start, bss_end;
err = vsf_read_file_by_path(filename, &file, &dir);
l9660_seek(fs_file, L9660_SEEK_END, 0);
uint32_t file_size = l9660_tell(fs_file);
debug_log("[exec_from_file] file_size: %X\n", file_size);
l9660_seek(fs_file, L9660_SEEK_SET, 0);
if(err != 0)
file = (uint8_t*)malloc(file_size);
//err = vsf_read_file_by_path(filename, &file, &dir);
err = vfs_read_file(fs_file, file);
/*if(err != 0)
{
debug_log("read_file failed!\n");
return;
}
*/
//debug_log("result: %X\n", result);
//debug_log("buffer: %s\n", file);