#include <pthread.h>
#include <tls.h>

RESULT			offsetof (struct pthread, result)
TID			offsetof (struct pthread, tid)
CANCELHANDLING		offsetof (struct pthread, cancelhandling)
CLEANUP_JMP_BUF		offsetof (struct pthread, cleanup_jmp_buf)
MULTIPLE_THREADS_OFFSET	offsetof (struct pthread, header.multiple_threads)
TLS_PRE_TCB_SIZE	sizeof (struct pthread)
MUTEX_FUTEX		offsetof (pthread_mutex_t, __data.__lock)

-- Use a thread_offset when working with asm to make things simpler
-- This way we get the offset of a member in the struct pthread that
-- preceeds the thread pointer (which points to the dtv).
#define thread_offsetof(mem)    (unsigned int)(offsetof(struct pthread, mem) - sizeof(struct pthread))
TID_THREAD_OFFSET		thread_offsetof (tid)
MULTIPLE_THREADS_THREAD_OFFSET	thread_offsetof (header.multiple_threads)
