/* * Should the kernel map a VDSO page into processes and pass its * address down to glibc upon exec()?
*/ unsignedint __read_mostly vdso_enabled = 1;
EXPORT_SYMBOL_GPL(vdso_enabled);
/* * These symbols are defined by vsyscall.o to mark the bounds * of the ELF DSO images included therein.
*/ externconstchar vsyscall_trapa_start, vsyscall_trapa_end; staticstruct page *syscall_pages[1]; staticstruct vm_special_mapping vdso_mapping = {
.name = "[vdso]",
.pages = syscall_pages,
};
/* Setup a VMA at program startup for the vsyscall page */ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
{ struct mm_struct *mm = current->mm; struct vm_area_struct *vma; unsignedlong addr; int ret;
if (mmap_write_lock_killable(mm)) return -EINTR;
addr = get_unmapped_area(NULL, 0, PAGE_SIZE, 0, 0); if (IS_ERR_VALUE(addr)) {
ret = addr; goto up_fail;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.