mirror of
https://github.com/CloverHackyColor/CloverBootloader.git
synced 2024-11-30 12:43:41 +01:00
111 lines
3.1 KiB
C
111 lines
3.1 KiB
C
/*++
|
|
|
|
Copyright (c) 2006 - 2008, 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.
|
|
|
|
Module Name:
|
|
LegacyBiosThunk.h
|
|
|
|
Abstract:
|
|
|
|
--*/
|
|
#ifndef _LEGACY_BIOS_THUNK_H_
|
|
#define _LEGACY_BIOS_THUNK_H_
|
|
|
|
extern "C" {
|
|
#include <Uefi.h>
|
|
//
|
|
// Driver Consumed Protocol Prototypes
|
|
//
|
|
#include <Protocol/DevicePath.h>
|
|
#include <Protocol/PciIo.h>
|
|
#include <Protocol/DriverBinding.h>
|
|
#include <Protocol/ComponentName.h>
|
|
#include <Protocol/ComponentName2.h>
|
|
#include <Protocol/UgaDraw.h>
|
|
#include <Protocol/VgaMiniPort.h>
|
|
#include <Protocol/Legacy8259.h>
|
|
#include <Protocol/EdidActive.h>
|
|
#include <Protocol/EdidDiscovered.h>
|
|
#include <Protocol/DevicePath.h>
|
|
#include <Protocol/Timer.h>
|
|
|
|
#include <Library/UefiLib.h>
|
|
#include <Library/DebugLib.h>
|
|
//#include <Library/PrintLib.h>
|
|
#include <Library/BaseLib.h>
|
|
#include <Library/UefiBootServicesTableLib.h>
|
|
#include <Library/BaseMemoryLib.h>
|
|
#include <Library/MemoryAllocationLib.h>
|
|
#include <Library/DevicePathLib.h>
|
|
#include <Library/GenericBdsLib.h>
|
|
#include <Library/IoLib.h>
|
|
|
|
#include <IndustryStandard/Pci.h>
|
|
|
|
} // extern "C"
|
|
|
|
#define EFI_SEGMENT(_Adr) (UINT16) ((UINT16) (((UINTN) (_Adr)) >> 4) & 0xf000)
|
|
#define EFI_OFFSET(_Adr) (UINT16) (((UINT16) ((UINTN) (_Adr))) & 0xffff)
|
|
|
|
// 8259 Interrupt Controller Hardware definitions
|
|
|
|
#define LEGACY_MODE_BASE_VECTOR_MASTER 0x08
|
|
#define LEGACY_MODE_BASE_VECTOR_SLAVE 0x70
|
|
|
|
#define PROTECTED_MODE_BASE_VECTOR_MASTER 0x68
|
|
#define PROTECTED_MODE_BASE_VECTOR_SLAVE 0x70
|
|
|
|
// 8254 Timer Hardware definitions
|
|
|
|
#define TIMER_CONTROL_PORT 0x43
|
|
#define TIMER0_COUNT_PORT 0x40
|
|
#define TIMER0_CONTROL_WORD 0x36
|
|
|
|
//
|
|
// Function declarations
|
|
//
|
|
/*EFI_STATUS
|
|
EFIAPI
|
|
InitializeLegacyBiosThunk (
|
|
IN EFI_HANDLE ImageHandle,
|
|
IN EFI_SYSTEM_TABLE *SystemTable
|
|
);*/
|
|
|
|
EFI_STATUS
|
|
InitializeBiosIntCaller (
|
|
// THUNK_CONTEXT *ThunkContext
|
|
);
|
|
|
|
EFI_STATUS
|
|
InitializeInterruptRedirection (
|
|
// IN EFI_LEGACY_8259_PROTOCOL *Legacy8259
|
|
);
|
|
|
|
BOOLEAN
|
|
EFIAPI
|
|
LegacyBiosInt86 (
|
|
// IN EFI_LEGACY_BIOS_THUNK_PROTOCOL *This,
|
|
IN UINT8 BiosInt,
|
|
IN IA32_REGISTER_SET *Regs
|
|
);
|
|
|
|
BOOLEAN
|
|
EFIAPI
|
|
LegacyBiosFarCall86 (
|
|
// IN EFI_LEGACY_BIOS_THUNK_PROTOCOL *This,
|
|
IN UINT16 Segment,
|
|
IN UINT16 Offset,
|
|
IN IA32_REGISTER_SET *Regs //,
|
|
// IN VOID *Stack,
|
|
// IN UINTN StackSize
|
|
);
|
|
|
|
#endif
|