Back to index

glibc  2.9
Functions
tlsdesc.c File Reference
#include <link.h>
#include <ldsodefs.h>
#include <elf/dynamic-link.h>
#include <tls.h>
#include <dl-tlsdesc.h>
#include <tlsdeschtab.h>

Go to the source code of this file.

Functions

void __attribute__ ((regparm(3)))
void internal_function _dl_unmap (struct link_map *map)

Function Documentation

void __attribute__ ( (regparm(3))  )

Definition at line 40 of file tlsdesc.c.

{
  ptrdiff_t addend = (ptrdiff_t) td->arg;

  if (_dl_tlsdesc_resolve_early_return_p (td, __builtin_return_address (0)
                                     - entry_check_offset))
    return;

#ifndef SHARED
  CHECK_STATIC_TLS (l, l);
#else
  if (!TRY_STATIC_TLS (l, l))
    {
      td->arg = _dl_make_tlsdesc_dynamic (l, addend);
      td->entry = _dl_tlsdesc_dynamic;
    }
  else
#endif
    {
      td->arg = (void*) (addend - l->l_tls_offset);
      td->entry = _dl_tlsdesc_return;
    }

  _dl_tlsdesc_wake_up_held_fixups ();
}

Here is the call graph for this function:

void internal_function _dl_unmap ( struct link_map map)

Definition at line 260 of file tlsdesc.c.

{
  __munmap ((void *) (map)->l_map_start,
           (map)->l_map_end - (map)->l_map_start);

#if SHARED
  if (map->l_mach.tlsdesc_table)
    htab_delete (map->l_mach.tlsdesc_table);
#endif
}

Here is the call graph for this function: