summaryrefslogtreecommitdiffstats
path: root/testsuites/sptests/spintrcritical_support
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2009-07-20 14:48:14 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2009-07-20 14:48:14 +0000
commit260e09260a8bf7c5a8451892039beeab688586b7 (patch)
treeea99b02272dcec0ead35c7a2baa14197be65b58a /testsuites/sptests/spintrcritical_support
parentadd missing i2c.c file (diff)
downloadrtems-260e09260a8bf7c5a8451892039beeab688586b7.tar.bz2
2009-07-20 Joel Sherrill <joel.sherrill@OARcorp.com>
* spintrcritical_support/intrcritical.c, spintrcritical_support/intrcritical.h: Change prototype of delay method to indicate when counter is reset. This can be used to count how many iterations we are doing.
Diffstat (limited to 'testsuites/sptests/spintrcritical_support')
-rw-r--r--testsuites/sptests/spintrcritical_support/intrcritical.c10
-rw-r--r--testsuites/sptests/spintrcritical_support/intrcritical.h11
2 files changed, 18 insertions, 3 deletions
diff --git a/testsuites/sptests/spintrcritical_support/intrcritical.c b/testsuites/sptests/spintrcritical_support/intrcritical.c
index 63d1b12654..7d1d3ecb0c 100644
--- a/testsuites/sptests/spintrcritical_support/intrcritical.c
+++ b/testsuites/sptests/spintrcritical_support/intrcritical.c
@@ -57,10 +57,11 @@ void interrupt_critical_section_test_support_initialize(
#endif
}
-void interrupt_critical_section_test_support_delay(void)
+bool interrupt_critical_section_test_support_delay(void)
{
uint32_t counter;
Watchdog_Interval initial;
+ bool retval;
if (TSR) {
rtems_status_code rc;
@@ -72,8 +73,12 @@ void interrupt_critical_section_test_support_delay(void)
/*
* Count down
*/
- if ( !Maximum_current )
+ if ( !Maximum_current ) {
Maximum_current = Maximum;
+ retval = true;
+ } else
+ retval = false;
+
initial = _Watchdog_Ticks_since_boot;
for (counter=Maximum_current ; counter ; counter--)
if ( initial != _Watchdog_Ticks_since_boot )
@@ -84,4 +89,5 @@ void interrupt_critical_section_test_support_delay(void)
/*
* Return so the test can try to generate the condition
*/
+ return retval;
}
diff --git a/testsuites/sptests/spintrcritical_support/intrcritical.h b/testsuites/sptests/spintrcritical_support/intrcritical.h
index 4b523a656d..fb0f2ed26f 100644
--- a/testsuites/sptests/spintrcritical_support/intrcritical.h
+++ b/testsuites/sptests/spintrcritical_support/intrcritical.h
@@ -21,6 +21,15 @@ void interrupt_critical_section_test_support_initialize(
rtems_timer_service_routine (*tsr)( rtems_id, void * )
);
-void interrupt_critical_section_test_support_delay(void);
+/**
+ * @brief Delay Test Support
+ *
+ * This method delays a varying amount of time each call.
+ *
+ * @return This method returns true each time the delay counter has
+ * to be reset.
+ */
+bool interrupt_critical_section_test_support_delay(void);
+
#endif