IntelFrameworkModulePkg: Add Compatibility Support Module (CSM) drivers
Added these drivers: * LegacyBiosDxe * BlockIoDxe * KeyboardDxe * Snp16Dxe * VideoDxe Signed-off-by: jljusten Reviewed-by: mdkinney Reviewed-by: geekboy15a git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11905 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
102
IntelFrameworkModulePkg/Csm/LegacyBiosDxe/Ipf/IpfThunk.h
Normal file
102
IntelFrameworkModulePkg/Csm/LegacyBiosDxe/Ipf/IpfThunk.h
Normal file
@@ -0,0 +1,102 @@
|
||||
/** @file
|
||||
|
||||
Copyright (c) 2007 - 2010, 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.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef _IPF_THUNK_H_
|
||||
#define _IPF_THUNK_H_
|
||||
|
||||
#include "LegacyBiosInterface.h"
|
||||
#include <IndustryStandard/Sal.h>
|
||||
|
||||
/**
|
||||
Template of real mode code.
|
||||
|
||||
@param CodeStart Start address of code.
|
||||
@param CodeEnd End address of code
|
||||
@param ReverseThunkStart Start of reverse thunk.
|
||||
@param IntThunk Low memory thunk.
|
||||
|
||||
**/
|
||||
VOID
|
||||
RealModeTemplate (
|
||||
OUT UINTN *CodeStart,
|
||||
OUT UINTN *CodeEnd,
|
||||
OUT UINTN *ReverseThunkStart,
|
||||
LOW_MEMORY_THUNK *IntThunk
|
||||
);
|
||||
|
||||
/**
|
||||
Register physical address of Esal Data Area
|
||||
|
||||
@param ReverseThunkCodeAddress Reverse Thunk Address
|
||||
@param IntThunkAddress IntThunk Address
|
||||
|
||||
@retval EFI_SUCCESS ESAL data area set successfully.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EsalSetSalDataArea (
|
||||
IN UINTN ReverseThunkCodeAddress,
|
||||
IN UINTN IntThunkAddress
|
||||
);
|
||||
|
||||
/**
|
||||
Get address of reverse thunk.
|
||||
|
||||
@retval EFI_SAL_SUCCESS Address of reverse thunk returned successfully.
|
||||
|
||||
**/
|
||||
SAL_RETURN_REGS
|
||||
EsalGetReverseThunkAddress (
|
||||
VOID
|
||||
);
|
||||
|
||||
typedef struct {
|
||||
UINT32 Eax; // 0
|
||||
UINT32 Ecx; // 4
|
||||
UINT32 Edx; // 8
|
||||
UINT32 Ebx; // 12
|
||||
UINT32 Esp; // 16
|
||||
UINT32 Ebp; // 20
|
||||
UINT32 Esi; // 24
|
||||
UINT32 Edi; // 28
|
||||
UINT32 Eflag; // 32
|
||||
UINT32 Eip; // 36
|
||||
UINT16 Cs; // 40
|
||||
UINT16 Ds; // 42
|
||||
UINT16 Es; // 44
|
||||
UINT16 Fs; // 46
|
||||
UINT16 Gs; // 48
|
||||
UINT16 Ss; // 50
|
||||
} IPF_DWORD_REGS;
|
||||
|
||||
/**
|
||||
Entrypoint of IA32 code.
|
||||
|
||||
@param CallTypeData Data of call type
|
||||
@param DwordRegister Register set of IA32 general registers
|
||||
and segment registers
|
||||
@param StackPointer Stack pointer.
|
||||
@param StackSize Size of stack.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EfiIaEntryPoint (
|
||||
UINT64 CallTypeData,
|
||||
IPF_DWORD_REGS *DwordRegister,
|
||||
UINT64 StackPointer,
|
||||
UINT64 StackSize
|
||||
);
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user