1 #ifndef _WAPI_CONTEXT_H_
2 #define _WAPI_CONTEXT_H_
6 #include "mono/io-layer/wapi.h"
8 /* This part is x86-specific. MSDN states that CONTEXT is defined
9 * also for MIPS, Alpha and PPC processors.
12 #define SIZE_OF_80387_REGISTERS 80
14 #define CONTEXT_i386 0x00010000
15 #define CONTEXT_i486 0x00010000
17 #define CONTEXT_CONTROL (CONTEXT_i386 | 0x00000001L)
18 #define CONTEXT_INTEGER (CONTEXT_i386 | 0x00000002L)
19 #define CONTEXT_SEGMENTS (CONTEXT_i386 | 0x00000004L)
20 #define CONTEXT_FLOATING_POINT (CONTEXT_i386 | 0x00000008L)
21 #define CONTEXT_DEBUG_REGISTERS (CONTEXT_i386 | 0x00000010L)
22 #define CONTEXT_EXTENDED_REGISTERS (CONTEXT_i386 | 0x00000020L)
24 #define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS)
26 #define MAXIMUM_SUPPORTED_EXTENSION 512
34 guint32 ErrorSelector;
37 guint8 RegisterArea[SIZE_OF_80387_REGISTERS];
39 } WapiFloatingSaveArea;
51 WapiFloatingSaveArea FloatSave;
72 guint8 ExtendedRegisters[MAXIMUM_SUPPORTED_EXTENSION];
75 extern gboolean GetThreadContext(WapiHandle *handle, WapiContext *context);
77 #endif /* _WAPI_COMPEX_H_ */