HelenOS sources
rtld 63 uspace/lib/c/generic/rtld/module.c errno_t module_create_static_exec(rtld_t *rtld, module_t **rmodule)
rtld 73 uspace/lib/c/generic/rtld/module.c module->id = rtld_get_next_id(rtld);
rtld 76 uspace/lib/c/generic/rtld/module.c module->rtld = rtld;
rtld 96 uspace/lib/c/generic/rtld/module.c list_append(&module->modules_link, &rtld->modules);
rtld 151 uspace/lib/c/generic/rtld/module.c module_t *module_find(rtld_t *rtld, const char *name)
rtld 166 uspace/lib/c/generic/rtld/module.c list_foreach(rtld->modules, modules_link, module_t, m) {
rtld 182 uspace/lib/c/generic/rtld/module.c module_t *module_load(rtld_t *rtld, const char *name, mlflags_t flags)
rtld 195 uspace/lib/c/generic/rtld/module.c m->rtld = rtld;
rtld 196 uspace/lib/c/generic/rtld/module.c m->id = rtld_get_next_id(rtld);
rtld 236 uspace/lib/c/generic/rtld/module.c list_append(&m->modules_link, &rtld->modules);
rtld 302 uspace/lib/c/generic/rtld/module.c dm = module_find(m->rtld, dep_name);
rtld 304 uspace/lib/c/generic/rtld/module.c dm = module_load(m->rtld, dep_name, flags);
rtld 325 uspace/lib/c/generic/rtld/module.c module_t *module_by_id(rtld_t *rtld, unsigned long id)
rtld 327 uspace/lib/c/generic/rtld/module.c list_foreach(rtld->modules, modules_link, module_t, m) {
rtld 342 uspace/lib/c/generic/rtld/module.c void modules_process_relocs(rtld_t *rtld, module_t *start)
rtld 344 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 if (m != &rtld->rtld && m != start) {
rtld 364 uspace/lib/c/generic/rtld/module.c void modules_process_tls(rtld_t *rtld)
rtld 367 uspace/lib/c/generic/rtld/module.c rtld->tls_size = sizeof(tcb_t);
rtld 368 uspace/lib/c/generic/rtld/module.c rtld->tls_align = alignof(tcb_t);
rtld 370 uspace/lib/c/generic/rtld/module.c list_foreach(rtld->modules, modules_link, module_t, m) {
rtld 371 uspace/lib/c/generic/rtld/module.c list_append(&m->imodules_link, &rtld->imodules);
rtld 372 uspace/lib/c/generic/rtld/module.c rtld->tls_align = max(rtld->tls_align, m->tls_align);
rtld 374 uspace/lib/c/generic/rtld/module.c rtld->tls_size = ALIGN_UP(rtld->tls_size, m->tls_align);
rtld 375 uspace/lib/c/generic/rtld/module.c m->tpoff = rtld->tls_size;
rtld 376 uspace/lib/c/generic/rtld/module.c rtld->tls_size += m->tdata_size + m->tbss_size;
rtld 380 uspace/lib/c/generic/rtld/module.c rtld->tls_size = 0;
rtld 381 uspace/lib/c/generic/rtld/module.c rtld->tls_align = alignof(tcb_t);
rtld 383 uspace/lib/c/generic/rtld/module.c list_foreach(rtld->modules, modules_link, module_t, m) {
rtld 384 uspace/lib/c/generic/rtld/module.c list_append(&m->imodules_link, &rtld->imodules);
rtld 385 uspace/lib/c/generic/rtld/module.c rtld->tls_align = max(rtld->tls_align, m->tls_align);
rtld 391 uspace/lib/c/generic/rtld/module.c rtld->tls_size += m->tdata_size + m->tbss_size;
rtld 392 uspace/lib/c/generic/rtld/module.c rtld->tls_size = ALIGN_UP(rtld->tls_size, m->tls_align);
rtld 393 uspace/lib/c/generic/rtld/module.c m->tpoff = -(ptrdiff_t) rtld->tls_size;
rtld 403 uspace/lib/c/generic/rtld/module.c rtld->tls_size = ALIGN_UP(rtld->tls_size, rtld->tls_align);
rtld 406 uspace/lib/c/generic/rtld/module.c rtld->tls_size += sizeof(tcb_t);
rtld 412 uspace/lib/c/generic/rtld/module.c void modules_untag(rtld_t *rtld)
rtld 414 uspace/lib/c/generic/rtld/module.c list_foreach(rtld->modules, modules_link, module_t, m) {
rtld 101 uspace/lib/c/generic/rtld/rtld.c prog->rtld = env;
rtld 151 uspace/lib/c/generic/rtld/rtld.c tcb_t *rtld_tls_make(rtld_t *rtld)
rtld 158 uspace/lib/c/generic/rtld/rtld.c tcb = tls_alloc_arch(rtld->tls_size, rtld->tls_align);
rtld 163 uspace/lib/c/generic/rtld/rtld.c nmods = list_count(&rtld->imodules);
rtld 182 uspace/lib/c/generic/rtld/rtld.c list_foreach(rtld->imodules, imodules_link, module_t, m) {
rtld 199 uspace/lib/c/generic/rtld/rtld.c unsigned long rtld_get_next_id(rtld_t *rtld)
rtld 201 uspace/lib/c/generic/rtld/rtld.c return rtld->next_id++;
rtld 213 uspace/lib/c/generic/rtld/rtld.c void *rtld_tls_get_addr(rtld_t *rtld, tcb_t *tcb, unsigned long mod_id,
rtld 235 uspace/lib/c/generic/rtld/rtld.c m = module_by_id(rtld, mod_id);
rtld 135 uspace/lib/c/generic/rtld/symbol.c modules_untag(start->rtld);
rtld 234 uspace/lib/c/generic/rtld/symbol.c list_foreach(origin->rtld->modules, modules_link, module_t, m) {
rtld 280 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