changed definition of jmp_buf (alignment problems)
This commit is contained in:
parent
16e89fea1f
commit
17abf1a78a
1 changed files with 10 additions and 3 deletions
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* setjmp.h - restore calling environment
|
* setjmp.h - save/restore calling environment
|
||||||
*
|
*
|
||||||
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
||||||
* See the copyright notice in the ACK home directory, in the file "Copyright".
|
* See the copyright notice in the ACK home directory, in the file "Copyright".
|
||||||
|
@ -12,11 +12,18 @@
|
||||||
/* In a jmp_buf, there is room for: 1 mask (long), 1 flag (int) and 3
|
/* In a jmp_buf, there is room for: 1 mask (long), 1 flag (int) and 3
|
||||||
* pointers (stack-pointer, local base and program-counter). This may be
|
* pointers (stack-pointer, local base and program-counter). This may be
|
||||||
* too big, but that doesn't matter. It could also be too small, when
|
* too big, but that doesn't matter. It could also be too small, when
|
||||||
* sigset_t is larger than a long.
|
* sigset_t is larger than a long. The fields is in the structure have no
|
||||||
|
* meaning, they just get the size right.
|
||||||
* The identifier __setjmp has a special meaning to the compiler.
|
* The identifier __setjmp has a special meaning to the compiler.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
typedef char jmp_buf[ sizeof(long) + sizeof(int) + 3 * sizeof(void *)];
|
typedef struct {
|
||||||
|
long __mask;
|
||||||
|
int __flag;
|
||||||
|
void (*__pc)();
|
||||||
|
void *__sp;
|
||||||
|
void *__lb;
|
||||||
|
} jmp_buf[1];
|
||||||
|
|
||||||
int __setjmp(jmp_buf _env, int _savemask);
|
int __setjmp(jmp_buf _env, int _savemask);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue