source: rtems/cpukit/score/src/interr.c @ 92f50c3

4.115
Last change on this file since 92f50c3 was 92f50c3, checked in by Sebastian Huber <sebastian.huber@…>, on 02/17/14 at 08:47:12

score: Add SYSTEM_STATE_TERMINATED

Merge systems states SYSTEM_STATE_SHUTDOWN and SYSTEM_STATE_FAILED into
new system state SYSTEM_STATE_TERMINATED. This reflects that all system
termination paths end up in _Internal_error_Occurred().

  • Property mode set to 100644
File size: 1.1 KB
Line 
1/**
2 * @file
3 *
4 * @brief Initiates system termination
5 * @ingroup ScoreIntErr
6 */
7
8/*
9 *  COPYRIGHT (c) 1989-1999.
10 *  On-Line Applications Research Corporation (OAR).
11 *
12 *  The license and distribution terms for this file may be
13 *  found in the file LICENSE in this distribution or at
14 *  http://www.rtems.com/license/LICENSE.
15 */
16
17#if HAVE_CONFIG_H
18#include "config.h"
19#endif
20
21#include <rtems/score/interr.h>
22#include <rtems/score/sysstate.h>
23#include <rtems/score/userextimpl.h>
24
25System_state_Codes _System_state_Current;
26
27Internal_errors_Information _Internal_errors_What_happened;
28
29void _Internal_error_Occurred(
30  Internal_errors_Source  the_source,
31  bool                    is_internal,
32  Internal_errors_t       the_error
33)
34{
35  _User_extensions_Fatal( the_source, is_internal, the_error );
36
37  _Internal_errors_What_happened.the_source  = the_source;
38  _Internal_errors_What_happened.is_internal = is_internal;
39  _Internal_errors_What_happened.the_error   = the_error;
40
41  _System_state_Set( SYSTEM_STATE_TERMINATED );
42
43  _CPU_Fatal_halt( the_error );
44
45  /* will not return from this routine */
46  while (true);
47}
Note: See TracBrowser for help on using the repository browser.