#include <setjmp.h>
#include <string.h>
#include <time.h>
+#include <locale.h>
#include "libc.h"
#include "syscall.h"
#include "atomic.h"
} robust_list;
int unblock_cancel;
int delete_timer;
+ locale_t locale;
+ int killlock;
};
struct __timer {
#include "pthread_arch.h"
-#define SIGCANCEL 32
-#define SIGSYSCALL 33
-#define SIGTIMER 34
+#define SIGTIMER 32
+#define SIGCANCEL 33
+#define SIGSYNCCALL 34
+
+#define SIGPT_SET ((sigset_t *)(unsigned long [1+(sizeof(long)==4)]){ \
+ [sizeof(long)==4] = 3UL<<(32*(sizeof(long)>4)) })
+#define SIGTIMER_SET ((sigset_t *)(unsigned long [1+(sizeof(long)==4)]){ \
+ 0x80000000 })
+
+pthread_t __pthread_self_init(void);
int __set_thread_area(void *);
int __libc_sigaction(int, const struct sigaction *, struct sigaction *);
void __lock(volatile int *);
void __unmapself(void *, size_t);
-int __timedwait(volatile int *, int, clockid_t, const struct timespec *, int);
-int __timedwait_cp(volatile int *, int, clockid_t, const struct timespec *, int);
+int __timedwait(volatile int *, int, clockid_t, const struct timespec *, void (*)(void *), void *, int);
void __wait(volatile int *, volatile int *, int, int);
void __wake(volatile int *, int, int);
-void __rsyscall_lock();
-void __rsyscall_unlock();
+void __synccall_lock();
+void __synccall_unlock();
#define DEFAULT_STACK_SIZE (16384-PAGE_SIZE)
#define DEFAULT_GUARD_SIZE PAGE_SIZE