diff options
author | David McCullough <davidm@snapgear.com> | 2001-01-29 15:02:05 +0000 |
---|---|---|
committer | David McCullough <davidm@snapgear.com> | 2001-01-29 15:02:05 +0000 |
commit | e9e69bd628e4495c975bb82dc3aabc536ae97329 (patch) | |
tree | 87766426bc73ba3c5388c18fe8acaf57b4d8a633 /libc/sysdeps/linux/m68k/bits/setjmp.h | |
parent | 5a2610fbeb4667ffac25551f5484b629707b996e (diff) |
uClibc working with 2.0.x and 2.4.x m68k uClinux kernels, the PIC
stuff in crt0.S may not be quite right yet.
Diffstat (limited to 'libc/sysdeps/linux/m68k/bits/setjmp.h')
-rw-r--r-- | libc/sysdeps/linux/m68k/bits/setjmp.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/libc/sysdeps/linux/m68k/bits/setjmp.h b/libc/sysdeps/linux/m68k/bits/setjmp.h index aa376a092..31a241380 100644 --- a/libc/sysdeps/linux/m68k/bits/setjmp.h +++ b/libc/sysdeps/linux/m68k/bits/setjmp.h @@ -44,3 +44,14 @@ typedef struct containing a local variable at ADDRESS. */ #define _JMPBUF_UNWINDS(jmpbuf, address) \ ((void *) (address) < (void *) (jmpbuf)->__sp) + +/* Simple version of sigsetjmp and siglongjmp */ + +#define __sigsetjmp(env, savesigs) ((env)->__mask_was_saved = (savesigs), \ + sigprocmask(SIG_SETMASK, 0, &(env)->__saved_mask), \ + setjmp(&(env)->__jmpbuf)) + +#define siglongjmp(env, val) (((env)->__mask_was_saved ? \ + sigprocmask(SIG_SETMASK, &(env)->__saved_mask, 0) : 0), \ + longjmp(&(env)->__jmpbuf, val)) + |