]> git.proxmox.com Git - qemu.git/blobdiff - include/sysemu/os-win32.h
Replace all setjmp()/longjmp() with sigsetjmp()/siglongjmp()
[qemu.git] / include / sysemu / os-win32.h
index bf9edeb9ab39e86d51f2da275bccdd97184e9cb8..71f5fa0a9166c17c0ed76621cdd851fb6e9e2cac 100644 (file)
 # undef setjmp
 # define setjmp(env) _setjmp(env, NULL)
 #endif
+/* QEMU uses sigsetjmp()/siglongjmp() as the portable way to specify
+ * "longjmp and don't touch the signal masks". Since we know that the
+ * savemask parameter will always be zero we can safely define these
+ * in terms of setjmp/longjmp on Win32.
+ */
+#define sigjmp_buf jmp_buf
+#define sigsetjmp(env, savemask) setjmp(env)
+#define siglongjmp(env, val) longjmp(env, val)
 
 /* Declaration of ffs() is missing in MinGW's strings.h. */
 int ffs(int i);