Fix MethodMirror.GetCustomAttributes ().
[mono.git] / mono / io-layer / versioninfo.h
index b0662529e993f369aae623e8dc38f4858333e242..85c629f61ab89ea4e435886bfa6b0d29a69372c0 100644 (file)
@@ -98,7 +98,7 @@ typedef struct
        guint32 dwFileDateLS;
 } WapiFixedFileInfo;
 
-#if G_BYTE_ORDER != G_LITTLE_ENDIAN
+#if G_BYTE_ORDER == G_BIG_ENDIAN
 #define VS_FFI_SIGNATURE       0xbd04effe
 #define VS_FFI_STRUCVERSION    0x00000100
 #else
@@ -270,7 +270,7 @@ typedef struct
 {
        guint32 Signature;
        WapiImageFileHeader FileHeader;
-       WapiImageOptionalHeader OptionalHeader;
+       WapiImageOptionalHeader32 OptionalHeader;
 } WapiImageNTHeaders32;
 
 typedef struct
@@ -304,7 +304,9 @@ typedef struct
        guint32 Characteristics;
 } WapiImageSectionHeader;
 
-#define IMAGE_FIRST_SECTION(header) ((WapiImageSectionHeader *)(GPOINTER_TO_UINT (header) + G_STRUCT_OFFSET (WapiImageNTHeaders, OptionalHeader) + GUINT16_FROM_LE (((WapiImageNTHeaders *)(header))->FileHeader.SizeOfOptionalHeader)))
+#define IMAGE_FIRST_SECTION(header) ((WapiImageSectionHeader *)((gsize)(header) + G_STRUCT_OFFSET (WapiImageNTHeaders, OptionalHeader) + GUINT16_FROM_LE (((WapiImageNTHeaders *)(header))->FileHeader.SizeOfOptionalHeader)))
+
+#define _WAPI_IMAGE_FIRST_SECTION32(header) ((WapiImageSectionHeader *)((gsize)(header) + G_STRUCT_OFFSET (WapiImageNTHeaders32, OptionalHeader) + GUINT16_FROM_LE (((WapiImageNTHeaders32 *)(header))->FileHeader.SizeOfOptionalHeader)))
 
 #define RT_CURSOR      0x01
 #define RT_BITMAP      0x02
@@ -344,7 +346,7 @@ typedef struct
        {
                struct 
                {
-#if G_BYTE_ORDER != G_LITTLE_ENDIAN
+#if G_BYTE_ORDER == G_BIG_ENDIAN
                        guint32 NameIsString:1;
                        guint32 NameOffset:31;
 #else
@@ -353,14 +355,22 @@ typedef struct
 #endif
                };
                guint32 Name;
+#if G_BYTE_ORDER == G_BIG_ENDIAN
+               struct
+               {
+                       guint16 __wapi_big_endian_padding;
+                       guint16 Id;
+               };
+#else
                guint16 Id;
+#endif
        };
        union
        {
                guint32 OffsetToData;
                struct 
                {
-#if G_BYTE_ORDER != G_LITTLE_ENDIAN
+#if G_BYTE_ORDER == G_BIG_ENDIAN
                        guint32 DataIsDirectory:1;
                        guint32 OffsetToDirectory:31;
 #else
@@ -428,6 +438,8 @@ typedef struct
 #define VFT2_FONT_VECTOR       0x0002
 #define VFT2_FONT_TRUETYPE     0x0003
 
+#define MAKELANGID(primary,secondary) ((guint16)((secondary << 10) | (primary)))
+
 extern guint32 GetFileVersionInfoSize (gunichar2 *filename, guint32 *handle);
 extern gboolean GetFileVersionInfo (gunichar2 *filename, guint32 handle,
                                    guint32 len, gpointer data);