mittos64-old/libc/thread.c

57 lines
837 B
C

#include "syscalls.h"
#include "syscall_num.h"
#include <pthread.h>
#include <signal.h>
long kernel_syscall(int num, ...);
struct pthread *__pt;
struct pthread *__pthread_self()
{
return __pt;
}
SYSCALL_DEF(set_thread_area)
{
SYSCALL_INIT(void *, ptr);
__pt = ptr;
return 0;
}
SYSCALL_DEF(set_tid_address)
{
SYSCALL_INIT();
return 0;
}
SYSCALL_DEF(rt_sigprocmask)
{
SYSCALL_INIT(int, how, const sigset_t *, set, sigset_t *, oldset);
return 0;
}
SYSCALL_DEF(fork)
{
SYSCALL_INIT();
return kernel_syscall(SYS_FORK);
}
SYSCALL_DEF(gettid)
{
SYSCALL_INIT();
return 0;
}
SYSCALL_DEF(exit_group)
{
SYSCALL_INIT(int, result);
return kernel_syscall(SYS_EXIT, result);
}
SYSCALL_DEF(wait4)
{
SYSCALL_INIT(int, pid, int *, result, int, options, void *, rusage);
return kernel_syscall(SYS_WAIT, result);
}