summaryrefslogtreecommitdiffstats
path: root/cpukit/score/inline/rtems/score/sysstate.inl
blob: b237400871bb44034c07e372ecb6af29be3c9337 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
/** 
 *  @file  rtems/score/sysstate.inl
 *
 *  This file contains the inline implementation of routines regarding the 
 *  system state.
 */

/*
 *  COPYRIGHT (c) 1989-2004.
 *  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$
 */

#ifndef _RTEMS_SCORE_SYSSTATE_H
# error "Never use <rtems/score/sysstate.inl> directly; include <rtems/score/sysstate.h> instead."
#endif

#ifndef _RTEMS_SCORE_SYSSTATE_INL
#define _RTEMS_SCORE_SYSSTATE_INL

/**
 *  @addtogroup ScoreSysState 
 *  @{
 */

/**
 *  This routine initializes the system state handler.
 */
 
RTEMS_INLINE_ROUTINE void _System_state_Handler_initialization (
#if defined(RTEMS_MULTIPROCESSING)
  bool  is_multiprocessing
#else
  bool  is_multiprocessing __attribute__((unused))
#endif
)
{
  _System_state_Current = SYSTEM_STATE_BEFORE_INITIALIZATION;
#if defined(RTEMS_MULTIPROCESSING)
    _System_state_Is_multiprocessing = is_multiprocessing;
#endif
}
 
/**
 *  This routine sets the current system state to that specified by
 *  the called.
 */

RTEMS_INLINE_ROUTINE void _System_state_Set (
  System_state_Codes state
)
{
  _System_state_Current = state;
}

/**
 *  This function returns the current system state.
 */

RTEMS_INLINE_ROUTINE System_state_Codes _System_state_Get ( void )
{
  return _System_state_Current;
}

/**
 *  This function returns true if the state is equal to the
 *  "before initialization" state, and false otherwise.
 */

RTEMS_INLINE_ROUTINE bool _System_state_Is_before_initialization (
  System_state_Codes state
)
{
  return (state == SYSTEM_STATE_BEFORE_INITIALIZATION);
}

/**
 *  This function returns true if the state is equal to the
 *  "before multitasking" state, and false otherwise.
 */

RTEMS_INLINE_ROUTINE bool _System_state_Is_before_multitasking (
  System_state_Codes state
)
{
  return (state == SYSTEM_STATE_BEFORE_MULTITASKING);
}

/**
 *  This function returns true if the state is equal to the
 *  "begin multitasking" state, and false otherwise.
 */

RTEMS_INLINE_ROUTINE bool _System_state_Is_begin_multitasking (
  System_state_Codes state
)
{
  return (state == SYSTEM_STATE_BEGIN_MULTITASKING);
}

/**
 *  This function returns true if the state is equal to the
 *  "up" state, and false otherwise.
 */

RTEMS_INLINE_ROUTINE bool _System_state_Is_up (
  System_state_Codes state
)
{
  return (state == SYSTEM_STATE_UP);
}

/**
 *  This function returns true if the state is equal to the
 *  "failed" state, and false otherwise.
 */

RTEMS_INLINE_ROUTINE bool _System_state_Is_failed (
  System_state_Codes state
)
{
  return (state == SYSTEM_STATE_FAILED);
}

/**@}*/

#endif
/* end of include file */