summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_time.c
diff options
context:
space:
mode:
authornetchild <netchild@FreeBSD.org>2006-08-15 12:10:57 +0000
committernetchild <netchild@FreeBSD.org>2006-08-15 12:10:57 +0000
commitb2a39f267af537affffa1c52b22f5128d4c0a4d3 (patch)
tree0ec3c426b5856dcb47a9ee601bee63a1ef397973 /sys/kern/kern_time.c
parentc6539b3d3ec0c97a3e6a13593770d554202805c3 (diff)
downloadFreeBSD-src-b2a39f267af537affffa1c52b22f5128d4c0a4d3.zip
FreeBSD-src-b2a39f267af537affffa1c52b22f5128d4c0a4d3.tar.gz
- Change process_exec function handlers prototype to include struct
image_params arg. - Change struct image_params to include struct sysentvec pointer and initialize it. - Change all consumers of process_exit/process_exec eventhandlers to new prototypes (includes splitting up into distinct exec/exit functions). - Add eventhandler to userret. Sponsored by: Google SoC 2006 Submitted by: rdivacky Parts suggested by: jhb (on hackers@)
Diffstat (limited to 'sys/kern/kern_time.c')
-rw-r--r--sys/kern/kern_time.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/sys/kern/kern_time.c b/sys/kern/kern_time.c
index 77a4f76..0569c4b 100644
--- a/sys/kern/kern_time.c
+++ b/sys/kern/kern_time.c
@@ -88,7 +88,8 @@ static void itimer_enter(struct itimer *);
static void itimer_leave(struct itimer *);
static struct itimer *itimer_find(struct proc *, int, int);
static void itimers_alloc(struct proc *);
-static void itimers_event_hook(void *arg, struct proc *p);
+static void itimers_event_hook_exec(void *arg, struct proc *p, struct image_params *imgp);
+static void itimers_event_hook_exit(void *arg, struct proc *p);
static int realtimer_create(struct itimer *);
static int realtimer_gettime(struct itimer *, struct itimerspec *);
static int realtimer_settime(struct itimer *, int,
@@ -892,9 +893,9 @@ itimer_start(void)
p31b_setcfg(CTL_P1003_1B_TIMERS, 200112L);
p31b_setcfg(CTL_P1003_1B_DELAYTIMER_MAX, INT_MAX);
p31b_setcfg(CTL_P1003_1B_TIMER_MAX, TIMER_MAX);
- EVENTHANDLER_REGISTER(process_exit, itimers_event_hook,
+ EVENTHANDLER_REGISTER(process_exit, itimers_event_hook_exit,
(void *)ITIMER_EV_EXIT, EVENTHANDLER_PRI_ANY);
- EVENTHANDLER_REGISTER(process_exec, itimers_event_hook,
+ EVENTHANDLER_REGISTER(process_exec, itimers_event_hook_exec,
(void *)ITIMER_EV_EXEC, EVENTHANDLER_PRI_ANY);
}
@@ -1510,9 +1511,15 @@ itimers_alloc(struct proc *p)
}
}
+static void
+itimers_event_hook_exec(void *arg, struct proc *p, struct image_params *imgp __unused)
+{
+ itimers_event_hook_exit(arg, p);
+}
+
/* Clean up timers when some process events are being triggered. */
static void
-itimers_event_hook(void *arg, struct proc *p)
+itimers_event_hook_exit(void *arg, struct proc *p)
{
struct itimers *its;
struct itimer *it;
OpenPOWER on IntegriCloud