HelenOS sources
rtld 64 uspace/lib/c/generic/rtld/module.c errno_t module_create_entrypoint(elf_finfo_t *p_info, rtld_t *rtld, module_t **rmodule)
rtld 88 uspace/lib/c/generic/rtld/module.c module->id = rtld_get_next_id(rtld);
rtld 91 uspace/lib/c/generic/rtld/module.c module->rtld = rtld;
rtld 103 uspace/lib/c/generic/rtld/module.c list_append(&module->modules_link, &rtld->modules);
rtld 158 uspace/lib/c/generic/rtld/module.c module_t *module_find(rtld_t *rtld, const char *name)
rtld 173 uspace/lib/c/generic/rtld/module.c list_foreach(rtld->modules, modules_link, module_t, m) {
rtld 189 uspace/lib/c/generic/rtld/module.c module_t *module_load(rtld_t *rtld, const char *name, mlflags_t flags)
rtld 202 uspace/lib/c/generic/rtld/module.c m->rtld = rtld;
rtld 203 uspace/lib/c/generic/rtld/module.c m->id = rtld_get_next_id(rtld);
rtld 243 uspace/lib/c/generic/rtld/module.c list_append(&m->modules_link, &rtld->modules);
rtld 309 uspace/lib/c/generic/rtld/module.c dm = module_find(m->rtld, dep_name);
rtld 311 uspace/lib/c/generic/rtld/module.c dm = module_load(m->rtld, dep_name, flags);
rtld 332 uspace/lib/c/generic/rtld/module.c module_t *module_by_id(rtld_t *rtld, unsigned long id)
rtld 334 uspace/lib/c/generic/rtld/module.c list_foreach(rtld->modules, modules_link, module_t, m) {
rtld 349 uspace/lib/c/generic/rtld/module.c void modules_process_relocs(rtld_t *rtld, module_t *start)
rtld 351 uspace/lib/c/generic/rtld/module.c list_foreach(rtld->modules, modules_link, module_t, m) {
rtld 356 uspace/lib/c/generic/rtld/module.c if (m != &rtld->rtld && m != start) {
rtld 371 uspace/lib/c/generic/rtld/module.c void modules_process_tls(rtld_t *rtld)
rtld 374 uspace/lib/c/generic/rtld/module.c rtld->tls_size = sizeof(tcb_t);
rtld 375 uspace/lib/c/generic/rtld/module.c rtld->tls_align = alignof(tcb_t);
rtld 377 uspace/lib/c/generic/rtld/module.c list_foreach(rtld->modules, modules_link, module_t, m) {
rtld 378 uspace/lib/c/generic/rtld/module.c list_append(&m->imodules_link, &rtld->imodules);
rtld 379 uspace/lib/c/generic/rtld/module.c rtld->tls_align = max(rtld->tls_align, m->tls_align);
rtld 381 uspace/lib/c/generic/rtld/module.c rtld->tls_size = ALIGN_UP(rtld->tls_size, m->tls_align);
rtld 382 uspace/lib/c/generic/rtld/module.c m->tpoff = rtld->tls_size;
rtld 383 uspace/lib/c/generic/rtld/module.c rtld->tls_size += m->tdata_size + m->tbss_size;
rtld 387 uspace/lib/c/generic/rtld/module.c rtld->tls_size = 0;
rtld 388 uspace/lib/c/generic/rtld/module.c rtld->tls_align = alignof(tcb_t);
rtld 390 uspace/lib/c/generic/rtld/module.c list_foreach(rtld->modules, modules_link, module_t, m) {
rtld 391 uspace/lib/c/generic/rtld/module.c list_append(&m->imodules_link, &rtld->imodules);
rtld 392 uspace/lib/c/generic/rtld/module.c rtld->tls_align = max(rtld->tls_align, m->tls_align);
rtld 398 uspace/lib/c/generic/rtld/module.c rtld->tls_size += m->tdata_size + m->tbss_size;
rtld 399 uspace/lib/c/generic/rtld/module.c rtld->tls_size = ALIGN_UP(rtld->tls_size, m->tls_align);
rtld 400 uspace/lib/c/generic/rtld/module.c m->tpoff = -(ptrdiff_t) rtld->tls_size;
rtld 408 uspace/lib/c/generic/rtld/module.c rtld->tls_size = ALIGN_UP(rtld->tls_size, rtld->tls_align);
rtld 416 uspace/lib/c/generic/rtld/module.c rtld->tls_size += sizeof(tcb_t);
rtld 422 uspace/lib/c/generic/rtld/module.c void modules_untag(rtld_t *rtld)
rtld 424 uspace/lib/c/generic/rtld/module.c list_foreach(rtld->modules, modules_link, module_t, m) {
rtld 112 uspace/lib/c/generic/rtld/rtld.c tcb_t *rtld_tls_make(rtld_t *rtld)
rtld 119 uspace/lib/c/generic/rtld/rtld.c tcb = tls_alloc_arch(rtld->tls_size, rtld->tls_align);
rtld 124 uspace/lib/c/generic/rtld/rtld.c nmods = list_count(&rtld->imodules);
rtld 143 uspace/lib/c/generic/rtld/rtld.c list_foreach(rtld->imodules, imodules_link, module_t, m) {
rtld 160 uspace/lib/c/generic/rtld/rtld.c unsigned long rtld_get_next_id(rtld_t *rtld)
rtld 162 uspace/lib/c/generic/rtld/rtld.c return rtld->next_id++;
rtld 174 uspace/lib/c/generic/rtld/rtld.c void *rtld_tls_get_addr(rtld_t *rtld, tcb_t *tcb, unsigned long mod_id,
rtld 196 uspace/lib/c/generic/rtld/rtld.c m = module_by_id(rtld, mod_id);
rtld 140 uspace/lib/c/generic/rtld/symbol.c modules_untag(start->rtld);
rtld 239 uspace/lib/c/generic/rtld/symbol.c list_foreach(origin->rtld->modules, modules_link, module_t, m) {
rtld 285 uspace/lib/c/generic/rtld/symbol.c return rtld_tls_get_addr(m->rtld, tcb, m->id, sym->st_value);
rtld 44 uspace/lib/c/include/elf/elf_load.h struct rtld *env;
rtld 68 uspace/lib/c/include/types/rtld/module.h struct rtld *rtld;
rtld 47 uspace/lib/c/include/types/rtld/rtld.h module_t rtld;
rtld 44 uspace/lib/posix/include/libc/elf/elf_load.h struct rtld *env;
rtld 68 uspace/lib/posix/include/libc/types/rtld/module.h struct rtld *rtld;
rtld 47 uspace/lib/posix/include/libc/types/rtld/rtld.h module_t rtld;
HelenOS homepage, sources at GitHub