Fix some type definitions for the WORDS_BIGENDIAN case

Alexandre Julliard julliard at winehq.org
Tue Jan 3 05:41:00 CST 2006


Dmitry Timoshkov <dmitry at baikal.ru> writes:

> diff -up cvs/hq/wine/include/winnt.h wine/include/winnt.h
> --- cvs/hq/wine/include/winnt.h	2005-11-30 23:19:48.000000000 +0800
> +++ wine/include/winnt.h	2006-01-02 15:08:41.000000000 +0800
> @@ -1743,12 +1743,21 @@ typedef struct _IMAGE_DOS_HEADER {
>  } IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;
>  #include <poppack.h>
>  
> +#ifdef WORDS_BIGENDIAN
> +#define IMAGE_DOS_SIGNATURE    0x4D5A     /* MZ   */
> +#define IMAGE_OS2_SIGNATURE    0x4E45     /* NE   */
> +#define IMAGE_OS2_SIGNATURE_LE 0x4C45     /* LE   */
> +#define IMAGE_OS2_SIGNATURE_LX 0x4C58     /* LX */
> +#define IMAGE_VXD_SIGNATURE    0x4C45     /* LE   */
> +#define IMAGE_NT_SIGNATURE     0x50450000 /* PE00 */
> +#else
>  #define IMAGE_DOS_SIGNATURE    0x5A4D     /* MZ   */
>  #define IMAGE_OS2_SIGNATURE    0x454E     /* NE   */
>  #define IMAGE_OS2_SIGNATURE_LE 0x454C     /* LE   */
>  #define IMAGE_OS2_SIGNATURE_LX 0x584C     /* LX */
>  #define IMAGE_VXD_SIGNATURE    0x454C     /* LE   */
>  #define IMAGE_NT_SIGNATURE     0x00004550 /* PE00 */
> +#endif

I'm not sure what you are trying to achieve here. If you want to load
little-endian files on big-endian machines, you need to swap
everything; swapping only the signature is not going to do any good.

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list