OpenCore
1.0.4
OpenCore Bootloader
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include "VirtualMemory.h"
Go to the source code of this file.
Macros | |
#define | EFI_PAGE_BASE_OFFSET_IN_LDR 0x70000 |
#define | EFI_PAGE_BASE_ADDRESS (EFI_PAGE_BASE_OFFSET_IN_LDR + 0x20000) |
#define | EFI_MAX_ENTRY_NUM 512 |
#define | EFI_PML4_ENTRY_NUM 1 |
#define | EFI_PDPTE_ENTRY_NUM 4 |
#define | EFI_PDE_ENTRY_NUM EFI_MAX_ENTRY_NUM |
#define | EFI_PML4_PAGE_NUM 1 |
#define | EFI_PDPTE_PAGE_NUM EFI_PML4_ENTRY_NUM |
#define | EFI_PDE_PAGE_NUM (EFI_PML4_ENTRY_NUM * EFI_PDPTE_ENTRY_NUM) |
#define | EFI_PAGE_NUMBER (EFI_PML4_PAGE_NUM + EFI_PDPTE_PAGE_NUM + EFI_PDE_PAGE_NUM) |
#define | EFI_SIZE_OF_PAGE 0x1000 |
#define | EFI_PAGE_SIZE_2M 0x200000 |
#define | CONVERT_BIN_PAGE_ADDRESS(a) |
#define | UTILITY_NAME "GenPage" |
#define | UTILITY_MAJOR_VERSION 0 |
#define | UTILITY_MINOR_VERSION 2 |
Functions | |
void | Error (char *FileName, uint32_t LineNumber, uint32_t ErrorCode, char *OffendingText, char *MsgFmt,...) |
void | Version (void) |
void | Usage (void) |
void * | CreateIdentityMappingPageTables (void) |
int32_t | GenBinPage (void *BaseMemory, char *NoPageFileName, char *PageFileName) |
int | main (int argc, char **argv) |
Variables | |
uint32_t | gPageTableBaseAddress = EFI_PAGE_BASE_ADDRESS |
uint32_t | gPageTableOffsetInFile = EFI_PAGE_BASE_OFFSET_IN_LDR |
Pre-Create a 4G page table (2M pages). It's used in DUET x64 build needed to enter LongMode.
Create 4G page table (2M pages)
Linear Address
63 48 47 39 38 30 29 21 20 0 +-----—+----—+------------—+--------—+--------------------------—+ PML4 Directory-Ptr Directory Offset
Paging-Structures := PML4 ( Directory-Ptr Directory {512} ) {4}
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Definition in file GenPage.c.
#define CONVERT_BIN_PAGE_ADDRESS | ( | a | ) |
#define EFI_PAGE_BASE_ADDRESS (EFI_PAGE_BASE_OFFSET_IN_LDR + 0x20000) |
#define EFI_PAGE_NUMBER (EFI_PML4_PAGE_NUM + EFI_PDPTE_PAGE_NUM + EFI_PDE_PAGE_NUM) |
#define EFI_PDE_ENTRY_NUM EFI_MAX_ENTRY_NUM |
#define EFI_PDE_PAGE_NUM (EFI_PML4_ENTRY_NUM * EFI_PDPTE_ENTRY_NUM) |
#define EFI_PDPTE_PAGE_NUM EFI_PML4_ENTRY_NUM |
int32_t GenBinPage | ( | void * | BaseMemory, |
char * | NoPageFileName, | ||
char * | PageFileName ) |
uint32_t gPageTableBaseAddress = EFI_PAGE_BASE_ADDRESS |
uint32_t gPageTableOffsetInFile = EFI_PAGE_BASE_OFFSET_IN_LDR |