summaryrefslogtreecommitdiffstats
path: root/freebsd
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2019-05-13 11:19:05 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2019-05-15 12:43:06 +0200
commitc727e4a22e6046b69329a13c1560680cec61be92 (patch)
tree1753ca131ac917f6abf57ca42151c6ca899f0d7c /freebsd
parentFix USB_DEBUG redefinition warnings (diff)
downloadrtems-libbsd-c727e4a22e6046b69329a13c1560680cec61be92.tar.bz2
Separate libbsd and RTEMS clock ticks
Diffstat (limited to 'freebsd')
-rw-r--r--freebsd/sys/kern/kern_intr.c1
-rw-r--r--freebsd/sys/kern/kern_timeout.c5
-rw-r--r--freebsd/sys/kern/subr_sleepqueue.c1
-rw-r--r--freebsd/sys/kern/sys_generic.c2
-rw-r--r--freebsd/sys/sys/kernel.h9
5 files changed, 4 insertions, 14 deletions
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 <machine/rtems-bsd-thread.h>
#define RTEMSBSD_SWI_WAKEUP_EVENT RTEMS_EVENT_31
- #undef ticks
#include <rtems/score/threadimpl.h>
#endif /* __rtems__ */
#include <machine/stdarg.h>
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 <machine/rtems-bsd-thread.h>
-#undef ticks
#include <rtems/score/threadimpl.h>
#include <rtems/score/watchdogimpl.h>
#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 <machine/rtems-bsd-thread.h>
-#undef ticks
-
#include <rtems/score/objectimpl.h>
#include <rtems/score/threadimpl.h>
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 */