diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2008-08-17 13:48:37 -0400 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2008-10-23 01:55:19 -0400 |
commit | 8569c9140bd41089f9b6be8837ca421102714a90 (patch) | |
tree | cd289b322b215fe2ca2530aa320febfd99388d7f /arch/um/include/shared/longjmp.h | |
parent | 2515ddc6db8eb49a79f0fe5e67ff09ac7c81eab4 (diff) |
x86, um: take arch/um/include/* out of the way
We can't just plop asm/* into it - userland helpers are built with it
in search path and seeing asm/* show up there suddenly would be a bad
idea.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'arch/um/include/shared/longjmp.h')
-rw-r--r-- | arch/um/include/shared/longjmp.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/arch/um/include/shared/longjmp.h b/arch/um/include/shared/longjmp.h new file mode 100644 index 000000000000..e860bc5848e0 --- /dev/null +++ b/arch/um/include/shared/longjmp.h | |||
@@ -0,0 +1,23 @@ | |||
1 | #ifndef __UML_LONGJMP_H | ||
2 | #define __UML_LONGJMP_H | ||
3 | |||
4 | #include "sysdep/archsetjmp.h" | ||
5 | #include "os.h" | ||
6 | |||
7 | extern int setjmp(jmp_buf); | ||
8 | extern void longjmp(jmp_buf, int); | ||
9 | |||
10 | #define UML_LONGJMP(buf, val) do { \ | ||
11 | longjmp(*buf, val); \ | ||
12 | } while(0) | ||
13 | |||
14 | #define UML_SETJMP(buf) ({ \ | ||
15 | int n; \ | ||
16 | volatile int enable; \ | ||
17 | enable = get_signals(); \ | ||
18 | n = setjmp(*buf); \ | ||
19 | if(n != 0) \ | ||
20 | set_signals(enable); \ | ||
21 | n; }) | ||
22 | |||
23 | #endif | ||