blob: 07a89c2db6bf86ab4c3c20bbf401affc3ec3424d [file] [log] [blame]
/* $NoKeywords:$ */
/**
* @file
*
* Install of CPU specific services support
*
* This file generates the CPU specific services tables.
*
* @xrefitem bom "File Content Label" "Release Content"
* @e project: AGESA
* @e sub-project: Include
* @e \$Revision: 85962 $ @e \$Date: 2013-01-14 20:12:29 -0600 (Mon, 14 Jan 2013) $
*/
/*****************************************************************************
*
* Copyright (c) 2008 - 2013, Advanced Micro Devices, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of Advanced Micro Devices, Inc. nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
***************************************************************************/
/*
NOTE:
1. This file is designed to be included multiple times in one file. So there's no includsion guard like below.
#ifndef _OPTION_CPU_FAMILY_SERVICE_INSTALL_DEFAULT_H_
#define _OPTION_CPU_FAMILY_SERVICE_INSTALL_DEFAULT_H_
#endif // _OPTION_CPU_FAMILY_SERVICE_INSTALL_DEFAULT_H_
2. This file is designed to be included in below form.
//
// 1st family model specific definitions
//
#include "OptionCpuSpecificServicesInstallReset.h"
#define CpuSrvcTableName cpuFamilyModelServices
// Put your service definitions "CpuSrvc<ServiceName>" here.
#define CpuSrvcDisablePstate cpuF1stM1stDisablePstate
#include "OptionCpuSpecificServicesInstall.h"
INSTALL_CPU_SPECIFIC_SERVICES_TABLE (CpuSrvcTableName);
//
// 2nd family model specific definitions
//
#include "OptionCpuSpecificServicesInstallReset.h"
#define CpuSrvcTableName cpuFamilyModelServices
// Put your service definitions "CpuSrvc<ServiceName>" here.
#define CpuSrvcDisablePstate cpuF2ndM2ndDisablePstate
#include "OptionCpuSpecificServicesInstall.h"
INSTALL_CPU_SPECIFIC_SERVICES_TABLE (CpuSrvcTableName);
Example of CPU specific services definitions:
NOTE: Members with type casting should use OvrdDfltCpuSrvc<ServiceName> instead due to automatical "extern" limitation.
#define CpuSrvcRevision (UINT16) Revision
#define CpuSrvcDisablePstate (PF_CPU_DISABLE_PSTATE) DisablePstate
#define CpuSrvcTransitionPstate (PF_CPU_TRANSITION_PSTATE) TransitionPstate
#define CpuSrvcGetProcIddMax (PF_CPU_GET_IDD_MAX) GetProcIddMax
#define CpuSrvcGetTscRate (PF_CPU_GET_TSC_RATE) GetTscRate
#define CpuSrvcGetCurrentNbFrequency (PF_CPU_GET_NB_FREQ) GetCurrentNbFrequency
#define CpuSrvcGetMinMaxNbFrequency (PF_CPU_GET_MIN_MAX_NB_FREQ) GetMinMaxNbFrequency
#define CpuSrvcGetNbPstateInfo (PF_CPU_GET_NB_PSTATE_INFO) GetNbPstateInfo
#define CpuSrvcIsNbCofInitNeeded (PF_CPU_IS_NBCOF_INIT_NEEDED) IsNbCofInitNeeded
#define CpuSrvcGetNbIddMax (PF_CPU_GET_NB_IDD_MAX) GetNbIddMax
#define CpuSrvcLaunchApCore (PF_CPU_AP_INITIAL_LAUNCH) LaunchApCore
#define CpuSrvcGetNumberOfPhysicalCores (PF_CPU_NUMBER_OF_PHYSICAL_CORES) GetNumberOfPhysicalCores
#define CpuSrvcGetApMailboxFromHardware (PF_CPU_AMD_GET_AP_MAILBOX_FROM_HARDWARE) GetApMailboxFromHardware
#define CpuSrvcSetApCoreNumber (PF_CPU_SET_AP_CORE_NUMBER) SetApCoreNumber
#define CpuSrvcGetApCoreNumber (PF_CPU_GET_AP_CORE_NUMBER) GetApCoreNumber
#define CpuSrvcTransferApCoreNumber (PF_CPU_TRANSFER_AP_CORE_NUMBER) TransferApCoreNumber
#define CpuSrvcGetStoredNodeNumber (PF_CPU_GET_STORED_NODE_NUMBER) GetStoredNodeNumber
#define CpuSrvcCoreIdPositionInInitialApicId (PF_CORE_ID_POSITION_IN_INITIAL_APIC_ID) CoreIdPositionInInitialApicId
#define CpuSrvcSaveFeatures (PF_CPU_SAVE_FEATURES) SaveFeatures
#define CpuSrvcWriteFeatures (PF_CPU_WRITE_FEATURES) WriteFeatures
#define CpuSrvcSetWarmResetFlag (PF_CPU_SET_WARM_RESET_FLAG) SetWarmResetFlag
#define CpuSrvcGetWarmResetFlag (PF_CPU_GET_WARM_RESET_FLAG) GetWarmResetFlag
#define CpuSrvcGetBrandString1 (PF_CPU_GET_FAMILY_SPECIFIC_ARRAY) GetBrandString1
#define CpuSrvcGetBrandString2 (PF_CPU_GET_FAMILY_SPECIFIC_ARRAY) GetBrandString2
#define CpuSrvcGetMicroCodePatchesStruct (PF_CPU_GET_FAMILY_SPECIFIC_ARRAY) GetMicroCodePatchesStruct
#define CpuSrvcGetMicrocodeEquivalenceTable (PF_CPU_GET_FAMILY_SPECIFIC_ARRAY) GetMicrocodeEquivalenceTable
#define CpuSrvcGetCacheInfo (PF_CPU_GET_FAMILY_SPECIFIC_ARRAY) GetCacheInfo
#define CpuSrvcGetSysPmTableStruct (PF_CPU_GET_FAMILY_SPECIFIC_ARRAY) GetSysPmTableStruct
#define CpuSrvcGetWheaInitData (PF_CPU_GET_FAMILY_SPECIFIC_ARRAY) GetWheaInitData
#define CpuSrvcGetPlatformTypeSpecificInfo (PF_CPU_GET_PLATFORM_TYPE_SPECIFIC_INFO) GetPlatformTypeSpecificInfo
#define CpuSrvcIsNbPstateEnabled (PF_IS_NB_PSTATE_ENABLED) IsNbPstateEnabled
#define CpuSrvcNextLinkHasHtPhyFeats (PF_NEXT_LINK_HAS_HTFPY_FEATS) NextLinkHasHtPhyFeats
#define CpuSrvcSetHtPhyRegister (PF_SET_HT_PHY_REGISTER) SetHtPhyRegister
#define CpuSrvcGetNextHtLinkFeatures (PF_GET_NEXT_HT_LINK_FEATURES) GetNextHtLinkFeatures
#define CpuSrvcRegisterTableList (REGISTER_TABLE **) RegisterTableList
#define CpuSrvcTableEntryTypeDescriptors (TABLE_ENTRY_TYPE_DESCRIPTOR *) TableEntryTypeDescriptors
#define CpuSrvcPackageLinkMap (PACKAGE_HTLINK_MAP) PackageLinkMap
#define CpuSrvcComputeUnitMap (COMPUTE_UNIT_MAP *) ComputeUnitMap
#define CpuSrvcInitCacheDisabled (FAMILY_CACHE_INIT_POLICY) InitCacheDisabled
#define CpuSrvcGetEarlyBeforeApLaunchInitOnCoreTable (PF_GET_EARLY_INIT_TABLE) GetEarlyInitBeforeApLaunchOnCoreTable
#define CpuSrvcGetEarlyAfterApLaunchInitOnCoreTable (PF_GET_EARLY_INIT_TABLE) GetEarlyInitAfterApLaunchOnCoreTable
#define CpuSrvcPatchLoaderIsSharedByCU (BOOLEAN) TRUE
USAGE MODEL:
//
// If BUILD_CONFIG_SWITCH = TRUE
// If override service is defined, use it as the final service definition.
// If override service is not define, use default service (DlftCpuSrvc) as the final service definition.
//
// If BUILD_CONFIG_SWITCH = FALSE
// Use default assert service (AssertCpuSrvc) as the final service definition for making a assertion when unsupported service is called.
//
// "extern" will be used for function pointer (exclude data) type serive members automatically when CpuSrvc<ServiceName> is defined.
//
// Member: (MEMBER_TYPE) ServiceName
#if BUILD_CONFIG_SWITCH == TRUE
#ifdef CpuSrvcServiceName
#define FinalCpuSrvcServiceName CpuSrvcServiceName
extern MEMBER_TYPE FinalCpuSrvcServiceName;
#else
#define FinalCpuSrvcServiceName DfltCpuSrvcServiceName
#pragma message( STRING_MACRO_DEFAULT_USED(CpuSrvcServiceName) )
#endif
#else
#define FinalCpuSrvcServiceName DfltAssertCpuSrvcServiceName
#pragma message( STRING_MACRO_DEFAULT_ASSERT_USED(CpuSrvcServiceName) )
#endif
*/
#define STRING2(x) #x
#define STRING(x) STRING2(x)
#define CAT_STRING(a, b) a##b
#define STRING_ARROW " --> "
//
// Verbose control for messaging CPU services at build time
//
#ifndef VERBOSE_CPU_SERVICES
#define VERBOSE_CPU_SERVICES 1 // 0 - disable messaging, 1 - enable debugging.
#endif
#if VERBOSE_CPU_SERVICES
#define STRING_MACRO_VALUE(Name) " " #Name " = " STRING(Name)
#define STRING_OVERRIDE_MACRO_VALUE(Name) " OVERRIDE: " #Name " : " STRING(Name) STRING_ARROW STRING(Ovrd##Name)
#define STRING_MACRO_DEFAULT_USED(Name) " NOT DEFINED: " #Name STRING_ARROW " DEFAULT: " STRING(FinalDflt##Name)
#define STRING_MACRO_DEFAULT_ASSERT_USED(Name) " DISABLED: " #Name ", assertion is used."
#define STRING_SEPARATOR1 "-----------------------------------------------------------------------------------------------"
#define STRING_SEPARATOR2 "==============================================================================================="
#define STRING_SEPARATOR_POUND "###############################################################################################"
#else // VERBOSE_CPU_SERVICES
#define STRING_MACRO_VALUE(Name) NULL_STRING
#define STRING_OVERRIDE_MACRO_VALUE(Name) NULL_STRING
#define STRING_MACRO_DEFAULT_USED(Name) NULL_STRING
#define STRING_MACRO_DEFAULT_ASSERT_USED(Name) NULL_STRING
#define NULL_STRING ""
#define STRING_SEPARATOR1 NULL_STRING
#define STRING_SEPARATOR2 NULL_STRING
#define STRING_SEPARATOR_POUND NULL_STRING
#endif // VERBOSE_CPU_SERVICES
//
// Handle override definitions on DfltAssertCpuSrvc<ServiceName>
//
#ifdef OvrdDfltAssertCpuSrvcRevision
#define FinalDfltAssertCpuSrvcRevision OvrdDfltAssertCpuSrvcRevision
#else
#define FinalDfltAssertCpuSrvcRevision DfltAssertCpuSrvcRevision
#endif
#ifdef OvrdDfltAssertCpuSrvcDisablePstate
#define FinalDfltAssertCpuSrvcDisablePstate OvrdDfltAssertCpuSrvcDisablePstate
#else
#define FinalDfltAssertCpuSrvcDisablePstate DfltAssertCpuSrvcDisablePstate
#endif
#ifdef OvrdDfltAssertCpuSrvcTransitionPstate
#define FinalDfltAssertCpuSrvcTransitionPstate OvrdDfltAssertCpuSrvcTransitionPstate
#else
#define FinalDfltAssertCpuSrvcTransitionPstate DfltAssertCpuSrvcTransitionPstate
#endif
#ifdef OvrdDfltAssertCpuSrvcGetProcIddMax
#define FinalDfltAssertCpuSrvcGetProcIddMax OvrdDfltAssertCpuSrvcGetProcIddMax
#else
#define FinalDfltAssertCpuSrvcGetProcIddMax DfltAssertCpuSrvcGetProcIddMax
#endif
#ifdef OvrdDfltAssertCpuSrvcGetTscRate
#define FinalDfltAssertCpuSrvcGetTscRate OvrdDfltAssertCpuSrvcGetTscRate
#else
#define FinalDfltAssertCpuSrvcGetTscRate DfltAssertCpuSrvcGetTscRate
#endif
#ifdef OvrdDfltAssertCpuSrvcGetCurrentNbFrequency
#define FinalDfltAssertCpuSrvcGetCurrentNbFrequency OvrdDfltAssertCpuSrvcGetCurrentNbFrequency
#else
#define FinalDfltAssertCpuSrvcGetCurrentNbFrequency DfltAssertCpuSrvcGetCurrentNbFrequency
#endif
#ifdef OvrdDfltAssertCpuSrvcGetMinMaxNbFrequency
#define FinalDfltAssertCpuSrvcGetMinMaxNbFrequency OvrdDfltAssertCpuSrvcGetMinMaxNbFrequency
#else
#define FinalDfltAssertCpuSrvcGetMinMaxNbFrequency DfltAssertCpuSrvcGetMinMaxNbFrequency
#endif
#ifdef OvrdDfltAssertCpuSrvcGetNbPstateInfo
#define FinalDfltAssertCpuSrvcGetNbPstateInfo OvrdDfltAssertCpuSrvcGetNbPstateInfo
#else
#define FinalDfltAssertCpuSrvcGetNbPstateInfo DfltAssertCpuSrvcGetNbPstateInfo
#endif
#ifdef OvrdDfltAssertCpuSrvcIsNbCofInitNeeded
#define FinalDfltAssertCpuSrvcIsNbCofInitNeeded OvrdDfltAssertCpuSrvcIsNbCofInitNeeded
#else
#define FinalDfltAssertCpuSrvcIsNbCofInitNeeded DfltAssertCpuSrvcIsNbCofInitNeeded
#endif
#ifdef OvrdDfltAssertCpuSrvcGetNbIddMax
#define FinalDfltAssertCpuSrvcGetNbIddMax OvrdDfltAssertCpuSrvcGetNbIddMax
#else
#define FinalDfltAssertCpuSrvcGetNbIddMax DfltAssertCpuSrvcGetNbIddMax
#endif
#ifdef OvrdDfltAssertCpuSrvcLaunchApCore
#define FinalDfltAssertCpuSrvcLaunchApCore OvrdDfltAssertCpuSrvcLaunchApCore
#else
#define FinalDfltAssertCpuSrvcLaunchApCore DfltAssertCpuSrvcLaunchApCore
#endif
#ifdef OvrdDfltAssertCpuSrvcGetNumberOfPhysicalCores
#define FinalDfltAssertCpuSrvcGetNumberOfPhysicalCores OvrdDfltAssertCpuSrvcGetNumberOfPhysicalCores
#else
#define FinalDfltAssertCpuSrvcGetNumberOfPhysicalCores DfltAssertCpuSrvcGetNumberOfPhysicalCores
#endif
#ifdef OvrdDfltAssertCpuSrvcGetApMailboxFromHardware
#define FinalDfltAssertCpuSrvcGetApMailboxFromHardware OvrdDfltAssertCpuSrvcGetApMailboxFromHardware
#else
#define FinalDfltAssertCpuSrvcGetApMailboxFromHardware DfltAssertCpuSrvcGetApMailboxFromHardware
#endif
#ifdef OvrdDfltAssertCpuSrvcSetApCoreNumber
#define FinalDfltAssertCpuSrvcSetApCoreNumber OvrdDfltAssertCpuSrvcSetApCoreNumber
#else
#define FinalDfltAssertCpuSrvcSetApCoreNumber DfltAssertCpuSrvcSetApCoreNumber
#endif
#ifdef OvrdDfltAssertCpuSrvcGetApCoreNumber
#define FinalDfltAssertCpuSrvcGetApCoreNumber OvrdDfltAssertCpuSrvcGetApCoreNumber
#else
#define FinalDfltAssertCpuSrvcGetApCoreNumber DfltAssertCpuSrvcGetApCoreNumber
#endif
#ifdef OvrdDfltAssertCpuSrvcTransferApCoreNumber
#define FinalDfltAssertCpuSrvcTransferApCoreNumber OvrdDfltAssertCpuSrvcTransferApCoreNumber
#else
#define FinalDfltAssertCpuSrvcTransferApCoreNumber DfltAssertCpuSrvcTransferApCoreNumber
#endif
#ifdef OvrdDfltAssertCpuSrvcGetStoredNodeNumber
#define FinalDfltAssertCpuSrvcGetStoredNodeNumber OvrdDfltAssertCpuSrvcGetStoredNodeNumber
#else
#define FinalDfltAssertCpuSrvcGetStoredNodeNumber DfltAssertCpuSrvcGetStoredNodeNumber
#endif
#ifdef OvrdDfltAssertCpuSrvcCoreIdPositionInInitialApicId
#define FinalDfltAssertCpuSrvcCoreIdPositionInInitialApicId OvrdDfltAssertCpuSrvcCoreIdPositionInInitialApicId
#else
#define FinalDfltAssertCpuSrvcCoreIdPositionInInitialApicId DfltAssertCpuSrvcCoreIdPositionInInitialApicId
#endif
#ifdef OvrdDfltAssertCpuSrvcSaveFeatures
#define FinalDfltAssertCpuSrvcSaveFeatures OvrdDfltAssertCpuSrvcSaveFeatures
#else
#define FinalDfltAssertCpuSrvcSaveFeatures DfltAssertCpuSrvcSaveFeatures
#endif
#ifdef OvrdDfltAssertCpuSrvcWriteFeatures
#define FinalDfltAssertCpuSrvcWriteFeatures OvrdDfltAssertCpuSrvcWriteFeatures
#else
#define FinalDfltAssertCpuSrvcWriteFeatures DfltAssertCpuSrvcWriteFeatures
#endif
#ifdef OvrdDfltAssertCpuSrvcSetWarmResetFlag
#define FinalDfltAssertCpuSrvcSetWarmResetFlag OvrdDfltAssertCpuSrvcSetWarmResetFlag
#else
#define FinalDfltAssertCpuSrvcSetWarmResetFlag DfltAssertCpuSrvcSetWarmResetFlag
#endif
#ifdef OvrdDfltAssertCpuSrvcGetWarmResetFlag
#define FinalDfltAssertCpuSrvcGetWarmResetFlag OvrdDfltAssertCpuSrvcGetWarmResetFlag
#else
#define FinalDfltAssertCpuSrvcGetWarmResetFlag DfltAssertCpuSrvcGetWarmResetFlag
#endif
#ifdef OvrdDfltAssertCpuSrvcGetBrandString1
#define FinalDfltAssertCpuSrvcGetBrandString1 OvrdDfltAssertCpuSrvcGetBrandString1
#else
#define FinalDfltAssertCpuSrvcGetBrandString1 DfltAssertCpuSrvcGetBrandString1
#endif
#ifdef OvrdDfltAssertCpuSrvcGetBrandString2
#define FinalDfltAssertCpuSrvcGetBrandString2 OvrdDfltAssertCpuSrvcGetBrandString2
#else
#define FinalDfltAssertCpuSrvcGetBrandString2 DfltAssertCpuSrvcGetBrandString2
#endif
#ifdef OvrdDfltAssertCpuSrvcGetMicroCodePatchesStruct
#define FinalDfltAssertCpuSrvcGetMicroCodePatchesStruct OvrdDfltAssertCpuSrvcGetMicroCodePatchesStruct
#else
#define FinalDfltAssertCpuSrvcGetMicroCodePatchesStruct DfltAssertCpuSrvcGetMicroCodePatchesStruct
#endif
#ifdef OvrdDfltAssertCpuSrvcGetMicrocodeEquivalenceTable
#define FinalDfltAssertCpuSrvcGetMicrocodeEquivalenceTable OvrdDfltAssertCpuSrvcGetMicrocodeEquivalenceTable
#else
#define FinalDfltAssertCpuSrvcGetMicrocodeEquivalenceTable DfltAssertCpuSrvcGetMicrocodeEquivalenceTable
#endif
#ifdef OvrdDfltAssertCpuSrvcGetCacheInfo
#define FinalDfltAssertCpuSrvcGetCacheInfo OvrdDfltAssertCpuSrvcGetCacheInfo
#else
#define FinalDfltAssertCpuSrvcGetCacheInfo DfltAssertCpuSrvcGetCacheInfo
#endif
#ifdef OvrdDfltAssertCpuSrvcGetSysPmTableStruct
#define FinalDfltAssertCpuSrvcGetSysPmTableStruct OvrdDfltAssertCpuSrvcGetSysPmTableStruct
#else
#define FinalDfltAssertCpuSrvcGetSysPmTableStruct DfltAssertCpuSrvcGetSysPmTableStruct
#endif
#ifdef OvrdDfltAssertCpuSrvcGetWheaInitData
#define FinalDfltAssertCpuSrvcGetWheaInitData OvrdDfltAssertCpuSrvcGetWheaInitData
#else
#define FinalDfltAssertCpuSrvcGetWheaInitData DfltAssertCpuSrvcGetWheaInitData
#endif
#ifdef OvrdDfltAssertCpuSrvcGetPlatformTypeSpecificInfo
#define FinalDfltAssertCpuSrvcGetPlatformTypeSpecificInfo OvrdDfltAssertCpuSrvcGetPlatformTypeSpecificInfo
#else
#define FinalDfltAssertCpuSrvcGetPlatformTypeSpecificInfo DfltAssertCpuSrvcGetPlatformTypeSpecificInfo
#endif
#ifdef OvrdDfltAssertCpuSrvcIsNbPstateEnabled
#define FinalDfltAssertCpuSrvcIsNbPstateEnabled OvrdDfltAssertCpuSrvcIsNbPstateEnabled
#else
#define FinalDfltAssertCpuSrvcIsNbPstateEnabled DfltAssertCpuSrvcIsNbPstateEnabled
#endif
#ifdef OvrdDfltAssertCpuSrvcNextLinkHasHtPhyFeats
#define FinalDfltAssertCpuSrvcNextLinkHasHtPhyFeats OvrdDfltAssertCpuSrvcNextLinkHasHtPhyFeats
#else
#define FinalDfltAssertCpuSrvcNextLinkHasHtPhyFeats DfltAssertCpuSrvcNextLinkHasHtPhyFeats
#endif
#ifdef OvrdDfltAssertCpuSrvcSetHtPhyRegister
#define FinalDfltAssertCpuSrvcSetHtPhyRegister OvrdDfltAssertCpuSrvcSetHtPhyRegister
#else
#define FinalDfltAssertCpuSrvcSetHtPhyRegister DfltAssertCpuSrvcSetHtPhyRegister
#endif
#ifdef OvrdDfltAssertCpuSrvcGetNextHtLinkFeatures
#define FinalDfltAssertCpuSrvcGetNextHtLinkFeatures OvrdDfltAssertCpuSrvcGetNextHtLinkFeatures
#else
#define FinalDfltAssertCpuSrvcGetNextHtLinkFeatures DfltAssertCpuSrvcGetNextHtLinkFeatures
#endif
#ifdef OvrdDfltAssertCpuSrvcRegisterTableList
#define FinalDfltAssertCpuSrvcRegisterTableList OvrdDfltAssertCpuSrvcRegisterTableList
#else
#define FinalDfltAssertCpuSrvcRegisterTableList DfltAssertCpuSrvcRegisterTableList
#endif
#ifdef OvrdDfltAssertCpuSrvcTableEntryTypeDescriptors
#define FinalDfltAssertCpuSrvcTableEntryTypeDescriptors OvrdDfltAssertCpuSrvcTableEntryTypeDescriptors
#else
#define FinalDfltAssertCpuSrvcTableEntryTypeDescriptors DfltAssertCpuSrvcTableEntryTypeDescriptors
#endif
#ifdef OvrdDfltAssertCpuSrvcPackageLinkMap
#define FinalDfltAssertCpuSrvcPackageLinkMap OvrdDfltAssertCpuSrvcPackageLinkMap
#else
#define FinalDfltAssertCpuSrvcPackageLinkMap DfltAssertCpuSrvcPackageLinkMap
#endif
#ifdef OvrdDfltAssertCpuSrvcComputeUnitMap
#define FinalDfltAssertCpuSrvcComputeUnitMap OvrdDfltAssertCpuSrvcComputeUnitMap
#else
#define FinalDfltAssertCpuSrvcComputeUnitMap DfltAssertCpuSrvcComputeUnitMap
#endif
#ifdef OvrdDfltAssertCpuSrvcInitCacheDisabled
#define FinalDfltAssertCpuSrvcInitCacheDisabled OvrdDfltAssertCpuSrvcInitCacheDisabled
#else
#define FinalDfltAssertCpuSrvcInitCacheDisabled DfltAssertCpuSrvcInitCacheDisabled
#endif
#ifdef OvrdDfltAssertCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable
#define FinalDfltAssertCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable OvrdDfltAssertCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable
#else
#define FinalDfltAssertCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable DfltAssertCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable
#endif
#ifdef OvrdDfltAssertCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable
#define FinalDfltAssertCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable OvrdDfltAssertCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable
#else
#define FinalDfltAssertCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable DfltAssertCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable
#endif
#ifdef OvrdDfltAssertCpuSrvcPatchLoaderIsSharedByCU
#define FinalDfltAssertCpuSrvcPatchLoaderIsSharedByCU OvrdDfltAssertCpuSrvcPatchLoaderIsSharedByCU
#else
#define FinalDfltAssertCpuSrvcPatchLoaderIsSharedByCU DfltAssertCpuSrvcPatchLoaderIsSharedByCU
#endif
//
// Handle override definitions on DfltCpuSrvc<ServiceName>
//
#ifdef OvrdDfltCpuSrvcRevision
#define FinalDfltCpuSrvcRevision OvrdDfltCpuSrvcRevision
#else
#define FinalDfltCpuSrvcRevision DfltCpuSrvcRevision
#endif
#ifdef OvrdDfltCpuSrvcDisablePstate
#define FinalDfltCpuSrvcDisablePstate OvrdDfltCpuSrvcDisablePstate
#else
#define FinalDfltCpuSrvcDisablePstate DfltCpuSrvcDisablePstate
#endif
#ifdef OvrdDfltCpuSrvcTransitionPstate
#define FinalDfltCpuSrvcTransitionPstate OvrdDfltCpuSrvcTransitionPstate
#else
#define FinalDfltCpuSrvcTransitionPstate DfltCpuSrvcTransitionPstate
#endif
#ifdef OvrdDfltCpuSrvcGetProcIddMax
#define FinalDfltCpuSrvcGetProcIddMax OvrdDfltCpuSrvcGetProcIddMax
#else
#define FinalDfltCpuSrvcGetProcIddMax DfltCpuSrvcGetProcIddMax
#endif
#ifdef OvrdDfltCpuSrvcGetTscRate
#define FinalDfltCpuSrvcGetTscRate OvrdDfltCpuSrvcGetTscRate
#else
#define FinalDfltCpuSrvcGetTscRate DfltCpuSrvcGetTscRate
#endif
#ifdef OvrdDfltCpuSrvcGetCurrentNbFrequency
#define FinalDfltCpuSrvcGetCurrentNbFrequency OvrdDfltCpuSrvcGetCurrentNbFrequency
#else
#define FinalDfltCpuSrvcGetCurrentNbFrequency DfltCpuSrvcGetCurrentNbFrequency
#endif
#ifdef OvrdDfltCpuSrvcGetMinMaxNbFrequency
#define FinalDfltCpuSrvcGetMinMaxNbFrequency OvrdDfltCpuSrvcGetMinMaxNbFrequency
#else
#define FinalDfltCpuSrvcGetMinMaxNbFrequency DfltCpuSrvcGetMinMaxNbFrequency
#endif
#ifdef OvrdDfltCpuSrvcGetNbPstateInfo
#define FinalDfltCpuSrvcGetNbPstateInfo OvrdDfltCpuSrvcGetNbPstateInfo
#else
#define FinalDfltCpuSrvcGetNbPstateInfo DfltCpuSrvcGetNbPstateInfo
#endif
#ifdef OvrdDfltCpuSrvcIsNbCofInitNeeded
#define FinalDfltCpuSrvcIsNbCofInitNeeded OvrdDfltCpuSrvcIsNbCofInitNeeded
#else
#define FinalDfltCpuSrvcIsNbCofInitNeeded DfltCpuSrvcIsNbCofInitNeeded
#endif
#ifdef OvrdDfltCpuSrvcGetNbIddMax
#define FinalDfltCpuSrvcGetNbIddMax OvrdDfltCpuSrvcGetNbIddMax
#else
#define FinalDfltCpuSrvcGetNbIddMax DfltCpuSrvcGetNbIddMax
#endif
#ifdef OvrdDfltCpuSrvcLaunchApCore
#define FinalDfltCpuSrvcLaunchApCore OvrdDfltCpuSrvcLaunchApCore
#else
#define FinalDfltCpuSrvcLaunchApCore DfltCpuSrvcLaunchApCore
#endif
#ifdef OvrdDfltCpuSrvcGetNumberOfPhysicalCores
#define FinalDfltCpuSrvcGetNumberOfPhysicalCores OvrdDfltCpuSrvcGetNumberOfPhysicalCores
#else
#define FinalDfltCpuSrvcGetNumberOfPhysicalCores DfltCpuSrvcGetNumberOfPhysicalCores
#endif
#ifdef OvrdDfltCpuSrvcGetApMailboxFromHardware
#define FinalDfltCpuSrvcGetApMailboxFromHardware OvrdDfltCpuSrvcGetApMailboxFromHardware
#else
#define FinalDfltCpuSrvcGetApMailboxFromHardware DfltCpuSrvcGetApMailboxFromHardware
#endif
#ifdef OvrdDfltCpuSrvcSetApCoreNumber
#define FinalDfltCpuSrvcSetApCoreNumber OvrdDfltCpuSrvcSetApCoreNumber
#else
#define FinalDfltCpuSrvcSetApCoreNumber DfltCpuSrvcSetApCoreNumber
#endif
#ifdef OvrdDfltCpuSrvcGetApCoreNumber
#define FinalDfltCpuSrvcGetApCoreNumber OvrdDfltCpuSrvcGetApCoreNumber
#else
#define FinalDfltCpuSrvcGetApCoreNumber DfltCpuSrvcGetApCoreNumber
#endif
#ifdef OvrdDfltCpuSrvcTransferApCoreNumber
#define FinalDfltCpuSrvcTransferApCoreNumber OvrdDfltCpuSrvcTransferApCoreNumber
#else
#define FinalDfltCpuSrvcTransferApCoreNumber DfltCpuSrvcTransferApCoreNumber
#endif
#ifdef OvrdDfltCpuSrvcGetStoredNodeNumber
#define FinalDfltCpuSrvcGetStoredNodeNumber OvrdDfltCpuSrvcGetStoredNodeNumber
#else
#define FinalDfltCpuSrvcGetStoredNodeNumber DfltCpuSrvcGetStoredNodeNumber
#endif
#ifdef OvrdDfltCpuSrvcCoreIdPositionInInitialApicId
#define FinalDfltCpuSrvcCoreIdPositionInInitialApicId OvrdDfltCpuSrvcCoreIdPositionInInitialApicId
#else
#define FinalDfltCpuSrvcCoreIdPositionInInitialApicId DfltCpuSrvcCoreIdPositionInInitialApicId
#endif
#ifdef OvrdDfltCpuSrvcSaveFeatures
#define FinalDfltCpuSrvcSaveFeatures OvrdDfltCpuSrvcSaveFeatures
#else
#define FinalDfltCpuSrvcSaveFeatures DfltCpuSrvcSaveFeatures
#endif
#ifdef OvrdDfltCpuSrvcWriteFeatures
#define FinalDfltCpuSrvcWriteFeatures OvrdDfltCpuSrvcWriteFeatures
#else
#define FinalDfltCpuSrvcWriteFeatures DfltCpuSrvcWriteFeatures
#endif
#ifdef OvrdDfltCpuSrvcSetWarmResetFlag
#define FinalDfltCpuSrvcSetWarmResetFlag OvrdDfltCpuSrvcSetWarmResetFlag
#else
#define FinalDfltCpuSrvcSetWarmResetFlag DfltCpuSrvcSetWarmResetFlag
#endif
#ifdef OvrdDfltCpuSrvcGetWarmResetFlag
#define FinalDfltCpuSrvcGetWarmResetFlag OvrdDfltCpuSrvcGetWarmResetFlag
#else
#define FinalDfltCpuSrvcGetWarmResetFlag DfltCpuSrvcGetWarmResetFlag
#endif
#ifdef OvrdDfltCpuSrvcGetBrandString1
#define FinalDfltCpuSrvcGetBrandString1 OvrdDfltCpuSrvcGetBrandString1
#else
#define FinalDfltCpuSrvcGetBrandString1 DfltCpuSrvcGetBrandString1
#endif
#ifdef OvrdDfltCpuSrvcGetBrandString2
#define FinalDfltCpuSrvcGetBrandString2 OvrdDfltCpuSrvcGetBrandString2
#else
#define FinalDfltCpuSrvcGetBrandString2 DfltCpuSrvcGetBrandString2
#endif
#ifdef OvrdDfltCpuSrvcGetMicroCodePatchesStruct
#define FinalDfltCpuSrvcGetMicroCodePatchesStruct OvrdDfltCpuSrvcGetMicroCodePatchesStruct
#else
#define FinalDfltCpuSrvcGetMicroCodePatchesStruct DfltCpuSrvcGetMicroCodePatchesStruct
#endif
#ifdef OvrdDfltCpuSrvcGetMicrocodeEquivalenceTable
#define FinalDfltCpuSrvcGetMicrocodeEquivalenceTable OvrdDfltCpuSrvcGetMicrocodeEquivalenceTable
#else
#define FinalDfltCpuSrvcGetMicrocodeEquivalenceTable DfltCpuSrvcGetMicrocodeEquivalenceTable
#endif
#ifdef OvrdDfltCpuSrvcGetCacheInfo
#define FinalDfltCpuSrvcGetCacheInfo OvrdDfltCpuSrvcGetCacheInfo
#else
#define FinalDfltCpuSrvcGetCacheInfo DfltCpuSrvcGetCacheInfo
#endif
#ifdef OvrdDfltCpuSrvcGetSysPmTableStruct
#define FinalDfltCpuSrvcGetSysPmTableStruct OvrdDfltCpuSrvcGetSysPmTableStruct
#else
#define FinalDfltCpuSrvcGetSysPmTableStruct DfltCpuSrvcGetSysPmTableStruct
#endif
#ifdef OvrdDfltCpuSrvcGetWheaInitData
#define FinalDfltCpuSrvcGetWheaInitData OvrdDfltCpuSrvcGetWheaInitData
#else
#define FinalDfltCpuSrvcGetWheaInitData DfltCpuSrvcGetWheaInitData
#endif
#ifdef OvrdDfltCpuSrvcGetPlatformTypeSpecificInfo
#define FinalDfltCpuSrvcGetPlatformTypeSpecificInfo OvrdDfltCpuSrvcGetPlatformTypeSpecificInfo
#else
#define FinalDfltCpuSrvcGetPlatformTypeSpecificInfo DfltCpuSrvcGetPlatformTypeSpecificInfo
#endif
#ifdef OvrdDfltCpuSrvcIsNbPstateEnabled
#define FinalDfltCpuSrvcIsNbPstateEnabled OvrdDfltCpuSrvcIsNbPstateEnabled
#else
#define FinalDfltCpuSrvcIsNbPstateEnabled DfltCpuSrvcIsNbPstateEnabled
#endif
#ifdef OvrdDfltCpuSrvcNextLinkHasHtPhyFeats
#define FinalDfltCpuSrvcNextLinkHasHtPhyFeats OvrdDfltCpuSrvcNextLinkHasHtPhyFeats
#else
#define FinalDfltCpuSrvcNextLinkHasHtPhyFeats DfltCpuSrvcNextLinkHasHtPhyFeats
#endif
#ifdef OvrdDfltCpuSrvcSetHtPhyRegister
#define FinalDfltCpuSrvcSetHtPhyRegister OvrdDfltCpuSrvcSetHtPhyRegister
#else
#define FinalDfltCpuSrvcSetHtPhyRegister DfltCpuSrvcSetHtPhyRegister
#endif
#ifdef OvrdDfltCpuSrvcGetNextHtLinkFeatures
#define FinalDfltCpuSrvcGetNextHtLinkFeatures OvrdDfltCpuSrvcGetNextHtLinkFeatures
#else
#define FinalDfltCpuSrvcGetNextHtLinkFeatures DfltCpuSrvcGetNextHtLinkFeatures
#endif
#ifdef OvrdDfltCpuSrvcRegisterTableList
#define FinalDfltCpuSrvcRegisterTableList OvrdDfltCpuSrvcRegisterTableList
#else
#define FinalDfltCpuSrvcRegisterTableList DfltCpuSrvcRegisterTableList
#endif
#ifdef OvrdDfltCpuSrvcTableEntryTypeDescriptors
#define FinalDfltCpuSrvcTableEntryTypeDescriptors OvrdDfltCpuSrvcTableEntryTypeDescriptors
#else
#define FinalDfltCpuSrvcTableEntryTypeDescriptors DfltCpuSrvcTableEntryTypeDescriptors
#endif
#ifdef OvrdDfltCpuSrvcPackageLinkMap
#define FinalDfltCpuSrvcPackageLinkMap OvrdDfltCpuSrvcPackageLinkMap
#else
#define FinalDfltCpuSrvcPackageLinkMap DfltCpuSrvcPackageLinkMap
#endif
#ifdef OvrdDfltCpuSrvcComputeUnitMap
#define FinalDfltCpuSrvcComputeUnitMap OvrdDfltCpuSrvcComputeUnitMap
#else
#define FinalDfltCpuSrvcComputeUnitMap DfltCpuSrvcComputeUnitMap
#endif
#ifdef OvrdDfltCpuSrvcInitCacheDisabled
#define FinalDfltCpuSrvcInitCacheDisabled OvrdDfltCpuSrvcInitCacheDisabled
#else
#define FinalDfltCpuSrvcInitCacheDisabled DfltCpuSrvcInitCacheDisabled
#endif
#ifdef OvrdDfltCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable
#define FinalDfltCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable OvrdDfltCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable
#else
#define FinalDfltCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable DfltCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable
#endif
#ifdef OvrdDfltCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable
#define FinalDfltCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable OvrdDfltCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable
#else
#define FinalDfltCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable DfltCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable
#endif
#ifdef OvrdDfltCpuSrvcPatchLoaderIsSharedByCU
#define FinalDfltCpuSrvcPatchLoaderIsSharedByCU OvrdDfltCpuSrvcPatchLoaderIsSharedByCU
#else
#define FinalDfltCpuSrvcPatchLoaderIsSharedByCU DfltCpuSrvcPatchLoaderIsSharedByCU
#endif
//
// Make final service definition with considerations of below:
// 1. Common build config swich control
// 2. Override service definition
//
// Member: (UINT16) Revision
#ifdef CpuSrvcRevision
#define FinalCpuSrvcRevision CpuSrvcRevision
#else
#define FinalCpuSrvcRevision FinalDfltCpuSrvcRevision
#endif
// Member: (PF_CPU_DISABLE_PSTATE) DisablePstate
#if AGESA_ENTRY_INIT_EARLY == TRUE
#ifdef CpuSrvcDisablePstate
#define FinalCpuSrvcDisablePstate CpuSrvcDisablePstate
#ifndef EXTERN_FINALCPUSRVCDISABLEPSTATE
#define EXTERN_FINALCPUSRVCDISABLEPSTATE
extern F_CPU_DISABLE_PSTATE FinalCpuSrvcDisablePstate;
#endif
#else
#define FinalCpuSrvcDisablePstate FinalDfltCpuSrvcDisablePstate
#endif
#else
#define FinalCpuSrvcDisablePstate FinalDfltAssertCpuSrvcDisablePstate
#endif
// Member: (PF_CPU_TRANSITION_PSTATE) TransitionPstate
#if (AGESA_ENTRY_INIT_EARLY == TRUE) || (AGESA_ENTRY_INIT_POST == TRUE) || (AGESA_ENTRY_INIT_LATE == TRUE)
#ifdef CpuSrvcTransitionPstate
#define FinalCpuSrvcTransitionPstate CpuSrvcTransitionPstate
#ifndef EXTERN_FINALCPUSRVCTRANSITIONPSTATE
#define EXTERN_FINALCPUSRVCTRANSITIONPSTATE
extern F_CPU_TRANSITION_PSTATE FinalCpuSrvcTransitionPstate;
#endif
#else
#define FinalCpuSrvcTransitionPstate FinalDfltCpuSrvcTransitionPstate
#endif
#else
#define FinalCpuSrvcTransitionPstate FinalDfltAssertCpuSrvcTransitionPstate
#endif
// Member: (PF_CPU_GET_IDD_MAX) GetProcIddMax
#if (AGESA_ENTRY_INIT_EARLY == TRUE) || (AGESA_ENTRY_INIT_POST == TRUE)
#ifdef CpuSrvcGetProcIddMax
#define FinalCpuSrvcGetProcIddMax CpuSrvcGetProcIddMax
extern F_CPU_GET_IDD_MAX FinalCpuSrvcGetProcIddMax;
#else
#define FinalCpuSrvcGetProcIddMax FinalDfltCpuSrvcGetProcIddMax
#endif
#else
#define FinalCpuSrvcGetProcIddMax FinalDfltAssertCpuSrvcGetProcIddMax
#endif
// Member: (PF_CPU_GET_TSC_RATE) GetTscRate
#if (AGESA_ENTRY_INIT_EARLY == TRUE) || (AGESA_ENTRY_INIT_LATE == TRUE)
#ifdef CpuSrvcGetTscRate
#define FinalCpuSrvcGetTscRate CpuSrvcGetTscRate
#ifndef EXTERN_FINALCPUSRVCGETTSCRATE
#define EXTERN_FINALCPUSRVCGETTSCRATE
extern F_CPU_GET_TSC_RATE FinalCpuSrvcGetTscRate;
#endif
#else
#define FinalCpuSrvcGetTscRate FinalDfltCpuSrvcGetTscRate
#endif
#else
#define FinalCpuSrvcGetTscRate FinalDfltAssertCpuSrvcGetTscRate
#endif
// Member: (PF_CPU_GET_NB_FREQ) GetCurrentNbFrequency
#if AGESA_ENTRY_INIT_EARLY == TRUE
#ifdef CpuSrvcGetCurrentNbFrequency
#define FinalCpuSrvcGetCurrentNbFrequency CpuSrvcGetCurrentNbFrequency
extern F_CPU_GET_NB_FREQ FinalCpuSrvcGetCurrentNbFrequency;
#else
#define FinalCpuSrvcGetCurrentNbFrequency FinalDfltCpuSrvcGetCurrentNbFrequency
#endif
#else
#define FinalCpuSrvcGetCurrentNbFrequency FinalDfltAssertCpuSrvcGetCurrentNbFrequency
#endif
// Member: (PF_CPU_GET_MIN_MAX_NB_FREQ) GetMinMaxNbFrequency
#if AGESA_ENTRY_INIT_EARLY == TRUE
#ifdef CpuSrvcGetMinMaxNbFrequency
#define FinalCpuSrvcGetMinMaxNbFrequency CpuSrvcGetMinMaxNbFrequency
extern F_CPU_GET_MIN_MAX_NB_FREQ FinalCpuSrvcGetMinMaxNbFrequency;
#else
#define FinalCpuSrvcGetMinMaxNbFrequency FinalDfltCpuSrvcGetMinMaxNbFrequency
#endif
#else
#define FinalCpuSrvcGetMinMaxNbFrequency FinalDfltAssertCpuSrvcGetMinMaxNbFrequency
#endif
// Member: (PF_CPU_GET_NB_PSTATE_INFO) GetNbPstateInfo
#if AGESA_ENTRY_INIT_EARLY == TRUE
#ifdef CpuSrvcGetNbPstateInfo
#define FinalCpuSrvcGetNbPstateInfo CpuSrvcGetNbPstateInfo
extern F_CPU_GET_NB_PSTATE_INFO FinalCpuSrvcGetNbPstateInfo;
#else
#define FinalCpuSrvcGetNbPstateInfo FinalDfltCpuSrvcGetNbPstateInfo
#endif
#else
#define FinalCpuSrvcGetNbPstateInfo FinalDfltAssertCpuSrvcGetNbPstateInfo
#endif
// Member: (PF_CPU_IS_NBCOF_INIT_NEEDED) IsNbCofInitNeeded
#if AGESA_ENTRY_INIT_EARLY == TRUE
#ifdef CpuSrvcIsNbCofInitNeeded
#define FinalCpuSrvcIsNbCofInitNeeded CpuSrvcIsNbCofInitNeeded
extern F_CPU_IS_NBCOF_INIT_NEEDED FinalCpuSrvcIsNbCofInitNeeded;
#else
#define FinalCpuSrvcIsNbCofInitNeeded FinalDfltCpuSrvcIsNbCofInitNeeded
#endif
#else
#define FinalCpuSrvcIsNbCofInitNeeded FinalDfltAssertCpuSrvcIsNbCofInitNeeded
#endif
// Member: (PF_CPU_GET_NB_IDD_MAX) GetNbIddMax
#if AGESA_ENTRY_INIT_EARLY == TRUE
#ifdef CpuSrvcGetNbIddMax
#define FinalCpuSrvcGetNbIddMax CpuSrvcGetNbIddMax
extern F_CPU_GET_NB_IDD_MAX FinalCpuSrvcGetNbIddMax;
#else
#define FinalCpuSrvcGetNbIddMax FinalDfltCpuSrvcGetNbIddMax
#endif
#else
#define FinalCpuSrvcGetNbIddMax FinalDfltAssertCpuSrvcGetNbIddMax
#endif
// Member: (PF_CPU_AP_INITIAL_LAUNCH) LaunchApCore
#if AGESA_ENTRY_INIT_EARLY == TRUE
#ifdef CpuSrvcLaunchApCore
#define FinalCpuSrvcLaunchApCore CpuSrvcLaunchApCore
#ifndef EXTERN_FINALCPUSRVCLAUNCHAPCORE
#define EXTERN_FINALCPUSRVCLAUNCHAPCORE
extern F_CPU_AP_INITIAL_LAUNCH FinalCpuSrvcLaunchApCore;
#endif
#else
#define FinalCpuSrvcLaunchApCore FinalDfltCpuSrvcLaunchApCore
#endif
#else
#define FinalCpuSrvcLaunchApCore FinalDfltAssertCpuSrvcLaunchApCore
#endif
// Member:(PF_CPU_NUMBER_OF_PHYSICAL_CORES) GetNumberOfPhysicalCores
#if (AGESA_ENTRY_INIT_EARLY == TRUE) || (AGESA_ENTRY_INIT_LATE == TRUE)
#ifdef CpuSrvcGetNumberOfPhysicalCores
#define FinalCpuSrvcGetNumberOfPhysicalCores CpuSrvcGetNumberOfPhysicalCores
extern F_CPU_NUMBER_OF_PHYSICAL_CORES FinalCpuSrvcGetNumberOfPhysicalCores;
#else
#define FinalCpuSrvcGetNumberOfPhysicalCores FinalDfltCpuSrvcGetNumberOfPhysicalCores
#endif
#else
#define FinalCpuSrvcGetNumberOfPhysicalCores FinalDfltAssertCpuSrvcGetNumberOfPhysicalCores
#endif
// Member: (PF_CPU_AMD_GET_AP_MAILBOX_FROM_HARDWARE) GetApMailboxFromHardware
#if (AGESA_ENTRY_INIT_RESET == TRUE) || (AGESA_ENTRY_INIT_EARLY == TRUE)
#ifdef CpuSrvcGetApMailboxFromHardware
#define FinalCpuSrvcGetApMailboxFromHardware CpuSrvcGetApMailboxFromHardware
extern F_CPU_AMD_GET_AP_MAILBOX_FROM_HARDWARE FinalCpuSrvcGetApMailboxFromHardware;
#else
#define FinalCpuSrvcGetApMailboxFromHardware FinalDfltCpuSrvcGetApMailboxFromHardware
#endif
#else
#define FinalCpuSrvcGetApMailboxFromHardware FinalDfltAssertCpuSrvcGetApMailboxFromHardware
#endif
// Member: (PF_CPU_SET_AP_CORE_NUMBER) SetApCoreNumber
#if (AGESA_ENTRY_INIT_RESET == TRUE) || (AGESA_ENTRY_INIT_EARLY == TRUE)
#ifdef CpuSrvcSetApCoreNumber
#define FinalCpuSrvcSetApCoreNumber CpuSrvcSetApCoreNumber
extern F_CPU_SET_AP_CORE_NUMBER FinalCpuSrvcSetApCoreNumber;
#else
#define FinalCpuSrvcSetApCoreNumber FinalDfltCpuSrvcSetApCoreNumber
#endif
#else
#define FinalCpuSrvcSetApCoreNumber FinalDfltAssertCpuSrvcSetApCoreNumber
#endif
// Member: (PF_CPU_GET_AP_CORE_NUMBER) GetApCoreNumber
#if (AGESA_ENTRY_INIT_RESET == TRUE) || (AGESA_ENTRY_INIT_EARLY == TRUE) || \
(AGESA_ENTRY_INIT_POST == TRUE) || (AGESA_ENTRY_INIT_LATE == TRUE)
#ifdef CpuSrvcGetApCoreNumber
#define FinalCpuSrvcGetApCoreNumber CpuSrvcGetApCoreNumber
extern F_CPU_GET_AP_CORE_NUMBER FinalCpuSrvcGetApCoreNumber;
#else
#define FinalCpuSrvcGetApCoreNumber FinalDfltCpuSrvcGetApCoreNumber
#endif
#else
#define FinalCpuSrvcGetApCoreNumber FinalDfltAssertCpuSrvcGetApCoreNumber
#endif
// Member: (PF_CPU_TRANSFER_AP_CORE_NUMBER) TransferApCoreNumber
#if (AGESA_ENTRY_INIT_RESET == TRUE) || (AGESA_ENTRY_INIT_EARLY == TRUE)
#ifdef CpuSrvcTransferApCoreNumber
#define FinalCpuSrvcTransferApCoreNumber CpuSrvcTransferApCoreNumber
extern F_CPU_TRANSFER_AP_CORE_NUMBER FinalCpuSrvcTransferApCoreNumber;
#else
#define FinalCpuSrvcTransferApCoreNumber FinalDfltCpuSrvcTransferApCoreNumber
#endif
#else
#define FinalCpuSrvcTransferApCoreNumber FinalDfltAssertCpuSrvcTransferApCoreNumber
#endif
// Member: (PF_CPU_GET_STORED_NODE_NUMBER) GetStoredNodeNumber
#if (AGESA_ENTRY_INIT_RESET == TRUE) || (AGESA_ENTRY_INIT_EARLY == TRUE) || \
(AGESA_ENTRY_INIT_ENV == TRUE) || (AGESA_ENTRY_INIT_MID == TRUE) || (AGESA_ENTRY_INIT_POST == TRUE) || \
(AGESA_ENTRY_INIT_LATE == TRUE) || (AGESA_ENTRY_INIT_S3SAVE == TRUE) || (AGESA_ENTRY_INIT_RESUME == TRUE) || \
(AGESA_ENTRY_INIT_LATE_RESTORE == TRUE) || (AGESA_ENTRY_INIT_GENERAL_SERVICES == TRUE)
#ifdef CpuSrvcGetStoredNodeNumber
#define FinalCpuSrvcGetStoredNodeNumber CpuSrvcGetStoredNodeNumber
extern F_CPU_GET_STORED_NODE_NUMBER FinalCpuSrvcGetStoredNodeNumber;
#else
#define FinalCpuSrvcGetStoredNodeNumber FinalDfltCpuSrvcGetStoredNodeNumber
#endif
#else
#define FinalCpuSrvcGetStoredNodeNumber FinalDfltAssertCpuSrvcGetStoredNodeNumber
#endif
// Member: (PF_CORE_ID_POSITION_IN_INITIAL_APIC_ID) CoreIdPositionInInitialApicId
#if (AGESA_ENTRY_INIT_RESET == TRUE) || (AGESA_ENTRY_INIT_EARLY == TRUE) || \
(AGESA_ENTRY_INIT_POST == TRUE) || (AGESA_ENTRY_INIT_GENERAL_SERVICES == TRUE)
#ifdef CpuSrvcCoreIdPositionInInitialApicId
#define FinalCpuSrvcCoreIdPositionInInitialApicId CpuSrvcCoreIdPositionInInitialApicId
#ifndef EXTERN_FINALCPUSRVCCOREIDPOSITIONININITIALAPICID
#define EXTERN_FINALCPUSRVCCOREIDPOSITIONININITIALAPICID
extern F_CORE_ID_POSITION_IN_INITIAL_APIC_ID FinalCpuSrvcCoreIdPositionInInitialApicId;
#endif
#else
#define FinalCpuSrvcCoreIdPositionInInitialApicId FinalDfltCpuSrvcoreIdPositionInInitialApicId
#endif
#else
#define FinalCpuSrvcCoreIdPositionInInitialApicId FinalDfltAssertCpuSrvcCoreIdPositionInInitialApicId
#endif
// Member: (PF_CPU_SAVE_FEATURES) SaveFeatures
#if (AGESA_ENTRY_INIT_POST == TRUE)
#ifdef CpuSrvcSaveFeatures
#define FinalCpuSrvcSaveFeatures CpuSrvcSaveFeatures
extern F_CPU_SAVE_FEATURES FinalCpuSrvcSaveFeatures;
#else
#define FinalCpuSrvcSaveFeatures FinalDfltCpuSrvcSaveFeatures
#endif
#else
#define FinalCpuSrvcSaveFeatures FinalDfltAssertCpuSrvcSaveFeatures
#endif
// Member: (PF_CPU_WRITE_FEATURES) WriteFeatures
#if (AGESA_ENTRY_INIT_POST == TRUE)
#ifdef CpuSrvcWriteFeatures
#define FinalCpuSrvcWriteFeatures CpuSrvcWriteFeatures
extern F_CPU_WRITE_FEATURES FinalCpuSrvcWriteFeatures;
#else
#define FinalCpuSrvcWriteFeatures FinalDfltCpuSrvcWriteFeatures
#endif
#else
#define FinalCpuSrvcWriteFeatures FinalDfltAssertCpuSrvcWriteFeatures
#endif
// Member: (PF_CPU_SET_WARM_RESET_FLAG) SetWarmResetFlag
#if (AGESA_ENTRY_INIT_RESET == TRUE) || (AGESA_ENTRY_INIT_EARLY == TRUE) || (AGESA_ENTRY_INIT_POST == TRUE)
#ifdef CpuSrvcSetWarmResetFlag
#define FinalCpuSrvcSetWarmResetFlag CpuSrvcSetWarmResetFlag
#ifndef EXTERN_FINALCPUSRVCSETWARMRESETFLAG
#define EXTERN_FINALCPUSRVCSETWARMRESETFLAG
extern F_CPU_SET_WARM_RESET_FLAG FinalCpuSrvcSetWarmResetFlag;
#endif
#else
#define FinalCpuSrvcSetWarmResetFlag FinalDfltCpuSrvcSetWarmResetFlag
#endif
#else
#define FinalCpuSrvcSetWarmResetFlag FinalDfltAssertCpuSrvcSetWarmResetFlag
#endif
// Member: (PF_CPU_GET_WARM_RESET_FLAG) GetWarmResetFlag
#if (AGESA_ENTRY_INIT_RESET == TRUE) || (AGESA_ENTRY_INIT_EARLY == TRUE) || (AGESA_ENTRY_INIT_POST == TRUE)
#ifdef CpuSrvcGetWarmResetFlag
#define FinalCpuSrvcGetWarmResetFlag CpuSrvcGetWarmResetFlag
#ifndef EXTERN_FINALCPUSRVCGETWARMRESETFLAG
#define EXTERN_FINALCPUSRVCGETWARMRESETFLAG
extern F_CPU_GET_WARM_RESET_FLAG FinalCpuSrvcGetWarmResetFlag;
#endif
#else
#define FinalCpuSrvcGetWarmResetFlag FinalDfltCpuSrvcGetWarmResetFlag
#endif
#else
#define FinalCpuSrvcGetWarmResetFlag FinalDfltAssertCpuSrvcGetWarmResetFlag
#endif
// Member: (PF_CPU_GET_FAMILY_SPECIFIC_ARRAY) GetBrandString1
#if (AGESA_ENTRY_INIT_EARLY == TRUE) || (AGESA_ENTRY_INIT_LATE == TRUE)
#ifdef CpuSrvcGetBrandString1
#define FinalCpuSrvcGetBrandString1 CpuSrvcGetBrandString1
extern F_CPU_GET_FAMILY_SPECIFIC_ARRAY FinalCpuSrvcGetBrandString1;
#else
#define FinalCpuSrvcGetBrandString1 FinalDfltCpuSrvcGetBrandString1
#endif
#else
#define FinalCpuSrvcGetBrandString1 FinalDfltAssertCpuSrvcGetBrandString1
#endif
// Member: (PF_CPU_GET_FAMILY_SPECIFIC_ARRAY) GetBrandString2
#if (AGESA_ENTRY_INIT_EARLY == TRUE) || (AGESA_ENTRY_INIT_LATE == TRUE)
#ifdef CpuSrvcGetBrandString2
#define FinalCpuSrvcGetBrandString2 CpuSrvcGetBrandString2
extern F_CPU_GET_FAMILY_SPECIFIC_ARRAY FinalCpuSrvcGetBrandString2;
#else
#define FinalCpuSrvcGetBrandString2 FinalDfltCpuSrvcGetBrandString2
#endif
#else
#define FinalCpuSrvcGetBrandString2 FinalDfltAssertCpuSrvcGetBrandString2
#endif
// Member: (PF_CPU_GET_FAMILY_SPECIFIC_ARRAY) GetMicroCodePatchesStruct
#if (AGESA_ENTRY_INIT_EARLY == TRUE)
#ifdef CpuSrvcGetMicroCodePatchesStruct
#define FinalCpuSrvcGetMicroCodePatchesStruct CpuSrvcGetMicroCodePatchesStruct
#ifndef EXTERN_FINALCPUSRVCGETMICROCODEPATCHESSTRUCT
#define EXTERN_FINALCPUSRVCGETMICROCODEPATCHESSTRUCT
extern F_CPU_GET_FAMILY_SPECIFIC_ARRAY FinalCpuSrvcGetMicroCodePatchesStruct;
#endif
#else
#define FinalCpuSrvcGetMicroCodePatchesStruct FinalDfltCpuSrvcGetMicroCodePatchesStruct
#endif
#else
#define FinalCpuSrvcGetMicroCodePatchesStruct FinalDfltAssertCpuSrvcGetMicroCodePatchesStruct
#endif
// Member: (PF_CPU_GET_FAMILY_SPECIFIC_ARRAY) GetMicrocodeEquivalenceTable
#if (AGESA_ENTRY_INIT_EARLY == TRUE)
#ifdef CpuSrvcGetMicrocodeEquivalenceTable
#define FinalCpuSrvcGetMicrocodeEquivalenceTable CpuSrvcGetMicrocodeEquivalenceTable
#ifndef EXTERN_FINALCPUSRVCGETMICROCODEEQUIVALENCETABLE
#define EXTERN_FINALCPUSRVCGETMICROCODEEQUIVALENCETABLE
extern F_CPU_GET_FAMILY_SPECIFIC_ARRAY FinalCpuSrvcGetMicrocodeEquivalenceTable;
#endif
#else
#define FinalCpuSrvcGetMicrocodeEquivalenceTable FinalDfltCpuSrvcGetMicrocodeEquivalenceTable
#endif
#else
#define FinalCpuSrvcGetMicrocodeEquivalenceTable FinalDfltAssertCpuSrvcGetMicrocodeEquivalenceTable
#endif
// Member: (PF_CPU_GET_FAMILY_SPECIFIC_ARRAY) GetCacheInfo
#if (AGESA_ENTRY_INIT_RESET == TRUE) || (AGESA_ENTRY_INIT_EARLY == TRUE)
#ifdef CpuSrvcGetCacheInfo
#define FinalCpuSrvcGetCacheInfo CpuSrvcGetCacheInfo
extern F_CPU_GET_FAMILY_SPECIFIC_ARRAY FinalCpuSrvcGetCacheInfo;
#else
#define FinalCpuSrvcGetCacheInfo FinalDfltCpuSrvcGetCacheInfo
#endif
#else
#define FinalCpuSrvcGetCacheInfo FinalDfltAssertCpuSrvcGetCacheInfo
#endif
// Member: (PF_CPU_GET_FAMILY_SPECIFIC_ARRAY) GetSysPmTableStruct
#if AGESA_ENTRY_INIT_EARLY == TRUE
#ifdef CpuSrvcGetSysPmTableStruct
#define FinalCpuSrvcGetSysPmTableStruct CpuSrvcGetSysPmTableStruct
extern F_CPU_GET_FAMILY_SPECIFIC_ARRAY FinalCpuSrvcGetSysPmTableStruct;
#else
#define FinalCpuSrvcGetSysPmTableStruct FinalDfltCpuSrvcGetSysPmTableStruct
#endif
#else
#define FinalCpuSrvcGetSysPmTableStruct FinalDfltAssertCpuSrvcGetSysPmTableStruct
#endif
// Member: (PF_CPU_GET_FAMILY_SPECIFIC_ARRAY) GetWheaInitData
#if AGESA_ENTRY_INIT_LATE == TRUE
#ifdef CpuSrvcGetWheaInitData
#define FinalCpuSrvcGetWheaInitData CpuSrvcGetWheaInitData
#ifndef EXTERN_FINALCPUSRVCGETWHEAINITDATA
#define EXTERN_FINALCPUSRVCGETWHEAINITDATA
extern F_CPU_GET_FAMILY_SPECIFIC_ARRAY FinalCpuSrvcGetWheaInitData;
#endif
#else
#define FinalCpuSrvcGetWheaInitData FinalDfltCpuSrvcGetWheaInitData
#endif
#else
#define FinalCpuSrvcGetWheaInitData FinalDfltAssertCpuSrvcGetWheaInitData
#endif
// Member: (PF_CPU_GET_PLATFORM_TYPE_SPECIFIC_INFO) GetPlatformTypeSpecificInfo
#if (AGESA_ENTRY_INIT_EARLY == TRUE) || (AGESA_ENTRY_INIT_LATE == TRUE)
#ifdef CpuSrvcGetPlatformTypeSpecificInfo
#define FinalCpuSrvcGetPlatformTypeSpecificInfo CpuSrvcGetPlatformTypeSpecificInfo
extern F_CPU_GET_PLATFORM_TYPE_SPECIFIC_INFO FinalCpuSrvcGetPlatformTypeSpecificInfo;
#else
#define FinalCpuSrvcGetPlatformTypeSpecificInfo FinalDfltCpuSrvcGetPlatformTypeSpecificInfo
#endif
#else
#define FinalCpuSrvcGetPlatformTypeSpecificInfo FinalDfltAssertCpuSrvcGetPlatformTypeSpecificInfo
#endif
// Member: (PF_IS_NB_PSTATE_ENABLED) IsNbPstateEnabled
#if (AGESA_ENTRY_INIT_EARLY == TRUE) || (AGESA_ENTRY_INIT_POST == TRUE)
#ifdef CpuSrvcIsNbPstateEnabled
#define FinalCpuSrvcIsNbPstateEnabled CpuSrvcIsNbPstateEnabled
extern F_IS_NB_PSTATE_ENABLED FinalCpuSrvcIsNbPstateEnabled;
#else
#define FinalCpuSrvcIsNbPstateEnabled FinalDfltCpuSrvcIsNbPstateEnabled
#endif
#else
#define FinalCpuSrvcIsNbPstateEnabled FinalDfltAssertCpuSrvcIsNbPstateEnabled
#endif
// Member: (PF_NEXT_LINK_HAS_HTFPY_FEATS) NextLinkHasHtPhyFeats
#if BASE_FAMILY_HT_PCI == TRUE
#ifdef CpuSrvcNextLinkHasHtPhyFeats
#define FinalCpuSrvcNextLinkHasHtPhyFeats CpuSrvcNextLinkHasHtPhyFeats
extern F_NEXT_LINK_HAS_HTPHY_FEATS FinalCpuSrvcNextLinkHasHtPhyFeats;
#else
#define FinalCpuSrvcNextLinkHasHtPhyFeats FinalDfltCpuSrvcNextLinkHasHtPhyFeats
#endif
#else
#define FinalCpuSrvcNextLinkHasHtPhyFeats FinalDfltAssertCpuSrvcNextLinkHasHtPhyFeats
#endif
// Member: (PF_SET_HT_PHY_REGISTER) SetHtPhyRegister
#if BASE_FAMILY_HT_PCI == TRUE
#ifdef CpuSrvcSetHtPhyRegister
#define FinalCpuSrvcSetHtPhyRegister CpuSrvcSetHtPhyRegister
extern F_SET_HT_PHY_REGISTER FinalCpuSrvcSetHtPhyRegister;
#else
#define FinalCpuSrvcSetHtPhyRegister FinalDfltCpuSrvcSetHtPhyRegister
#endif
#else
#define FinalCpuSrvcSetHtPhyRegister FinalDfltAssertCpuSrvcSetHtPhyRegister
#endif
// Member: (PF_GET_NEXT_HT_LINK_FEATURES) GetNextHtLinkFeatures
#if BASE_FAMILY_PCI == TRUE
#ifdef CpuSrvcGetNextHtLinkFeatures
#define FinalCpuSrvcGetNextHtLinkFeatures CpuSrvcGetNextHtLinkFeatures
extern F_GET_NEXT_HT_LINK_FEATURES FinalCpuSrvcGetNextHtLinkFeatures;
#else
#define FinalCpuSrvcGetNextHtLinkFeatures FinalDfltCpuSrvcGetNextHtLinkFeatures
#endif
#else
#define FinalCpuSrvcGetNextHtLinkFeatures FinalDfltAssertCpuSrvcGetNextHtLinkFeatures
#endif
// Member: (REGISTER_TABLE **) RegisterTableList
#if USES_REGISTER_TABLES == TRUE // (AGESA_ENTRY_INIT_EARLY == TRUE)
#ifdef CpuSrvcRegisterTableList
#define FinalCpuSrvcRegisterTableList CpuSrvcRegisterTableList
#else
#define FinalCpuSrvcRegisterTableList FinalDfltCpuSrvcRegisterTableList
#endif
#else
#define FinalCpuSrvcRegisterTableList FinalDfltAssertCpuSrvcRegisterTableList
#endif
// Member: (TABLE_ENTRY_TYPE_DESCRIPTOR *) TableEntryTypeDescriptors
#if USES_REGISTER_TABLES == TRUE // (AGESA_ENTRY_INIT_EARLY == TRUE)
#ifdef CpuSrvcTableEntryTypeDescriptors
#define FinalCpuSrvcTableEntryTypeDescriptors CpuSrvcTableEntryTypeDescriptors
#else
#define FinalCpuSrvcTableEntryTypeDescriptors FinalDfltCpuSrvcTableEntryTypeDescriptors
#endif
#else
#define FinalCpuSrvcTableEntryTypeDescriptors FinalDfltAssertCpuSrvcTableEntryTypeDescriptors
#endif
// Member: (PACKAGE_HTLINK_MAP) PackageLinkMap
#if MODEL_SPECIFIC_HT_PCI == TRUE
#ifdef CpuSrvcPackageLinkMap
#define FinalCpuSrvcPackageLinkMap CpuSrvcPackageLinkMap
#else
#define FinalCpuSrvcPackageLinkMap FinalDfltCpuSrvcPackageLinkMap
#endif
#else
#define FinalCpuSrvcPackageLinkMap FinalDfltAssertCpuSrvcPackageLinkMap
#endif
// Member: (COMPUTE_UNIT_MAP *) ComputeUnitMap
#ifdef CpuSrvcComputeUnitMap
#define FinalCpuSrvcComputeUnitMap CpuSrvcComputeUnitMap
#else
#define FinalCpuSrvcComputeUnitMap FinalDfltCpuSrvcComputeUnitMap
#endif
// Member: (FAMILY_CACHE_INIT_POLICY) InitCacheDisabled
#ifdef CpuSrvcInitCacheDisabled
#define FinalCpuSrvcInitCacheDisabled CpuSrvcInitCacheDisabled
#else
#define FinalCpuSrvcInitCacheDisabled FinalDfltCpuSrvcInitCacheDisabled
#endif
// Member: (PF_GET_EARLY_INIT_TABLE) GetEarlyInitBeforeApLaunchOnCoreTable
#if AGESA_ENTRY_INIT_EARLY == TRUE
#ifdef CpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable
#define FinalCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable CpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable
extern F_GET_EARLY_INIT_TABLE FinalCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable;
#else
#define FinalCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable FinalDfltCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable
#endif
#else
#define FinalCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable FinalDfltAssertCpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable
#endif
// Member: (PF_GET_EARLY_INIT_TABLE) GetEarlyInitAfterApLaunchOnCoreTable
#if AGESA_ENTRY_INIT_EARLY == TRUE
#ifdef CpuSrvcGetEarlyInitAfterApLaunchOnCoreTable
#define FinalCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable CpuSrvcGetEarlyInitAfterApLaunchOnCoreTable
extern F_GET_EARLY_INIT_TABLE FinalCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable;
#else
#define FinalCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable FinalDfltCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable
#endif
#else
#define FinalCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable FinalDfltAssertCpuSrvcGetEarlyInitAfterApLaunchOnCoreTable
#endif
// Member: (BOOLEAN) PatchLoaderIsSharedByCU
#if (AGESA_ENTRY_INIT_EARLY == TRUE)
#ifdef CpuSrvcPatchLoaderIsSharedByCU
#define FinalCpuSrvcPatchLoaderIsSharedByCU CpuSrvcPatchLoaderIsSharedByCU
#else
#define FinalCpuSrvcPatchLoaderIsSharedByCU FinalDfltCpuSrvcPatchLoaderIsSharedByCU
#endif
#else
#define FinalCpuSrvcPatchLoaderIsSharedByCU FinalDfltAssertCpuSrvcPatchLoaderIsSharedByCU
#endif
//
// NOTE: All CPU family specific service members should be all defined now.
//
//
// Define CPU specific services installation macro
//
#ifndef _INSTALL_CPU_SPECIFIC_SERVICES_TABLE_NAME_
#define _INSTALL_CPU_SPECIFIC_SERVICES_TABLE_NAME_
#define INSTALL_CPU_SPECIFIC_SERVICES_TABLE_NAME(MacroPrefix, TableName) \
CONST CPU_SPECIFIC_SERVICES ROMDATA TableName = \
{ \
MacroPrefix##CpuSrvcRevision, \
MacroPrefix##CpuSrvcDisablePstate, \
MacroPrefix##CpuSrvcTransitionPstate, \
MacroPrefix##CpuSrvcGetProcIddMax, \
MacroPrefix##CpuSrvcGetTscRate, \
MacroPrefix##CpuSrvcGetCurrentNbFrequency, \
MacroPrefix##CpuSrvcGetMinMaxNbFrequency, \
MacroPrefix##CpuSrvcGetNbPstateInfo, \
MacroPrefix##CpuSrvcIsNbCofInitNeeded, \
MacroPrefix##CpuSrvcGetNbIddMax, \
MacroPrefix##CpuSrvcLaunchApCore, \
MacroPrefix##CpuSrvcGetNumberOfPhysicalCores, \
MacroPrefix##CpuSrvcGetApMailboxFromHardware, \
MacroPrefix##CpuSrvcSetApCoreNumber, \
MacroPrefix##CpuSrvcGetApCoreNumber, \
MacroPrefix##CpuSrvcTransferApCoreNumber, \
MacroPrefix##CpuSrvcGetStoredNodeNumber, \
MacroPrefix##CpuSrvcCoreIdPositionInInitialApicId, \
MacroPrefix##CpuSrvcSaveFeatures, \
MacroPrefix##CpuSrvcWriteFeatures, \
MacroPrefix##CpuSrvcSetWarmResetFlag, \
MacroPrefix##CpuSrvcGetWarmResetFlag, \
MacroPrefix##CpuSrvcGetBrandString1, \
MacroPrefix##CpuSrvcGetBrandString2, \
MacroPrefix##CpuSrvcGetMicroCodePatchesStruct, \
MacroPrefix##CpuSrvcGetMicrocodeEquivalenceTable, \
MacroPrefix##CpuSrvcGetCacheInfo, \
MacroPrefix##CpuSrvcGetSysPmTableStruct, \
MacroPrefix##CpuSrvcGetWheaInitData, \
MacroPrefix##CpuSrvcGetPlatformTypeSpecificInfo, \
MacroPrefix##CpuSrvcIsNbPstateEnabled, \
MacroPrefix##CpuSrvcNextLinkHasHtPhyFeats, \
MacroPrefix##CpuSrvcSetHtPhyRegister, \
MacroPrefix##CpuSrvcGetNextHtLinkFeatures, \
MacroPrefix##CpuSrvcRegisterTableList, \
MacroPrefix##CpuSrvcTableEntryTypeDescriptors, \
MacroPrefix##CpuSrvcPackageLinkMap, \
MacroPrefix##CpuSrvcComputeUnitMap, \
MacroPrefix##CpuSrvcInitCacheDisabled, \
MacroPrefix##CpuSrvcGetEarlyInitBeforeApLaunchOnCoreTable, \
MacroPrefix##CpuSrvcGetEarlyInitAfterApLaunchOnCoreTable, \
MacroPrefix##CpuSrvcPatchLoaderIsSharedByCU \
}
#endif // _INSTALL_CPU_SPECIFIC_SERVICES_TABLE_NAME_
#ifndef _INSTALL_CPU_SPECIFIC_SERVICES_TABLE_
#define _INSTALL_CPU_SPECIFIC_SERVICES_TABLE_
#define INSTALL_CPU_SPECIFIC_SERVICES_TABLE(TableName) \
INSTALL_CPU_SPECIFIC_SERVICES_TABLE_NAME (Final, TableName)
#endif // _INSTALL_CPU_SPECIFIC_SERVICES_TABLE_
//
// Message out the final table definitions
//