From 642b5fb0007b64c77d186fcb018d571152ee1d47 Mon Sep 17 00:00:00 2001 From: dzwdz Date: Mon, 14 Aug 2023 18:51:07 +0200 Subject: reorganization: first steps --- src/user/lib/thread.S | 40 ---------------------------------------- 1 file changed, 40 deletions(-) delete mode 100644 src/user/lib/thread.S (limited to 'src/user/lib/thread.S') diff --git a/src/user/lib/thread.S b/src/user/lib/thread.S deleted file mode 100644 index 2900544..0000000 --- a/src/user/lib/thread.S +++ /dev/null @@ -1,40 +0,0 @@ -#define ASM_FILE 1 -#include -#include - -.section .text -.global thread_creates -.type thread_creates, @function -// void thread_creates(int flags, void (*fn)(void*), void *arg, void *stack); -thread_creates: - push %r12 - push %r13 - push %r14 - - /* save fn, arg, stack */ - mov %rsi, %r12 - mov %rdx, %r13 - mov %rcx, %r14 - - mov %rdi, %rsi - or $(FORK_SHAREMEM | FORK_SHAREHANDLE), %rsi - mov $_SYS_FORK, %rdi - xor %rdx, %rdx - syscall - - test %rax, %rax - jz 1f - /* in parent, return normally */ - pop %r14 - pop %r13 - pop %r12 - ret -1: /* in child */ - mov %r14, %rsp - mov %r13, %rdi - call *%r12 - - mov $_SYS_EXIT, %rdi - xor %rsi, %rsi - syscall - hlt /* if all else fails... */ -- cgit v1.2.3