diff options
| author | Jeff Dike <jdike@addtoit.com> | 2006-09-25 23:32:59 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-09-26 08:49:05 -0700 | 
| commit | 13c06be399902c9ebda08e092edb1614bb4a3761 (patch) | |
| tree | c67134cfb7efd23ab7017fde32657fa3a7e58154 /arch/um/os-Linux/util.c | |
| parent | c5c6ba4e08ab9c9e390a0f3a7d9a5c332f5cc6ef (diff) | |
| download | olio-linux-3.10-13c06be399902c9ebda08e092edb1614bb4a3761.tar.xz olio-linux-3.10-13c06be399902c9ebda08e092edb1614bb4a3761.zip  | |
[PATCH] uml: Use klibc setjmp/longjmp
This patch adds an implementation of setjmp and longjmp to UML, allowing
access to the inside of a jmpbuf without needing the access macros formerly
provided by libc.
The implementation is stolen from klibc.  I copy the relevant files into
arch/um.  I have another patch which avoids the copying, but requires klibc be
in the tree.
setjmp and longjmp users required some tweaking.  Includes of <setjmp.h> were
removed and includes of the UML longjmp.h were added where necessary.  There
are also replacements of siglongjmp with UML_LONGJMP which I somehow missed
earlier.
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/um/os-Linux/util.c')
| -rw-r--r-- | arch/um/os-Linux/util.c | 5 | 
1 files changed, 2 insertions, 3 deletions
diff --git a/arch/um/os-Linux/util.c b/arch/um/os-Linux/util.c index c47a2a7ce70..3f5b1514e8a 100644 --- a/arch/um/os-Linux/util.c +++ b/arch/um/os-Linux/util.c @@ -7,7 +7,6 @@  #include <stdlib.h>  #include <unistd.h>  #include <limits.h> -#include <setjmp.h>  #include <sys/mman.h>  #include <sys/stat.h>  #include <sys/utsname.h> @@ -107,11 +106,11 @@ int setjmp_wrapper(void (*proc)(void *, void *), ...)  	jmp_buf buf;  	int n; -	n = sigsetjmp(buf, 1); +	n = UML_SETJMP(&buf);  	if(n == 0){  		va_start(args, proc);  		(*proc)(&buf, &args);  	}  	va_end(args); -	return(n); +	return n;  }  |