mirror of
https://github.com/CloverHackyColor/CloverBootloader.git
synced 2024-12-12 14:36:56 +01:00
113 lines
2.4 KiB
C
113 lines
2.4 KiB
C
|
/** @file
|
||
|
SMBIOS Processor Related Functions.
|
||
|
|
||
|
Copyright (c) 2021, NUVIA Inc. All rights reserved.<BR>
|
||
|
|
||
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||
|
|
||
|
**/
|
||
|
|
||
|
#ifndef SMBIOS_PROCESSOR_H_
|
||
|
#define SMBIOS_PROCESSOR_H_
|
||
|
|
||
|
#include <Uefi.h>
|
||
|
#include <IndustryStandard/SmBios.h>
|
||
|
|
||
|
/** 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_
|