diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1999-11-09 22:07:23 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1999-11-09 22:07:23 +0000 |
commit | 352c9b2035e32e56f10f261d94955d97f4ab0f1c (patch) | |
tree | f433e95ae0ab8d8854ea19b7f4bfab3ffb431726 /c/src/tests/tmitrontests/tmitronsem01/init.c | |
parent | Fixed warning where initialized default POSIX API structure did (diff) | |
download | rtems-352c9b2035e32e56f10f261d94955d97f4ab0f1c.tar.bz2 |
This patch adds the basic framework for the ITRON 3.0 API implementation
for RTEMS.
Diffstat (limited to 'c/src/tests/tmitrontests/tmitronsem01/init.c')
-rw-r--r-- | c/src/tests/tmitrontests/tmitronsem01/init.c | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/c/src/tests/tmitrontests/tmitronsem01/init.c b/c/src/tests/tmitrontests/tmitronsem01/init.c new file mode 100644 index 0000000000..396d45d04b --- /dev/null +++ b/c/src/tests/tmitrontests/tmitronsem01/init.c @@ -0,0 +1,141 @@ +/* Init + * + * This routine is the initialization task for this test program. + * It is called from init_exec and has the responsibility for creating + * and starting the tasks that make up the test. If the time of day + * clock is required for the test, it should also be set to a known + * value by this function. + * + * Input parameters: NONE + * + * Output parameters: NONE + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.OARcorp.com/rtems/license.html. + * + * $Id$ + */ + +#define TEST_INIT +#include "system.h" +#include <timesys.h> +#include <stdio.h> + +void ITRON_Init( void ) +{ + T_CSEM pk_csem; + T_RSEM pk_rsem; + int index; + + pk_csem.isemcnt = 2; + pk_csem.maxsem = 3; + pk_csem.sematr = TA_TFIFO; + + printf( "\n\n*** TMITRON01 -- ITRON TIMING TEST ***\n" ); + + /* + * time one invocation of cre_sem + */ + + Timer_initialize(); + (void) cre_sem( 1, &pk_csem ); + end_time = Read_timer(); + put_time( + "cre_sem", + end_time, + 1, + 0, /* no loop overhead to take out */ + 0 /* no calling overhead */ + ); + + /* + * time one invocation of del_sem + */ + + Timer_initialize(); + (void) del_sem( 1 ); + end_time = Read_timer(); + put_time( + "del_sem", + end_time, + 1, + 0, /* no loop overhead to take out */ + 0 /* no calling overhead */ + ); + + pk_csem.isemcnt = 100; + pk_csem.maxsem = 100; + pk_csem.sematr = TA_TFIFO; + (void) cre_sem( 1, &pk_csem ); + + /* + * time preq_sem (available) + */ + + Timer_initialize(); + for ( index = 1 ; index<=OPERATION_COUNT ; index++ ) + (void) preq_sem( 1 ); + end_time = Read_timer(); + put_time( + "preq_sem (available)", + end_time, + OPERATION_COUNT, + 0, /* don't take the loop overhead out */ + 0 /* no calling overhead */ + ); + + /* + * time preq_sem (not available) + */ + + Timer_initialize(); + for ( index = 1 ; index<=OPERATION_COUNT ; index++ ) + (void) preq_sem( 1 ); + end_time = Read_timer(); + put_time( + "preq_sem (not available)", + end_time, + OPERATION_COUNT, + 0, /* don't take the loop overhead out */ + 0 /* no calling overhead */ + ); + + /* + * time sig_sem (no waiting tasks) + */ + + Timer_initialize(); + for ( index = 1 ; index<=OPERATION_COUNT ; index++ ) + (void) sig_sem( 1 ); + end_time = Read_timer(); + put_time( + "sig_sem (no waiting tasks)", + end_time, + OPERATION_COUNT, + 0, /* don't take the loop overhead out */ + 0 /* no calling overhead */ + ); + + /* + * time ref_sem + */ + + Timer_initialize(); + for ( index = 1 ; index<=OPERATION_COUNT ; index++ ) + (void) ref_sem( 1, &pk_rsem ); + end_time = Read_timer(); + put_time( + "ref_sem", + end_time, + OPERATION_COUNT, + 0, /* don't take the loop overhead out */ + 0 /* no calling overhead */ + ); + + printf( "\n\nXXX ADD BLOCKING AND PREEMPTING TIME TESTS\n\n" ); + + + printf( "*** END OF TMITRON01 -- ITRON TIMING TEST ***\n" ); + exit( 0 ); +} |