]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/C/VfrCompile/VfrFormPkg.h
BaseTools: Replace ARCH with HOST_ARCH in C Makefile to avoid conflict
[mirror_edk2.git] / BaseTools / Source / C / VfrCompile / VfrFormPkg.h
index 051df28768acc94e355111051a6c7ab1552f97ed..8a22cb24e4b7be97f85b6f94b7e765a20f5175aa 100644 (file)
@@ -2,7 +2,7 @@
   \r
   The definition of CFormPkg's member function\r
 \r
-Copyright (c) 2004 - 2016, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2004 - 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
@@ -87,6 +87,10 @@ struct SPendingAssign {
   VOID   SetAddrAndLen (IN VOID *, IN UINT32);\r
   VOID   AssignValue (IN VOID *, IN UINT32);\r
   CHAR8 * GetKey (VOID);\r
+\r
+private:\r
+  SPendingAssign (IN CONST SPendingAssign&);             // Prevent copy-construction\r
+  SPendingAssign& operator= (IN CONST SPendingAssign&);  // Prevent assignment\r
 };\r
 \r
 struct SBufferNode {\r
@@ -139,6 +143,10 @@ public:
   EFI_VFR_RETURN_CODE BuildPkg (OUT PACKAGE_DATA &);\r
   EFI_VFR_RETURN_CODE GenCFile (IN CHAR8 *, IN FILE *, IN PACKAGE_DATA *PkgData = NULL);\r
 \r
+private:\r
+  CFormPkg (IN CONST CFormPkg&);             // Prevent copy-construction\r
+  CFormPkg& operator= (IN CONST CFormPkg&);  // Prevent assignment\r
+\r
 public:\r
   EFI_VFR_RETURN_CODE AssignPending (IN CHAR8 *, IN VOID *, IN UINT32, IN UINT32, IN CONST CHAR8 *Msg = NULL);\r
   VOID                DoPendingAssign (IN CHAR8 *, IN VOID *, IN UINT32);\r
@@ -237,6 +245,10 @@ public:
   VOID        IfrCreateDefaultForQuestion (IN  SIfrRecord *, IN  QuestionDefaultRecord *);\r
   VOID        IfrParseDefaulInfoInQuestion (IN  SIfrRecord *, OUT QuestionDefaultRecord *);\r
   VOID        IfrAddDefaultToBufferConfig (IN  UINT16, IN  SIfrRecord *,IN  EFI_IFR_TYPE_VALUE);\r
+\r
+private:\r
+  CIfrRecordInfoDB (IN CONST CIfrRecordInfoDB&);             // Prevent copy-construction\r
+  CIfrRecordInfoDB& operator= (IN CONST CIfrRecordInfoDB&);  // Prevent assignment\r
 };\r
 \r
 extern CIfrRecordInfoDB gCIfrRecordInfoDB;\r
@@ -307,6 +319,7 @@ private:
 public:\r
   CIfrOpHeader (IN UINT8 OpCode, IN VOID *StartAddr, IN UINT8 Length = 0);\r
   CIfrOpHeader (IN CIfrOpHeader &);\r
+  CIfrOpHeader& operator=(IN CONST CIfrOpHeader &);\r
 \r
   VOID IncLength (UINT8 Size) {\r
     if ((mHeader->Length + Size) > mHeader->Length) {\r
@@ -554,8 +567,12 @@ public:
     mMinMaxStepData->u8.Step = Step;\r
   }\r
 \r
-  UINT64 GetMinData (UINT8 VarType) {\r
+  UINT64 GetMinData (UINT8 VarType, BOOLEAN IsBitVar) {\r
     UINT64 MinValue = 0;\r
+    if (IsBitVar) {\r
+      MinValue = mMinMaxStepData->u32.MinValue;\r
+      return MinValue;\r
+    }\r
     switch (VarType) {\r
     case EFI_IFR_TYPE_NUM_SIZE_64:\r
       MinValue = mMinMaxStepData->u64.MinValue;\r
@@ -575,8 +592,12 @@ public:
     return MinValue;\r
   }\r
 \r
-  UINT64 GetMaxData (UINT8 VarType) {\r
+  UINT64 GetMaxData (UINT8 VarType, BOOLEAN IsBitVar) {\r
     UINT64 MaxValue = 0;\r
+    if (IsBitVar) {\r
+      MaxValue = mMinMaxStepData->u32.MaxValue;\r
+      return MaxValue;\r
+    }\r
     switch (VarType) {\r
     case EFI_IFR_TYPE_NUM_SIZE_64:\r
       MaxValue = mMinMaxStepData->u64.MaxValue;\r
@@ -596,8 +617,12 @@ public:
     return MaxValue;\r
   }\r
 \r
-  UINT64 GetStepData (UINT8 VarType) {\r
+  UINT64 GetStepData (UINT8 VarType, BOOLEAN IsBitVar) {\r
     UINT64 MaxValue = 0;\r
+    if (IsBitVar) {\r
+      MaxValue = mMinMaxStepData->u32.Step;\r
+      return MaxValue;\r
+    }\r
     switch (VarType) {\r
     case EFI_IFR_TYPE_NUM_SIZE_64:\r
       MaxValue = mMinMaxStepData->u64.Step;\r
@@ -1394,6 +1419,22 @@ public:
     return VFR_RETURN_SUCCESS;\r
   }\r
 \r
+  EFI_VFR_RETURN_CODE SetFlagsForBitField (IN UINT8 HFlags, IN UINT8 LFlags, BOOLEAN DisplaySettingsSpecified = FALSE) {\r
+    EFI_VFR_RETURN_CODE Ret;\r
+\r
+    Ret = CIfrQuestionHeader::SetFlags (HFlags);\r
+    if (Ret != VFR_RETURN_SUCCESS) {\r
+      return Ret;\r
+    }\r
+\r
+    if (DisplaySettingsSpecified == FALSE) {\r
+      mNumeric->Flags = LFlags | EDKII_IFR_DISPLAY_UINT_DEC_BIT;\r
+    } else {\r
+      mNumeric->Flags = LFlags;\r
+    }\r
+    return VFR_RETURN_SUCCESS;\r
+  }\r
+\r
   UINT8 GetNumericFlags () {\r
     return mNumeric->Flags;\r
   }\r
@@ -1434,6 +1475,22 @@ public:
     return VFR_RETURN_SUCCESS;\r
   }\r
 \r
+  EFI_VFR_RETURN_CODE SetFlagsForBitField (IN UINT8 HFlags, IN UINT8 LFlags) {\r
+    EFI_VFR_RETURN_CODE Ret;\r
+\r
+    Ret = CIfrQuestionHeader::SetFlags (HFlags);\r
+    if (Ret != VFR_RETURN_SUCCESS) {\r
+      return Ret;\r
+    }\r
+\r
+    if (LFlags & EFI_IFR_DISPLAY) {\r
+      mOneOf->Flags = LFlags;\r
+    } else {\r
+      mOneOf->Flags = LFlags | EDKII_IFR_DISPLAY_UINT_DEC_BIT;\r
+    }\r
+    return VFR_RETURN_SUCCESS;\r
+  }\r
+\r
   VOID ShrinkBinSize (IN UINT16 Size) {\r
     //\r
     // Update the buffer size which is truly be used later.\r