summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2012-06-13 09:44:32 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2012-06-14 14:20:30 +0200
commit50fc8f65a6a7a602720af82af58b453dc663f082 (patch)
treee0a50bee793de37d516ad016633c478999cc4e3e
parentv850 - byte swap instructions not available on all multilibs (diff)
downloadrtems-50fc8f65a6a7a602720af82af58b453dc663f082.tar.bz2
sapi: Add nanoseconds_per_tick to configuration
Add nanoseconds_per_tick to rtems_configuration_table. This value will be derived from the microseconds_per_tick value. This avoids some calculations at run-time.
-rw-r--r--c/src/lib/libbsp/arm/nds/startup/bspstart.c2
-rw-r--r--cpukit/sapi/include/confdefs.h1
-rw-r--r--cpukit/sapi/include/rtems/config.h15
3 files changed, 16 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/arm/nds/startup/bspstart.c b/c/src/lib/libbsp/arm/nds/startup/bspstart.c
index 0fc67d374e..59c074e410 100644
--- a/c/src/lib/libbsp/arm/nds/startup/bspstart.c
+++ b/c/src/lib/libbsp/arm/nds/startup/bspstart.c
@@ -43,7 +43,7 @@ void bsp_start (void)
arm_cpu_mode = 0x1f;
/* configure clock period */
- Configuration.microseconds_per_tick = 10000; /* us */
+ rtems_configuration_set_microseconds_per_tick (10000);
defaultExceptionHandler ();
}
diff --git a/cpukit/sapi/include/confdefs.h b/cpukit/sapi/include/confdefs.h
index 0f804ee7cc..d4f21ca376 100644
--- a/cpukit/sapi/include/confdefs.h
+++ b/cpukit/sapi/include/confdefs.h
@@ -2323,6 +2323,7 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
CONFIGURE_STACK_SPACE_SIZE, /* required stack space */
CONFIGURE_MAXIMUM_USER_EXTENSIONS, /* maximum dynamic extensions */
CONFIGURE_MICROSECONDS_PER_TICK, /* microseconds per clock tick */
+ 1000 * CONFIGURE_MICROSECONDS_PER_TICK, /* nanoseconds per clock tick */
CONFIGURE_TICKS_PER_TIMESLICE, /* ticks per timeslice quantum */
CONFIGURE_IDLE_TASK_BODY, /* user's IDLE task */
CONFIGURE_IDLE_TASK_STACK_SIZE, /* IDLE task stack size */
diff --git a/cpukit/sapi/include/rtems/config.h b/cpukit/sapi/include/rtems/config.h
index 8bc5aea50c..58b350da76 100644
--- a/cpukit/sapi/include/rtems/config.h
+++ b/cpukit/sapi/include/rtems/config.h
@@ -146,6 +146,13 @@ typedef struct {
*/
uint32_t microseconds_per_tick;
+ /** This field specifies the number of nanoseconds which elapse
+ * between clock ticks. This value is derived from the
+ * microseconds_per_tick field and provided to avoid calculation at
+ * run-time.
+ */
+ uint32_t nanoseconds_per_tick;
+
/** This field specifies the number of ticks in each task's timeslice.
*/
uint32_t ticks_per_timeslice;
@@ -281,7 +288,13 @@ extern rtems_configuration_table Configuration;
#define rtems_configuration_get_milliseconds_per_tick() \
(Configuration.microseconds_per_tick / 1000)
#define rtems_configuration_get_nanoseconds_per_tick() \
- (Configuration.microseconds_per_tick * 1000)
+ (Configuration.nanoseconds_per_tick)
+#define rtems_configuration_set_microseconds_per_tick( _us ) \
+ do { \
+ Configuration.microseconds_per_tick = (_us); \
+ Configuration.nanoseconds_per_tick = \
+ 1000 * Configuration.microseconds_per_tick; \
+ } while (0)
#define rtems_configuration_get_ticks_per_timeslice() \
(Configuration.ticks_per_timeslice)