/* Prepares for the data used by CPU feature detection and initialization. */
VOID* EFIAPI ProcTraceGetConfigData(IN UINTN NumberOfProcessors)
/* Prepares for the data used by CPU feature detection and initialization. */
VOID* EFIAPI ProcTraceGetConfigData(IN UINTN NumberOfProcessors)
{
  PROC_TRACE_DATA  *ConfigData;
  ConfigData = AllocateZeroPool (sizeof (PROC_TRACE_DATA) + sizeof (PROC_TRACE_PROCESSOR_DATA) * NumberOfProcessors);
  ASSERT (ConfigData != NULL);
  ConfigData->ProcessorData = (PROC_TRACE_PROCESSOR_DATA *)((UINT8 *)ConfigData + sizeof (PROC_TRACE_DATA));
  ConfigData->NumberOfProcessors          = (UINT32)NumberOfProcessors;
  ConfigData->ProcTraceMemSize            = PcdGet32 (PcdCpuProcTraceMemSize);
  ConfigData->ProcTraceOutputScheme       = PcdGet8 (PcdCpuProcTraceOutputScheme);
  ConfigData->EnableOnBspOnly             = PcdGetBool (PcdCpuProcTraceBspOnly);
  ConfigData->EnablePerformanceCollecting = PcdGetBool (PcdCpuProcTracePerformanceCollecting);
  return ConfigData;
}