summaryrefslogtreecommitdiffstats
path: root/c-user/config/classic-init-task.rst
blob: cbbec9a6e57d08216742d7d0082d1187a819f28b (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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
.. SPDX-License-Identifier: CC-BY-SA-4.0

.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)

Classic API Initialization Task Configuration
=============================================

The ``<rtems/confdefs.h>`` configuration system can automatically generate an
Initialization Tasks Table named ``Initialization_tasks`` with a single entry.
The following parameters control the generation of that table.

.. index:: CONFIGURE_INIT_TASK_ARGUMENTS

.. _CONFIGURE_INIT_TASK_ARGUMENTS:

CONFIGURE_INIT_TASK_ARGUMENTS
-----------------------------

CONSTANT:
    ``CONFIGURE_INIT_TASK_ARGUMENTS``

DATA TYPE:
    RTEMS Task Argument (``rtems_task_argument``).

RANGE:
    Complete range of the type.

DEFAULT VALUE:
    The default value is 0.

DESCRIPTION:
    ``CONFIGURE_INIT_TASK_ARGUMENTS`` is the task argument of the single
    initialization task defined by the Classic API Initialization Tasks Table.

NOTES:
    None.

.. index:: CONFIGURE_INIT_TASK_ATTRIBUTES

.. _CONFIGURE_INIT_TASK_ATTRIBUTES:

CONFIGURE_INIT_TASK_ATTRIBUTES
------------------------------

CONSTANT:
    ``CONFIGURE_INIT_TASK_ATTRIBUTES``

DATA TYPE:
    RTEMS Attributes (``rtems_attribute``).

RANGE:
    Valid task attribute sets.

DEFAULT VALUE:
    The default value is ``RTEMS_DEFAULT_ATTRIBUTES``.

DESCRIPTION:
    ``CONFIGURE_INIT_TASK_ATTRIBUTES`` is the task attributes of the single
    initialization task defined by the Classic API Initialization Tasks Table.

NOTES:
    None.

.. index:: CONFIGURE_INIT_TASK_ENTRY_POINT

.. _CONFIGURE_INIT_TASK_ENTRY_POINT:

CONFIGURE_INIT_TASK_ENTRY_POINT
-------------------------------

CONSTANT:
    ``CONFIGURE_INIT_TASK_ENTRY_POINT``

DATA TYPE:
    Task entry function pointer (``rtems_task_entry``).

RANGE:
    Valid task entry function pointer.

DEFAULT VALUE:
    The default value is ``Init``.

DESCRIPTION:
    ``CONFIGURE_INIT_TASK_ENTRY_POINT`` is the entry point (a.k.a. function
    name) of the single initialization task defined by the Classic API
    Initialization Tasks Table.

NOTES:
    The user must implement the function ``Init`` or the function name provided
    in this configuration parameter.

.. index:: CONFIGURE_INIT_TASK_INITIAL_MODES

.. _CONFIGURE_INIT_TASK_INITIAL_MODES:

CONFIGURE_INIT_TASK_INITIAL_MODES
---------------------------------

CONSTANT:
    ``CONFIGURE_INIT_TASK_INITIAL_MODES``

DATA TYPE:
    RTEMS Mode (``rtems_mode``).

RANGE:
    Valid task mode sets.

DEFAULT VALUE:
    The default value is ``RTEMS_NO_PREEMPT``.

DESCRIPTION:
    ``CONFIGURE_INIT_TASK_INITIAL_MODES`` is the initial execution mode of the
    single initialization task defined by the Classic API Initialization Tasks
    Table.

NOTES:
    None.

.. index:: CONFIGURE_INIT_TASK_NAME

.. _CONFIGURE_INIT_TASK_NAME:

CONFIGURE_INIT_TASK_NAME
------------------------

CONSTANT:
    ``CONFIGURE_INIT_TASK_NAME``

DATA TYPE:
    RTEMS Name (``rtems_name``).

RANGE:
    Any value.

DEFAULT VALUE:
    The default value is ``rtems_build_name( 'U', 'I', '1', ' ' )``.

DESCRIPTION:
    ``CONFIGURE_INIT_TASK_NAME`` is the name of the single initialization task
    defined by the Classic API Initialization Tasks Table.

NOTES:
    None.

.. index:: CONFIGURE_INIT_TASK_PRIORITY

.. _CONFIGURE_INIT_TASK_PRIORITY:

CONFIGURE_INIT_TASK_PRIORITY
----------------------------

CONSTANT:
    ``CONFIGURE_INIT_TASK_PRIORITY``

DATA TYPE:
    RTEMS Task Priority (``rtems_task_priority``).

RANGE:
    One (1) to the maximum user priority value of the scheduler.

DEFAULT VALUE:
    The default value is 1, which is the highest priority in the Classic API.

DESCRIPTION:
    ``CONFIGURE_INIT_TASK_PRIORITY`` is the initial priority of the single
    initialization task defined by the Classic API Initialization Tasks Table.

NOTES:
    None.

.. index:: CONFIGURE_INIT_TASK_STACK_SIZE

.. _CONFIGURE_INIT_TASK_STACK_SIZE:

CONFIGURE_INIT_TASK_STACK_SIZE
------------------------------

CONSTANT:
    ``CONFIGURE_INIT_TASK_STACK_SIZE``

DATA TYPE:
    Unsigned integer (``size_t``).

RANGE:
    Zero or positive.

DEFAULT VALUE:
    The default value is RTEMS_MINIMUM_STACK_SIZE.

DESCRIPTION:
    ``CONFIGURE_INIT_TASK_STACK_SIZE`` is the stack size of the single
    initialization task defined by the Classic API Initialization Tasks Table.

NOTES:
    If the stack size specified is greater than the configured minimum, it must
    be accounted for in ``CONFIGURE_EXTRA_TASK_STACKS``.  See :ref:`Reserve
    Task/Thread Stack Memory Above Minimum` for more information about
    ``CONFIGURE_EXTRA_TASK_STACKS``.

.. index:: CONFIGURE_RTEMS_INIT_TASKS_TABLE

.. _CONFIGURE_RTEMS_INIT_TASKS_TABLE:

CONFIGURE_RTEMS_INIT_TASKS_TABLE
--------------------------------

CONSTANT:
    ``CONFIGURE_RTEMS_INIT_TASKS_TABLE``

DATA TYPE:
    Boolean feature macro.

RANGE:
    Defined or undefined.

DEFAULT VALUE:
    This is not defined by default.

DESCRIPTION:
    ``CONFIGURE_RTEMS_INIT_TASKS_TABLE`` is defined if the user wishes to use a
    Classic RTEMS API Initialization Task Table. The table built by
    ``<rtems/confdefs.h>`` specifies the parameters for a single task. This is
    sufficient for applications which initialization the system from a single
    task.

    By default, this field is not defined as the user MUST select their own API
    for initialization tasks.

NOTES:
    The application may choose to use the initialization tasks or threads table
    from another API.

    A compile time error will be generated if the user does not configure any
    initialization tasks or threads.