dyn
sym = object->dyn.symtab;
symn = object->dyn.strtab + sym->st_name;
sym = object->dyn.symtab;
symn = object->dyn.strtab + sym->st_name;
sym = object->dyn.symtab;
symn = object->dyn.strtab + sym->st_name;
sym = object->dyn.symtab;
symn = object->dyn.strtab + sym->st_name;
sym = object->dyn.symtab;
symn = object->dyn.strtab + sym->st_name;
sym = object->dyn.symtab;
symn = object->dyn.strtab + sym->st_name;
sym = object->dyn.symtab;
symn = object->dyn.strtab + sym->st_name;
sym = object->dyn.symtab;
symn = object->dyn.strtab + sym->st_name;
addr = _dl_md_plabel(addr, sr.obj->dyn.pltgot);
sym = object->dyn.symtab + symoffset;
info->dli_sname = object->dyn.strtab + sym->st_name;
if (!object->dyn.pltgot)
if (object->dyn.init && !((Elf_Addr)object->dyn.init & 2)) {
Elf_Addr addr = _dl_md_plabel((Elf_Addr)object->dyn.init,
object->dyn.pltgot);
object->dyn.init, object->dyn.pltgot,
object->dyn.init = (void *)addr;
if (object->dyn.fini && !((Elf_Addr)object->dyn.fini & 2)) {
Elf_Addr addr = _dl_md_plabel((Elf_Addr)object->dyn.fini,
object->dyn.pltgot);
object->dyn.fini, object->dyn.pltgot,
object->dyn.fini = (void *)addr;
_hppa_dl_set_dp(object->dyn.pltgot);
sym = object->dyn.symtab + ELF_R_SYM(rela->r_info);
symn = object->dyn.strtab + sym->st_name;
sr.obj->dyn.pltgot);
pt[1] = (Elf_Addr)sr.obj->dyn.pltgot;
pt[1] = (Elf_Addr)object->dyn.pltgot;
if (object->dyn.pltrel != DT_RELA)
rela = (Elf_RelA *)(object->dyn.jmprel);
numrela = object->dyn.pltrelsz / sizeof(Elf_RelA);
(Elf_RelA *)object->dyn.jmprel);
r_addr[1] = (Elf_Addr)object->dyn.pltgot;
rela = (Elf_RelA *)object->dyn.jmprel + reloff;
sym = object->dyn.symtab;
symn = object->dyn.strtab + sym->st_name;
buf.newval = ((uint64_t)value << 32) | (Elf_Addr)sr.obj->dyn.pltgot;
sym = object->dyn.symtab;
symn = object->dyn.strtab + sym->st_name;
sym = object->dyn.symtab;
symn = object->dyn.strtab + sym->st_name;
if (__predict_false(object->dyn.textrel == 1)) {
if (__predict_false(object->dyn.textrel == 1)) {
reloc = object->dyn.relr;
rend = (const Elf_Relr *)((char *)reloc + object->dyn.relrsz);
if (obj->dyn.fini_array) {
int num = obj->dyn.fini_arraysz / sizeof(Elf_Addr);
obj, obj->dyn.fini_array, obj->load_name));
(*obj->dyn.fini_array[i-1])();
if (obj->dyn.fini) {
obj, obj->dyn.fini, obj->load_name));
(*obj->dyn.fini)();
if ((node->dyn.fini || node->dyn.fini_array) &&
if ((node->dyn.fini || node->dyn.fini_array) &&
libname = dynobj->dyn.strtab;
libname = dynobj->dyn.strtab;
if (object->dyn.textrel) {
if (object->dyn.preinit_array) {
int num = object->dyn.preinit_arraysz / sizeof(Elf_Addr);
object, object->dyn.preinit_array, object->load_name));
(*object->dyn.preinit_array[i])(_dl_argc, _dl_argv,
if (object->dyn.init) {
object, object->dyn.init, object->load_name));
(*object->dyn.init)();
if (object->dyn.init_array) {
int num = object->dyn.init_arraysz / sizeof(Elf_Addr);
object, object->dyn.init_array, object->load_name));
(*object->dyn.init_array[i])(_dl_argc, _dl_argv,
dummy_obj.dyn.symbolic = 0;
sym = object->dyn.symtab;
symn = object->dyn.strtab + sym->st_name;
sym = object->dyn.symtab;
symn = object->dyn.strtab + sym->st_name;
strt = object->dyn.strtab;
gotp = object->dyn.pltgot;
symp = object->dyn.symtab;
Elf_Addr *gotp = object->dyn.pltgot;
sym = object->dyn.symtab;
symn = object->dyn.strtab + sym->st_name;
sym = object->dyn.symtab;
symn = object->dyn.strtab + sym->st_name;
sym = object->dyn.symtab;
symn = object->dyn.strtab + sym->st_name;
sym = object->dyn.symtab;
symn = object->dyn.strtab + sym->st_name;
sym = object->dyn.symtab;
symn = object->dyn.strtab + sym->st_name;
sym = object->dyn.symtab;
symn = object->dyn.strtab + sym->st_name;
object->dyn.textrel = 1;
object->dyn.symbolic = 1;
object->dyn.flags |= dynp->d_un.d_val;
object->dyn.symbolic = 1;
object->dyn.textrel = 1;
if (object->dyn.runpath)
object->runpath = _dl_split_path(object->dyn.runpath);
if (object->dyn.rpath && (object->runpath == NULL ||
object->rpath = _dl_split_path(object->dyn.rpath);
_dl_strcmp(sl->sl_name, obj->dyn.strtab + sym->st_name))
const Elf_Sym *symt = obj->dyn.symtab;
if (req_obj->dyn.symbolic)
sym = object->dyn.symtab;
symn = object->dyn.strtab + sym->st_name;
sym = object->dyn.symtab;
symn = object->dyn.strtab + sym->st_name;
sym = object->dyn.symtab;
symn = object->dyn.strtab + sym->st_name;
sym = object->dyn.symtab;
symn = object->dyn.strtab + sym->st_name;
sym = object->dyn.symtab;
symn = object->dyn.strtab + sym->st_name;
sym = object->dyn.symtab;
symn = object->dyn.strtab + sym->st_name;
sym = object->dyn.symtab + ELF_R_SYM(relas->r_info);
sr = _dl_find_symbol(object->dyn.strtab + sym->st_name,
return (aw1->p.dyn->pfid_kt != aw2->p.dyn->pfid_kt);
pfi_match_addr(struct pfi_dynaddr *dyn, struct pf_addr *a, sa_family_t af)
switch (dyn->pfid_acnt4) {
return (pf_match_addr(0, &dyn->pfid_addr4,
&dyn->pfid_mask4, a, AF_INET));
return (pfr_match_addr(dyn->pfid_kt, a, AF_INET));
switch (dyn->pfid_acnt6) {
return (pf_match_addr(0, &dyn->pfid_addr6,
&dyn->pfid_mask6, a, AF_INET6));
return (pfr_match_addr(dyn->pfid_kt, a, AF_INET6));
struct pfi_dynaddr *dyn;
if ((dyn = pool_get(&pfi_addr_pl, wait|PR_LIMITFAIL|PR_ZERO)) == NULL)
dyn->pfid_kif = pfi_kif_get(IFG_ALL, NULL);
dyn->pfid_kif = pfi_kif_get(aw->v.ifname, NULL);
if (dyn->pfid_kif == NULL) {
pfi_kif_ref(dyn->pfid_kif, PFI_KIF_REF_RULE);
dyn->pfid_net = pfi_unmask(&aw->v.a.mask);
if (af == AF_INET && dyn->pfid_net == 32)
dyn->pfid_net = 128;
if (dyn->pfid_net != 128)
sizeof(tblname) - strlen(tblname), "/%d", dyn->pfid_net);
if ((dyn->pfid_kt = pfr_attach_table(ruleset, tblname, wait)) == NULL) {
dyn->pfid_kt->pfrkt_flags |= PFR_TFLAG_ACTIVE;
dyn->pfid_iflags = aw->iflags;
dyn->pfid_af = af;
TAILQ_INSERT_TAIL(&dyn->pfid_kif->pfik_dynaddrs, dyn, entry);
aw->p.dyn = dyn;
pfi_kif_update(dyn->pfid_kif);
if (dyn->pfid_kt != NULL)
pfr_detach_table(dyn->pfid_kt);
if (dyn->pfid_kif != NULL)
pfi_kif_unref(dyn->pfid_kif, PFI_KIF_REF_RULE);
pool_put(&pfi_addr_pl, dyn);
pfi_dynaddr_update(struct pfi_dynaddr *dyn)
if (dyn == NULL || dyn->pfid_kif == NULL || dyn->pfid_kt == NULL)
kif = dyn->pfid_kif;
kt = dyn->pfid_kt;
pfi_table_update(kt, kif, dyn->pfid_net, dyn->pfid_iflags);
pfr_dynaddr_update(kt, dyn);
if (aw->type != PF_ADDR_DYNIFTL || aw->p.dyn == NULL ||
aw->p.dyn->pfid_kif == NULL || aw->p.dyn->pfid_kt == NULL)
TAILQ_REMOVE(&aw->p.dyn->pfid_kif->pfik_dynaddrs, aw->p.dyn, entry);
pfi_kif_unref(aw->p.dyn->pfid_kif, PFI_KIF_REF_RULE);
aw->p.dyn->pfid_kif = NULL;
pfr_detach_table(aw->p.dyn->pfid_kt);
aw->p.dyn->pfid_kt = NULL;
pool_put(&pfi_addr_pl, aw->p.dyn);
aw->p.dyn = NULL;
if (aw->type != PF_ADDR_DYNIFTL || aw->p.dyn == NULL ||
aw->p.dyn->pfid_kif == NULL)
aw->p.dyncnt = aw->p.dyn->pfid_acnt4 + aw->p.dyn->pfid_acnt6;
void pfi_dynaddr_update(struct pfi_dynaddr *dyn);
if (pfr_kentry_byaddr(rpool->addr.p.dyn->pfid_kt, cached,
if (rpool->addr.p.dyn->pfid_acnt4 < 1 &&
raddr = &rpool->addr.p.dyn->pfid_addr4;
rmask = &rpool->addr.p.dyn->pfid_mask4;
if (rpool->addr.p.dyn->pfid_acnt6 < 1 &&
raddr = &rpool->addr.p.dyn->pfid_addr6;
rmask = &rpool->addr.p.dyn->pfid_mask6;
kt = rpool->addr.p.dyn->pfid_kt;
kt = rpool->addr.p.dyn->pfid_kt;
rpool->addr.p.dyn->pfid_kt->pfrkt_refcntcost > 0)) {
rpool->addr.p.dyn->pfid_kt->pfrkt_refcntcost > 0))
rpool->addr.p.dyn->pfid_kt->pfrkt_refcntcost > 0))
rpool->addr.p.dyn->pfid_kt->pfrkt_refcntcost > 0))
if (pfr_states_increase(rpool->addr.p.dyn->pfid_kt,
rpool->addr.p.dyn->pfid_kt, addr, af)) == -1) {
kt = rpool->addr.p.dyn->pfid_kt;
pfr_dynaddr_update(struct pfr_ktable *kt, struct pfi_dynaddr *dyn)
w.pfrw_dyn = dyn;
dyn->pfid_acnt4 = 0;
dyn->pfid_acnt6 = 0;
switch (dyn->pfid_af) {
unhandled_af(dyn->pfid_af);
struct pfi_dynaddr *dyn;
!pfi_match_addr((aw)->p.dyn, (x), (af))) || \