Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
eb4f8d250b544a444793ca1e23069f84d06f130e
[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     \rtypedef struct __stack {\r
28   \rvoid *ss_sp;\r
29   \rsize_t ss_size;\r
30   \rint ss_flags;\r
31 \r} stack_t;\r
32 \r\rtypedef CONTEXT mcontext_t;\r
33 \rtypedef unsigned long __sigset_t;\r
34 \r\rtypedef struct __ucontext {\r
35   \runsigned long int uc_flags;\r
36   \rstruct __ucontext *uc_link;\r
37   \rstack_t uc_stack;\r
38   \rmcontext_t uc_mcontext;\r
39   \r__sigset_t uc_sigmask;\r
40 \r} ucontext_t;\r
41 \r\r\rint getcontext(ucontext_t * ucp);\r
42 \rint setcontext(const ucontext_t * ucp);\r
43 \rint makecontext(ucontext_t *, void (*)(), int, ...);\r
44 \rint swapcontext(ucontext_t *, const ucontext_t *);\r
45 \r\r
46 #endif  /* UCONTEXT_H */\r