Lines Matching refs:map
152 if (runp->slotinfo[result - disp].map == NULL) in _dl_assign_tls_modid()
162 atomic_store_relaxed (&runp->slotinfo[result - disp].map, l); in _dl_assign_tls_modid()
208 if (runp->slotinfo[i].map != NULL) in _dl_count_modids()
266 for (size_t cnt = 0; slotinfo[cnt].map != NULL; ++cnt) in _dl_determine_tlsoffset()
270 size_t firstbyte = (-slotinfo[cnt].map->l_tls_firstbyte_offset in _dl_determine_tlsoffset()
271 & (slotinfo[cnt].map->l_tls_align - 1)); in _dl_determine_tlsoffset()
273 max_align = MAX (max_align, slotinfo[cnt].map->l_tls_align); in _dl_determine_tlsoffset()
275 if (freebottom - freetop >= slotinfo[cnt].map->l_tls_blocksize) in _dl_determine_tlsoffset()
277 off = roundup (freetop + slotinfo[cnt].map->l_tls_blocksize in _dl_determine_tlsoffset()
278 - firstbyte, slotinfo[cnt].map->l_tls_align) in _dl_determine_tlsoffset()
286 slotinfo[cnt].map->l_tls_offset = off; in _dl_determine_tlsoffset()
291 off = roundup (offset + slotinfo[cnt].map->l_tls_blocksize - firstbyte, in _dl_determine_tlsoffset()
292 slotinfo[cnt].map->l_tls_align) + firstbyte; in _dl_determine_tlsoffset()
293 if (off > offset + slotinfo[cnt].map->l_tls_blocksize in _dl_determine_tlsoffset()
297 freebottom = off - slotinfo[cnt].map->l_tls_blocksize; in _dl_determine_tlsoffset()
303 slotinfo[cnt].map->l_tls_offset = off; in _dl_determine_tlsoffset()
314 for (size_t cnt = 0; slotinfo[cnt].map != NULL; ++cnt) in _dl_determine_tlsoffset()
318 size_t firstbyte = (-slotinfo[cnt].map->l_tls_firstbyte_offset in _dl_determine_tlsoffset()
319 & (slotinfo[cnt].map->l_tls_align - 1)); in _dl_determine_tlsoffset()
321 max_align = MAX (max_align, slotinfo[cnt].map->l_tls_align); in _dl_determine_tlsoffset()
323 if (slotinfo[cnt].map->l_tls_blocksize <= freetop - freebottom) in _dl_determine_tlsoffset()
325 off = roundup (freebottom, slotinfo[cnt].map->l_tls_align); in _dl_determine_tlsoffset()
327 off += slotinfo[cnt].map->l_tls_align; in _dl_determine_tlsoffset()
328 if (off + slotinfo[cnt].map->l_tls_blocksize - firstbyte <= freetop) in _dl_determine_tlsoffset()
330 slotinfo[cnt].map->l_tls_offset = off - firstbyte; in _dl_determine_tlsoffset()
331 freebottom = (off + slotinfo[cnt].map->l_tls_blocksize in _dl_determine_tlsoffset()
337 off = roundup (offset, slotinfo[cnt].map->l_tls_align); in _dl_determine_tlsoffset()
339 off += slotinfo[cnt].map->l_tls_align; in _dl_determine_tlsoffset()
341 slotinfo[cnt].map->l_tls_offset = off - firstbyte; in _dl_determine_tlsoffset()
348 offset = off + slotinfo[cnt].map->l_tls_blocksize - firstbyte; in _dl_determine_tlsoffset()
557 struct link_map *map; in _dl_allocate_tls_init() local
564 map = listp->slotinfo[cnt].map; in _dl_allocate_tls_init()
565 if (map == NULL) in _dl_allocate_tls_init()
574 dtv[map->l_tls_modid].pointer.val = TLS_DTV_UNALLOCATED; in _dl_allocate_tls_init()
575 dtv[map->l_tls_modid].pointer.to_free = NULL; in _dl_allocate_tls_init()
577 if (map->l_tls_offset == NO_TLS_OFFSET in _dl_allocate_tls_init()
578 || map->l_tls_offset == FORCED_DYNAMIC_TLS_OFFSET) in _dl_allocate_tls_init()
581 assert (map->l_tls_modid == total + cnt); in _dl_allocate_tls_init()
582 assert (map->l_tls_blocksize >= map->l_tls_initimage_size); in _dl_allocate_tls_init()
584 assert ((size_t) map->l_tls_offset >= map->l_tls_blocksize); in _dl_allocate_tls_init()
585 dest = (char *) result - map->l_tls_offset; in _dl_allocate_tls_init()
587 dest = (char *) result + map->l_tls_offset; in _dl_allocate_tls_init()
594 dtv[map->l_tls_modid].pointer.val = dest; in _dl_allocate_tls_init()
597 memset (__mempcpy (dest, map->l_tls_initimage, in _dl_allocate_tls_init()
598 map->l_tls_initimage_size), '\0', in _dl_allocate_tls_init()
599 map->l_tls_blocksize - map->l_tls_initimage_size); in _dl_allocate_tls_init()
696 allocate_and_init (struct link_map *map) in allocate_and_init() argument
699 (map->l_tls_align, map->l_tls_blocksize); in allocate_and_init()
704 memset (__mempcpy (result.val, map->l_tls_initimage, in allocate_and_init()
705 map->l_tls_initimage_size), in allocate_and_init()
706 '\0', map->l_tls_blocksize - map->l_tls_initimage_size); in allocate_and_init()
792 struct link_map *map in _dl_update_slotinfo() local
793 = atomic_load_relaxed (&listp->slotinfo[cnt].map); in _dl_update_slotinfo()
797 if (map == NULL) in _dl_update_slotinfo()
819 the_map = map; in _dl_update_slotinfo()
860 the_map = listp->slotinfo[idx].map; in tls_get_addr_tail()
1055 atomic_store_relaxed (&listp->slotinfo[idx].map, l); in _dl_add_to_slotinfo()
1063 init_one_static_tls (struct pthread *curp, struct link_map *map) in init_one_static_tls() argument
1066 void *dest = (char *) curp - map->l_tls_offset; in init_one_static_tls()
1068 void *dest = (char *) curp + map->l_tls_offset + TLS_PRE_TCB_SIZE; in init_one_static_tls()
1074 memset (__mempcpy (dest, map->l_tls_initimage, map->l_tls_initimage_size), in init_one_static_tls()
1075 '\0', map->l_tls_blocksize - map->l_tls_initimage_size); in init_one_static_tls()
1079 _dl_init_static_tls (struct link_map *map) in _dl_init_static_tls() argument
1086 init_one_static_tls (list_entry (runp, struct pthread, list), map); in _dl_init_static_tls()
1090 init_one_static_tls (list_entry (runp, struct pthread, list), map); in _dl_init_static_tls()