Removed obsolete functions to read from the initrd.
Use the initrd filesystem instead.
This commit is contained in:
parent
635a49644a
commit
3b8bf9419d
|
@ -27,18 +27,9 @@
|
||||||
|
|
||||||
namespace Maxsi
|
namespace Maxsi
|
||||||
{
|
{
|
||||||
struct FileInfo
|
|
||||||
{
|
|
||||||
mode_t permissions;
|
|
||||||
char name[128];
|
|
||||||
};
|
|
||||||
|
|
||||||
namespace Process
|
namespace Process
|
||||||
{
|
{
|
||||||
int Execute(const char* filepath, int argc, const char** argv);
|
int Execute(const char* filepath, int argc, const char** argv);
|
||||||
void PrintPathFiles();
|
|
||||||
size_t GetNumFiles();
|
|
||||||
int GetFileInfo(size_t index, FileInfo* fileinfo);
|
|
||||||
void Abort();
|
void Abort();
|
||||||
void Exit(int code);
|
void Exit(int code);
|
||||||
pid_t Fork();
|
pid_t Fork();
|
||||||
|
|
|
@ -32,12 +32,9 @@ namespace Maxsi
|
||||||
{
|
{
|
||||||
DEFN_SYSCALL1_VOID(SysExit, 1, int);
|
DEFN_SYSCALL1_VOID(SysExit, 1, int);
|
||||||
DEFN_SYSCALL4(int, SysExecVE, 10, const char*, int, char* const*, char* const*);
|
DEFN_SYSCALL4(int, SysExecVE, 10, const char*, int, char* const*, char* const*);
|
||||||
DEFN_SYSCALL0_VOID(SysPrintPathFiles, 11);
|
|
||||||
DEFN_SYSCALL0(pid_t, SysFork, 12);
|
DEFN_SYSCALL0(pid_t, SysFork, 12);
|
||||||
DEFN_SYSCALL0(pid_t, SysGetPID, 13);
|
DEFN_SYSCALL0(pid_t, SysGetPID, 13);
|
||||||
DEFN_SYSCALL0(pid_t, SysGetParentPID, 14);
|
DEFN_SYSCALL0(pid_t, SysGetParentPID, 14);
|
||||||
DEFN_SYSCALL2(int, SysGetFileInfo, 15, size_t, FileInfo*);
|
|
||||||
DEFN_SYSCALL0(size_t, SysGetNumFiles, 16);
|
|
||||||
DEFN_SYSCALL3(pid_t, SysWait, 17, pid_t, int*, int);
|
DEFN_SYSCALL3(pid_t, SysWait, 17, pid_t, int*, int);
|
||||||
|
|
||||||
int Execute(const char* filepath, int argc, const char** argv)
|
int Execute(const char* filepath, int argc, const char** argv)
|
||||||
|
@ -45,21 +42,6 @@ namespace Maxsi
|
||||||
return SysExecVE(filepath, argc, (char* const*) argv, NULL);
|
return SysExecVE(filepath, argc, (char* const*) argv, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PrintPathFiles()
|
|
||||||
{
|
|
||||||
SysPrintPathFiles();
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t GetNumFiles()
|
|
||||||
{
|
|
||||||
return SysGetNumFiles();
|
|
||||||
}
|
|
||||||
|
|
||||||
int GetFileInfo(size_t index, FileInfo* fileinfo)
|
|
||||||
{
|
|
||||||
return SysGetFileInfo(index, fileinfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Abort()
|
void Abort()
|
||||||
{
|
{
|
||||||
// TODO: Send SIGABRT instead!
|
// TODO: Send SIGABRT instead!
|
||||||
|
|
|
@ -39,28 +39,11 @@ namespace Sortix
|
||||||
byte* initrd;
|
byte* initrd;
|
||||||
size_t initrdsize;
|
size_t initrdsize;
|
||||||
|
|
||||||
void SysPrintPathFiles()
|
|
||||||
{
|
|
||||||
Header* header = (Header*) initrd;
|
|
||||||
FileHeader* fhtbl = (FileHeader*) (initrd + sizeof(Header));
|
|
||||||
for ( uint32_t i = 0; i < header->numfiles; i++ )
|
|
||||||
{
|
|
||||||
FileHeader* fileheader = &(fhtbl[i]);
|
|
||||||
Log::PrintF("%s\n", fileheader->name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t GetNumFiles()
|
size_t GetNumFiles()
|
||||||
{
|
{
|
||||||
Header* header = (Header*) initrd;
|
Header* header = (Header*) initrd;
|
||||||
return header->numfiles;
|
return header->numfiles;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t SysGetNumFiles()
|
|
||||||
{
|
|
||||||
return GetNumFiles();
|
|
||||||
}
|
|
||||||
|
|
||||||
const char* GetFilename(size_t index)
|
const char* GetFilename(size_t index)
|
||||||
{
|
{
|
||||||
Header* header = (Header*) initrd;
|
Header* header = (Header*) initrd;
|
||||||
|
@ -70,29 +53,6 @@ namespace Sortix
|
||||||
return fileheader->name;
|
return fileheader->name;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct FileInfo
|
|
||||||
{
|
|
||||||
mode_t permissions;
|
|
||||||
char name[128];
|
|
||||||
};
|
|
||||||
|
|
||||||
int SysGetFileInfo(size_t index, FileInfo* fileinfo)
|
|
||||||
{
|
|
||||||
Header* header = (Header*) initrd;
|
|
||||||
if ( index >= header->numfiles ) { return -1; }
|
|
||||||
FileHeader* fhtbl = (FileHeader*) (initrd + sizeof(Header));
|
|
||||||
FileHeader* fileheader = &(fhtbl[index]);
|
|
||||||
|
|
||||||
// TODO: Check that fileinfo is a userspace writable buffer.
|
|
||||||
|
|
||||||
STATIC_ASSERT(sizeof(fileheader->name) == sizeof(fileinfo->name));
|
|
||||||
|
|
||||||
fileinfo->permissions = fileheader->permissions;
|
|
||||||
Maxsi::Memory::Copy(fileinfo->name, fileheader->name, sizeof(fileheader->name));
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t ContinueChecksum(uint8_t checksum, const void* p, size_t size)
|
uint8_t ContinueChecksum(uint8_t checksum, const void* p, size_t size)
|
||||||
{
|
{
|
||||||
const uint8_t* buffer = (const uint8_t*) p;
|
const uint8_t* buffer = (const uint8_t*) p;
|
||||||
|
@ -123,10 +83,6 @@ namespace Sortix
|
||||||
"when checking the ramdisk at 0x%p + 0x%zx bytes\n",
|
"when checking the ramdisk at 0x%p + 0x%zx bytes\n",
|
||||||
checksum, trailer->sum, initrd, initrdsize);
|
checksum, trailer->sum, initrd, initrdsize);
|
||||||
}
|
}
|
||||||
|
|
||||||
Syscall::Register(SYSCALL_PRINT_PATH_FILES, (void*) SysPrintPathFiles);
|
|
||||||
Syscall::Register(SYSCALL_GET_FILEINFO, (void*) SysGetFileInfo);
|
|
||||||
Syscall::Register(SYSCALL_GET_NUM_FILES, (void*) SysGetNumFiles);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
byte* Open(const char* filepath, size_t* size)
|
byte* Open(const char* filepath, size_t* size)
|
||||||
|
|
Loading…
Reference in New Issue