• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6.36/fs/

Lines Matching refs:phdr

117 	struct elf32_phdr *phdr;
137 phdr = params->phdrs;
138 for (loop = 0; loop < params->hdr.e_phnum; loop++, phdr++) {
139 if (phdr->p_type != PT_GNU_STACK)
142 if (phdr->p_flags & PF_X)
147 params->stack_size = phdr->p_memsz;
162 struct elf_phdr *phdr;
194 phdr = exec_params.phdrs;
196 for (i = 0; i < exec_params.hdr.e_phnum; i++, phdr++) {
197 switch (phdr->p_type) {
200 if (phdr->p_filesz > PATH_MAX)
203 if (phdr->p_filesz < 2)
207 interpreter_name = kmalloc(phdr->p_filesz, GFP_KERNEL);
212 phdr->p_offset,
214 phdr->p_filesz);
215 if (unlikely(retval != phdr->p_filesz)) {
222 if (interpreter_name[phdr->p_filesz - 1] != '\0')
257 exec_params.load_addr = phdr->p_vaddr;
747 struct elf32_phdr *phdr;
809 phdr = params->phdrs;
811 for (loop = 0; loop < params->hdr.e_phnum; loop++, phdr++) {
812 if (phdr->p_type != PT_LOAD)
815 if (phdr->p_offset > params->hdr.e_phoff ||
816 phdr->p_offset + phdr->p_filesz < stop)
821 if (phdr->p_vaddr >= seg->p_vaddr &&
822 phdr->p_vaddr + phdr->p_filesz <=
825 (phdr->p_vaddr - seg->p_vaddr) +
827 params->hdr.e_phoff - phdr->p_offset;
835 phdr = params->phdrs;
836 for (loop = 0; loop < params->hdr.e_phnum; loop++, phdr++) {
837 if (phdr->p_type != PT_DYNAMIC)
842 if (phdr->p_vaddr >= seg->p_vaddr &&
843 phdr->p_vaddr + phdr->p_memsz <=
846 (phdr->p_vaddr - seg->p_vaddr) +
852 if (phdr->p_memsz == 0 ||
853 phdr->p_memsz % sizeof(Elf32_Dyn) != 0)
856 tmp = phdr->p_memsz / sizeof(Elf32_Dyn);
926 struct elf32_phdr *phdr;
936 phdr = params->phdrs;
937 for (loop = 0; loop < params->hdr.e_phnum; loop++, phdr++) {
941 if (base > phdr->p_vaddr)
942 base = phdr->p_vaddr;
943 if (top < phdr->p_vaddr + phdr->p_memsz)
944 top = phdr->p_vaddr + phdr->p_memsz;
963 phdr = params->phdrs;
964 for (loop = 0; loop < params->hdr.e_phnum; loop++, phdr++) {
968 fpos = phdr->p_offset;
970 seg->addr = maddr + (phdr->p_vaddr - base);
971 seg->p_vaddr = phdr->p_vaddr;
972 seg->p_memsz = phdr->p_memsz;
975 phdr->p_filesz, &fpos);
980 if (phdr->p_offset == 0)
984 if (phdr->p_filesz < phdr->p_memsz) {
985 if (clear_user((void *) (seg->addr + phdr->p_filesz),
986 phdr->p_memsz - phdr->p_filesz))
991 if (phdr->p_flags & PF_X) {
995 phdr->p_memsz;
999 mm->end_data = seg->addr + phdr->p_memsz;
1019 struct elf32_phdr *phdr;
1030 phdr = params->phdrs;
1031 for (loop = 0; loop < params->hdr.e_phnum; loop++, phdr++) {
1035 if (phdr->p_type != PT_LOAD)
1039 (unsigned long) phdr->p_vaddr,
1040 (unsigned long) phdr->p_offset,
1041 (unsigned long) phdr->p_filesz,
1042 (unsigned long) phdr->p_memsz);
1045 if (phdr->p_flags & PF_R) prot |= PROT_READ;
1046 if (phdr->p_flags & PF_W) prot |= PROT_WRITE;
1047 if (phdr->p_flags & PF_X) prot |= PROT_EXEC;
1062 maddr = phdr->p_vaddr;
1073 delta_vaddr = phdr->p_vaddr;
1076 maddr = load_addr + phdr->p_vaddr - delta_vaddr;
1092 disp = phdr->p_vaddr & ~PAGE_MASK;
1094 maddr = do_mmap(file, maddr, phdr->p_memsz + disp, prot, flags,
1095 phdr->p_offset - disp);
1099 loop, phdr->p_memsz + disp, prot, flags,
1100 phdr->p_offset - disp, maddr);
1107 load_addr += PAGE_ALIGN(phdr->p_memsz + disp);
1110 seg->p_vaddr = phdr->p_vaddr;
1111 seg->p_memsz = phdr->p_memsz;
1114 if (phdr->p_offset == 0)
1131 excess = phdr->p_memsz - phdr->p_filesz;
1132 excess1 = PAGE_SIZE - ((maddr + phdr->p_filesz) & ~PAGE_MASK);
1136 unsigned long xaddr = maddr + phdr->p_filesz + excess1;
1156 loop, maddr + phdr->p_filesz, excess1);
1157 if (clear_user((void __user *) maddr + phdr->p_filesz,
1165 loop, maddr + phdr->p_filesz, excess);
1166 if (clear_user((void *) maddr + phdr->p_filesz, excess))
1172 if (phdr->p_flags & PF_X) {
1175 mm->end_code = maddr + phdr->p_memsz;
1179 mm->end_data = maddr + phdr->p_memsz;
1333 static inline void fill_elf_note_phdr(struct elf_phdr *phdr, int sz, loff_t offset)
1335 phdr->p_type = PT_NOTE;
1336 phdr->p_offset = offset;
1337 phdr->p_vaddr = 0;
1338 phdr->p_paddr = 0;
1339 phdr->p_filesz = sz;
1340 phdr->p_memsz = 0;
1341 phdr->p_flags = 0;
1342 phdr->p_align = 0;
1732 /* Write notes phdr entry */
1776 struct elf_phdr phdr;
1781 phdr.p_type = PT_LOAD;
1782 phdr.p_offset = offset;
1783 phdr.p_vaddr = vma->vm_start;
1784 phdr.p_paddr = 0;
1785 phdr.p_filesz = maydump(vma, cprm->mm_flags) ? sz : 0;
1786 phdr.p_memsz = sz;
1787 offset += phdr.p_filesz;
1788 phdr.p_flags = vma->vm_flags & VM_READ ? PF_R : 0;
1790 phdr.p_flags |= PF_W;
1792 phdr.p_flags |= PF_X;
1793 phdr.p_align = ELF_EXEC_PAGESIZE;
1795 size += sizeof(phdr);
1797 || !dump_write(cprm->file, &phdr, sizeof(phdr)))