On 12/14/2017 4:31 PM, Song, BinX wrote:
Keep library class header file definition independent

Cc: Eric Dong <eric.d...@intel.com>
Cc: Laszlo Ersek <ler...@redhat.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Bell Song <binx.s...@intel.com>
---
  UefiCpuPkg/Include/Library/RegisterCpuFeaturesLib.h                | 7 +++----
  UefiCpuPkg/Library/RegisterCpuFeaturesLib/RegisterCpuFeaturesLib.c | 7 ++-----
  2 files changed, 5 insertions(+), 9 deletions(-)

diff --git a/UefiCpuPkg/Include/Library/RegisterCpuFeaturesLib.h 
b/UefiCpuPkg/Include/Library/RegisterCpuFeaturesLib.h
index fc3ccda..9582ad8 100644
--- a/UefiCpuPkg/Include/Library/RegisterCpuFeaturesLib.h
+++ b/UefiCpuPkg/Include/Library/RegisterCpuFeaturesLib.h
@@ -71,12 +71,11 @@
  #define CPU_FEATURE_APIC_TPR_UPDATE_MESSAGE         (32+9)
  #define CPU_FEATURE_ENERGY_PERFORMANCE_BIAS         (32+10)
  #define CPU_FEATURE_PPIN                            (32+11)
+#define CPU_FEATURE_PROC_TRACE                      (32+12)
  //
-// Currently, CPU_FEATURE_PROC_TRACE is the MAX feature we support.
-// If you define a feature bigger than it, please also replace it
-// in RegisterCpuFeatureLibIsFeatureValid function.
+// Please keep CPU_FEATURE_MAX as the max CPU feature
  //
-#define CPU_FEATURE_PROC_TRACE                      (32+12)
+#define CPU_FEATURE_MAX                             (32+12)
I think we need to define this CPU_FEATURE_MAX in
RegisterCpuFeaturesLib.c.

Thinking about another instance of RegisterCpuFeatureLib
that only supports features up to (32+9).
The MAX will be 32+9 for that instance.
The library class header only defines the features and
corresponding ID (32+xx).
Library instance chooses which features to support.

#define CPU_FEATURE_BEFORE_ALL BIT27
  #define CPU_FEATURE_AFTER_ALL                       BIT28
diff --git a/UefiCpuPkg/Library/RegisterCpuFeaturesLib/RegisterCpuFeaturesLib.c 
b/UefiCpuPkg/Library/RegisterCpuFeaturesLib/RegisterCpuFeaturesLib.c
index 6ec26e1..911f4d0 100644
--- a/UefiCpuPkg/Library/RegisterCpuFeaturesLib/RegisterCpuFeaturesLib.c
+++ b/UefiCpuPkg/Library/RegisterCpuFeaturesLib/RegisterCpuFeaturesLib.c
@@ -97,11 +97,8 @@ RegisterCpuFeatureLibIsFeatureValid (
Data = Feature;
    Data &= ~(CPU_FEATURE_BEFORE | CPU_FEATURE_AFTER | CPU_FEATURE_BEFORE_ALL | 
CPU_FEATURE_AFTER_ALL);
-  //
-  // Currently, CPU_FEATURE_PROC_TRACE is the MAX feature we support.
-  // If you define a feature bigger than it, please replace it at below.
-  //
-  if (Data > CPU_FEATURE_PROC_TRACE) {
+
+  if (Data > CPU_FEATURE_MAX) {
      DEBUG ((DEBUG_ERROR, "Invalid CPU feature: 0x%x ", Feature));
      return FALSE;
    }



--
Thanks,
Ray
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to