1/* List of types and symbols in libc examined by libthread_db. 2 Copyright (C) 2003-2022 Free Software Foundation, Inc. 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 16 License along with the GNU C Library; if not, see 17 <https://www.gnu.org/licenses/>. */ 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 25/* DB_MAIN_VARIABLE, DB_MAIN_SYMBOL, DB_MAIN_ARRAY_VARIABLE are not 26 covered by the libc symbol check in db-symbols.awk. */ 27#ifndef DB_MAIN_VARIABLE 28# define DB_MAIN_VARIABLE(name) DB_VARIABLE (name) 29#endif 30#ifndef DB_MAIN_SYMBOL 31# define DB_MAIN_SYMBOL(name) DB_SYMBOL (name) 32#endif 33#ifndef DB_MAIN_ARRAY_VARIABLE 34# define DB_MAIN_ARRAY_VARIABLE(name) DB_ARRAY_VARIABLE (name) 35#endif 36 37#ifndef DB_RTLD_GLOBAL_FIELD 38# if !IS_IN (libc) 39# define DB_RTLD_GLOBAL_FIELD(field) \ 40 DB_STRUCT_FIELD (rtld_global, _##field) \ 41 DB_MAIN_VARIABLE (_##field) 42# elif defined SHARED 43# define DB_RTLD_GLOBAL_FIELD(field) \ 44 DB_STRUCT_FIELD (rtld_global, _##field) 45# else 46# define DB_RTLD_GLOBAL_FIELD(field) \ 47 DB_MAIN_VARIABLE (_##field) 48# endif 49#endif /* DB_RTLD_GLOBAL_FIELD */ 50 51DB_STRUCT (pthread) 52DB_STRUCT_FIELD (pthread, list) 53DB_STRUCT_FIELD (pthread, report_events) 54DB_STRUCT_FIELD (pthread, tid) 55DB_STRUCT_FIELD (pthread, start_routine) 56DB_STRUCT_FIELD (pthread, cancelhandling) 57DB_STRUCT_FIELD (pthread, schedpolicy) 58DB_STRUCT_FIELD (pthread, schedparam_sched_priority) 59DB_STRUCT_FIELD (pthread, specific) 60DB_STRUCT_FIELD (pthread, eventbuf) 61DB_STRUCT_FIELD (pthread, eventbuf_eventmask) 62DB_STRUCT_ARRAY_FIELD (pthread, eventbuf_eventmask_event_bits) 63DB_STRUCT_FIELD (pthread, nextevent) 64 65DB_STRUCT (list_t) 66DB_STRUCT_FIELD (list_t, next) 67DB_STRUCT_FIELD (list_t, prev) 68 69DB_STRUCT (td_thr_events_t) 70DB_STRUCT_ARRAY_FIELD (td_thr_events_t, event_bits) 71 72DB_STRUCT (td_eventbuf_t) 73DB_STRUCT_FIELD (td_eventbuf_t, eventnum) 74DB_STRUCT_FIELD (td_eventbuf_t, eventdata) 75 76DB_SYMBOL (__nptl_version) 77DB_SYMBOL (__nptl_create_event) 78DB_SYMBOL (__nptl_death_event) 79DB_SYMBOL (__nptl_threads_events) 80DB_VARIABLE (__nptl_nthreads) 81DB_VARIABLE (__nptl_last_event) 82DB_MAIN_VARIABLE (__nptl_initial_report_events) 83 84DB_ARRAY_VARIABLE (__pthread_keys) 85DB_STRUCT (pthread_key_struct) 86DB_STRUCT_FIELD (pthread_key_struct, seq) 87DB_STRUCT_FIELD (pthread_key_struct, destr) 88 89DB_STRUCT (pthread_key_data) 90DB_STRUCT_FIELD (pthread_key_data, seq) 91DB_STRUCT_FIELD (pthread_key_data, data) 92DB_STRUCT (pthread_key_data_level2) 93DB_STRUCT_ARRAY_FIELD (pthread_key_data_level2, data) 94 95DB_STRUCT_FIELD (link_map, l_tls_modid) 96DB_STRUCT_FIELD (link_map, l_tls_offset) 97 98DB_STRUCT_ARRAY_FIELD (dtv, dtv) 99#define pointer_val pointer.val /* Field of anonymous struct in dtv_t. */ 100DB_STRUCT_FIELD (dtv_t, pointer_val) 101DB_STRUCT_FIELD (dtv_t, counter) 102#if !IS_IN (libc) || TLS_TCB_AT_TP 103DB_STRUCT_FIELD (pthread, dtvp) 104#endif 105 106#if !(IS_IN (libc) && !defined SHARED) 107DB_VARIABLE (__nptl_rtld_global) 108#endif 109DB_RTLD_GLOBAL_FIELD (dl_tls_dtv_slotinfo_list) 110DB_RTLD_GLOBAL_FIELD (dl_stack_user) 111DB_RTLD_GLOBAL_FIELD (dl_stack_used) 112 113DB_STRUCT (dtv_slotinfo_list) 114DB_STRUCT_FIELD (dtv_slotinfo_list, len) 115DB_STRUCT_FIELD (dtv_slotinfo_list, next) 116DB_STRUCT_FLEXIBLE_ARRAY (dtv_slotinfo_list, slotinfo) 117 118DB_STRUCT (dtv_slotinfo) 119DB_STRUCT_FIELD (dtv_slotinfo, gen) 120DB_STRUCT_FIELD (dtv_slotinfo, map) 121 122#ifdef STRUCTS_DEF_DEFAULTS 123# undef DB_STRUCT_ARRAY_FIELD 124# undef DB_ARRAY_VARIABLE 125# undef STRUCTS_DEF_DEFAULTS 126#endif 127