.
[kopensolaris-gnu/glibc.git] / nptl_db / thread_db.h
index acb0607..433b54f 100644 (file)
@@ -1,4 +1,5 @@
-/* Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
+/* thread_db.h -- interface to libthread_db.so library for debugging -lpthread
+   Copyright (C) 1999,2001,2002,2003 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -52,8 +53,10 @@ typedef enum
   TD_MALLOC,     /* Out of memory.  */
   TD_PARTIALREG,  /* Not entire register set was read or written.  */
   TD_NOXREGS,    /* X register set not available for given thread.  */
-  TD_NOTALLOC,   /* TLS memory not yet allocated.  */
-  TD_VERSION     /* Version if libpthread and libthread_db do not match.  */
+  TD_TLSDEFER,   /* Thread has not yet allocated TLS for given module.  */
+  TD_NOTALLOC = TD_TLSDEFER,
+  TD_VERSION,    /* Version if libpthread and libthread_db do not match.  */
+  TD_NOTLS       /* There is no TLS segment in the given module.  */
 } td_err_e;
 
 
@@ -275,7 +278,7 @@ typedef struct td_thrinfo
   intptr_t ti_sp;                      /* Unused.  */
   short int ti_flags;                  /* Unused.  */
   int ti_pri;                          /* Thread priority.  */
-  lwpid_t ti_lid;                      /* Unused.  */
+  lwpid_t ti_lid;                      /* Kernel PID for this thread.  */
   sigset_t ti_sigmask;                 /* Signal mask.  */
   unsigned char ti_traceme;            /* Nonzero if event reporting
                                           enabled.  */
@@ -402,10 +405,15 @@ extern td_err_e td_thr_setxregs (const td_thrhandle_t *__th,
                                 const void *__addr);
 
 
+/* Get address of the given module's TLS storage area for the given thread.  */
+extern td_err_e td_thr_tlsbase (const td_thrhandle_t *__th,
+                               unsigned long int __modid,
+                               psaddr_t *__base);
+
 /* Get address of thread local variable.  */
 extern td_err_e td_thr_tls_get_addr (const td_thrhandle_t *__th,
-                                    void *__map_address, size_t __offset,
-                                    void **__address);
+                                    psaddr_t __map_address, size_t __offset,
+                                    psaddr_t *__address);
 
 
 /* Enable reporting for EVENT for thread TH.  */