]> git.proxmox.com Git - mirror_edk2.git/blame - IntelFrameworkModulePkg/Csm/LegacyBiosDxe/Ipf/IpfThunk.i
EmbeddedPkg: Removing ipf which is no longer supported from edk2.
[mirror_edk2.git] / IntelFrameworkModulePkg / Csm / LegacyBiosDxe / Ipf / IpfThunk.i
CommitLineData
bcecde14 1//// @file\r
2//\r
3// Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
4//\r
5// This program and the accompanying materials\r
6// are licensed and made available under the terms and conditions\r
7// of the BSD License which accompanies this distribution. The\r
8// full text of the license may be found at\r
9// http://opensource.org/licenses/bsd-license.php\r
10//\r
11// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13//\r
14////\r
15\r
16#define NUM_REAL_GDT_ENTRIES 3\r
17#define LOW_STACK_SIZE (8*1024) // 8k?\r
18\r
19//\r
20// Low memory Thunk Structure\r
21//\r
22#define Code 0\r
23#define LowReverseThunkStart Code + 4096\r
24#define GdtDesc LowReverseThunkStart + 4\r
25#define IdtDesc GdtDesc + 6\r
26#define FlatSs IdtDesc + 6\r
27#define FlatEsp FlatSs + 4\r
28#define LowCodeSelector FlatEsp + 4\r
29#define LowDataSelector LowCodeSelector + 4\r
30#define LowStack LowDataSelector + 4\r
31#define RealModeIdtDesc LowStack + 4\r
32#define RealModeGdt RealModeIdtDesc + 6\r
33#define RealModeGdtDesc RealModeGdt + (8 * NUM_REAL_GDT_ENTRIES)\r
34#define RevRealDs RealModeGdtDesc + 6\r
35#define RevRealSs RevRealDs + 2\r
36#define RevRealEsp RevRealSs + 2\r
37#define RevRealIdtDesc RevRealEsp + 4\r
38#define RevFlatDataSelector RevRealIdtDesc + 6\r
39#define RevFlatStack RevFlatDataSelector + 2\r
40#define Stack RevFlatStack + 4\r
41#define RevThunkStack Stack + LOW_STACK_SIZE\r
42\r
43#define EfiToLegacy16InitTable RevThunkStack + LOW_STACK_SIZE\r
44#define InitTableBiosLessThan1MB EfiToLegacy16InitTable\r
45#define InitTableHiPmmMemory InitTableBiosLessThan1MB + 4\r
46#define InitTablePmmMemorySizeInBytes InitTableHiPmmMemory + 4\r
47#define InitTableReverseThunkCallSegment InitTablePmmMemorySizeInBytes + 4\r
48#define InitTableReverseThunkCallOffset InitTableReverseThunkCallSegment + 2\r
49#define InitTableNumberE820Entries InitTableReverseThunkCallOffset + 2\r
50#define InitTableOsMemoryAbove1Mb InitTableNumberE820Entries + 4\r
51#define InitTableThunkStart InitTableOsMemoryAbove1Mb + 4\r
52#define InitTableThunkSizeInBytes InitTableThunkStart + 4\r
53#define InitTable16InitTableEnd InitTableThunkSizeInBytes + 4\r
54\r
55#define EfiToLegacy16BootTable InitTable16InitTableEnd\r
56#define BootTableBiosLessThan1MB EfiToLegacy16BootTable\r
57#define BootTableHiPmmMemory BootTableBiosLessThan1MB + 4\r
58#define BootTablePmmMemorySizeInBytes BootTableHiPmmMemory + 4\r
59#define BootTableReverseThunkCallSegment BootTablePmmMemorySizeInBytes + 4\r
60#define BootTableReverseThunkCallOffset BootTableReverseThunkCallSegment + 2\r
61#define BootTableNumberE820Entries BootTableReverseThunkCallOffset + 2\r
62#define BootTableOsMemoryAbove1Mb BootTableNumberE820Entries + 4\r
63#define BootTableThunkStart BootTableOsMemoryAbove1Mb + 4\r
64#define BootTableThunkSizeInBytes BootTableThunkStart + 4\r
65#define EfiToLegacy16BootTableEnd BootTableThunkSizeInBytes + 4\r
66\r
67#define InterruptRedirectionCode EfiToLegacy16BootTableEnd\r
68#define PciHandler InterruptRedirectionCode + 32\r
69\r
70\r
71//\r
72// Register Sets (16 Bit)\r
73//\r
74\r
75#define AX 0\r
76#define BX 2\r
77#define CX 4\r
78#define DX 6\r
79#define SI 8\r
80#define DI 10\r
81#define Flags 12\r
82#define ES 14\r
83#define CS 16\r
84#define SS 18\r
85#define DS 20\r
86#define BP 22\r
87\r
88\r
89\r