Preliminary work towards threads on win32
[sbcl.git] / src / runtime / x86-win32-os.h
blobc7ffeca74015ae0e7080ec24cad0e0f297ec3013
1 #ifndef _X86_WIN32_OS_H
2 #define _X86_WIN32_OS_H
4 typedef struct os_context_t {
5 CONTEXT* win32_context;
6 #if defined(LISP_FEATURE_SB_THREAD)
7 sigset_t sigmask;
8 #endif
9 } os_context_t;
11 typedef long os_context_register_t;
13 static inline os_context_t *arch_os_get_context(void **void_context)
15 return (os_context_t *) *void_context;
18 static inline DWORD NT_GetLastError() {
19 DWORD result;
20 asm("movl %%fs:0x0D,%0":"=r"(result));
21 return result;
24 unsigned long os_context_fp_control(os_context_t *context);
25 void os_restore_fp_control(os_context_t *context);
27 os_context_register_t * os_context_fp_addr(os_context_t *context);
29 #endif /* _X86_WIN32_OS_H */