A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
model-checker : try first to associate each block or fragment with the same positiion...
[simgrid.git]
/
src
/
xbt
/
win32_ucontext.c
diff --git
a/src/xbt/win32_ucontext.c
b/src/xbt/win32_ucontext.c
index
757eb43
..
b6d5caf
100644
(file)
--- a/
src/xbt/win32_ucontext.c
+++ b/
src/xbt/win32_ucontext.c
@@
-21,12
+21,13
@@
*/
\r
\r
#include "win32_ucontext.h"
\r
*/
\r
\r
#include "win32_ucontext.h"
\r
+
\r
int getcontext(ucontext_t * ucp)
\r
{
\r
int ret;
\r
\r
/* Retrieve the full machine context */
\r
int getcontext(ucontext_t * ucp)
\r
{
\r
int ret;
\r
\r
/* Retrieve the full machine context */
\r
- ucp->uc_mcontext.ContextFlags = CONTEXT_FULL;
\r
+ ucp->uc_mcontext.ContextFlags = CONTEXT_FULL
| CONTEXT_DEBUG_REGISTERS
;
\r
ret = GetThreadContext(GetCurrentThread(), &ucp->uc_mcontext);
\r
return (ret == 0) ? -1 : 0;
\r
}
\r
ret = GetThreadContext(GetCurrentThread(), &ucp->uc_mcontext);
\r
return (ret == 0) ? -1 : 0;
\r
}
\r
@@
-45,12
+46,12
@@
int makecontext(ucontext_t * ucp, void (*func) (), int argc, ...)
int i;
\r
va_list ap;
\r
char *sp;
\r
int i;
\r
va_list ap;
\r
char *sp;
\r
-
\r
- /* Stack grows down */
\r
+
\r
+ /* Stack grows down */
\r
sp = (char *) (size_t) ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size;
\r
\r
/* Reserve stack space for the arguments (maximum possible: argc*(8 bytes per argument)) */
\r
sp = (char *) (size_t) ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size;
\r
\r
/* Reserve stack space for the arguments (maximum possible: argc*(8 bytes per argument)) */
\r
- sp -= argc *
8
;
\r
+ sp -= argc *
sizeof(void*)
;
\r
if (sp < (char *) ucp->uc_stack.ss_sp) {
\r
\r
/* errno = ENOMEM; */
\r
if (sp < (char *) ucp->uc_stack.ss_sp) {
\r
\r
/* errno = ENOMEM; */
\r
@@
-58,27
+59,27
@@
int makecontext(ucontext_t * ucp, void (*func) (), int argc, ...)
}
\r
\r
/* Set the instruction and the stack pointer */
\r
}
\r
\r
/* Set the instruction and the stack pointer */
\r
- #ifdef I_X86_
\r
- ucp->uc_mcontext.Eip = (
unsigned long
) func;
\r
- ucp->uc_mcontext.Esp = (
unsigned long) sp - 4
;
\r
+ #ifdef
_
I_X86_
\r
+ ucp->uc_mcontext.Eip = (
DWORD
) func;
\r
+ ucp->uc_mcontext.Esp = (
DWORD) sp - sizeof(void*)
;
\r
#endif
\r
#ifdef _IA64_
\r
# error "_IA64_"
\r
#endif
\r
#ifdef _AMD64_
\r
#endif
\r
#ifdef _IA64_
\r
# error "_IA64_"
\r
#endif
\r
#ifdef _AMD64_
\r
- ucp->uc_mcontext.Rip = (
unsigned long long
) func;
\r
- ucp->uc_mcontext.Rsp = (
unsigned long long) sp - 8
;
\r
+ ucp->uc_mcontext.Rip = (
DWORD64
) func;
\r
+ ucp->uc_mcontext.Rsp = (
DWORD64) sp - sizeof(void*)
;
\r
#endif
\r
\r
/* Save/Restore the full machine context */
\r
#endif
\r
\r
/* Save/Restore the full machine context */
\r
- ucp->uc_mcontext.ContextFlags = CONTEXT_FULL;
\r
+ ucp->uc_mcontext.ContextFlags = CONTEXT_FULL
| CONTEXT_DEBUG_REGISTERS
;
\r
\r
/* Copy the arguments */
\r
va_start(ap, argc);
\r
for (i = 0; i < argc; i++) {
\r
\r
/* Copy the arguments */
\r
va_start(ap, argc);
\r
for (i = 0; i < argc; i++) {
\r
- memcpy(sp, ap,
8
);
\r
- ap +=
8
;
\r
- sp +=
8
;
\r
+ memcpy(sp, ap,
sizeof(void*)
);
\r
+ ap +=
sizeof(void*)
;
\r
+ sp +=
sizeof(void*)
;
\r
}
\r
va_end(ap);
\r
return 0;
\r
}
\r
va_end(ap);
\r
return 0;
\r