Lines Matching defs:lmp
59 load_filtees(Rt_map *lmp, int *in_nfavl)
61 if ((FLAGS1(lmp) & MSK_RT_FILTER) &&
62 ((FLAGS(lmp) & FLG_RT_LOADFLTR) ||
63 (LIST(lmp)->lm_tflags & LML_TFLG_LOADFLTR))) {
64 Dyninfo *dip = DYNINFO(lmp);
65 uint_t cnt, max = DYNINFOCNT(lmp);
73 SLOOKUP_INIT(sl, 0, lmp, lmp, ld_entry_cnt, 0, 0, 0, 0, 0);
108 Rt_map *lmp;
135 for (lmp = nlmp; lmp; lmp = NEXT_RT_MAP(lmp)) {
136 if (FLAGS(lmp) &
143 FLAGS(lmp) |= FLG_RT_ANALZING;
149 if (FLAGS(lmp) & FLG_RT_OBJECT) {
152 if ((olmp = elf_obj_fini(lml, lmp, clmp,
173 if (nlmp == lmp)
175 lmp = olmp;
178 DBG_CALL(Dbg_file_analyze(lmp));
183 if (LM_NEEDED(lmp)(lml, nlmco, lmp, in_nfavl) == 0) {
190 FLAGS(lmp) &= ~FLG_RT_ANALZING;
191 FLAGS(lmp) |= FLG_RT_ANALYZED;
200 load_filtees(lmp, in_nfavl);
214 lmp = nlmc->lc_head;
287 relocate_so(Lm_list *lml, Rt_map *lmp, int *relocated, int now, int *in_nfavl)
302 if ((LM_RELOC(lmp)(lmp, now, in_nfavl, &textrel) == 0) &&
312 if ((FLAGS(lmp) & FLG_RT_MOVE) &&
313 (move_data(lmp, &textrel) == 0) &&
327 (void) set_prot(lmp, mpp, 0);
341 Rt_map *lmp;
343 for (lmp = nlmp; lmp; lmp = NEXT_RT_MAP(lmp)) {
349 if (FLAGS(lmp) &
356 FLAGS(lmp) |= FLG_RT_RELOCING;
361 if (relocate_so(lml, lmp, relocated, 0, in_nfavl) == 0)
367 FLAGS(lmp) &= ~FLG_RT_RELOCING;
368 FLAGS(lmp) |= FLG_RT_RELOCED;
391 load_filtees(lmp, in_nfavl);
406 Rt_map *lmp;
426 for (APLIST_TRAVERSE(COPY_S(nlmp), idx1, lmp)) {
430 for (ALIST_TRAVERSE(COPY_R(lmp), idx2, rcp)) {
573 Rt_map *lmp;
582 for (APLIST_TRAVERSE(alp, idx, lmp)) {
590 MODE(lmp) &= ~RTLD_NOW;
591 MODE(lmp) |= RTLD_LAZY;
608 if (relocate_so(lml, lmp, 0, 1, in_nfavl) == 0)
731 is_so_matched(Rt_map *lmp, const char *name, int path)
736 if (_is_so_matched(name, NAME(lmp), path) == 0)
737 return (lmp);
739 if (PATHNAME(lmp) != NAME(lmp)) {
740 if (_is_so_matched(name, PATHNAME(lmp), path) == 0)
741 return (lmp);
744 for (APLIST_TRAVERSE(ALIAS(lmp), idx, cp)) {
746 return (lmp);
786 Rt_map *lmp;
799 if (((lmp = fpavl_recorded(lml, name, hash, &where)) != NULL) &&
800 ((FLAGS(lmp) & (FLG_RT_OBJECT | FLG_RT_DELETE)) == 0))
801 return (lmp);
825 for (lmp = lmc->lc_head; lmp; lmp = NEXT_RT_MAP(lmp)) {
826 if (FLAGS(lmp) & (FLG_RT_OBJECT | FLG_RT_DELETE))
829 if (is_so_matched(lmp, name, path))
830 return (lmp);
909 update_mode(Rt_map *lmp, int omode, int nmode)
911 Lm_list *lml = LIST(lmp);
921 if ((FLAGS(lmp) & FLG_RT_MODESET) == 0) {
922 MODE(lmp) |= nmode & ~(RTLD_PARENT | RTLD_NOLOAD | RTLD_FIRST);
923 FLAGS(lmp) |= FLG_RT_MODESET;
934 MODE(lmp) &= ~RTLD_LAZY;
941 DBG_CALL(Dbg_file_mode_promote(lmp, pmode));
942 MODE(lmp) |= pmode;
953 (FLAGS(lmp) & (FLG_RT_RELOCED | FLG_RT_RELOCING))) {
957 lmc = (Lm_cntl *)alist_item_by_offset(LIST(lmp)->lm_lists,
958 CNTL(lmp));
959 (void) aplist_append(&lmc->lc_now, lmp, AL_CNT_LMNOW);
975 if (((FLAGS(lmp) &
978 (FLAGS(lmp) & (FLG_RT_RELOCED | FLG_RT_RELOCING))))) {
979 FLAGS(lmp) &= ~FLG_RT_INITCLCT;
980 LIST(lmp)->lm_init++;
981 LIST(lmp)->lm_flags |= LML_FLG_OBJREEVAL;
996 append_alias(Rt_map *lmp, const char *str, int *added)
1004 for (APLIST_TRAVERSE(ALIAS(lmp), idx, cp)) {
1013 (aplist_append(&ALIAS(lmp), cp, AL_CNT_ALIAS) == NULL))
2552 Rt_map *lmp = NULL;
2559 lmp = load_cap(lml, lmco, pdp->pd_pname, clmp,
2575 lmp = load_path(lml, lmco, clmp, mode, flags, hdl, &fd,
2578 if (lmp)
2579 return (lmp);
2600 is_sym_interposer(Rt_map *lmp, Sym *sym)
2602 Syminfo *sip = SYMINFO(lmp);
2607 ndx = (((ulong_t)sym - (ulong_t)SYMTAB(lmp)) / SYMENT(lmp));
2609 sip = (Syminfo *)((char *)sip + (ndx * SYMINENT(lmp)));
2624 Rt_map *lmp, *clmp, *dlmp = srp->sr_dmap;
2661 lmp = lml->lm_head;
2683 if (osym && ((FLAGS1(lmp) & FL1_RT_DTFLAGS) == 0) &&
2684 (FCT(lmp) == &elf_fct) &&
2697 sl.sl_imap = lmp;
2704 if (SYMINTP(lmp)(&sl, &sr, binfo, in_nfavl)) {
2709 are_bits_zero(lmp, isym, 1)) {
2728 lmp = lml->lm_head;
2731 if (((FLAGS(lmp) & MSK_RT_INTPOSE) == 0) || (sl.sl_flags & LKUP_COPY))
2732 lmp = NEXT_RT_MAP(lmp);
2734 for (; lmp; lmp = NEXT_RT_MAP(lmp)) {
2735 if (FLAGS(lmp) & FLG_RT_DELETE)
2737 if ((FLAGS(lmp) & MSK_RT_INTPOSE) == 0)
2744 if (lmp == dlmp)
2751 if (callable(clmp, lmp, 0, sl.sl_flags)) {
2761 sl.sl_imap = lmp;
2763 if (SYMINTP(lmp)(&sl, &sr, binfo, in_nfavl)) {
2796 Rt_map *lmp, int *in_nfavl)
2844 sl.sl_imap = lmp = bdp->b_caller;
2845 if (ret = SYMINTP(lmp)(&sl, srp, binfo, in_nfavl))
2863 sl.sl_imap = lmp = gdp->gd_depend;
2864 if (ret = SYMINTP(lmp)(&sl, srp, binfo,
2875 sl.sl_imap = lmp = clmp;
2877 sl.sl_imap = lmp;
2879 if (lmp)
2880 ret = SYMINTP(lmp)(&sl, srp, binfo, in_nfavl);
2906 Rt_map *lmp;
2913 lmp = NEXT_RT_MAP(ilmp);
2915 lmp = ilmp;
2917 for (; lmp; lmp = NEXT_RT_MAP(lmp)) {
2918 if (callable(slp->sl_cmap, lmp, 0, slp->sl_flags)) {
2920 slp->sl_imap = lmp;
2921 if ((SYMINTP(lmp)(slp, srp, binfo, in_nfavl)) ||
2933 Rt_map *lmp;
2935 for (lmp = ilmp; lmp; lmp = NEXT_RT_MAP(lmp)) {
2936 if (LAZY(lmp) == 0)
2938 if (callable(slp->sl_cmap, lmp, 0, slp->sl_flags)) {
2940 slp->sl_imap = lmp;
2954 Rt_map *ilmp = slp->sl_imap, *lmp;
3006 lmp = 0;
3008 lmp = elf_lazy_load(clmp, slp, bound,
3028 sip, lmp, in_nfavl);
3126 if ((lmp = ilmp) == 0)
3127 lmp = LIST(clmp)->lm_head;
3129 lml = LIST(lmp);
3347 relocate_finish(Rt_map *lmp, APlist *bound, int ret)
3349 DBG_CALL(Dbg_reloc_run(lmp, 0, ret, DBG_REL_FINISH));
3366 used = LIST(lmp)->lm_flags &
3373 if (bind_one(lmp, _lmp, BND_REFER) || used)
3395 set_prot(Rt_map *lmp, mmapobj_result_t *mpp, int perm)
3403 if (FLAGS(lmp) & FLG_RT_IMGALLOC)
3406 DBG_CALL(Dbg_file_prot(lmp, perm));
3416 eprintf(LIST(lmp), ERR_FATAL, MSG_INTL(MSG_SYS_MPROT),
3417 NAME(lmp), strerror(err));