#define __ARRAY_ELEMENT_SIZE(TYPE, Field) (sizeof((TYPE *)0)->Field[0])\r
#define __OFFSET_OF(TYPE, Field) ((UINT32) &(((TYPE *)0)->Field))\r
#define __FLEXIBLE_SIZE(Size, TYPE, Field, MaxIndex) if (__FIELD_SIZE(TYPE, Field) == 0) Size = MAX((__OFFSET_OF(TYPE, Field) + __ARRAY_ELEMENT_SIZE(TYPE, Field) * (MaxIndex)), Size)\r
+#define __ARRAY_SIZE(Array) (sizeof(Array)/sizeof(Array[0]))\r
+\r
+#if defined(_MSC_EXTENSIONS)\r
+#define __STATIC_ASSERT static_assert\r
+#else\r
+#define __STATIC_ASSERT _Static_assert\r
+#endif\r
\r
VOID\r
PcdEntryPoint (\r