]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiCpuPkg/Library/RegisterCpuFeaturesLib/RegisterCpuFeatures.h
UefiCpuPkg/CpuFeatures: Change files format to DOS
[mirror_edk2.git] / UefiCpuPkg / Library / RegisterCpuFeaturesLib / RegisterCpuFeatures.h
index 11f8eb794def293e40009e3e4a9c9c84457d5d3a..7731f885b362d3501e78fde07707a8f2cb265ae4 100644 (file)
-/** @file
-  CPU Register Table Library definitions.
-
-  Copyright (c) 2017, 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
-  http://opensource.org/licenses/bsd-license.php
-
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-**/
-
-#ifndef _REGISTER_CPU_FEATURES_H_
-#define _REGISTER_CPU_FEATURES_H_
-
-#include <Library/BaseLib.h>
-#include <Library/DebugLib.h>
-#include <Library/PcdLib.h>
-#include <Library/RegisterCpuFeaturesLib.h>
-#include <Library/BaseMemoryLib.h>
-#include <Library/MemoryAllocationLib.h>
-#include <Library/SynchronizationLib.h>
-#include <Library/IoLib.h>
-
-#include <AcpiCpuData.h>
-
-#define CPU_FEATURE_ENTRY_SIGNATURE  SIGNATURE_32 ('C', 'F', 'E', 'S')
-
-#define CPU_FEATURE_NAME_SIZE        128
-
-typedef struct {
-  REGISTER_CPU_FEATURE_INFORMATION     CpuInfo;
-  UINT8                                *FeaturesSupportedMask;
-  LIST_ENTRY                           OrderList;
-} CPU_FEATURES_INIT_ORDER;
-
-typedef struct {
-  UINT32                       Signature;
-  LIST_ENTRY                   Link;
-  UINT8                        *FeatureMask;
-  CHAR8                        *FeatureName;
-  CPU_FEATURE_GET_CONFIG_DATA  GetConfigDataFunc;
-  CPU_FEATURE_SUPPORT          SupportFunc;
-  CPU_FEATURE_INITIALIZE       InitializeFunc;
-  UINT8                        *BeforeFeatureBitMask;
-  UINT8                        *AfterFeatureBitMask;
-  VOID                         *ConfigData;
-  BOOLEAN                      BeforeAll;
-  BOOLEAN                      AfterAll;
-} CPU_FEATURES_ENTRY;
-
-typedef struct {
-  UINTN                    FeaturesCount;
-  UINT32                   BitMaskSize;
-  SPIN_LOCK                MsrLock;
-  SPIN_LOCK                MemoryMappedLock;
-  LIST_ENTRY               FeatureList;
-
-  CPU_FEATURES_INIT_ORDER  *InitOrder;
-  UINT8                    *SupportPcds;
-  UINT8                    *CapabilityPcds;
-  UINT8                    *ConfigurationPcds;
-  UINT8                    *SettingPcds;
-
-  CPU_REGISTER_TABLE       *RegisterTable;
-  CPU_REGISTER_TABLE       *PreSmmRegisterTable;
-  UINTN                    BspNumber;
-} CPU_FEATURES_DATA;
-
-#define CPU_FEATURE_ENTRY_FROM_LINK(a) \
-  CR ( \
-  (a), \
-  CPU_FEATURES_ENTRY, \
-  Link, \
-  CPU_FEATURE_ENTRY_SIGNATURE \
-  )
-
-/**
-  Worker function to get CPU_FEATURES_DATA pointer.
-
-  @return Pointer to CPU_FEATURES_DATA.
-**/
-CPU_FEATURES_DATA *
-GetCpuFeaturesData (
-  VOID
-  );
-
-/**
-  Enlarges CPU register table for each processor.
-
-  @param[in, out]  RegisterTable   Pointer processor's CPU register table
-**/
-VOID
-EnlargeRegisterTable (
-  IN OUT CPU_REGISTER_TABLE            *RegisterTable
-  );
-
-/**
-  Allocates ACPI NVS memory to save ACPI_CPU_DATA.
-
-  @return  Pointer to allocated ACPI_CPU_DATA.
-**/
-ACPI_CPU_DATA *
-AllocateAcpiCpuData (
-  VOID
-  );
-
-/**
-  Worker function to return processor index.
-
-  @return  The processor index.
-**/
-UINTN
-GetProcessorIndex (
-  VOID
-  );
-
-/**
-  Gets detailed MP-related information on the requested processor at the
-  instant this call is made.
-
-  @param[in]  ProcessorNumber       The handle number of processor.
-  @param[out] ProcessorInfoBuffer   A pointer to the buffer where information for
-                                    the requested processor is deposited.
-
-  @return Status of MpServices->GetProcessorInfo().
-**/
-EFI_STATUS
-GetProcessorInformation (
-  IN  UINTN                            ProcessorNumber,
-  OUT EFI_PROCESSOR_INFORMATION        *ProcessorInfoBuffer
-  );
-
-/**
-  Worker function to execute a caller provided function on all enabled APs.
-
-  @param[in]  Procedure               A pointer to the function to be run on
-                                      enabled APs of the system.
-**/
-VOID
-StartupAPsWorker (
-  IN  EFI_AP_PROCEDURE                 Procedure
-  );
-
-/**
-  Worker function to retrieve the number of logical processor in the platform.
-
-  @param[out] NumberOfCpus                Pointer to the total number of logical
-                                          processors in the system, including the BSP
-                                          and disabled APs.
-  @param[out] NumberOfEnabledProcessors   Pointer to the number of enabled logical
-                                          processors that exist in system, including
-                                          the BSP.
-**/
-VOID
-GetNumberOfProcessor (
-  OUT UINTN                            *NumberOfCpus,
-  OUT UINTN                            *NumberOfEnabledProcessors
-  );
-
-/**
-  Worker function to switch the requested AP to be the BSP from that point onward.
-
-  @param[in] ProcessorNumber   The handle number of AP that is to become the new BSP.
-**/
-VOID
-SwitchNewBsp (
-  IN  UINTN                            ProcessorNumber
-  );
-
-/**
-  Function that uses DEBUG() macros to display the contents of a a CPU feature bit mask.
-
-  @param[in]  FeatureMask  A pointer to the CPU feature bit mask.
-**/
-VOID
-DumpCpuFeatureMask (
-  IN UINT8               *FeatureMask
-  );
-
-/**
-  Dump CPU feature name or CPU feature bit mask.
-
-  @param[in]  CpuFeature   Pointer to CPU_FEATURES_ENTRY
-**/
-VOID
-DumpCpuFeature (
-  IN CPU_FEATURES_ENTRY  *CpuFeature
-  );
-
-#endif
+/** @file\r
+  CPU Register Table Library definitions.\r
+\r
+  Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>\r
+  This program and the accompanying materials\r
+  are licensed and made available under the terms and conditions of the BSD License\r
+  which accompanies this distribution.  The full text of the license may be found at\r
+  http://opensource.org/licenses/bsd-license.php\r
+\r
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+**/\r
+\r
+#ifndef _REGISTER_CPU_FEATURES_H_\r
+#define _REGISTER_CPU_FEATURES_H_\r
+\r
+#include <Library/BaseLib.h>\r
+#include <Library/DebugLib.h>\r
+#include <Library/PcdLib.h>\r
+#include <Library/RegisterCpuFeaturesLib.h>\r
+#include <Library/BaseMemoryLib.h>\r
+#include <Library/MemoryAllocationLib.h>\r
+#include <Library/SynchronizationLib.h>\r
+#include <Library/IoLib.h>\r
+\r
+#include <AcpiCpuData.h>\r
+\r
+#define CPU_FEATURE_ENTRY_SIGNATURE  SIGNATURE_32 ('C', 'F', 'E', 'S')\r
+\r
+#define CPU_FEATURE_NAME_SIZE        128\r
+\r
+typedef struct {\r
+  REGISTER_CPU_FEATURE_INFORMATION     CpuInfo;\r
+  UINT8                                *FeaturesSupportedMask;\r
+  LIST_ENTRY                           OrderList;\r
+} CPU_FEATURES_INIT_ORDER;\r
+\r
+typedef struct {\r
+  UINT32                       Signature;\r
+  LIST_ENTRY                   Link;\r
+  UINT8                        *FeatureMask;\r
+  CHAR8                        *FeatureName;\r
+  CPU_FEATURE_GET_CONFIG_DATA  GetConfigDataFunc;\r
+  CPU_FEATURE_SUPPORT          SupportFunc;\r
+  CPU_FEATURE_INITIALIZE       InitializeFunc;\r
+  UINT8                        *BeforeFeatureBitMask;\r
+  UINT8                        *AfterFeatureBitMask;\r
+  VOID                         *ConfigData;\r
+  BOOLEAN                      BeforeAll;\r
+  BOOLEAN                      AfterAll;\r
+} CPU_FEATURES_ENTRY;\r
+\r
+typedef struct {\r
+  UINTN                    FeaturesCount;\r
+  UINT32                   BitMaskSize;\r
+  SPIN_LOCK                MsrLock;\r
+  SPIN_LOCK                MemoryMappedLock;\r
+  LIST_ENTRY               FeatureList;\r
+\r
+  CPU_FEATURES_INIT_ORDER  *InitOrder;\r
+  UINT8                    *SupportPcds;\r
+  UINT8                    *CapabilityPcds;\r
+  UINT8                    *ConfigurationPcds;\r
+  UINT8                    *SettingPcds;\r
+\r
+  CPU_REGISTER_TABLE       *RegisterTable;\r
+  CPU_REGISTER_TABLE       *PreSmmRegisterTable;\r
+  UINTN                    BspNumber;\r
+} CPU_FEATURES_DATA;\r
+\r
+#define CPU_FEATURE_ENTRY_FROM_LINK(a) \\r
+  CR ( \\r
+  (a), \\r
+  CPU_FEATURES_ENTRY, \\r
+  Link, \\r
+  CPU_FEATURE_ENTRY_SIGNATURE \\r
+  )\r
+\r
+/**\r
+  Worker function to get CPU_FEATURES_DATA pointer.\r
+\r
+  @return Pointer to CPU_FEATURES_DATA.\r
+**/\r
+CPU_FEATURES_DATA *\r
+GetCpuFeaturesData (\r
+  VOID\r
+  );\r
+\r
+/**\r
+  Enlarges CPU register table for each processor.\r
+\r
+  @param[in, out]  RegisterTable   Pointer processor's CPU register table\r
+**/\r
+VOID\r
+EnlargeRegisterTable (\r
+  IN OUT CPU_REGISTER_TABLE            *RegisterTable\r
+  );\r
+\r
+/**\r
+  Allocates ACPI NVS memory to save ACPI_CPU_DATA.\r
+\r
+  @return  Pointer to allocated ACPI_CPU_DATA.\r
+**/\r
+ACPI_CPU_DATA *\r
+AllocateAcpiCpuData (\r
+  VOID\r
+  );\r
+\r
+/**\r
+  Worker function to return processor index.\r
+\r
+  @return  The processor index.\r
+**/\r
+UINTN\r
+GetProcessorIndex (\r
+  VOID\r
+  );\r
+\r
+/**\r
+  Gets detailed MP-related information on the requested processor at the\r
+  instant this call is made.\r
+\r
+  @param[in]  ProcessorNumber       The handle number of processor.\r
+  @param[out] ProcessorInfoBuffer   A pointer to the buffer where information for\r
+                                    the requested processor is deposited.\r
+\r
+  @return Status of MpServices->GetProcessorInfo().\r
+**/\r
+EFI_STATUS\r
+GetProcessorInformation (\r
+  IN  UINTN                            ProcessorNumber,\r
+  OUT EFI_PROCESSOR_INFORMATION        *ProcessorInfoBuffer\r
+  );\r
+\r
+/**\r
+  Worker function to execute a caller provided function on all enabled APs.\r
+\r
+  @param[in]  Procedure               A pointer to the function to be run on\r
+                                      enabled APs of the system.\r
+**/\r
+VOID\r
+StartupAPsWorker (\r
+  IN  EFI_AP_PROCEDURE                 Procedure\r
+  );\r
+\r
+/**\r
+  Worker function to retrieve the number of logical processor in the platform.\r
+\r
+  @param[out] NumberOfCpus                Pointer to the total number of logical\r
+                                          processors in the system, including the BSP\r
+                                          and disabled APs.\r
+  @param[out] NumberOfEnabledProcessors   Pointer to the number of enabled logical\r
+                                          processors that exist in system, including\r
+                                          the BSP.\r
+**/\r
+VOID\r
+GetNumberOfProcessor (\r
+  OUT UINTN                            *NumberOfCpus,\r
+  OUT UINTN                            *NumberOfEnabledProcessors\r
+  );\r
+\r
+/**\r
+  Worker function to switch the requested AP to be the BSP from that point onward.\r
+\r
+  @param[in] ProcessorNumber   The handle number of AP that is to become the new BSP.\r
+**/\r
+VOID\r
+SwitchNewBsp (\r
+  IN  UINTN                            ProcessorNumber\r
+  );\r
+\r
+/**\r
+  Function that uses DEBUG() macros to display the contents of a a CPU feature bit mask.\r
+\r
+  @param[in]  FeatureMask  A pointer to the CPU feature bit mask.\r
+**/\r
+VOID\r
+DumpCpuFeatureMask (\r
+  IN UINT8               *FeatureMask\r
+  );\r
+\r
+/**\r
+  Dump CPU feature name or CPU feature bit mask.\r
+\r
+  @param[in]  CpuFeature   Pointer to CPU_FEATURES_ENTRY\r
+**/\r
+VOID\r
+DumpCpuFeature (\r
+  IN CPU_FEATURES_ENTRY  *CpuFeature\r
+  );\r
+\r
+#endif\r