From c727e4a22e6046b69329a13c1560680cec61be92 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Mon, 13 May 2019 11:19:05 +0200 Subject: Separate libbsd and RTEMS clock ticks --- freebsd/sys/kern/kern_intr.c | 1 - freebsd/sys/kern/kern_timeout.c | 5 ++++- freebsd/sys/kern/subr_sleepqueue.c | 1 - freebsd/sys/kern/sys_generic.c | 2 -- freebsd/sys/sys/kernel.h | 9 --------- 5 files changed, 4 insertions(+), 14 deletions(-) (limited to 'freebsd') diff --git a/freebsd/sys/kern/kern_intr.c b/freebsd/sys/kern/kern_intr.c index 4e311cb8..647c7f9a 100644 --- a/freebsd/sys/kern/kern_intr.c +++ b/freebsd/sys/kern/kern_intr.c @@ -65,7 +65,6 @@ __FBSDID("$FreeBSD$"); #else /* __rtems__ */ #include #define RTEMSBSD_SWI_WAKEUP_EVENT RTEMS_EVENT_31 - #undef ticks #include #endif /* __rtems__ */ #include diff --git a/freebsd/sys/kern/kern_timeout.c b/freebsd/sys/kern/kern_timeout.c index 8ef42c9a..2f478afc 100644 --- a/freebsd/sys/kern/kern_timeout.c +++ b/freebsd/sys/kern/kern_timeout.c @@ -317,6 +317,7 @@ rtems_bsd_callout_timer(rtems_id id, void *arg) sc = rtems_timer_reset(id); BSD_ASSERT(sc == RTEMS_SUCCESSFUL); + ++ticks; callout_process(sbinuptime()); } @@ -339,7 +340,9 @@ rtems_bsd_timeout_init_late(void *unused) sc = rtems_timer_create(rtems_build_name('_', 'C', 'L', 'O'), &id); BSD_ASSERT(sc == RTEMS_SUCCESSFUL); - sc = rtems_timer_server_fire_after(id, 1, rtems_bsd_callout_timer, NULL); + sc = rtems_timer_server_fire_after(id, + rtems_clock_get_ticks_per_second() / (rtems_interval)hz, + rtems_bsd_callout_timer, NULL); BSD_ASSERT(sc == RTEMS_SUCCESSFUL); } diff --git a/freebsd/sys/kern/subr_sleepqueue.c b/freebsd/sys/kern/subr_sleepqueue.c index 9aa9d7fa..e8e221c8 100644 --- a/freebsd/sys/kern/subr_sleepqueue.c +++ b/freebsd/sys/kern/subr_sleepqueue.c @@ -94,7 +94,6 @@ __FBSDID("$FreeBSD$"); #endif #ifdef __rtems__ #include -#undef ticks #include #include #endif /* __rtems__ */ diff --git a/freebsd/sys/kern/sys_generic.c b/freebsd/sys/kern/sys_generic.c index 70638ad0..24da3934 100644 --- a/freebsd/sys/kern/sys_generic.c +++ b/freebsd/sys/kern/sys_generic.c @@ -1999,8 +1999,6 @@ kern_posix_error(struct thread *td, int error) #ifdef __rtems__ #include -#undef ticks - #include #include diff --git a/freebsd/sys/sys/kernel.h b/freebsd/sys/sys/kernel.h index 42a37604..41a5233a 100644 --- a/freebsd/sys/sys/kernel.h +++ b/freebsd/sys/sys/kernel.h @@ -70,16 +70,7 @@ extern int psratio; /* ratio: prof / stat */ extern int stathz; /* statistics clock's frequency */ extern int profhz; /* profiling clock's frequency */ extern int profprocs; /* number of process's profiling */ -#ifndef __rtems__ extern volatile int ticks; -#else /* __rtems__ */ -/* - * This must be a singed integer type, otherwise expressions like - * (x - ticks) > 0 would yield unexpected results. - */ -extern volatile int32_t _bsd_ticks; -#define ticks _bsd_ticks -#endif /* __rtems__ */ #endif /* _KERNEL */ -- cgit v1.2.3