mirror of https://github.com/acidanthera/audk.git
90 lines
3.4 KiB
OpenEdge ABL
90 lines
3.4 KiB
OpenEdge ABL
//// @file
|
|
//
|
|
// Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
|
//
|
|
// 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.
|
|
//
|
|
////
|
|
|
|
#define NUM_REAL_GDT_ENTRIES 3
|
|
#define LOW_STACK_SIZE (8*1024) // 8k?
|
|
|
|
//
|
|
// Low memory Thunk Structure
|
|
//
|
|
#define Code 0
|
|
#define LowReverseThunkStart Code + 4096
|
|
#define GdtDesc LowReverseThunkStart + 4
|
|
#define IdtDesc GdtDesc + 6
|
|
#define FlatSs IdtDesc + 6
|
|
#define FlatEsp FlatSs + 4
|
|
#define LowCodeSelector FlatEsp + 4
|
|
#define LowDataSelector LowCodeSelector + 4
|
|
#define LowStack LowDataSelector + 4
|
|
#define RealModeIdtDesc LowStack + 4
|
|
#define RealModeGdt RealModeIdtDesc + 6
|
|
#define RealModeGdtDesc RealModeGdt + (8 * NUM_REAL_GDT_ENTRIES)
|
|
#define RevRealDs RealModeGdtDesc + 6
|
|
#define RevRealSs RevRealDs + 2
|
|
#define RevRealEsp RevRealSs + 2
|
|
#define RevRealIdtDesc RevRealEsp + 4
|
|
#define RevFlatDataSelector RevRealIdtDesc + 6
|
|
#define RevFlatStack RevFlatDataSelector + 2
|
|
#define Stack RevFlatStack + 4
|
|
#define RevThunkStack Stack + LOW_STACK_SIZE
|
|
|
|
#define EfiToLegacy16InitTable RevThunkStack + LOW_STACK_SIZE
|
|
#define InitTableBiosLessThan1MB EfiToLegacy16InitTable
|
|
#define InitTableHiPmmMemory InitTableBiosLessThan1MB + 4
|
|
#define InitTablePmmMemorySizeInBytes InitTableHiPmmMemory + 4
|
|
#define InitTableReverseThunkCallSegment InitTablePmmMemorySizeInBytes + 4
|
|
#define InitTableReverseThunkCallOffset InitTableReverseThunkCallSegment + 2
|
|
#define InitTableNumberE820Entries InitTableReverseThunkCallOffset + 2
|
|
#define InitTableOsMemoryAbove1Mb InitTableNumberE820Entries + 4
|
|
#define InitTableThunkStart InitTableOsMemoryAbove1Mb + 4
|
|
#define InitTableThunkSizeInBytes InitTableThunkStart + 4
|
|
#define InitTable16InitTableEnd InitTableThunkSizeInBytes + 4
|
|
|
|
#define EfiToLegacy16BootTable InitTable16InitTableEnd
|
|
#define BootTableBiosLessThan1MB EfiToLegacy16BootTable
|
|
#define BootTableHiPmmMemory BootTableBiosLessThan1MB + 4
|
|
#define BootTablePmmMemorySizeInBytes BootTableHiPmmMemory + 4
|
|
#define BootTableReverseThunkCallSegment BootTablePmmMemorySizeInBytes + 4
|
|
#define BootTableReverseThunkCallOffset BootTableReverseThunkCallSegment + 2
|
|
#define BootTableNumberE820Entries BootTableReverseThunkCallOffset + 2
|
|
#define BootTableOsMemoryAbove1Mb BootTableNumberE820Entries + 4
|
|
#define BootTableThunkStart BootTableOsMemoryAbove1Mb + 4
|
|
#define BootTableThunkSizeInBytes BootTableThunkStart + 4
|
|
#define EfiToLegacy16BootTableEnd BootTableThunkSizeInBytes + 4
|
|
|
|
#define InterruptRedirectionCode EfiToLegacy16BootTableEnd
|
|
#define PciHandler InterruptRedirectionCode + 32
|
|
|
|
|
|
//
|
|
// Register Sets (16 Bit)
|
|
//
|
|
|
|
#define AX 0
|
|
#define BX 2
|
|
#define CX 4
|
|
#define DX 6
|
|
#define SI 8
|
|
#define DI 10
|
|
#define Flags 12
|
|
#define ES 14
|
|
#define CS 16
|
|
#define SS 18
|
|
#define DS 20
|
|
#define BP 22
|
|
|
|
|
|
|