X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fruntime%2Fx86-win32-os.h;h=c7ffeca74015ae0e7080ec24cad0e0f297ec3013;hb=83de338570dd0d867a9a247213ac16f0ab85c123;hp=1f2e748c17aaed0ecc1894feced6e7900b24fa08;hpb=7fb597b585fc715537ea644f7d84440eca217ca1;p=sbcl.git diff --git a/src/runtime/x86-win32-os.h b/src/runtime/x86-win32-os.h index 1f2e748..c7ffeca 100644 --- a/src/runtime/x86-win32-os.h +++ b/src/runtime/x86-win32-os.h @@ -1,14 +1,29 @@ #ifndef _X86_WIN32_OS_H #define _X86_WIN32_OS_H -typedef CONTEXT os_context_t; +typedef struct os_context_t { + CONTEXT* win32_context; +#if defined(LISP_FEATURE_SB_THREAD) + sigset_t sigmask; +#endif +} os_context_t; + typedef long os_context_register_t; -static inline os_context_t *arch_os_get_context(void **void_context) { +static inline os_context_t *arch_os_get_context(void **void_context) +{ return (os_context_t *) *void_context; } +static inline DWORD NT_GetLastError() { + DWORD result; + asm("movl %%fs:0x0D,%0":"=r"(result)); + return result; +} + unsigned long os_context_fp_control(os_context_t *context); void os_restore_fp_control(os_context_t *context); +os_context_register_t * os_context_fp_addr(os_context_t *context); + #endif /* _X86_WIN32_OS_H */