RESET_UTILITY_GUID_SPECIFIC_RESET_DATA structure should be declared
as pack(1).
The patch adds the missing pack(1) pragma.
(GUID *)((UINT8 *)&ResetData +
OFFSET_OF (RESET_UTILITY_GUID_SPECIFIC_RESET_DATA, ResetSubtype))
is used to replace &ResetData.ResetSubType to resolve C4366 VS
compiler warning.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
#include <Library/BaseMemoryLib.h>\r
#include <Library/ResetSystemLib.h>\r
\r
#include <Library/BaseMemoryLib.h>\r
#include <Library/ResetSystemLib.h>\r
\r
typedef struct {\r
CHAR16 NullTerminator;\r
GUID ResetSubtype;\r
} RESET_UTILITY_GUID_SPECIFIC_RESET_DATA;\r
typedef struct {\r
CHAR16 NullTerminator;\r
GUID ResetSubtype;\r
} RESET_UTILITY_GUID_SPECIFIC_RESET_DATA;\r
+#pragma pack()\r
+\r
+VERIFY_SIZE_OF (RESET_UTILITY_GUID_SPECIFIC_RESET_DATA, 18);\r
\r
/**\r
This is a shorthand helper function to reset with a subtype so that\r
\r
/**\r
This is a shorthand helper function to reset with a subtype so that\r
RESET_UTILITY_GUID_SPECIFIC_RESET_DATA ResetData;\r
\r
ResetData.NullTerminator = CHAR_NULL;\r
RESET_UTILITY_GUID_SPECIFIC_RESET_DATA ResetData;\r
\r
ResetData.NullTerminator = CHAR_NULL;\r
- CopyGuid (&ResetData.ResetSubtype, ResetSubtype);\r
+ CopyGuid (\r
+ (GUID *)((UINT8 *)&ResetData + OFFSET_OF (RESET_UTILITY_GUID_SPECIFIC_RESET_DATA, ResetSubtype)),\r
+ ResetSubtype\r
+ );\r
ResetPlatformSpecific (sizeof (ResetData), &ResetData);\r
}\r
\r
ResetPlatformSpecific (sizeof (ResetData), &ResetData);\r
}\r
\r