Kernel: We can create basic userspace processes

These are still allocated on the kernel memory
This commit is contained in:
Bananymous
2023-04-12 17:51:36 +03:00
parent 34358b8471
commit 8ee63f8264
10 changed files with 121 additions and 82 deletions

View File

@@ -1,4 +1,20 @@
#pragma once
#define SYS_TEST 0
#define SYS_PUTC 1
#define SYS_EXIT 1
#define SYS_READ 2
#define SYS_WRITE 3
#include <stdint.h>
namespace Kernel
{
template<typename T1 = void*, typename T2 = void*, typename T3 = void*>
inline int syscall(int syscall, T1 arg1 = nullptr, T2 arg2 = nullptr, T3 arg3 = nullptr)
{
int ret;
asm volatile("int $0x80" : "=a"(ret) : "a"(syscall), "b"((uintptr_t)arg1), "c"((uintptr_t)arg2), "d"((uintptr_t)arg3) : "memory");
return ret;
}
}