| /*++ | |
| Copyright (c) 2006, 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: | |
| CpuDxe.h | |
| Abstract: | |
| --*/ | |
| #ifndef _CPU_DXE_H | |
| #define _CPU_DXE_H | |
| #include <PiDxe.h> | |
| #include <Protocol/Cpu.h> | |
| #include <Protocol/Legacy8259.h> | |
| #include <Protocol/LegacyBios.h> | |
| #include <Protocol/LegacyBiosThunk.h> | |
| #include <Library/BaseLib.h> | |
| #include <Library/DebugLib.h> | |
| #include <Library/PrintLib.h> | |
| #include <Library/UefiBootServicesTableLib.h> | |
| #define CPU_EXCEPTION_DEBUG_OUTPUT 1 | |
| #define CPU_EXCEPTION_VGA_SWITCH 0 | |
| #define INTERRUPT_VECTOR_NUMBER 0x100 | |
| // | |
| // Print primitives | |
| // | |
| //#define LEFT_JUSTIFY 0x01 | |
| #define PREFIX_SIGN 0x02 | |
| #define PREFIX_BLANK 0x04 | |
| //#define COMMA_TYPE 0x08 | |
| #define LONG_TYPE 0x10 | |
| //#define PREFIX_ZERO 0x20 | |
| #define OUTPUT_UNICODE 0x40 | |
| //#define RADIX_HEX 0x80 | |
| #define FORMAT_UNICODE 0x100 | |
| #define PAD_TO_WIDTH 0x200 | |
| #define ARGUMENT_UNICODE 0x400 | |
| #define PRECISION 0x800 | |
| #define ARGUMENT_REVERSED 0x1000 | |
| // | |
| // Function declarations | |
| // | |
| EFI_STATUS | |
| EFIAPI | |
| InitializeCpu ( | |
| IN EFI_HANDLE ImageHandle, | |
| IN EFI_SYSTEM_TABLE *SystemTable | |
| ); | |
| EFI_STATUS | |
| EFIAPI | |
| CpuFlushCpuDataCache ( | |
| IN EFI_CPU_ARCH_PROTOCOL *This, | |
| IN EFI_PHYSICAL_ADDRESS Start, | |
| IN UINT64 Length, | |
| IN EFI_CPU_FLUSH_TYPE FlushType | |
| ); | |
| EFI_STATUS | |
| EFIAPI | |
| CpuEnableInterrupt ( | |
| IN EFI_CPU_ARCH_PROTOCOL *This | |
| ); | |
| EFI_STATUS | |
| EFIAPI | |
| CpuDisableInterrupt ( | |
| IN EFI_CPU_ARCH_PROTOCOL *This | |
| ); | |
| EFI_STATUS | |
| EFIAPI | |
| CpuGetInterruptState ( | |
| IN EFI_CPU_ARCH_PROTOCOL *This, | |
| OUT BOOLEAN *State | |
| ); | |
| EFI_STATUS | |
| EFIAPI | |
| CpuInit ( | |
| IN EFI_CPU_ARCH_PROTOCOL *This, | |
| IN EFI_CPU_INIT_TYPE InitType | |
| ); | |
| EFI_STATUS | |
| EFIAPI | |
| CpuRegisterInterruptHandler ( | |
| IN EFI_CPU_ARCH_PROTOCOL *This, | |
| IN EFI_EXCEPTION_TYPE InterruptType, | |
| IN EFI_CPU_INTERRUPT_HANDLER InterruptHandler | |
| ); | |
| EFI_STATUS | |
| EFIAPI | |
| CpuGetTimerValue ( | |
| IN EFI_CPU_ARCH_PROTOCOL *This, | |
| IN UINT32 TimerIndex, | |
| OUT UINT64 *TimerValue, | |
| OUT UINT64 *TimerPeriod OPTIONAL | |
| ); | |
| EFI_STATUS | |
| EFIAPI | |
| CpuSetMemoryAttributes( | |
| IN EFI_CPU_ARCH_PROTOCOL *This, | |
| IN EFI_PHYSICAL_ADDRESS BaseAddress, | |
| IN UINT64 Length, | |
| IN UINT64 Attributes | |
| ); | |
| VOID | |
| InstallInterruptHandler ( | |
| UINTN Vector, | |
| VOID (*Handler)(VOID) | |
| ); | |
| VOID | |
| SystemExceptionHandler ( | |
| VOID | |
| ); | |
| VOID | |
| SystemTimerHandler ( | |
| VOID | |
| ); | |
| VOID | |
| InitDescriptor ( | |
| VOID | |
| ); | |
| #endif |