source: rtems/cpukit/include/rtems/rtems/tasksdata.h @ 21275b58

Last change on this file since 21275b58 was 21275b58, checked in by Sebastian Huber <sebastian.huber@…>, on Nov 22, 2018 at 6:14:51 PM

score: Static Objects_Information initialization

Statically allocate the objects information together with the initial
set of objects either via <rtems/confdefs.h>. Provide default object
informations with zero objects via librtemscpu.a. This greatly
simplifies the workspace size estimate. RTEMS applications which do not
use the unlimited objects option are easier to debug since all objects
reside now in statically allocated objects of the right types.

Close #3621.

  • Property mode set to 100644
File size: 1.7 KB
Line 
1/**
2 * @file
3 *
4 * @ingroup ClassicTasksImpl
5 *
6 * @brief Classic Tasks Manager Data Structures
7 */
8
9/*
10 * COPYRIGHT (c) 1989-2014.
11 * On-Line Applications Research Corporation (OAR).
12 *
13 * The license and distribution terms for this file may be
14 * found in the file LICENSE in this distribution or at
15 * http://www.rtems.org/license/LICENSE.
16 */
17
18#ifndef _RTEMS_RTEMS_TASKSDATA_H
19#define _RTEMS_RTEMS_TASKSDATA_H
20
21#include <rtems/rtems/tasks.h>
22#include <rtems/rtems/asrdata.h>
23#include <rtems/rtems/eventdata.h>
24#include <rtems/score/thread.h>
25
26#ifdef __cplusplus
27extern "C" {
28#endif
29
30/**
31 * @addtogroup ClassicTasksImpl
32 *
33 * @{
34 */
35
36/**
37 *  This is the API specific information required by each thread for
38 *  the RTEMS API to function correctly.
39 *
40 */
41typedef struct {
42  /** This field contains the event control for this task. */
43  Event_Control            Event;
44  /** This field contains the system event control for this task. */
45  Event_Control            System_event;
46  /** This field contains the Classic API Signal information for this task. */
47  ASR_Information          Signal;
48
49  /**
50   * @brief Signal post-switch action in case signals are pending.
51   */
52  Thread_Action            Signal_action;
53}  RTEMS_API_Control;
54
55/**
56 *  @brief _RTEMS_tasks_Initialize_user_tasks_body
57 *
58 *  This routine creates and starts all configured user
59 *  initialization threads.
60 *
61 *  Input parameters: NONE
62 *
63 *  Output parameters:  NONE
64 *
65 *  RTEMS Task Manager
66 */
67
68extern void _RTEMS_tasks_Initialize_user_tasks_body( void );
69
70/**
71 *  The following instantiates the information control block used to
72 *  manage this class of objects.
73 */
74extern Thread_Information _RTEMS_tasks_Information;
75
76/** @} */
77
78#ifdef __cplusplus
79}
80#endif
81
82#endif
83/* end of include file */
Note: See TracBrowser for help on using the repository browser.