[PATCH 7/8] UML - Time initialization tidying

From: Jeff Dike
Date: Mon Jun 20 2005 - 15:03:22 EST


user_time_init_skas and user_time_init_tt were essentially the same. So,
this merges them, deleting the mode-specific functions and declarations.

Signed-off-by: Jeff Dike <jdike@xxxxxxxxxxx>

Index: linux-2.6.12/arch/um/include/time_user.h
===================================================================
--- linux-2.6.12.orig/arch/um/include/time_user.h 2005-06-20 10:38:57.000000000 -0400
+++ linux-2.6.12/arch/um/include/time_user.h 2005-06-20 10:42:47.000000000 -0400
@@ -8,11 +8,11 @@

extern void timer(void);
extern void switch_timers(int to_real);
-extern void set_interval(int timer_type);
extern void idle_sleep(int secs);
extern void enable_timer(void);
extern void disable_timer(void);
extern unsigned long time_lock(void);
extern void time_unlock(unsigned long);
+extern void user_time_init(void);

#endif
Index: linux-2.6.12/arch/um/kernel/skas/Makefile
===================================================================
--- linux-2.6.12.orig/arch/um/kernel/skas/Makefile 2005-06-20 10:38:57.000000000 -0400
+++ linux-2.6.12/arch/um/kernel/skas/Makefile 2005-06-20 10:42:47.000000000 -0400
@@ -4,10 +4,10 @@
#

obj-y := exec_kern.o mem.o mem_user.o mmu.o process.o process_kern.o \
- syscall_kern.o syscall_user.o time.o tlb.o trap_user.o uaccess.o \
+ syscall_kern.o syscall_user.o tlb.o trap_user.o uaccess.o \

subdir- := util

-USER_OBJS := process.o time.o
+USER_OBJS := process.o

include arch/um/scripts/Makefile.rules
Index: linux-2.6.12/arch/um/kernel/skas/include/mode-skas.h
===================================================================
--- linux-2.6.12.orig/arch/um/kernel/skas/include/mode-skas.h 2005-06-20 10:38:57.000000000 -0400
+++ linux-2.6.12/arch/um/kernel/skas/include/mode-skas.h 2005-06-20 10:42:47.000000000 -0400
@@ -13,7 +13,6 @@ extern unsigned long exec_fp_regs[];
extern unsigned long exec_fpx_regs[];
extern int have_fpx_regs;

-extern void user_time_init_skas(void);
extern void sig_handler_common_skas(int sig, void *sc_ptr);
extern void halt_skas(void);
extern void reboot_skas(void);
Index: linux-2.6.12/arch/um/kernel/skas/time.c
===================================================================
--- linux-2.6.12.orig/arch/um/kernel/skas/time.c 2005-06-20 10:38:57.000000000 -0400
+++ linux-2.6.12/arch/um/kernel/skas/time.c 2005-06-20 06:00:12.985374968 -0400
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2002 Jeff Dike (jdike@xxxxxxxxxx)
- * Licensed under the GPL
- */
-
-#include <sys/signal.h>
-#include <sys/time.h>
-#include "time_user.h"
-#include "process.h"
-#include "user.h"
-
-void user_time_init_skas(void)
-{
- if(signal(SIGALRM, (__sighandler_t) alarm_handler) == SIG_ERR)
- panic("Couldn't set SIGALRM handler");
- if(signal(SIGVTALRM, (__sighandler_t) alarm_handler) == SIG_ERR)
- panic("Couldn't set SIGVTALRM handler");
- set_interval(ITIMER_VIRTUAL);
-}
-
-/*
- * 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:
- */
Index: linux-2.6.12/arch/um/kernel/time.c
===================================================================
--- linux-2.6.12.orig/arch/um/kernel/time.c 2005-06-20 10:38:57.000000000 -0400
+++ linux-2.6.12/arch/um/kernel/time.c 2005-06-20 10:42:47.000000000 -0400
@@ -33,7 +33,7 @@ void timer(void)
timeradd(&xtime, &local_offset, &xtime);
}

