RTEMS 6.1-rc5
Loading...
Searching...
No Matches
config.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-2-Clause */
2
12/*
13 * Copyright (C) 2009, 2021 embedded brains GmbH & Co. KG
14 * Copyright (C) 1988, 2021 On-Line Applications Research Corporation (OAR)
15 *
16 * Redistribution and use in source and binary forms, with or without
17 * modification, are permitted provided that the following conditions
18 * are met:
19 * 1. Redistributions of source code must retain the above copyright
20 * notice, this list of conditions and the following disclaimer.
21 * 2. Redistributions in binary form must reproduce the above copyright
22 * notice, this list of conditions and the following disclaimer in the
23 * documentation and/or other materials provided with the distribution.
24 *
25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
29 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35 * POSSIBILITY OF SUCH DAMAGE.
36 */
37
38/*
39 * This file is part of the RTEMS quality process and was automatically
40 * generated. If you find something that needs to be fixed or
41 * worded better please post a report or patch to an RTEMS mailing list
42 * or raise a bug report:
43 *
44 * https://www.rtems.org/bugs.html
45 *
46 * For information on updating and regenerating please refer to the How-To
47 * section in the Software Requirements Engineering chapter of the
48 * RTEMS Software Engineering manual. The manual is provided as a part of
49 * a release. For development sources please refer to the online
50 * documentation at:
51 *
52 * https://docs.rtems.org
53 */
54
55/* Generated from spec:/rtems/config/if/header */
56
57#ifndef _RTEMS_CONFIG_H
58#define _RTEMS_CONFIG_H
59
60#include <stddef.h>
61#include <stdint.h>
62#include <rtems/rtems/config.h>
63#include <rtems/score/cpu.h>
64#include <rtems/score/cpuopts.h>
65#include <rtems/score/isr.h>
66#include <rtems/score/memory.h>
67#include <rtems/score/object.h>
68#include <rtems/score/smp.h>
69#include <rtems/score/stack.h>
74
75#if defined(RTEMS_MULTIPROCESSING)
76 #include <rtems/rtems/types.h>
77 #include <rtems/score/mpci.h>
78#endif
79
80#ifdef __cplusplus
81extern "C" {
82#endif
83
84/* Generated from spec:/rtems/config/if/group */
85
133/* Generated from spec:/rtems/config/if/unlimited-objects */
134
141#define RTEMS_UNLIMITED_OBJECTS OBJECTS_UNLIMITED_OBJECTS
142
143/* Generated from spec:/rtems/config/if/get-stack-allocator-avoids-work-space */
144
168#define rtems_configuration_get_stack_allocator_avoids_work_space() \
169 _Stack_Allocator_avoids_workspace
170
171/* Generated from spec:/rtems/config/if/get-stack-space-size */
172
196
197/* Generated from spec:/rtems/config/if/has-hardware-fp */
198
205#define RTEMS_HAS_HARDWARE_FP CPU_HARDWARE_FP
206
207/* Generated from spec:/rtems/config/if/stack-allocate-hook */
208
215
216/* Generated from spec:/rtems/config/if/stack-allocate-init-hook */
217
224
225/* Generated from spec:/rtems/config/if/stack-free-hook */
226
233
234/* Generated from spec:/rtems/config/if/get-build-label */
235
264const char *rtems_get_build_label( void );
265
266/* Generated from spec:/rtems/config/if/get-copyright-notice */
267
284const char *rtems_get_copyright_notice( void );
285
286/* Generated from spec:/rtems/config/if/get-target-hash */
287
318const char *rtems_get_target_hash( void );
319
320/* Generated from spec:/rtems/config/if/get-version-string */
321
342const char *rtems_get_version_string( void );
343
344/* Generated from spec:/rtems/config/if/get-do-zero-of-workspace */
345
368#define rtems_configuration_get_do_zero_of_workspace() _Memory_Zero_before_use
369
370/* Generated from spec:/rtems/config/if/get-idle-task-stack-size */
371
392#define rtems_configuration_get_idle_task_stack_size() _Thread_Idle_stack_size
393
394/* Generated from spec:/rtems/config/if/get-idle-task */
395
416#define rtems_configuration_get_idle_task() _Thread_Idle_body
417
418/* Generated from spec:/rtems/config/if/get-interrupt-stack-size */
419
440#define rtems_configuration_get_interrupt_stack_size() \
441 ((size_t) _ISR_Stack_size_object)
442
443/* Generated from spec:/rtems/config/if/get-maximum-extensions */
444
469
470/* Generated from spec:/rtems/config/if/get-maximum-processors */
471
500#define rtems_configuration_get_maximum_processors() \
501 _SMP_Processor_configured_maximum
502
503/* Generated from spec:/rtems/config/if/get-microseconds-per-tick */
504
527#define rtems_configuration_get_microseconds_per_tick() \
528 _Watchdog_Microseconds_per_tick
529
530/* Generated from spec:/rtems/config/if/get-milliseconds-per-tick */
531
554#define rtems_configuration_get_milliseconds_per_tick() \
555 ( _Watchdog_Microseconds_per_tick / 1000 )
556
557/* Generated from spec:/rtems/config/if/get-nanoseconds-per-tick */
558
581#define rtems_configuration_get_nanoseconds_per_tick() \
582 _Watchdog_Nanoseconds_per_tick
583
584/* Generated from spec:/rtems/config/if/get-number-of-initial-extensions */
585
609#define rtems_configuration_get_number_of_initial_extensions() \
610 ((uint32_t) _User_extensions_Initial_count)
611
612/* Generated from spec:/rtems/config/if/get-stack-allocate-for-idle-hook */
613
636#define rtems_configuration_get_stack_allocate_for_idle_hook() \
637 _Stack_Allocator_allocate_for_idle
638
639/* Generated from spec:/rtems/config/if/get-stack-allocate-hook */
640
663#define rtems_configuration_get_stack_allocate_hook() _Stack_Allocator_allocate
664
665/* Generated from spec:/rtems/config/if/get-stack-allocate-init-hook */
666
689#define rtems_configuration_get_stack_allocate_init_hook() \
690 _Stack_Allocator_initialize
691
692/* Generated from spec:/rtems/config/if/get-stack-free-hook */
693
716#define rtems_configuration_get_stack_free_hook() _Stack_Allocator_free
717
718/* Generated from spec:/rtems/config/if/get-ticks-per-timeslice */
719
741#define rtems_configuration_get_ticks_per_timeslice() \
742 _Watchdog_Ticks_per_timeslice
743
744/* Generated from spec:/rtems/config/if/get-unified-work-area */
745
768#define rtems_configuration_get_unified_work_area() _Workspace_Is_unified
769
770/* Generated from spec:/rtems/config/if/get-user-extension-table */
771
789#define rtems_configuration_get_user_extension_table() \
790 _User_extensions_Initial_extensions
791
792/* Generated from spec:/rtems/config/if/get-user-multiprocessing-table */
793
811#if defined(RTEMS_MULTIPROCESSING)
812 #define rtems_configuration_get_user_multiprocessing_table() \
813 ( &_MPCI_Configuration )
814#else
815 #define rtems_configuration_get_user_multiprocessing_table() NULL
816#endif
817
818/* Generated from spec:/rtems/config/if/get-work-space-size */
819
838#define rtems_configuration_get_work_space_size() \
839 ( _Workspace_Size + \
840 ( rtems_configuration_get_stack_allocator_avoids_work_space() ? \
841 0 : rtems_configuration_get_stack_space_size() ) )
842
843/* Generated from spec:/rtems/config/if/resource-is-unlimited */
844
865#define rtems_resource_is_unlimited( _resource ) \
866 _Objects_Is_unlimited( _resource )
867
868/* Generated from spec:/rtems/config/if/resource-maximum-per-allocation */
869
890#define rtems_resource_maximum_per_allocation( _resource ) \
891 _Objects_Maximum_per_allocation( _resource )
892
893/* Generated from spec:/rtems/config/if/resource-unlimited */
894
921#define rtems_resource_unlimited( _resource ) \
922 ( ( _resource ) | RTEMS_UNLIMITED_OBJECTS )
923
924#ifdef __cplusplus
925}
926#endif
927
928#endif /* _RTEMS_CONFIG_H */
This header file provides types used by the Classic API.
This header file provides the interfaces of the Memory Handler.
This header file provides interfaces of the MPCI Handler which are used by the implementation and the...
This header file provides interfaces of the SMP Support which are used by the implementation and the ...
This header file provides interfaces of the Stack Handler which are used by the implementation and th...
uint32_t rtems_configuration_get_maximum_extensions(void)
Gets the resource number of User Extensions Manager objects configured for this application.
Definition: getconfigmax.c:77
uintptr_t rtems_configuration_get_stack_space_size(void)
Gets the configured size in bytes of the memory space used to allocate thread stacks for this applica...
Definition: configstackspacesize.c:45
const char * rtems_get_build_label(void)
Gets the RTEMS build label.
Definition: getbuildlabel.c:43
const char * rtems_get_target_hash(void)
Gets the RTEMS target hash.
Definition: gettargethash-default.c:57
const char * rtems_get_copyright_notice(void)
Gets the RTEMS copyright notice.
Definition: getcopyrightnotice.c:46
Stack_Allocator_initialize rtems_stack_allocate_init_hook
A task stack allocator initialization handler shall have this type.
Definition: config.h:223
Stack_Allocator_allocate rtems_stack_allocate_hook
A thread stack allocator allocate handler shall have this type.
Definition: config.h:214
const char * rtems_get_version_string(void)
Gets the RTEMS version string.
Definition: getversionstring.c:45
Stack_Allocator_free rtems_stack_free_hook
A task stack allocator free handler shall have this type.
Definition: config.h:232
void(* Stack_Allocator_initialize)(size_t stack_space_size)
The stack allocator initialization handler.
Definition: stack.h:83
void *(* Stack_Allocator_allocate)(size_t stack_size)
Stack allocator allocate handler.
Definition: stack.h:93
void(* Stack_Allocator_free)(void *addr)
Stack allocator free handler.
Definition: stack.h:100
This header file provides parts of the application configuration information API.
This header file provides the main interfaces of the ISR Handler.
This header file provides interfaces of the Object Handler which are used by the implementation and t...
This header file provides data structures used by the implementation and the Application Configuratio...
This header file provides data structures used by the implementation and the Application Configuratio...
This header file provides the interfaces of the Watchdog Handler related to watchdog ticks which are ...
This header file provides data structures used by the implementation and the Application Configuratio...