Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'MC_LTL'
[simgrid.git] / include / xbt / win32_ucontext.h
1 /*\r
2  *      win32-ucontext: Unix ucontext_t operations on Windows platforms\r
3  *      Copyright(C) 2007 Panagiotis E. Hadjidoukas\r
4  *\r
5  *      Contact Email: phadjido@cs.uoi.gr, xdoukas@ceid.upatras.gr\r
6  *\r
7  *      win32-ucontext is free software; you can redistribute it and/or\r
8  *      modify it under the terms of the GNU Lesser General Public\r
9  *      License as published by the Free Software Foundation; either\r
10  *      version 2 of the License, or (at your option) any later version.\r
11  *\r
12  *      win32-ucontext is distributed in the hope that it will be useful,\r
13  *      but WITHOUT ANY WARRANTY; without even the implied warranty of\r
14  *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
15  *      Lesser General Public License for more details.\r
16  *\r
17  *      You should have received a copy of the GNU Lesser General Public\r
18  *      License along with SimGrid in the file LICENSE-LGPL-2.1;\r
19  *      if not, write to the Free Software Foundation, Inc.,\r
20  *      59 Temple Place - Suite 330, Boston, MA 02111-1307, USA\r
21  */  \r
22     \r
23 #ifndef UCONTEXT_H\r
24 #define UCONTEXT_H\r
25     \r
26 #include <windows.h>\r
27     typedef struct __stack {\r
28   void *ss_sp;\r
29   size_t ss_size;\r
30   int ss_flags;\r
31 } stack_t;\r
32 typedef CONTEXT mcontext_t;\r
33 typedef unsigned long __sigset_t;\r
34 typedef struct __ucontext {\r
35   unsigned long int uc_flags;\r
36   struct __ucontext *uc_link;\r
37   stack_t uc_stack;\r
38   mcontext_t uc_mcontext;\r
39   __sigset_t uc_sigmask;\r
40 } ucontext_t;\r
41 int getcontext(ucontext_t * ucp);\r
42 int setcontext(const ucontext_t * ucp);\r
43 int makecontext(ucontext_t *, void (*)(), int, ...);\r
44 int swapcontext(ucontext_t *, const ucontext_t *);\r
45 \r
46 #endif  /* UCONTEXT_H */\r