-void set_interval(int timer_type)
+static void set_interval(int timer_type)
{
int usec = 1000000/hz();
struct itimerval interval = ((struct itimerval) { { 0, usec },
@@ -45,12 +45,7 @@ void set_interval(int timer_type)

void enable_timer(void)
{
- int usec = 1000000/hz();
- struct itimerval enable = ((struct itimerval) { { 0, usec },
- { 0, usec }});
- if(setitimer(ITIMER_VIRTUAL, &enable, NULL))
- printk("enable_timer - setitimer failed, errno = %d\n",
- errno);
+ set_interval(ITIMER_VIRTUAL);
}

void disable_timer(void)
@@ -155,13 +150,15 @@ void idle_sleep(int secs)
nanosleep(&ts, NULL);
}

-/*
- * 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:
- */
+/* XXX This partly duplicates init_irq_signals */
+
+void user_time_init(void)
+{
+ set_handler(SIGVTALRM, (__sighandler_t) alarm_handler,
+ SA_ONSTACK | SA_RESTART, SIGUSR1, SIGIO, SIGWINCH,
+ SIGALRM, SIGUSR2, -1);
+ set_handler(SIGALRM, (__sighandler_t) alarm_handler,
+ SA_ONSTACK | SA_RESTART, SIGUSR1, SIGIO, SIGWINCH,
+ SIGVTALRM, SIGUSR2, -1);
+ set_interval(ITIMER_VIRTUAL);
+}
Index: linux-2.6.12/arch/um/kernel/time_kern.c
===================================================================
--- linux-2.6.12.orig/arch/um/kernel/time_kern.c 2005-06-20 10:38:57.000000000 -0400
+++ linux-2.6.12/arch/um/kernel/time_kern.c 2005-06-20 10:42:47.000000000 -0400
@@ -162,7 +162,7 @@ int __init timer_init(void)
{
int err;

- CHOOSE_MODE(user_time_init_tt(), user_time_init_skas());
+ user_time_init();
err = request_irq(TIMER_IRQ, um_timer, SA_INTERRUPT, "timer", NULL);
if(err != 0)
printk(KERN_ERR "timer_init : request_irq failed - "
Index: linux-2.6.12/arch/um/kernel/tt/Makefile
===================================================================
--- linux-2.6.12.orig/arch/um/kernel/tt/Makefile 2005-06-20 10:40:40.000000000 -0400
+++ linux-2.6.12/arch/um/kernel/tt/Makefile 2005-06-20 10:42:47.000000000 -0400
@@ -4,11 +4,11 @@
#

obj-y = exec_kern.o exec_user.o gdb.o ksyms.o mem.o mem_user.o process_kern.o \
- syscall_kern.o syscall_user.o time.o tlb.o tracer.o trap_user.o \
+ syscall_kern.o syscall_user.o tlb.o tracer.o trap_user.o \
uaccess.o uaccess_user.o

obj-$(CONFIG_PT_PROXY) += gdb_kern.o ptproxy/

-USER_OBJS := gdb.o time.o tracer.o
+USER_OBJS := gdb.o tracer.o

include arch/um/scripts/Makefile.rules
Index: linux-2.6.12/arch/um/kernel/tt/include/mode-tt.h
===================================================================
--- linux-2.6.12.orig/arch/um/kernel/tt/include/mode-tt.h 2005-06-20 10:38:57.000000000 -0400
+++ linux-2.6.12/arch/um/kernel/tt/include/mode-tt.h 2005-06-20 10:42:47.000000000 -0400
@@ -13,7 +13,6 @@ enum { OP_NONE, OP_EXEC, OP_FORK, OP_TRA
extern int tracing_pid;

extern int tracer(int (*init_proc)(void *), void *sp);
-extern void user_time_init_tt(void);
extern void sig_handler_common_tt(int sig, void *sc);
extern void syscall_handler_tt(int sig, union uml_pt_regs *regs);
extern void reboot_tt(void);
Index: linux-2.6.12/arch/um/kernel/tt/time.c
===================================================================
--- linux-2.6.12.orig/arch/um/kernel/tt/time.c 2005-06-20 10:38:57.000000000 -0400
+++ linux-2.6.12/arch/um/kernel/tt/time.c 2005-06-20 06:00:12.985374968 -0400
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@xxxxxxxxxx)
- * Licensed under the GPL
- */
-
-#include <signal.h>
-#include <sys/time.h>
-#include <time_user.h>
-#include "process.h"
-#include "user.h"
-
-void user_time_init_tt(void)
-{
- if(signal(SIGVTALRM, (__sighandler_t) alarm_handler) == SIG_ERR)
- panic("Couldn't set SIGVTALRM handler");
- set_interval(ITIMER_VIRTUAL);
-}
-
-/*
- * 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:
- */

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/