/titanic_50/usr/src/cmd/sgs/rtld/common/ |
H A D | remove.c | 90 Rt_map *lmp = *_tobj; in purge_exit_handlers() local 92 num += MMAPCNT(lmp); in purge_exit_handlers() 111 Rt_map *lmp = *_tobj; in purge_exit_handlers() local 112 mmapobj_result_t *mpp = MMAPS(lmp); in purge_exit_handlers() 115 for (ndx = 0; ndx < MMAPCNT(lmp); ndx++, mpp++) { in purge_exit_handlers() 212 remove_so(Lm_list *lml, Rt_map *lmp, Rt_map *clmp) in remove_so() argument 216 if (lmp == NULL) in remove_so() 222 if (lml && lmp) in remove_so() 223 lm_delete(lml, lmp, clmp); in remove_so() 235 if (lml->lm_lcs[tag].lc_lmp == lmp) { in remove_so() [all …]
|
H A D | elf.c | 295 Rt_map *lmp = lml_main.lm_head; in elf_verify() local 297 if ((lml_main.lm_flags & LML_FLG_TRC_LDDSTUB) && lmp && in elf_verify() 298 (FLAGS1(lmp) & FL1_RT_LDDSTUB) && (NEXT(lmp) == NULL)) { in elf_verify() 329 Rt_map *lmp = lml->lm_head; in elf_rtld_load() local 334 if (elf_needed(lml, ALIST_OFF_DATA, lmp, NULL) == 0) in elf_rtld_load() 349 (void) elf_reloc_relative_count((ulong_t)JMPREL(lmp), in elf_rtld_load() 350 (ulong_t)(PLTRELSZ(lmp) / RELENT(lmp)), (ulong_t)RELENT(lmp), in elf_rtld_load() 351 (ulong_t)ADDR(lmp), lmp, NULL, 0); in elf_rtld_load() 487 Rt_map *lmp = lml_main.lm_head; in elf_entry_point() local 488 Ehdr *ehdr = (Ehdr *)ADDR(lmp); in elf_entry_point() [all …]
|
H A D | tls.c | 118 tls_modaddrem(Rt_map *lmp, uint_t flag) in tls_modaddrem() argument 120 Lm_list *lml = LIST(lmp); in tls_modaddrem() 127 } else if (FLAGS1(lmp) & FL1_RT_TLSADD) { in tls_modaddrem() 133 tlsphdr = PTTLS(lmp); in tls_modaddrem() 136 tmi.tm_modname = PATHNAME(lmp); in tls_modaddrem() 137 tmi.tm_modid = TLSMODID(lmp); in tls_modaddrem() 140 if (!(FLAGS(lmp) & FLG_RT_FIXED)) in tls_modaddrem() 142 ADDR(lmp)); in tls_modaddrem() 149 DBG_CALL(Dbg_tls_modactivity(LIST(lmp), &tmi, flag)); in tls_modaddrem() 156 FLAGS1(lmp) |= FL1_RT_TLSADD; in tls_modaddrem() [all …]
|
H A D | analyze.c | 59 load_filtees(Rt_map *lmp, int *in_nfavl) in load_filtees() argument 61 if ((FLAGS1(lmp) & MSK_RT_FILTER) && in load_filtees() 62 ((FLAGS(lmp) & FLG_RT_LOADFLTR) || in load_filtees() 63 (LIST(lmp)->lm_tflags & LML_TFLG_LOADFLTR))) { in load_filtees() 64 Dyninfo *dip = DYNINFO(lmp); in load_filtees() 65 uint_t cnt, max = DYNINFOCNT(lmp); in load_filtees() 73 SLOOKUP_INIT(sl, 0, lmp, lmp, ld_entry_cnt, 0, 0, 0, 0, 0); in load_filtees() 108 Rt_map *lmp; in analyze_lmc() local 135 for (lmp = nlmp; lmp; lmp = NEXT_RT_MAP(lmp)) { in analyze_lmc() 136 if (FLAGS(lmp) & in analyze_lmc() [all …]
|
H A D | move.c | 53 elf_move_bad(Lm_list *lml, Rt_map *lmp, Sym *sym, ulong_t num, Addr addr) in elf_move_bad() argument 66 name = (const char *)(STRTAB(lmp) + sym->st_name); in elf_move_bad() 81 move_data(Rt_map *lmp, APlist **textrel) in move_data() argument 83 Lm_list *lml = LIST(lmp); in move_data() 84 Move *mv = MOVETAB(lmp); in move_data() 85 ulong_t num, mvnum = MOVESZ(lmp) / MOVEENT(lmp); in move_data() 94 moves = (lmp == lml->lm_head) && ((FLAGS1(lmp) & FL1_RT_DTFLAGS) == 0); in move_data() 96 DBG_CALL(Dbg_move_data(lmp)); in move_data() 103 if ((sym = (Sym *)SYMTAB(lmp) + ELF_M_SYM(mv->m_info)) == 0) in move_data() 113 if ((FLAGS(lmp) & FLG_RT_FIXED) == 0) in move_data() [all …]
|
H A D | tsort.c | 95 Rt_map *lmp; in sort_scc() local 109 Rt_map *lmp, *lmp2; in sort_scc() local 111 lmp = sort->s_lmp; in sort_scc() 114 if (aplist_append(&sort->s_queue, lmp, sort->s_num) == NULL) in sort_scc() 117 IDX(lmp) = ndx++; in sort_scc() 177 lmp = sort->s_lmpa[ndx]; in sort_scc() 178 CYCGROUP(lmp) = cnt; in sort_scc() 181 (void) printf(ffmt, NAME(lmp)); in sort_scc() 182 DBG_CALL(Dbg_util_scc_entry(lmp, ndx)); in sort_scc() 188 lmp = sort->s_lmpa[ndx]; in sort_scc() [all …]
|
H A D | a.out.c | 371 aout_findsb(const char *aname, Rt_map *lmp, int flag) in aout_findsb() argument 404 i = hval % (AOUTDYN(lmp)->v2->ld_buckets == 0 ? RTHS : in aout_findsb() 405 AOUTDYN(lmp)->v2->ld_buckets); in aout_findsb() 406 p = LM2LP(lmp)->lp_hash + i; in aout_findsb() 410 sp = &LM2LP(lmp)->lp_symtab[p->fssymbno]; in aout_findsb() 411 cp = &LM2LP(lmp)->lp_symstr[sp->n_un.n_strx]; in aout_findsb() 427 } while ((p = &LM2LP(lmp)->lp_hash[p->next]) != NULL); in aout_findsb() 509 Rt_map *lmp; in aout_new_lmp() local 524 if ((lmp = calloc(lmsz, 1)) == NULL) in aout_new_lmp() 526 AOUTPRV(lmp) = (void *)((uintptr_t)lmp + rtsz); in aout_new_lmp() [all …]
|
H A D | paths.c | 110 get_dir_list(uchar_t rules, Rt_map *lmp, uint_t flags) in get_dir_list() argument 113 Lm_list *lml = LIST(lmp); in get_dir_list() 121 ((FLAGS1(lmp) & FL1_RT_LDDSTUB) == 0) && in get_dir_list() 175 (void) expand_paths(lmp, rpl_libpath, in get_dir_list() 216 (void) expand_paths(lmp, prm_libpath, in get_dir_list() 229 if (RPATH(lmp)) { in get_dir_list() 230 DBG_CALL(Dbg_libs_path(lml, RPATH(lmp), LA_SER_RUNPATH, in get_dir_list() 231 NAME(lmp))); in get_dir_list() 243 RPATH(lmp), NAME(lmp)); in get_dir_list() 244 if (RLIST(lmp) && (rtld_flags & RT_FL_SECURE) && in get_dir_list() [all …]
|
H A D | _inline_reloc.h | 38 _elf_reloc_relative(ulong_t rbgn, ulong_t base, Rt_map *lmp, APlist **textrel, in _elf_reloc_relative() argument 52 if ((mpp = find_segment((caddr_t)roffset, lmp)) == NULL) in _elf_reloc_relative() 60 ((set_prot(lmp, mpp, 1) == 0) || in _elf_reloc_relative() 98 Rt_map *lmp, APlist **textrel, int add) in elf_reloc_relative() argument 103 if (_elf_reloc_relative(rbgn, base, lmp, textrel, add) == 0) in elf_reloc_relative() 127 ulong_t base, Rt_map *lmp, APlist **textrel, int add) in elf_reloc_relative_count() argument 130 if (_elf_reloc_relative(rbgn, base, lmp, textrel, add) == 0) in elf_reloc_relative_count() 145 is_sym_deferred(ulong_t rbgn, ulong_t base, Rt_map *lmp, APlist **textrel, in is_sym_deferred() argument 159 sipe = (Syminfo *)((char *)sip + (sndx * SYMINENT(lmp))); in is_sym_deferred() 174 if ((FLAGS(lmp) & FLG_RT_RELOCED) == 0) in is_sym_deferred() [all …]
|
H A D | util.c | 380 fpavl_insert(Lm_list *lml, Rt_map *lmp, const char *name, avl_index_t where) in fpavl_insert() argument 404 fpnp->fpn_lmp = lmp; in fpavl_insert() 406 if (aplist_append(&FPNODE(lmp), fpnp, AL_CNT_FPNODE) == NULL) { in fpavl_insert() 420 fpavl_remove(Rt_map *lmp) in fpavl_remove() argument 425 for (APLIST_TRAVERSE(FPNODE(lmp), idx, fpnp)) { in fpavl_remove() 426 avl_remove(LIST(lmp)->lm_fpavl, fpnp); in fpavl_remove() 429 free(FPNODE(lmp)); in fpavl_remove() 430 FPNODE(lmp) = NULL; in fpavl_remove() 656 call_array(Addr *array, uint_t arraysz, Rt_map *lmp, Word shtype) in call_array() argument 684 DBG_CALL(Dbg_util_call_array(lmp, (void *)fptr, ndx, shtype)); in call_array() [all …]
|
H A D | dlfcns.c | 73 Rt_map *lmp; in _caller() local 75 for (lmp = lmc->lc_head; lmp; in _caller() 76 lmp = NEXT_RT_MAP(lmp)) { in _caller() 78 if (find_segment(cpc, lmp)) in _caller() 79 return (lmp); in _caller() 128 hdl_add(Grp_hdl *ghp, Rt_map *lmp, uint_t dflags, int *alep) in hdl_add() argument 139 if (gdp->gd_depend == lmp) { in hdl_add() 151 gd.gd_depend = lmp; in hdl_add() 157 if (aplist_append(&GROUPS(lmp), ghp, AL_CNT_GROUPS) == NULL) in hdl_add() 173 DBG_CALL(Dbg_file_hdl_action(ghp, lmp, DBG_DEP_ADD, in hdl_add() [all …]
|
H A D | config_elf.c | 47 elf_config_validate(Addr addr, Rtc_head *head, Rt_map *lmp) in elf_config_validate() argument 49 Lm_list *lml = LIST(lmp); in elf_config_validate() 67 const char *aname = PATHNAME(lmp); in elf_config_validate() 85 ((FLAGS1(lmp) & FL1_RT_LDDSTUB) == 0)) { in elf_config_validate() 97 if ((FLAGS1(lmp) & FL1_RT_LDDSTUB) == 0) { in elf_config_validate() 98 ORIGNAME(lmp) = _cname; in elf_config_validate() 99 DIRSZ(lmp) = cname - _cname - 1; in elf_config_validate() 196 elf_config(Rt_map *lmp, int aout) in elf_config() argument 211 if ((str = strrchr(PATHNAME(lmp), '/')) != NULL) in elf_config() 214 str = PATHNAME(lmp); in elf_config() [all …]
|
H A D | cap.c | 371 cap_check_lmp_init(Rt_map *lmp) in cap_check_lmp_init() argument 388 if ((file = strrchr(NAME(lmp), '/')) != NULL) in cap_check_lmp_init() 394 (HWAVL_RECORDED(NAME(lmp)) != 0) || in cap_check_lmp_init() 395 ((PATHNAME(lmp) != NAME(lmp)) && in cap_check_lmp_init() 396 (HWAVL_RECORDED(PATHNAME(lmp)) != 0))) in cap_check_lmp_init() 403 for (APLIST_TRAVERSE(ALIAS(lmp), idx, cp)) { in cap_check_lmp_init() 416 FLAGS1(lmp) |= FL1_RT_ALTCAP; in cap_check_lmp_init() 417 FLAGS1(lmp) |= FL1_RT_ALTCHECK; in cap_check_lmp_init() 427 cap_check_lmp(Rt_map *lmp, Rej_desc *rej) in cap_check_lmp() argument 429 if ((FLAGS1(lmp) & FL1_RT_ALTCHECK) == 0) in cap_check_lmp() [all …]
|
H A D | audit.c | 398 Rt_map *lmp; in audit_activity() local 413 for (APLIST_TRAVERSE(aud_activity, idx, lmp)) { in audit_activity() 414 if ((clmp != lmp) && AUDITORS(lmp) && in audit_activity() 415 (AUDITORS(lmp)->ad_flags & LML_TFLG_AUD_ACTIVITY)) { in audit_activity() 416 _audit_activity(AUDITORS(lmp)->ad_list, lmp, flags, in audit_activity() 703 _audit_objclose(APlist *list, Rt_map *lmp) in _audit_objclose() argument 707 Lm_list *lml = LIST(lmp); in _audit_objclose() 716 if ((acp = _audit_client(AUDINFO(lmp), almp)) == NULL) in _audit_objclose() 719 DBG_CALL(Dbg_audit_objclose(lml, alp->al_libname, NAME(lmp))); in _audit_objclose() 736 add_objclose_list(Rt_map *lmp, APlist **alpp) in add_objclose_list() argument [all …]
|
/titanic_50/usr/src/cmd/sgs/rtld/amd64/ |
H A D | amd64_elf.c | 66 ldso_plt_init(Rt_map *lmp) in ldso_plt_init() argument 74 if (PLTGOT(lmp)) in ldso_plt_init() 75 elf_plt_init((PLTGOT(lmp)), (caddr_t)lmp); in ldso_plt_init() 212 elf_bndr(Rt_map *lmp, ulong_t pltndx, caddr_t from) in elf_bndr() argument 233 lml = LIST(lmp); in elf_bndr() 244 if ((!lmp) && (pltndx <= in elf_bndr() 245 (ulong_t)PLTRELSZ(lmp) / (ulong_t)RELENT(lmp))) { in elf_bndr() 250 EC_NATPTR(lmp), EC_XWORD(pltndx), EC_NATPTR(from)); in elf_bndr() 253 reloff = pltndx * (ulong_t)RELENT(lmp); in elf_bndr() 258 addr = (ulong_t)JMPREL(lmp); in elf_bndr() [all …]
|
H A D | dlamd64getunwind.c | 39 Rt_map *lmp; in getunwind_core() local 72 lmp = _caller(pc, CL_NONE); in getunwind_core() 74 if (lmp) { in getunwind_core() 80 if ((mpp = find_segment(pc, lmp)) == NULL) in getunwind_core() 83 unwindinfo->dlui_objname = (char *)PATHNAME(lmp); in getunwind_core() 87 if (PTUNWIND(lmp) && (mpp->mr_addr)) { in getunwind_core() 90 if (FLAGS(lmp) & FLG_RT_FIXED) in getunwind_core() 93 base = ADDR(lmp); in getunwind_core() 96 (void *)(PTUNWIND(lmp)->p_vaddr + base); in getunwind_core() 98 (void *)(PTUNWIND(lmp)->p_vaddr + in getunwind_core() [all …]
|
/titanic_50/usr/src/cmd/sgs/rtld/i386/ |
H A D | i386_elf.c | 69 ldso_plt_init(Rt_map *lmp) in ldso_plt_init() argument 77 if (PLTGOT(lmp)) in ldso_plt_init() 78 elf_plt_init((PLTGOT(lmp)), (caddr_t)lmp); in ldso_plt_init() 193 elf_bndr(Rt_map *lmp, ulong_t reloff, caddr_t from) in elf_bndr() argument 214 lml = LIST(lmp); in elf_bndr() 225 if (!lmp || ((reloff % sizeof (Rel)) != 0)) { in elf_bndr() 230 EC_NATPTR(lmp), EC_XWORD(reloff), EC_NATPTR(from)); in elf_bndr() 237 addr = (ulong_t)JMPREL(lmp); in elf_bndr() 240 rsym = (Sym *)((ulong_t)SYMTAB(lmp) + (rsymndx * SYMENT(lmp))); in elf_bndr() 241 name = (char *)(STRTAB(lmp) + rsym->st_name); in elf_bndr() [all …]
|
/titanic_50/usr/src/cmd/sgs/rtld/sparc/ |
H A D | sparc_a.out.c | 66 Rt_map *lmp, *nlmp, *llmp; in aout_bndr() local 86 for (lmp = lml_main.lm_head; lmp; lmp = NEXT_RT_MAP(lmp)) { in aout_bndr() 87 if (THIS_IS_AOUT(lmp)) { in aout_bndr() 88 if (pc > (caddr_t)(LM2LP(lmp)->lp_plt) && in aout_bndr() 89 pc < (caddr_t)((int)LM2LP(lmp)->lp_plt + in aout_bndr() 90 AOUTDYN(lmp)->v2->ld_plt_sz)) { in aout_bndr() 100 rp = &LM2LP(lmp)->lp_rp[rndx]; in aout_bndr() 101 sp = &LM2LP(lmp)->lp_symtab[rp->r_symbolnum]; in aout_bndr() 102 name = &LM2LP(lmp)->lp_symstr[sp->n_un.n_strx]; in aout_bndr() 108 lml = LIST(lmp); in aout_bndr() [all …]
|
H A D | sparc_elf.c | 86 ldso_plt_init(Rt_map *lmp) in ldso_plt_init() argument 94 if (PLTGOT(lmp)) in ldso_plt_init() 95 elf_plt_init((PLTGOT(lmp)), (caddr_t)lmp); in ldso_plt_init() 350 elf_bndr(Rt_map *lmp, ulong_t pltoff, caddr_t from) in elf_bndr() argument 373 lml = LIST(lmp); in elf_bndr() 396 if (!lmp || ((addr % M_PLT_ENTSIZE) != 0)) { in elf_bndr() 401 EC_NATPTR(lmp), EC_XWORD(pltoff), EC_NATPTR(from)); in elf_bndr() 409 addr = (ulong_t)JMPREL(lmp); in elf_bndr() 412 rsym = (Sym *)((ulong_t)SYMTAB(lmp) + (rsymndx * SYMENT(lmp))); in elf_bndr() 413 name = (char *)(STRTAB(lmp) + rsym->st_name); in elf_bndr() [all …]
|
H A D | common_sparc.c | 92 elf_regsyms(Rt_map *lmp) in elf_regsyms() argument 105 for (dyn = DYN(lmp), dip = DYNINFO(lmp); in elf_regsyms() 116 symdef = (Sym *)((unsigned long)SYMTAB(lmp) + in elf_regsyms() 117 (rsymndx * SYMENT(lmp))); in elf_regsyms() 131 sym2 = (STRTAB(lmp) + symdef->st_name); in elf_regsyms() 143 if (LIST(lmp)->lm_flags & LML_FLG_TRC_WARN) { in elf_regsyms() 147 sym1, NAME(lmp), sym2); in elf_regsyms() 149 eprintf(LIST(lmp), ERR_FATAL, in elf_regsyms() 153 sym1, NAME(lmp), sym2); in elf_regsyms() 159 rp->rl_lmp = lmp; in elf_regsyms()
|
/titanic_50/usr/src/cmd/sgs/rtld/sparcv9/ |
H A D | sparc_elf.c | 97 ldso_plt_init(Rt_map *lmp) in ldso_plt_init() argument 105 if (PLTGOT(lmp)) { in ldso_plt_init() 112 elf_plt2_init(PLTGOT(lmp) + pltoff, lmp); in ldso_plt_init() 121 elf_plt_init(PLTGOT(lmp), (caddr_t)elf_rtbndr_far); in ldso_plt_init() 127 elf_plt_init(PLTGOT(lmp) + pltoff, (caddr_t)elf_rtbndr); in ldso_plt_init() 477 elf_bndr(Rt_map *lmp, ulong_t pltoff, caddr_t from) in elf_bndr() argument 501 lml = LIST(lmp); in elf_bndr() 536 if (!lmp || (!farplt && (addr % M_PLT_ENTSIZE) != 0) || in elf_bndr() 542 EC_NATPTR(lmp), EC_XWORD(pltoff), EC_NATPTR(from)); in elf_bndr() 550 addr = (ulong_t)JMPREL(lmp); in elf_bndr() [all …]
|
/titanic_50/usr/src/cmd/sgs/liblddbg/common/ |
H A D | util.c | 36 Dbg_util_call_main(Rt_map *lmp) in Dbg_util_call_main() argument 38 Lm_list *lml = LIST(lmp); in Dbg_util_call_main() 41 dbg_print(lml, MSG_INTL(MSG_UTL_TRANS), NAME(lmp)); in Dbg_util_call_main() 46 Dbg_util_call_init(Rt_map *lmp, int flag) in Dbg_util_call_init() argument 48 Lm_list *lml = LIST(lmp); in Dbg_util_call_init() 64 dbg_print(lml, MSG_INTL(MSG_UTL_INIT), str, NAME(lmp)); in Dbg_util_call_init() 69 Dbg_util_intoolate(Rt_map *lmp) in Dbg_util_intoolate() argument 71 Lm_list *lml = LIST(lmp); in Dbg_util_intoolate() 74 dbg_print(lml, MSG_INTL(MSG_UTL_INTOOLATE), NAME(lmp)); in Dbg_util_intoolate() 127 Dbg_util_call_array(Rt_map *lmp, void *addr, int ndx, Word shtype) in Dbg_util_call_array() argument [all …]
|
H A D | files.c | 39 Dbg_file_analyze(Rt_map *lmp) in Dbg_file_analyze() argument 42 Lm_list *lml = LIST(lmp); in Dbg_file_analyze() 48 dbg_print(lml, MSG_INTL(MSG_FIL_ANALYZE), NAME(lmp), in Dbg_file_analyze() 49 conv_dl_mode(MODE(lmp), 1, &dl_mode_buf)); in Dbg_file_analyze() 120 Dbg_file_ldso(Rt_map *lmp, char **envp, auxv_t *auxv, const char *lmid, in Dbg_file_ldso() argument 123 Lm_list *lml = LIST(lmp); in Dbg_file_ldso() 129 dbg_print(lml, MSG_INTL(MSG_FIL_LDSO), PATHNAME(lmp)); in Dbg_file_ldso() 130 dbg_print(lml, MSG_INTL(MSG_FIL_DATA_AS), EC_ADDR(ADDR(lmp)), in Dbg_file_ldso() 131 EC_OFF(MSIZE(lmp))); in Dbg_file_ldso() 140 Dbg_file_prot(Rt_map *lmp, int prot) in Dbg_file_prot() argument [all …]
|
/titanic_50/usr/src/cmd/mdb/common/modules/libumem/ |
H A D | leaky_subr.c | 97 leaky_mtab(uintptr_t addr, const umem_bufctl_audit_t *bcp, leak_mtab_t **lmp) in leaky_mtab() argument 99 leak_mtab_t *lm = (*lmp)++; in leaky_mtab() 109 leaky_mtab_addr(uintptr_t addr, void *ignored, leak_mtab_t **lmp) in leaky_mtab_addr() argument 111 leak_mtab_t *lm = (*lmp)++; in leaky_mtab_addr() 119 leaky_seg(uintptr_t addr, const vmem_seg_t *seg, leak_mtab_t **lmp) in leaky_seg() argument 121 leak_mtab_t *lm = (*lmp)++; in leaky_seg() 130 leaky_vmem(uintptr_t addr, const vmem_t *vmem, leak_mtab_t **lmp) in leaky_vmem() argument 136 if (mdb_pwalk("vmem_alloc", (mdb_walk_cb_t)leaky_seg, lmp, addr) == -1) in leaky_vmem() 205 leaky_read_segs(uintptr_t addr, const vmem_seg_t *seg, leaky_maps_t *lmp) in leaky_read_segs() argument 207 leaky_seg_info_t *my_si = lmp->lm_segs + lmp->lm_seg_count; in leaky_read_segs() [all …]
|
/titanic_50/usr/src/lib/libdtrace/common/ |
H A D | dlink_init.c | 50 Link_map *lmp; in dtrace_drti_init() local 55 if (dlinfo(RTLD_SELF, RTLD_DI_LINKMAP, &lmp) == -1 || lmp == NULL) { in dtrace_drti_init() 65 dtrace_link_dof(&__SUNW_dof, lmid, lmp->l_name, lmp->l_addr); in dtrace_drti_init()
|