REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the UefiCpuPkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Ray Ni <ray.ni@intel.com>
		
			
				
	
	
		
			82 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   This library defines some routines that are generic for IA32 family CPU.
 | |
| 
 | |
|   The library routines are UEFI specification compliant.
 | |
| 
 | |
|   Copyright (c) 2020, AMD Inc. All rights reserved.<BR>
 | |
|   Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
 | |
|   SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
| **/
 | |
| 
 | |
| #include <Register/Intel/Cpuid.h>
 | |
| #include <Register/Amd/Cpuid.h>
 | |
| 
 | |
| #include <Library/BaseLib.h>
 | |
| #include <Library/UefiCpuLib.h>
 | |
| 
 | |
| /**
 | |
|   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
 | |
|   )
 | |
| {
 | |
|   UINT32  RegEbx;
 | |
|   UINT32  RegEcx;
 | |
|   UINT32  RegEdx;
 | |
| 
 | |
|   AsmCpuid (CPUID_SIGNATURE, NULL, &RegEbx, &RegEcx, &RegEdx);
 | |
|   return (RegEbx == CPUID_SIGNATURE_AUTHENTIC_AMD_EBX &&
 | |
|           RegEcx == CPUID_SIGNATURE_AUTHENTIC_AMD_ECX &&
 | |
|           RegEdx == CPUID_SIGNATURE_AUTHENTIC_AMD_EDX);
 | |
| }
 | |
| 
 | |
| /**
 | |
|   Return the 32bit CPU family and model value.
 | |
| 
 | |
|   @return CPUID[01h].EAX with Processor Type and Stepping ID cleared.
 | |
| **/
 | |
| UINT32
 | |
| EFIAPI
 | |
| GetCpuFamilyModel (
 | |
|   VOID
 | |
|   )
 | |
| {
 | |
|   CPUID_VERSION_INFO_EAX  Eax;
 | |
| 
 | |
|   AsmCpuid (CPUID_VERSION_INFO, &Eax.Uint32, NULL, NULL, NULL);
 | |
| 
 | |
|   //
 | |
|   // Mask other fields than Family and Model.
 | |
|   //
 | |
|   Eax.Bits.SteppingId    = 0;
 | |
|   Eax.Bits.ProcessorType = 0;
 | |
|   Eax.Bits.Reserved1     = 0;
 | |
|   Eax.Bits.Reserved2     = 0;
 | |
|   return Eax.Uint32;
 | |
| }
 | |
| 
 | |
| /**
 | |
|   Return the CPU stepping ID.
 | |
|   @return CPU stepping ID value in CPUID[01h].EAX.
 | |
| **/
 | |
| UINT8
 | |
| EFIAPI
 | |
| GetCpuSteppingId (
 | |
|   VOID
 | |
|   )
 | |
| {
 | |
|   CPUID_VERSION_INFO_EAX  Eax;
 | |
| 
 | |
|   AsmCpuid (CPUID_VERSION_INFO, &Eax.Uint32, NULL, NULL, NULL);
 | |
| 
 | |
|   return (UINT8)Eax.Bits.SteppingId;
 | |
| }
 |