Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
1.5 KiB

  1. #ifndef __AMD64_WOW64EXTS32__
  2. #define __AMD64_WOW64EXTS32__
  3. #define _CROSS_PLATFORM_
  4. #define WOW64EXTS_386
  5. #if !defined(_X86_)
  6. #error This file can only be included for x86 build
  7. #else
  8. /* include headers as if the platform were amd64,
  9. because we need 64-bit stuff for context conversion */
  10. //
  11. // Fix build that only get defined on AMD64, but in this case we take 64bit header and compile 32bit code
  12. //
  13. #undef _X86_
  14. #define _AMD64_
  15. #include <nt.h>
  16. __int64 UnsignedMultiplyHigh (__int64 Multiplier, IN __int64 Multiplicand);
  17. #define DR7_ACTIVE 0x55
  18. struct _TEB *
  19. NtCurrentTeb(void);
  20. #include <ntrtl.h>
  21. #include <nturtl.h>
  22. #include <windows.h>
  23. #undef _AMD64_
  24. #define _X86_
  25. /* 32-bit stuff for context conversion are defined here */
  26. #include <wow64.h>
  27. #include <wow64cpu.h>
  28. #include <vdmdbg.h>
  29. #include <amd64cpu.h>
  30. /* these are defined in nti386.h, since we only included ntamd64.h (in nt.h),
  31. we have to define these. */
  32. #define SIZE_OF_FX_REGISTERS 128
  33. typedef struct _FXSAVE_FORMAT {
  34. USHORT ControlWord;
  35. USHORT StatusWord;
  36. USHORT TagWord;
  37. USHORT ErrorOpcode;
  38. ULONG ErrorOffset;
  39. ULONG ErrorSelector;
  40. ULONG DataOffset;
  41. ULONG DataSelector;
  42. ULONG MXCsr;
  43. ULONG Reserved2;
  44. UCHAR RegisterArea[SIZE_OF_FX_REGISTERS];
  45. UCHAR Reserved3[SIZE_OF_FX_REGISTERS];
  46. UCHAR Reserved4[224];
  47. UCHAR Align16Byte[8];
  48. } FXSAVE_FORMAT, *PFXSAVE_FORMAT_WX86;
  49. #endif
  50. #endif __AMD64_WOW64EXTS32__