summaryrefslogtreecommitdiffstats
path: root/c-user/config/posix-init-thread.rst
blob: 04027fab4f3410d85c2358556a252b02c38ed349 (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
.. SPDX-License-Identifier: CC-BY-SA-4.0

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

POSIX Initialization Thread Configuration
=========================================

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

.. index:: CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT

.. _CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT:

CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT
---------------------------------------

CONSTANT:
    ``CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT``

DATA TYPE:
    POSIX thread function pointer (``void *(*entry_point)(void *)``).

RANGE:
    Undefined or a valid POSIX thread function pointer.

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

DESCRIPTION:
    ``CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT`` is the entry point
    (a.k.a. function name) of the single initialization thread defined by the
    POSIX API Initialization Threads Table.

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

.. index:: CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE

.. _CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE:

CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE
--------------------------------------

CONSTANT:
    ``CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE``

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

RANGE:
    Zero or positive.

DEFAULT VALUE:
    The default value is 2 \* RTEMS_MINIMUM_STACK_SIZE.

DESCRIPTION:
    ``CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE`` is the stack size of the single
    initialization thread defined by the POSIX API Initialization Threads
    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_POSIX_INIT_THREAD_TABLE

.. _CONFIGURE_POSIX_INIT_THREAD_TABLE:

CONFIGURE_POSIX_INIT_THREAD_TABLE
---------------------------------

CONSTANT:
    ``CONFIGURE_POSIX_INIT_THREAD_TABLE``

DATA TYPE:
    Boolean feature macro.

RANGE:
    Defined or undefined.

DEFAULT VALUE:
    This field is not defined by default, as the user MUST select their own API
    for initialization tasks.

DESCRIPTION:
    ``CONFIGURE_POSIX_INIT_THREAD_TABLE`` is defined if the user wishes to use
    a POSIX API Initialization Threads Table.  The table built by
    ``<rtems/confdefs.h>`` specifies the parameters for a single thread. 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.