]> git.ipfire.org Git - thirdparty/glibc.git/blame - nptl_db/structs.def
nptl: Move __pthread_keys global variable into libc
[thirdparty/glibc.git] / nptl_db / structs.def
CommitLineData
7f08f55a 1/* List of types and symbols in libpthread examined by libthread_db.
2b778ceb 2 Copyright (C) 2003-2021 Free Software Foundation, Inc.
7f08f55a
RM
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
59ba27a6 16 License along with the GNU C Library; if not, see
5a82c748 17 <https://www.gnu.org/licenses/>. */
7f08f55a
RM
18
19#ifndef DB_STRUCT_ARRAY_FIELD
20# define DB_STRUCT_ARRAY_FIELD(type, field) DB_STRUCT_FIELD (type, field)
21# define DB_ARRAY_VARIABLE(name) DB_VARIABLE (name)
22# define STRUCTS_DEF_DEFAULTS 1
23#endif
24
f8aeae34
AO
25#ifndef DB_RTLD_VARIABLE
26# define DB_RTLD_VARIABLE(name) DB_VARIABLE (name)
27#endif
28
7a7229de
FW
29/* DB_MAIN_VARIABLE and DB_MAIN_ARRAY_VARIABLE are not covered by the
30 libpthread symbol check in db-symbols.awk. */
f8aeae34
AO
31#ifndef DB_MAIN_VARIABLE
32# define DB_MAIN_VARIABLE(name) DB_VARIABLE (name)
33#endif
7a7229de
FW
34#ifndef DB_MAIN_ARRAY_VARIABLE
35# define DB_MAIN_ARRAY_VARIABLE(name) DB_ARRAY_VARIABLE (name)
36#endif
f8aeae34
AO
37
38#ifndef DB_RTLD_GLOBAL_FIELD
39# if !IS_IN (libpthread)
40# define DB_RTLD_GLOBAL_FIELD(field) \
41 DB_STRUCT_FIELD (rtld_global, _##field) \
42 DB_MAIN_VARIABLE (_##field)
43# elif defined SHARED
44# define DB_RTLD_GLOBAL_FIELD(field) \
45 DB_STRUCT_FIELD (rtld_global, _##field)
46# else
47# define DB_RTLD_GLOBAL_FIELD(field) \
48 DB_MAIN_VARIABLE (_##field)
49# endif
50#endif /* DB_RTLD_GLOBAL_FIELD */
51
7f08f55a
RM
52DB_STRUCT (pthread)
53DB_STRUCT_FIELD (pthread, list)
54DB_STRUCT_FIELD (pthread, report_events)
55DB_STRUCT_FIELD (pthread, tid)
56DB_STRUCT_FIELD (pthread, start_routine)
57DB_STRUCT_FIELD (pthread, cancelhandling)
58DB_STRUCT_FIELD (pthread, schedpolicy)
59DB_STRUCT_FIELD (pthread, schedparam_sched_priority)
60DB_STRUCT_FIELD (pthread, specific)
61DB_STRUCT_FIELD (pthread, eventbuf)
62DB_STRUCT_FIELD (pthread, eventbuf_eventmask)
63DB_STRUCT_ARRAY_FIELD (pthread, eventbuf_eventmask_event_bits)
64DB_STRUCT_FIELD (pthread, nextevent)
65
66DB_STRUCT (list_t)
67DB_STRUCT_FIELD (list_t, next)
68DB_STRUCT_FIELD (list_t, prev)
69
70DB_STRUCT (td_thr_events_t)
71DB_STRUCT_ARRAY_FIELD (td_thr_events_t, event_bits)
72
73DB_STRUCT (td_eventbuf_t)
74DB_STRUCT_FIELD (td_eventbuf_t, eventnum)
75DB_STRUCT_FIELD (td_eventbuf_t, eventdata)
76
7f08f55a 77DB_SYMBOL (nptl_version)
d43147cd
RM
78DB_FUNCTION (__nptl_create_event)
79DB_FUNCTION (__nptl_death_event)
7f08f55a 80DB_SYMBOL (__nptl_threads_events)
43fe356d 81DB_MAIN_VARIABLE (__nptl_nthreads)
7f08f55a 82DB_VARIABLE (__nptl_last_event)
7d9d8bd1 83DB_VARIABLE (__nptl_initial_report_events)
7f08f55a 84
a91bf4e0 85DB_MAIN_ARRAY_VARIABLE (__pthread_keys)
7f08f55a
RM
86DB_STRUCT (pthread_key_struct)
87DB_STRUCT_FIELD (pthread_key_struct, seq)
88DB_STRUCT_FIELD (pthread_key_struct, destr)
89
90DB_STRUCT (pthread_key_data)
91DB_STRUCT_FIELD (pthread_key_data, seq)
92DB_STRUCT_FIELD (pthread_key_data, data)
93DB_STRUCT (pthread_key_data_level2)
94DB_STRUCT_ARRAY_FIELD (pthread_key_data_level2, data)
95
7f08f55a 96DB_STRUCT_FIELD (link_map, l_tls_modid)
f8aeae34 97DB_STRUCT_FIELD (link_map, l_tls_offset)
7f08f55a 98
7f08f55a 99DB_STRUCT_ARRAY_FIELD (dtv, dtv)
11bf311e 100#define pointer_val pointer.val /* Field of anonymous struct in dtv_t. */
0fdd44dc 101DB_STRUCT_FIELD (dtv_t, pointer_val)
f8aeae34 102DB_STRUCT_FIELD (dtv_t, counter)
ce9f10f7 103#if !IS_IN (libpthread) || TLS_TCB_AT_TP
7f08f55a
RM
104DB_STRUCT_FIELD (pthread, dtvp)
105#endif
106
f8aeae34 107#if !(IS_IN (libpthread) && !defined SHARED)
a64afc22 108DB_VARIABLE (__nptl_rtld_global)
f8aeae34
AO
109#endif
110DB_RTLD_GLOBAL_FIELD (dl_tls_dtv_slotinfo_list)
1daccf40
FW
111DB_RTLD_GLOBAL_FIELD (dl_stack_user)
112DB_RTLD_GLOBAL_FIELD (dl_stack_used)
f8aeae34
AO
113
114DB_STRUCT (dtv_slotinfo_list)
115DB_STRUCT_FIELD (dtv_slotinfo_list, len)
116DB_STRUCT_FIELD (dtv_slotinfo_list, next)
cba932a5 117DB_STRUCT_FLEXIBLE_ARRAY (dtv_slotinfo_list, slotinfo)
f8aeae34
AO
118
119DB_STRUCT (dtv_slotinfo)
120DB_STRUCT_FIELD (dtv_slotinfo, gen)
121DB_STRUCT_FIELD (dtv_slotinfo, map)
122
7f08f55a
RM
123#ifdef STRUCTS_DEF_DEFAULTS
124# undef DB_STRUCT_ARRAY_FIELD
125# undef DB_ARRAY_VARIABLE
126# undef STRUCTS_DEF_DEFAULTS
127#endif