函数逻辑报告 |
Source Code:fs\binfmt_elf.c |
Create Date:2022-07-29 11:03:00 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:This is much more generalized than the library routine read function,so we keep this separate. Technically the library read functionis only provided so that we can read a.out libraries that havean ELF header
函数原型:static unsigned long load_elf_interp(struct elf64_hdr *interp_elf_ex, struct file *interpreter, unsigned long no_base, struct elf64_phdr *interp_elf_phdata)
返回类型:unsigned long
参数:
类型 | 参数 | 名称 |
---|---|---|
struct elf64_hdr * | interp_elf_ex | |
struct file * | interpreter | |
unsigned long | no_base | |
struct elf64_phdr * | interp_elf_phdata |
561 | load_addr等于0 |
562 | load_addr_set等于0 |
564 | bss_prot等于0 |
565 | error等于0UL的反 |
573 | 如果非elf_check_arch(interp_elf_ex)或That's for binfmt_elf_fdpic to deal with (interp_elf_ex)则转到:out |
581 | 如果非total_size则 |
586 | eppnt等于interp_elf_phdata |
589 | elf_type等于Changes are private 按位或ETXTBSY |
591 | vaddr等于0 |
594 | vaddr等于 Segment virtual address |
600 | map_addr等于elf_map(interpreter, load_addr + vaddr, eppnt, elf_prot, elf_type, total_size) |
602 | total_size等于0 |
607 | 如果非load_addr_set且e_type恒等于ET_DYN则 |
609 | load_addr等于map_addr减ELF_PAGESTART(vaddr) |
610 | load_addr_set等于1 |
661 | elf_bss等于ELF_PAGEALIGN(elf_bss) |
662 | last_bss等于ELF_PAGEALIGN(last_bss) |
665 | error等于vm_brk_flags(elf_bss, last_bss - elf_bss, bss_prot & page can be executed ? VM_EXEC : 0) |
672 | out : |
673 | 返回:error |
名称 | 描述 |
---|---|
load_elf_binary |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |