diff options
Diffstat (limited to 'apps/init/stage1/main.c')
-rw-r--r-- | apps/init/stage1/main.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/apps/init/stage1/main.c b/apps/init/stage1/main.c new file mode 100644 index 0000000..90e663d --- /dev/null +++ b/apps/init/stage1/main.c @@ -0,0 +1,24 @@ +#include "stage1.h" +#include "kprint.h" +#include <kernel/init.h> + +uint8_t *_syscall_payload; +uint8_t _syscall_message; + +void main(void *init_message_ptr) +{ + _syscall_payload = init_message_ptr; + _syscall_message = INIT_OBJECT_MESSAGE; + + kputs("Hello, Userland!\n"); + for(;;); +} + +__attribute__((naked)) +void +_start(void) +{ + __asm__ volatile("\ + popq %rdi; \ + jmp main"); +} |