source: rtems/cpukit/rtems/inline/rtems/rtems/tasks.inl @ 1a8fde6c

4.104.114.84.95
Last change on this file since 1a8fde6c was 1a8fde6c, checked in by Joel Sherrill <joel.sherrill@…>, on 03/06/96 at 21:34:57

Removed prototyes for static inline routines and moved the comments into
the inline implementation. The impetus for this was twofold. First,
it is incorrect to have static inline prototypes when using the macro
implementation. Second, this reduced the number of lines in the include
files seen by rtems.h by about 2000 lines.

Next we restricted visibility for the inline routines to inside the
executive itself EXCEPT for a handful of objects. This reduced the
number of include files included by rtems.h by 40 files and reduced
the lines in the include files seen by rtems.h by about 6000 lines.

In total, these reduced the compile time of the entire RTEMS tree by 20%.
This results in about 8 minutes savings on the SparcStation? 10 morgana.

  • Property mode set to 100644
File size: 1.9 KB
Line 
1/*  tasks.inl
2 *
3 *  This file contains the static inline implementation of all inlined
4 *  routines in the with RTEMS Tasks Manager.
5 *
6 *  COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
7 *  On-Line Applications Research Corporation (OAR).
8 *  All rights assigned to U.S. Government, 1994.
9 *
10 *  This material may be reproduced by or for the U.S. Government pursuant
11 *  to the copyright license under the clause at DFARS 252.227-7013.  This
12 *  notice must appear in all copies of this file and its derivatives.
13 *
14 *  $Id$
15 */
16
17#ifndef __RTEMS_TASKS_inl
18#define __RTEMS_TASKS_inl
19
20/*PAGE
21 *
22 *  _RTEMS_tasks_Allocate
23 *
24 *  DESCRIPTION:
25 *
26 *  This function allocates a task control block from
27 *  the inactive chain of free task control blocks.
28 */
29
30STATIC INLINE Thread_Control *_RTEMS_tasks_Allocate( void )
31{
32  return (Thread_Control *) _Objects_Allocate( &_RTEMS_tasks_Information );
33}
34
35/*PAGE
36 *
37 *  _RTEMS_tasks_Free
38 *
39 *  DESCRIPTION:
40 *
41 *  This routine frees a task control block to the
42 *  inactive chain of free task control blocks.
43 */
44
45STATIC INLINE void _RTEMS_tasks_Free (
46  Thread_Control *the_task
47)
48{
49  _Objects_Free(
50    _Objects_Get_information( the_task->Object.id ),
51    &the_task->Object
52  );
53}
54
55/*PAGE
56 *
57 *  _RTEMS_tasks_Priority_to_Core
58 *
59 *  DESCRIPTION:
60 *
61 *  This function converts an RTEMS API priority into a core priority.
62 */
63 
64STATIC INLINE Priority_Control _RTEMS_tasks_Priority_to_Core(
65  rtems_task_priority   priority
66)
67{
68  return (Priority_Control) priority;
69}
70
71/*PAGE
72 *
73 *  _RTEMS_tasks_Priority_is_valid
74 *
75 *  DESCRIPTION:
76 *
77 *  This function returns TRUE if the_priority is a valid user task priority
78 *  and FALSE otherwise.
79 */
80 
81STATIC INLINE boolean _RTEMS_tasks_Priority_is_valid (
82  rtems_task_priority the_priority
83)
84{
85  return (  ( the_priority >= RTEMS_MINIMUM_PRIORITY ) &&
86            ( the_priority <= RTEMS_MAXIMUM_PRIORITY ) );
87}
88
89#endif
90/* end of include file */
Note: See TracBrowser for help on using the repository browser.