20#ifndef _PTHREAD_SYSCALLS_H
21#define _PTHREAD_SYSCALLS_H
23#include "pedigree/kernel/process/Semaphore.h"
24#include "pedigree/kernel/process/Thread.h"
25#include "pedigree/kernel/processor/Processor.h"
26#include "pedigree/kernel/processor/VirtualAddressSpace.h"
27#include "pedigree/kernel/processor/state.h"
29#include "PosixSubsystem.h"
33void pedigree_init_pthreads();
37void* posix_pedigree_create_waiter();
38int posix_pedigree_thread_wait_for(
void*
waiter);
39int posix_pedigree_thread_trigger(
void*
waiter);
40void posix_pedigree_destroy_waiter(
void*
waiter);
42int posix_futex(
int* uaddr,
int futex_op,
int val, uintptr_t argument4,
int* uaddr2,
int val3);
43int posix_futex_wake(
Process* process,
int* uaddr,
int count,
bool privateFutex =
true);
44void posix_futex_clock_changed();
46void posix_robust_list_exit(
Thread* thread);
47bool posix_clear_child_tid(
Process* process, uintptr_t address);
49pid_t posix_gettid(
bool linuxAbi =
false);
50pid_t posix_set_tid_address(
int* tidptr,
bool linuxAbi =
false);