| #define SHARED /* needed to get struct rtld_global from <ldsodefs.h> */ |
| #include <sysdep.h> |
| #include <tls.h> |
| #include <ldsodefs.h> |
| |
| -- |
| |
| -- Abuse tls.h macros to derive offsets relative to the thread register. |
| #define thread_offsetof(mem) (long)(offsetof(struct pthread, mem) - TLS_TCB_OFFSET - TLS_PRE_TCB_SIZE) |
| |
| MULTIPLE_THREADS_OFFSET thread_offsetof (header.multiple_threads) |
| PID_OFFSET thread_offsetof (pid) |
| TID_OFFSET thread_offsetof (tid) |
| POINTER_GUARD (offsetof (tcbhead_t, pointer_guard) - TLS_TCB_OFFSET - sizeof (tcbhead_t)) |
| FEEDBACK_DATA_OFFSET (offsetof (tcbhead_t, feedback_data) - TLS_TCB_OFFSET - sizeof (tcbhead_t)) |
| DTV_OFFSET (offsetof (tcbhead_t, dtv) - TLS_TCB_OFFSET - sizeof (tcbhead_t)) |
| TLS_GENERATION_OFFSET offsetof (struct rtld_global, _dl_tls_generation) |