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