Include <bits/libc-tsd.h>, not <bits/libc-lock.h>.
[kopensolaris-gnu/glibc.git] / linuxthreads / internals.h
index 0a01b61..9765402 100644 (file)
@@ -16,7 +16,8 @@
 
 /* Includes */
 
-#include <bits/libc-lock.h> /* for _LIBC_TSD_KEY_N */
+#include <bits/libc-tsd.h> /* for _LIBC_TSD_KEY_N */
+#include <limits.h>
 #include <setjmp.h>
 #include <signal.h>
 #include <unistd.h>
 
 #include "pt-machine.h"
 
+#ifndef THREAD_GETMEM
+# define THREAD_GETMEM(descr, member) descr->member
+#endif
+#ifndef THREAD_GETMEM_NC
+# define THREAD_GETMEM_NC(descr, member) descr->member
+#endif
+#ifndef THREAD_SETMEM
+# define THREAD_SETMEM(descr, member, value) descr->member = (value)
+#endif
+#ifndef THREAD_SETMEM_NC
+# define THREAD_SETMEM_NC(descr, member, value) descr->member = (value)
+#endif
+
 /* Arguments passed to thread creation routine */
 
 struct pthread_start_args {
@@ -86,9 +100,11 @@ struct _pthread_descr_struct {
   struct pthread_start_args p_start_args; /* arguments for thread creation */
   void ** p_specific[PTHREAD_KEY_1STLEVEL_SIZE]; /* thread-specific data */
   void * p_libc_specific[_LIBC_TSD_KEY_N]; /* thread-specific data for libc */
-  int p_userstack;             /* nonzero if the user provided the thread */
+  int p_userstack;             /* nonzero if the user provided the stack */
   void *p_guardaddr;           /* address of guard area or NULL */
   size_t p_guardsize;          /* size of guard area */
+  pthread_descr p_self;                /* Pointer to this structure */
+  int p_nr;                     /* Index of descriptor in __pthread_handles */
 };
 
 /* The type of thread handles. */
@@ -117,7 +133,7 @@ struct pthread_request {
       sigset_t mask;            /*   signal mask */
     } create;
     struct {                    /* For REQ_FREE: */
-      pthread_descr thread;     /*   descriptor of thread to free */
+      pthread_t thread_id;      /*   identifier of thread to free */
     } free;
     struct {                    /* For REQ_PROCESS_EXIT: */
       int code;                 /*   exit status */
@@ -129,16 +145,13 @@ struct pthread_request {
 
 /* Signals used for suspend/restart and for cancellation notification.  */
 
-#ifdef SIGRTMIN
-/* The have real-time signals.  */
 extern int __pthread_sig_restart;
 extern int __pthread_sig_cancel;
-# define PTHREAD_SIG_RESTART __pthread_sig_restart
-# define PTHREAD_SIG_CANCEL __pthread_sig_cancel
-#else
-# define PTHREAD_SIG_RESTART SIGUSR1
-# define PTHREAD_SIG_CANCEL SIGUSR2
-#endif
+
+/* Default signals used if we don't have realtime signals */
+
+#define DEFAULT_SIG_RESTART SIGUSR1
+#define DEFAULT_SIG_CANCEL SIGUSR2
 
 /* Global array of thread handles, used for validating a thread id
    and retrieving the corresponding thread descriptor. Also used for
@@ -171,7 +184,7 @@ extern char *__pthread_initial_thread_bos;
 extern int __pthread_nonstandard_stacks;
 
 /* File descriptor for sending requests to the thread manager.
-   Initially -1, meaning that pthread_initialize must be called. */
+   Initially -1, meaning that __pthread_initialize_manager must be called. */
 
 extern int __pthread_manager_request;