mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2026-09-20 17:51:31 +08:00
* sp04/tswitch.c, sp07/task1.c, sp07/task2.c, sp09/screen07.c, sp11/task1.c, sp11/task2.c, sp12/pridrv.c, sp12/pritask.c, sp13/task1.c, sp14/asr.c, sp14/task1.c, sp19/first.c, sp19/fptask.c, sp19/inttest.h, sp19/task1.c, sp20/task1.c, sp25/task1.c, sp26/task1.c, sp28/init.c, sp29/init.c, sp31/task1.c, sp32/init.c, sp33/init.c, sp34/changepri.c, sp36/strict_order_mut.c, sp37/init.c, sp43/init.c, sp44/init.c, sp48/init.c, sp54/init.c, sp59/init.c, sp65/init.c, sp68/init.c, spchain/init.c, spclockget/init.c, spfatal03/testcase.h, spfatal07/testcase.h, spfatal_support/init.c: Do not line length exceed 80 columns.
62 lines
1.3 KiB
C
62 lines
1.3 KiB
C
/*
|
|
*
|
|
* COPYRIGHT (c) 1989-2011.
|
|
* On-Line Applications Research Corporation (OAR).
|
|
*
|
|
* The license and distribution terms for this file may be
|
|
* found in the file LICENSE in this distribution or at
|
|
* http://www.rtems.com/license/LICENSE.
|
|
*
|
|
* $Id$
|
|
*/
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
#include "config.h"
|
|
#endif
|
|
|
|
#include "system.h"
|
|
|
|
/*
|
|
* Only require 10 task switches on sis/gdb. --joel 2 Feb 2011
|
|
*/
|
|
#define MAX_TASK_SWITCH_LOGS 25
|
|
|
|
struct taskSwitchLog taskSwitchLog[MAX_TASK_SWITCH_LOGS];
|
|
unsigned int taskSwitchLogIndex;
|
|
volatile int testsFinished;
|
|
|
|
void Task_switch(
|
|
rtems_tcb *unused,
|
|
rtems_tcb *heir
|
|
)
|
|
{
|
|
uint32_t index;
|
|
rtems_time_of_day time;
|
|
rtems_status_code status;
|
|
|
|
index = task_number( heir->Object.id ) - task_number( Task_id[1] ) + 1;
|
|
|
|
switch( index ) {
|
|
case 1:
|
|
case 2:
|
|
case 3:
|
|
Run_count[ index ] += 1;
|
|
|
|
status = rtems_clock_get_tod( &time );
|
|
directive_failed_with_level( status, "rtems_clock_get_tod", 1 );
|
|
|
|
if (taskSwitchLogIndex < MAX_TASK_SWITCH_LOGS ) {
|
|
taskSwitchLog[taskSwitchLogIndex].taskIndex = index;
|
|
taskSwitchLog[taskSwitchLogIndex].when = time;
|
|
taskSwitchLogIndex++;
|
|
}
|
|
if ( time.second >= 16 )
|
|
testsFinished = 1;
|
|
break;
|
|
|
|
case 0:
|
|
default:
|
|
break;
|
|
}
|
|
}
|