Fix make-array transforms.
[sbcl.git] / src / runtime / x86-win32-os.h
1 #ifndef _X86_WIN32_OS_H
2 #define _X86_WIN32_OS_H
3
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;
10
11 typedef long os_context_register_t;
12
13 static inline os_context_t *arch_os_get_context(void **void_context)
14 {
15     return (os_context_t *) *void_context;
16 }
17
18 static inline DWORD NT_GetLastError() {
19     DWORD result;
20     asm("movl %%fs:0x0D,%0":"=r"(result));
21     return result;
22 }
23
24 unsigned long os_context_fp_control(os_context_t *context);
25 void os_restore_fp_control(os_context_t *context);
26
27 os_context_register_t * os_context_fp_addr(os_context_t *context);
28
29 #endif /* _X86_WIN32_OS_H */