1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | head_64.S: * 32bit entry is 0 and it is ABI so immutable! head_64.S: leal handover_entry(%ebp), %eax head_64.S:ENTRY(efi32_stub_entry) head_64.S:ENDPROC(efi32_stub_entry) head_64.S: * 64bit entry is 0x200 and it is ABI so immutable! head_64.S: * The entry point for the PE/COFF executable is efi_pe_entry, so head_64.S:ENTRY(efi_pe_entry) head_64.S:handover_entry: head_64.S: * may have been invoked via the 64-bit entry point. head_64.S: * Setup current CR3 as the first and only entry in a new top level head_64.S:ENTRY(efi64_stub_entry) head_64.S: jmp handover_entry head_64.S:ENDPROC(efi64_stub_entry) kaslr.c:static void process_e820_entry(struct boot_e820_entry *entry, kaslr.c: struct boot_e820_entry cur_entry; kaslr.c: if (entry->type != E820_TYPE_RAM) kaslr.c: if (IS_ENABLED(CONFIG_X86_32) && entry->addr >= KERNEL_IMAGE_SIZE) kaslr.c: if (entry->addr + entry->size < minimum) kaslr.c: end = min(entry->size + entry->addr, mem_limit); kaslr.c: if (entry->addr >= end) kaslr.c: cur_entry.addr = entry->addr; kaslr.c: cur_entry.size = end - entry->addr; kaslr.c: region.start = cur_entry.addr; kaslr.c: region.size = cur_entry.size; kaslr.c: if (region.start > cur_entry.addr + cur_entry.size) kaslr.c: process_e820_entry(&boot_params->e820_table[i], minimum, |
Direct link: https://paste.plurk.com/show/W3pGgFfhxxRsSa3Ioyxj