UefiCpuPkg/LocalApicLib: Add GetProcessorLocation2ByApicId() API
GetProcessorLocation2ByApicId() extracts the package/die/tile/module/core/thread ID from the initial APIC ID. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ray Ni <ray.ni@intel.com> Reviewed-by: Eric Dong <eric.dong@intel.com> Cc: Star Zeng <star.zeng@intel.com> Cc: Zhiqiang Qin <zhiqiang.qin@intel.com>
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
Local APIC library assumes local APIC is enabled. It does not
|
||||
handles cases where local APIC is disabled.
|
||||
|
||||
Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2010 - 2019, Intel Corporation. All rights reserved.<BR>
|
||||
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
|
||||
@@ -432,5 +432,32 @@ GetProcessorLocationByApicId (
|
||||
OUT UINT32 *Thread OPTIONAL
|
||||
);
|
||||
|
||||
/**
|
||||
Get Package ID/Module ID/Tile ID/Die ID/Core ID/Thread ID of a processor.
|
||||
|
||||
The algorithm assumes the target system has symmetry across physical
|
||||
package boundaries with respect to the number of threads per core, number of
|
||||
cores per module, number of modules per tile, number of tiles per die, number
|
||||
of dies per package.
|
||||
|
||||
@param[in] InitialApicId Initial APIC ID of the target logical processor.
|
||||
@param[out] Package Returns the processor package ID.
|
||||
@param[out] Die Returns the processor die ID.
|
||||
@param[out] Tile Returns the processor tile ID.
|
||||
@param[out] Module Returns the processor module ID.
|
||||
@param[out] Core Returns the processor core ID.
|
||||
@param[out] Thread Returns the processor thread ID.
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
GetProcessorLocation2ByApicId (
|
||||
IN UINT32 InitialApicId,
|
||||
OUT UINT32 *Package OPTIONAL,
|
||||
OUT UINT32 *Die OPTIONAL,
|
||||
OUT UINT32 *Tile OPTIONAL,
|
||||
OUT UINT32 *Module OPTIONAL,
|
||||
OUT UINT32 *Core OPTIONAL,
|
||||
OUT UINT32 *Thread OPTIONAL
|
||||
);
|
||||
#endif
|
||||
|
||||
|
Reference in New Issue
Block a user