Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Change path for win32 ucontext files.
[simgrid.git] / include / xbt / win32_ucontext.h
diff --git a/include/xbt/win32_ucontext.h b/include/xbt/win32_ucontext.h
new file mode 100644 (file)
index 0000000..af3c78c
--- /dev/null
@@ -0,0 +1,51 @@
+/*\r
+ *      win32-ucontext: Unix ucontext_t operations on Windows platforms\r
+ *      Copyright(C) 2007 Panagiotis E. Hadjidoukas\r
+ *\r
+ *      Contact Email: phadjido@cs.uoi.gr, xdoukas@ceid.upatras.gr\r
+ *\r
+ *      win32-ucontext is free software; you can redistribute it and/or\r
+ *      modify it under the terms of the GNU Lesser General Public\r
+ *      License as published by the Free Software Foundation; either\r
+ *      version 2 of the License, or (at your option) any later version.\r
+ *\r
+ *      win32-ucontext is distributed in the hope that it will be useful,\r
+ *      but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+ *      Lesser General Public License for more details.\r
+ *\r
+ *      You should have received a copy of the GNU Lesser General Public\r
+ *      License along with QueueUserAPCEx in the file COPYING.LIB;\r
+ *      if not, write to the Free Software Foundation, Inc.,\r
+ *      59 Temple Place - Suite 330, Boston, MA 02111-1307, USA\r
+ */\r
+\r
+#ifndef UCONTEXT_H\r
+#define UCONTEXT_H\r
+\r
+#include <windows.h>\r
+\r
+typedef struct __stack {\r
+       void *ss_sp;\r
+       size_t ss_size;\r
+       int ss_flags;\r
+} stack_t;\r
+\r
+typedef CONTEXT mcontext_t;\r
+typedef unsigned long __sigset_t;\r
+\r
+typedef struct __ucontext {\r
+       unsigned long int       uc_flags;\r
+       struct __ucontext       *uc_link;\r
+       stack_t                         uc_stack;\r
+       mcontext_t                      uc_mcontext;\r
+       __sigset_t                      uc_sigmask;\r
+} ucontext_t;\r
+\r
+\r
+int getcontext(ucontext_t *ucp);\r
+int setcontext(const ucontext_t *ucp);\r
+int makecontext(ucontext_t *, void (*)(), int, ...);\r
+int swapcontext(ucontext_t *, const ucontext_t *);\r
+\r
+#endif /* UCONTEXT_H */\r