src/xcalls/condvar/tls-simple.h

Go to the documentation of this file.
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 */

Generated on Wed Dec 9 20:32:39 2009 for xCalls by  doxygen 1.4.7