00001 00009 /* Definition for thread-local data handling. nptl/i386 version. 00010 Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 00011 This file is part of the GNU C Library. 00012 00013 The GNU C Library is free software; you can redistribute it and/or 00014 modify it under the terms of the GNU Lesser General Public 00015 License as published by the Free Software Foundation; either 00016 version 2.1 of the License, or (at your option) any later version. 00017 00018 The GNU C Library is distributed in the hope that it will be useful, 00019 but WITHOUT ANY WARRANTY; without even the implied warranty of 00020 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00021 Lesser General Public License for more details. 00022 00023 You should have received a copy of the GNU Lesser General Public 00024 License along with the GNU C Library; if not, write to the Free 00025 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 00026 02111-1307 USA. */ 00027 00028 #ifndef _TXC_TLS_SIMPLE_H 00029 #define _TXC_TLS_SIMPLE_H 1 00030 00031 //#include <dl-sysdep.h> 00032 #ifndef __ASSEMBLER__ 00033 # include <stdbool.h> 00034 # include <stddef.h> 00035 # include <stdint.h> 00036 # include <stdlib.h> 00037 00038 00039 /* Type for the dtv. */ 00040 typedef union dtv 00041 { 00042 size_t counter; 00043 struct 00044 { 00045 void *val; 00046 bool is_static; 00047 } pointer; 00048 } dtv_t; 00049 00050 00051 typedef struct 00052 { 00053 void *tcb; /* Pointer to the TCB. Not necessarily the 00054 thread descriptor used by libpthread. */ 00055 dtv_t *dtv; 00056 void *self; /* Pointer to the thread descriptor. */ 00057 int multiple_threads; 00058 uintptr_t sysinfo; 00059 uintptr_t stack_guard; 00060 uintptr_t pointer_guard; 00061 int gscope_flag; 00062 } tcbhead_t; 00063 00064 # define TLS_MULTIPLE_THREADS_IN_TCB 1 00065 00066 #else /* __ASSEMBLER__ */ 00067 # include <tcb-offsets.h> 00068 #endif 00069 00070 #endif /* _TXC_TLS_SIMPLE_H */