| /** @file | |
| Provides CPU architecture specific functions that can not be defined | |
| in the Base Library due to dependencies on the PAL Library | |
| The CPU Library provides services to flush CPU TLBs and place the CPU in a sleep state. | |
| The implementation of these services on Itanium processors requires the use of PAL Calls. | |
| PAL Calls require PEI and DXE specific mechanisms to look up PAL Entry Point. | |
| As a result, these services could not be defined in the Base Library. | |
| Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR> | |
| SPDX-License-Identifier: BSD-2-Clause-Patent | |
| **/ | |
| #ifndef __CPU_LIB_H__ | |
| #define __CPU_LIB_H__ | |
| /** | |
| Places the CPU in a sleep state until an interrupt is received. | |
| Places the CPU in a sleep state until an interrupt is received. If interrupts | |
| are disabled prior to calling this function, then the CPU will be placed in a | |
| sleep state indefinitely. | |
| **/ | |
| VOID | |
| EFIAPI | |
| CpuSleep ( | |
| VOID | |
| ); | |
| /** | |
| Flushes all the Translation Lookaside Buffers(TLB) entries in a CPU. | |
| Flushes all the Translation Lookaside Buffers(TLB) entries in a CPU. | |
| **/ | |
| VOID | |
| EFIAPI | |
| CpuFlushTlb ( | |
| VOID | |
| ); | |
| #if defined (MDE_CPU_IA32) || defined (MDE_CPU_X64) | |
| /** | |
| Initializes floating point units for requirement of UEFI specification. | |
| This function initializes floating-point control word to 0x027F (all exceptions | |
| masked,double-precision, round-to-nearest) and multimedia-extensions control word | |
| (if supported) to 0x1F80 (all exceptions masked, round-to-nearest, flush to zero | |
| for masked underflow). | |
| **/ | |
| VOID | |
| EFIAPI | |
| InitializeFloatingPointUnits ( | |
| VOID | |
| ); | |
| /** | |
| Determine if the standard CPU signature is "AuthenticAMD". | |
| @retval TRUE The CPU signature matches. | |
| @retval FALSE The CPU signature does not match. | |
| **/ | |
| BOOLEAN | |
| EFIAPI | |
| StandardSignatureIsAuthenticAMD ( | |
| VOID | |
| ); | |
| /** | |
| Return the 32bit CPU family and model value. | |
| @return CPUID[01h].EAX with Processor Type and Stepping ID cleared. | |
| **/ | |
| UINT32 | |
| EFIAPI | |
| GetCpuFamilyModel ( | |
| VOID | |
| ); | |
| /** | |
| Return the CPU stepping ID. | |
| @return CPU stepping ID value in CPUID[01h].EAX. | |
| **/ | |
| UINT8 | |
| EFIAPI | |
| GetCpuSteppingId ( | |
| VOID | |
| ); | |
| #endif | |
| #endif |