From 15a971616c3e2f373264d0a2e4cd87aa11042737 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 31 Dec 2008 00:31:38 +0000 Subject: Merge some pre-work from branch, needed by NPTL. --- include/elf.h | 11 +++++++++++ include/fcntl.h | 5 +++++ include/sched.h | 6 ++++++ include/time.h | 2 ++ include/tls.h | 19 +++++++++++++++++++ include/unistd.h | 2 ++ 6 files changed, 45 insertions(+) create mode 100644 include/tls.h (limited to 'include') diff --git a/include/elf.h b/include/elf.h index 53fda0140..4ebe15c23 100644 --- a/include/elf.h +++ b/include/elf.h @@ -2367,6 +2367,9 @@ typedef Elf32_Addr Elf32_Conflict; #define R_ARM_THM_SWI8 14 #define R_ARM_XPC25 15 #define R_ARM_THM_XPC22 16 +#define R_ARM_TLS_DTPMOD32 17 +#define R_ARM_TLS_DTPOFF32 18 +#define R_ARM_TLS_TPOFF32 19 #define R_ARM_COPY 20 /* Copy symbol at runtime */ #define R_ARM_GLOB_DAT 21 /* Create GOT entry */ #define R_ARM_JUMP_SLOT 22 /* Create PLT entry */ @@ -2385,6 +2388,14 @@ typedef Elf32_Addr Elf32_Conflict; #define R_ARM_GNU_VTINHERIT 101 #define R_ARM_THM_PC11 102 /* thumb unconditional branch */ #define R_ARM_THM_PC9 103 /* thumb conditional branch */ +#define R_ARM_TLS_GD32 104 +#define R_ARM_TLS_LDM32 105 +#define R_ARM_TLS_LDO32 106 +#define R_ARM_TLS_IE32 107 +#define R_ARM_TLS_LE32 108 +#define R_ARM_TLS_LDO12 109 +#define R_ARM_TLS_LE12 110 +#define R_ARM_TLS_IE12GP 111 #define R_ARM_RXPC25 249 #define R_ARM_RSBREL32 250 #define R_ARM_THM_RPC22 251 diff --git a/include/fcntl.h b/include/fcntl.h index 4356dad60..8c3768216 100644 --- a/include/fcntl.h +++ b/include/fcntl.h @@ -224,6 +224,11 @@ extern int __REDIRECT (posix_fallocate, (int __fd, __off64_t __offset, # define posix_fallocate posix_fallocate64 # endif # endif + +#ifdef __UCLIBC_HAS_THREADS_NATIVE__ +extern int __fcntl_nocancel (int fd, int cmd, ...); +#endif + # ifdef __USE_LARGEFILE64 extern int posix_fallocate64 (int __fd, __off64_t __offset, __off64_t __len); # endif diff --git a/include/sched.h b/include/sched.h index 5f3bd8fc1..0d110c303 100644 --- a/include/sched.h +++ b/include/sched.h @@ -79,6 +79,12 @@ extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize, /* Get the CPU affinity for a task */ extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize, cpu_set_t *__cpuset) __THROW; + +extern int __clone (int (*__fn) (void *__arg), void *__child_stack, + int __flags, void *__arg, ...); +extern int __clone2 (int (*__fn) (void *__arg), void *__child_stack_base, + size_t __child_stack_size, int __flags, void *__arg, ...); + #endif __END_DECLS diff --git a/include/time.h b/include/time.h index a96fcae04..4f060be03 100644 --- a/include/time.h +++ b/include/time.h @@ -195,6 +195,8 @@ extern double difftime (time_t __time1, time_t __time0) __THROW __attribute__ ((__const__)); #endif /* __UCLIBC_HAS_FLOATS__ */ +#define CLOCK_IDFIELD_SIZE 3 + /* Return the `time_t' representation of TP and normalize TP. */ extern time_t mktime (struct tm *__tp) __THROW; diff --git a/include/tls.h b/include/tls.h new file mode 100644 index 000000000..a1da3827b --- /dev/null +++ b/include/tls.h @@ -0,0 +1,19 @@ +/* This file defines USE___THREAD to 1 or 0 to cut down on the #if mess. */ + +#ifndef _include_tls_h +#define _include_tls_h 1 + +#include_next + +#if USE_TLS && HAVE___THREAD \ + && (!defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt) + +# define USE___THREAD 1 + +#else + +# define USE___THREAD 0 + +#endif + +#endif diff --git a/include/unistd.h b/include/unistd.h index 613fc9d8f..eb0d94595 100644 --- a/include/unistd.h +++ b/include/unistd.h @@ -770,6 +770,8 @@ extern __pid_t vfork (void) __THROW; libc_hidden_proto(vfork) #endif /* Use BSD. */ +/* Special exit function which only terminates the current thread. */ +extern void __exit_thread (int val) __attribute__ ((noreturn)); /* Return the pathname of the terminal FD is open on, or NULL on errors. The returned storage is good only until the next call to this function. */ -- cgit v1.2.3