1 /* Manage TLS descriptors. AArch64 version. 2 3 Copyright (C) 2011-2022 Free Software Foundation, Inc. 4 5 This file is part of the GNU C Library. 6 7 The GNU C Library is free software; you can redistribute it and/or 8 modify it under the terms of the GNU Lesser General Public 9 License as published by the Free Software Foundation; either 10 version 2.1 of the License, or (at your option) any later version. 11 12 The GNU C Library is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 Lesser General Public License for more details. 16 17 You should have received a copy of the GNU Lesser General Public 18 License along with the GNU C Library; if not, see 19 <https://www.gnu.org/licenses/>. */ 20 21 #include <ldsodefs.h> 22 #include <tls.h> 23 #include <dl-tlsdesc.h> 24 #include <dl-unmap-segments.h> 25 #include <tlsdeschtab.h> 26 27 /* Unmap the dynamic object, but also release its TLS descriptor table 28 if there is one. */ 29 30 void _dl_unmap(struct link_map * map)31_dl_unmap (struct link_map *map) 32 { 33 _dl_unmap_segments (map); 34 35 #ifdef SHARED 36 if (map->l_mach.tlsdesc_table) 37 htab_delete (map->l_mach.tlsdesc_table); 38 #endif 39 } 40