Fixes bug in pop_ros_tf
[akaros.git] / user / parlib / include / glibc-tls.h
1 /* This is just a convenient place to drop some structs needed in
2  * allocate_tls(), since we need to know where tcb and self are, without
3  * cluttering up the main ROS code */
4
5 #ifndef _GLIBC_TLS_H
6 #define _GLIBC_TLS_H
7
8 /* Type for the dtv.  */
9 typedef union dtv
10 {
11   size_t counter;
12   struct
13   {
14     void *val;
15     bool is_static;
16   } pointer;
17 } dtv_t;
18
19
20 typedef struct
21 {
22   void *tcb;            /* Pointer to the TCB.  Not necessarily the
23                            thread descriptor used by libpthread.  */
24   dtv_t *dtv;
25   void *self;           /* Pointer to the thread descriptor.  */
26   int multiple_threads;
27   uintptr_t sysinfo;
28   uintptr_t stack_guard;
29   uintptr_t pointer_guard;
30   int gscope_flag;
31 #ifndef __ASSUME_PRIVATE_FUTEX
32   int private_futex;
33 #else
34   int __unused1;
35 #endif
36   /* Reservation of some values for the TM ABI.  */
37   void *__private_tm[5];
38 } tcbhead_t;
39
40 #endif /* _GLIBC_TLS_H */