Lines Matching refs:rel
24 size_t *rel, rel_size, base;
81 rel = (void *)dyn[DT_RELA];
83 for (; rel_size; rel+=3, rel_size-=3*sizeof(size_t)) {
84 if (!IS_RELATIVE(rel[1], syms)) continue;
85 for (j=0; rel[0]-segs[j].p_vaddr >= segs[j].p_memsz; j++);
87 (rel[0] + segs[j].addr - segs[j].p_vaddr);
88 if (R_TYPE(rel[1]) == REL_FUNCDESC_VAL) {
91 + syms[R_SYM(rel[1])].st_value;
94 size_t val = syms[R_SYM(rel[1])].st_value;
96 *rel_addr = rel[2] + segs[j].addr - segs[j].p_vaddr + val;
128 rel = (void *)(base+dyn[DT_REL]);
130 for (; rel_size; rel+=2, rel_size-=2*sizeof(size_t)) {
131 if (!IS_RELATIVE(rel[1], 0)) continue;
132 size_t *rel_addr = (void *)(base + rel[0]);
136 rel = (void *)(base+dyn[DT_RELA]);
138 for (; rel_size; rel+=3, rel_size-=3*sizeof(size_t)) {
139 if (!IS_RELATIVE(rel[1], 0)) continue;
140 size_t *rel_addr = (void *)(base + rel[0]);
141 *rel_addr = base + rel[2];
144 rel = (void *)(base+dyn[DT_RELR]);
147 for (; rel_size; rel++, rel_size-=sizeof(size_t)) {
148 if ((rel[0]&1) == 0) {
149 relr_addr = (void *)(base + rel[0]);
152 for (size_t i=0, bitmap=rel[0]; bitmap>>=1; i++)