forked from Bananymous/banan-os
LibC: Reorder some syscalls
This commit is contained in:
parent
5aed186827
commit
8be28012ee
|
@ -114,12 +114,6 @@ namespace Kernel
|
||||||
return ret.value()->pid();
|
return ret.value()->pid();
|
||||||
}
|
}
|
||||||
|
|
||||||
long sys_sleep(unsigned int seconds)
|
|
||||||
{
|
|
||||||
PIT::sleep(seconds * 1000);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
long sys_exec(const char* pathname, const char* const* argv, const char* const* envp)
|
long sys_exec(const char* pathname, const char* const* argv, const char* const* envp)
|
||||||
{
|
{
|
||||||
auto ret = Process::current().exec(pathname, argv, envp);
|
auto ret = Process::current().exec(pathname, argv, envp);
|
||||||
|
@ -128,6 +122,12 @@ namespace Kernel
|
||||||
ASSERT_NOT_REACHED();
|
ASSERT_NOT_REACHED();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
long sys_sleep(unsigned int seconds)
|
||||||
|
{
|
||||||
|
PIT::sleep(seconds * 1000);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
long sys_wait(pid_t pid, int* stat_loc, int options)
|
long sys_wait(pid_t pid, int* stat_loc, int options)
|
||||||
{
|
{
|
||||||
auto ret = Process::current().wait(pid, stat_loc, options);
|
auto ret = Process::current().wait(pid, stat_loc, options);
|
||||||
|
@ -219,12 +219,12 @@ namespace Kernel
|
||||||
case SYS_FORK:
|
case SYS_FORK:
|
||||||
ret = sys_fork_trampoline();
|
ret = sys_fork_trampoline();
|
||||||
break;
|
break;
|
||||||
case SYS_SLEEP:
|
|
||||||
ret = sys_sleep((unsigned int)arg1);
|
|
||||||
break;
|
|
||||||
case SYS_EXEC:
|
case SYS_EXEC:
|
||||||
ret = sys_exec((const char*)arg1, (const char* const*)arg2, (const char* const*)arg3);
|
ret = sys_exec((const char*)arg1, (const char* const*)arg2, (const char* const*)arg3);
|
||||||
break;
|
break;
|
||||||
|
case SYS_SLEEP:
|
||||||
|
ret = sys_sleep((unsigned int)arg1);
|
||||||
|
break;
|
||||||
case SYS_WAIT:
|
case SYS_WAIT:
|
||||||
ret = sys_wait((pid_t)arg1, (int*)arg2, (int)arg3);
|
ret = sys_wait((pid_t)arg1, (int*)arg2, (int)arg3);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -77,12 +77,27 @@ long syscall(long syscall, ...)
|
||||||
ret = Kernel::syscall(SYS_OPEN, (uintptr_t)path, oflags);
|
ret = Kernel::syscall(SYS_OPEN, (uintptr_t)path, oflags);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case SYS_OPENAT:
|
||||||
|
{
|
||||||
|
int fd = va_arg(args, int);
|
||||||
|
const char* path = va_arg(args, const char*);
|
||||||
|
int oflags = va_arg(args, int);
|
||||||
|
ret = Kernel::syscall(SYS_OPENAT, fd, (uintptr_t)path, oflags);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case SYS_ALLOC:
|
case SYS_ALLOC:
|
||||||
{
|
{
|
||||||
size_t bytes = va_arg(args, size_t);
|
size_t bytes = va_arg(args, size_t);
|
||||||
ret = Kernel::syscall(SYS_ALLOC, bytes);
|
ret = Kernel::syscall(SYS_ALLOC, bytes);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case SYS_REALLOC:
|
||||||
|
{
|
||||||
|
void* ptr = va_arg(args, void*);
|
||||||
|
size_t size = va_arg(args, size_t);
|
||||||
|
ret = Kernel::syscall(SYS_REALLOC, (uintptr_t)ptr, size);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case SYS_FREE:
|
case SYS_FREE:
|
||||||
{
|
{
|
||||||
void* ptr = va_arg(args, void*);
|
void* ptr = va_arg(args, void*);
|
||||||
|
@ -120,12 +135,6 @@ long syscall(long syscall, ...)
|
||||||
ret = Kernel::syscall(SYS_FORK);
|
ret = Kernel::syscall(SYS_FORK);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SYS_SLEEP:
|
|
||||||
{
|
|
||||||
unsigned int seconds = va_arg(args, unsigned int);
|
|
||||||
ret = Kernel::syscall(SYS_SLEEP, seconds);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case SYS_EXEC:
|
case SYS_EXEC:
|
||||||
{
|
{
|
||||||
const char* pathname = va_arg(args, const char*);
|
const char* pathname = va_arg(args, const char*);
|
||||||
|
@ -134,11 +143,10 @@ long syscall(long syscall, ...)
|
||||||
ret = Kernel::syscall(SYS_EXEC, (uintptr_t)pathname, (uintptr_t)argv, (uintptr_t)envp);
|
ret = Kernel::syscall(SYS_EXEC, (uintptr_t)pathname, (uintptr_t)argv, (uintptr_t)envp);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SYS_REALLOC:
|
case SYS_SLEEP:
|
||||||
{
|
{
|
||||||
void* ptr = va_arg(args, void*);
|
unsigned int seconds = va_arg(args, unsigned int);
|
||||||
size_t size = va_arg(args, size_t);
|
ret = Kernel::syscall(SYS_SLEEP, seconds);
|
||||||
ret = Kernel::syscall(SYS_REALLOC, (uintptr_t)ptr, size);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SYS_WAIT:
|
case SYS_WAIT:
|
||||||
|
|
Loading…
Reference in New Issue