diff options
Diffstat (limited to 'arch/um/os-Linux')
| -rw-r--r-- | arch/um/os-Linux/Makefile | 4 | ||||
| -rw-r--r-- | arch/um/os-Linux/aio.c | 1 | ||||
| -rw-r--r-- | arch/um/os-Linux/drivers/tuntap_user.c | 1 | ||||
| -rw-r--r-- | arch/um/os-Linux/file.c | 1 | ||||
| -rw-r--r-- | arch/um/os-Linux/irq.c | 1 | ||||
| -rw-r--r-- | arch/um/os-Linux/mem.c | 1 | ||||
| -rw-r--r-- | arch/um/os-Linux/signal.c | 1 | ||||
| -rw-r--r-- | arch/um/os-Linux/skas/process.c | 1 | ||||
| -rw-r--r-- | arch/um/os-Linux/skas/trap.c | 18 | ||||
| -rw-r--r-- | arch/um/os-Linux/trap.c | 23 | ||||
| -rw-r--r-- | arch/um/os-Linux/tty.c | 55 | ||||
| -rw-r--r-- | arch/um/os-Linux/tty_log.c | 1 | 
12 files changed, 45 insertions, 63 deletions
diff --git a/arch/um/os-Linux/Makefile b/arch/um/os-Linux/Makefile index 8e129af8170..8a48d6a3006 100644 --- a/arch/um/os-Linux/Makefile +++ b/arch/um/os-Linux/Makefile @@ -4,7 +4,7 @@  #  obj-y = aio.o elf_aux.o execvp.o file.o helper.o irq.o main.o mem.o process.o \ -	registers.o sigio.o signal.o start_up.o time.o trap.o tty.o uaccess.o \ +	registers.o sigio.o signal.o start_up.o time.o tty.o uaccess.o \  	umid.o tls.o user_syms.o util.o drivers/ sys-$(SUBARCH)/ skas/  obj-$(CONFIG_TTY_LOG) += tty_log.o @@ -12,7 +12,7 @@ user-objs-$(CONFIG_TTY_LOG) += tty_log.o  USER_OBJS := $(user-objs-y) aio.o elf_aux.o execvp.o file.o helper.o irq.o \  	main.o mem.o process.o registers.o sigio.o signal.o start_up.o time.o \ -	trap.o tty.o tls.o uaccess.o umid.o util.o +	tty.o tls.o uaccess.o umid.o util.o  CFLAGS_user_syms.o += -DSUBARCH_$(SUBARCH) diff --git a/arch/um/os-Linux/aio.c b/arch/um/os-Linux/aio.c index 93dc0c80eba..b8d8c9ca8d4 100644 --- a/arch/um/os-Linux/aio.c +++ b/arch/um/os-Linux/aio.c @@ -12,6 +12,7 @@  #include "aio.h"  #include "init.h"  #include "kern_constants.h" +#include "kern_util.h"  #include "os.h"  #include "user.h" diff --git a/arch/um/os-Linux/drivers/tuntap_user.c b/arch/um/os-Linux/drivers/tuntap_user.c index 1d847959d1d..7739e29cf34 100644 --- a/arch/um/os-Linux/drivers/tuntap_user.c +++ b/arch/um/os-Linux/drivers/tuntap_user.c @@ -14,6 +14,7 @@  #include <sys/wait.h>  #include <sys/uio.h>  #include "kern_constants.h" +#include "kern_util.h"  #include "os.h"  #include "tuntap.h"  #include "user.h" diff --git a/arch/um/os-Linux/file.c b/arch/um/os-Linux/file.c index c3bb5ce70c9..9387cb11c0a 100644 --- a/arch/um/os-Linux/file.c +++ b/arch/um/os-Linux/file.c @@ -17,7 +17,6 @@  #include <sys/uio.h>  #include "os.h"  #include "user.h" -#include "kern_util.h"  static void copy_stat(struct uml_stat *dst, const struct stat64 *src)  { diff --git a/arch/um/os-Linux/irq.c b/arch/um/os-Linux/irq.c index 6aa6f95d652..a26e0662aa1 100644 --- a/arch/um/os-Linux/irq.c +++ b/arch/um/os-Linux/irq.c @@ -11,7 +11,6 @@  #include <sys/poll.h>  #include <sys/types.h>  #include <sys/time.h> -#include "kern_util.h"  #include "user.h"  #include "process.h"  #include "sigio.h" diff --git a/arch/um/os-Linux/mem.c b/arch/um/os-Linux/mem.c index 9674ed1bef2..eedc2d88ef8 100644 --- a/arch/um/os-Linux/mem.c +++ b/arch/um/os-Linux/mem.c @@ -9,7 +9,6 @@  #include <sys/types.h>  #include <sys/mman.h>  #include <sys/statfs.h> -#include "kern_util.h"  #include "user.h"  #include "mem_user.h"  #include "init.h" diff --git a/arch/um/os-Linux/signal.c b/arch/um/os-Linux/signal.c index 37302e86fda..7ff8f57b715 100644 --- a/arch/um/os-Linux/signal.c +++ b/arch/um/os-Linux/signal.c @@ -9,6 +9,7 @@  #include <errno.h>  #include <signal.h>  #include <strings.h> +#include "kern_util.h"  #include "os.h"  #include "sysdep/barrier.h"  #include "sysdep/sigcontext.h" diff --git a/arch/um/os-Linux/skas/process.c b/arch/um/os-Linux/skas/process.c index e8b7a97e83d..765cfa6ddbc 100644 --- a/arch/um/os-Linux/skas/process.c +++ b/arch/um/os-Linux/skas/process.c @@ -15,6 +15,7 @@  #include "as-layout.h"  #include "chan_user.h"  #include "kern_constants.h" +#include "kern_util.h"  #include "mem.h"  #include "os.h"  #include "process.h" diff --git a/arch/um/os-Linux/skas/trap.c b/arch/um/os-Linux/skas/trap.c index 3b1b9244f46..a19a74f08fa 100644 --- a/arch/um/os-Linux/skas/trap.c +++ b/arch/um/os-Linux/skas/trap.c @@ -3,22 +3,26 @@   * Licensed under the GPL   */ -#if 0 -#include "kern_util.h" -#include "skas.h" -#include "ptrace_user.h" -#include "sysdep/ptrace_user.h" -#endif -  #include <errno.h>  #include <signal.h>  #include "sysdep/ptrace.h"  #include "kern_constants.h"  #include "as-layout.h" +#include "kern_util.h"  #include "os.h"  #include "sigcontext.h"  #include "task.h" +void (*sig_info[NSIG])(int, struct uml_pt_regs *) = { +	[SIGTRAP]	= relay_signal, +	[SIGFPE]	= relay_signal, +	[SIGILL]	= relay_signal, +	[SIGWINCH]	= winch, +	[SIGBUS]	= bus_handler, +	[SIGSEGV]	= segv_handler, +	[SIGIO]		= sigio_handler, +	[SIGVTALRM]	= timer_handler }; +  static struct uml_pt_regs ksig_regs[UM_NR_CPUS];  void sig_handler_common_skas(int sig, void *sc_ptr) diff --git a/arch/um/os-Linux/trap.c b/arch/um/os-Linux/trap.c deleted file mode 100644 index 2a1c9843e32..00000000000 --- a/arch/um/os-Linux/trap.c +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (C) 2000 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) - * Licensed under the GPL - */ - -#include <signal.h> -#include "os.h" -#include "sysdep/ptrace.h" - -/* Initialized from linux_main() */ -void (*sig_info[NSIG])(int, struct uml_pt_regs *); - -void os_fill_handlinfo(struct kern_handlers h) -{ -	sig_info[SIGTRAP] = h.relay_signal; -	sig_info[SIGFPE] = h.relay_signal; -	sig_info[SIGILL] = h.relay_signal; -	sig_info[SIGWINCH] = h.winch; -	sig_info[SIGBUS] = h.bus_handler; -	sig_info[SIGSEGV] = h.page_fault; -	sig_info[SIGIO] = h.sigio_handler; -	sig_info[SIGVTALRM] = h.timer_handler; -} diff --git a/arch/um/os-Linux/tty.c b/arch/um/os-Linux/tty.c index 4cfdd18ea1e..b09ff66a77e 100644 --- a/arch/um/os-Linux/tty.c +++ b/arch/um/os-Linux/tty.c @@ -1,13 +1,16 @@ -/*  - * Copyright (C) 2002 Jeff Dike (jdike@karaya.com) +/* + * Copyright (C) 2002 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)   * Licensed under the GPL   */  #include <stdlib.h> +#include <unistd.h>  #include <errno.h> +#include <fcntl.h> +#include "kern_constants.h" +#include "kern_util.h"  #include "os.h"  #include "user.h" -#include "kern_util.h"  struct grantpt_info {  	int fd; @@ -26,36 +29,34 @@ static void grantpt_cb(void *arg)  int get_pty(void)  {  	struct grantpt_info info; -	int fd; +	int fd, err; -	fd = os_open_file("/dev/ptmx", of_rdwr(OPENFLAGS()), 0); -	if(fd < 0){ -		printk("get_pty : Couldn't open /dev/ptmx - err = %d\n", -fd); -		return(fd); +	fd = open("/dev/ptmx", O_RDWR); +	if (fd < 0) { +		err = -errno; +		printk(UM_KERN_ERR "get_pty : Couldn't open /dev/ptmx - " +		       "err = %d\n", errno); +		return err;  	}  	info.fd = fd;  	initial_thread_cb(grantpt_cb, &info); -	if(info.res < 0){ -		printk("get_pty : Couldn't grant pty - errno = %d\n",  -		       -info.err); -		return(-1); +	if (info.res < 0) { +		err = -info.err; +		printk(UM_KERN_ERR "get_pty : Couldn't grant pty - " +		       "errno = %d\n", -info.err); +		goto out;  	} -	if(unlockpt(fd) < 0){ -		printk("get_pty : Couldn't unlock pty - errno = %d\n", errno); -		return(-1); + +	if (unlockpt(fd) < 0) { +		err = -errno; +		printk(UM_KERN_ERR "get_pty : Couldn't unlock pty - " +		       "errno = %d\n", errno); +		goto out;  	} -	return(fd); +	return fd; +out: +	close(fd); +	return err;  } - -/* - * Overrides for Emacs so that we follow Linus's tabbing style. - * Emacs will notice this stuff at the end of the file and automatically - * adjust the settings for this buffer only.  This must remain at the end - * of the file. - * --------------------------------------------------------------------------- - * Local variables: - * c-file-style: "linux" - * End: - */ diff --git a/arch/um/os-Linux/tty_log.c b/arch/um/os-Linux/tty_log.c index d11a55baa6b..cc648e6fd3a 100644 --- a/arch/um/os-Linux/tty_log.c +++ b/arch/um/os-Linux/tty_log.c @@ -12,7 +12,6 @@  #include <sys/time.h>  #include "init.h"  #include "user.h" -#include "kern_util.h"  #include "os.h"  #define TTY_LOG_DIR "./"  |