/** @file SMBIOS Processor Related Functions. Copyright (c) 2021, NUVIA Inc. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef SMBIOS_PROCESSOR_H_ #define SMBIOS_PROCESSOR_H_ #include #include /** Returns the maximum cache level implemented by the current CPU. @return The maximum cache level implemented. **/ UINT8 SmbiosProcessorGetMaxCacheLevel ( VOID ); /** Returns whether or not the specified cache level has separate I/D caches. @param CacheLevel The cache level (L1, L2 etc.). @return TRUE if the cache level has separate I/D caches, FALSE otherwise. **/ BOOLEAN SmbiosProcessorHasSeparateCaches ( UINT8 CacheLevel ); /** Gets the size of the specified cache. @param CacheLevel The cache level (L1, L2 etc.). @param DataCache Whether the cache is a dedicated data cache. @param UnifiedCache Whether the cache is a unified cache. @return The cache size. **/ UINT64 SmbiosProcessorGetCacheSize ( IN UINT8 CacheLevel, IN BOOLEAN DataCache, IN BOOLEAN UnifiedCache ); /** Gets the associativity of the specified cache. @param CacheLevel The cache level (L1, L2 etc.). @param DataCache Whether the cache is a dedicated data cache. @param UnifiedCache Whether the cache is a unified cache. @return The cache associativity. **/ UINT32 SmbiosProcessorGetCacheAssociativity ( IN UINT8 CacheLevel, IN BOOLEAN DataCache, IN BOOLEAN UnifiedCache ); /** Returns a value for the Processor ID field that conforms to SMBIOS requirements. @return Processor ID. **/ UINT64 SmbiosGetProcessorId (VOID); /** Returns the external clock frequency. @return The external CPU clock frequency. **/ UINTN SmbiosGetExternalClockFrequency (VOID); /** Returns the SMBIOS ProcessorFamily field value. @return The value for the ProcessorFamily field. **/ UINT8 SmbiosGetProcessorFamily (VOID); /** Returns the ProcessorFamily2 field value. @return The value for the ProcessorFamily2 field. **/ UINT16 SmbiosGetProcessorFamily2 (VOID); /** Returns the SMBIOS Processor Characteristics. @return Processor Characteristics bitfield. **/ PROCESSOR_CHARACTERISTIC_FLAGS SmbiosGetProcessorCharacteristics (VOID); #endif // SMBIOS_PROCESSOR_H_