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,