36#ifndef _RTEMS_CONFDEFS_EXTENSIONS_H
37#define _RTEMS_CONFDEFS_EXTENSIONS_H
39#ifndef __CONFIGURATION_TEMPLATE_h
40#error "Do not include this file directly, use <rtems/confdefs.h> instead"
48#include <rtems/sysinit.h>
50#ifndef CONFIGURE_MAXIMUM_USER_EXTENSIONS
51 #define CONFIGURE_MAXIMUM_USER_EXTENSIONS 0
54#if CONFIGURE_MAXIMUM_USER_EXTENSIONS > 0
58#ifdef _CONFIGURE_ENABLE_NEWLIB_REENTRANCY
62#if CONFIGURE_RECORD_PER_PROCESSOR_ITEMS > 0
63 #if (CONFIGURE_RECORD_PER_PROCESSOR_ITEMS & (CONFIGURE_RECORD_PER_PROCESSOR_ITEMS - 1)) != 0
64 #error "CONFIGURE_RECORD_PER_PROCESSOR_ITEMS must be a power of two"
67 #if CONFIGURE_RECORD_PER_PROCESSOR_ITEMS < 16
68 #error "CONFIGURE_RECORD_PER_PROCESSOR_ITEMS must be at least 16"
71 #if defined(CONFIGURE_RECORD_EXTENSIONS_ENABLED) \
72 || defined(CONFIGURE_RECORD_FATAL_DUMP_BASE64) \
73 || defined(CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB)
74 #define _CONFIGURE_RECORD_NEED_EXTENSION
78 #include <rtems/record.h>
80 #ifdef CONFIGURE_RECORD_EXTENSIONS_ENABLED
81 #warning "CONFIGURE_RECORD_EXTENSIONS_ENABLED defined without CONFIGURE_RECORD_PER_PROCESSOR_ITEMS"
83 #ifdef CONFIGURE_RECORD_FATAL_DUMP_BASE64
84 #warning "CONFIGURE_RECORD_FATAL_DUMP_BASE64 defined without CONFIGURE_RECORD_PER_PROCESSOR_ITEMS"
86 #ifdef CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB
87 #warning "CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB defined without CONFIGURE_RECORD_PER_PROCESSOR_ITEMS"
91#ifdef CONFIGURE_STACK_CHECKER_ENABLED
99#if defined(_CONFIGURE_RECORD_NEED_EXTENSION) \
100 || defined(_CONFIGURE_ENABLE_NEWLIB_REENTRANCY) \
101 || defined(CONFIGURE_STACK_CHECKER_ENABLED) \
102 || defined(CONFIGURE_INITIAL_EXTENSIONS) \
103 || defined(BSP_INITIAL_EXTENSION)
105 #ifdef _CONFIGURE_RECORD_NEED_EXTENSION
107 #ifdef CONFIGURE_RECORD_EXTENSIONS_ENABLED
108 _Record_Thread_create,
109 _Record_Thread_start,
110 _Record_Thread_restart,
111 _Record_Thread_delete,
112 _Record_Thread_switch,
113 _Record_Thread_begin,
114 _Record_Thread_exitted,
118 #ifdef CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB
119 _Record_Fatal_dump_base64_zlib,
120 #elif defined(CONFIGURE_RECORD_FATAL_DUMP_BASE64)
121 _Record_Fatal_dump_base64,
125 #ifdef CONFIGURE_RECORD_EXTENSIONS_ENABLED
126 _Record_Thread_terminate
132 #ifdef _CONFIGURE_ENABLE_NEWLIB_REENTRANCY
133 RTEMS_NEWLIB_EXTENSION,
135 #ifdef CONFIGURE_STACK_CHECKER_ENABLED
138 #ifdef CONFIGURE_INITIAL_EXTENSIONS
139 CONFIGURE_INITIAL_EXTENSIONS,
141 #ifdef BSP_INITIAL_EXTENSION
142 BSP_INITIAL_EXTENSION
155 RTEMS_SYSINIT_INITIAL_EXTENSIONS,
156 RTEMS_SYSINIT_ORDER_MIDDLE
160#if CONFIGURE_MAXIMUM_USER_EXTENSIONS > 0
164#if CONFIGURE_RECORD_PER_PROCESSOR_ITEMS > 0
167 rtems_record_item Items[ CONFIGURE_RECORD_PER_PROCESSOR_ITEMS ];
168 } Record_Configured_control;
170 static Record_Configured_control _Record_Controls[ _CONFIGURE_MAXIMUM_PROCESSORS ];
173 CONFIGURE_RECORD_PER_PROCESSOR_ITEMS,
174 &_Record_Controls[ 0 ].Control
179 RTEMS_SYSINIT_RECORD,
180 RTEMS_SYSINIT_ORDER_MIDDLE
184#ifdef CONFIGURE_VERBOSE_SYSTEM_INITIALIZATION
187 RTEMS_SYSINIT_RECORD,
188 RTEMS_SYSINIT_ORDER_LAST
#define NULL
Requests a GPIO pin group configuration.
Definition: bestcomm_api.h:77
Evaluate Per-CPU Configuration Options.
Evaluate BSP Related Configuration Options.
Classic User Extensions Data Structures.
#define EXTENSION_INFORMATION_DEFINE(max)
Macro to define the objects information for the Classic Extensions objects.
Definition: extensiondata.h:54
User_extensions_Switch_control _User_extensions_Initial_switch_controls[]
A spare switch control for each initial user extension.
void _User_extensions_Handler_initialization(void)
Initializes the user extensions handler.
Definition: userext.c:24
const size_t _User_extensions_Initial_count
The count of initial user extensions.
const User_extensions_Table _User_extensions_Initial_extensions[]
The table of initial user extensions.
#define RTEMS_STACK_CHECKER_EXTENSION
Stack Checker Extension Set Definition.
Definition: stackchk.h:122
Standard C Library Support.
Evaluate Newlib Configuration Options.
Stack Checker Information.
Manages the switch callouts.
Definition: userextdata.h:39
User extension table.
Definition: userext.h:232
User Extension Handler API.