45#ifndef _RTEMS_CONFDEFS_PERCPU_H
46#define _RTEMS_CONFDEFS_PERCPU_H
48#ifndef __CONFIGURATION_TEMPLATE_h
49#error "Do not include this file directly, use <rtems/confdefs.h> instead"
64#if defined(CONFIGURE_MAXIMUM_PROCESSORS) && defined(RTEMS_SMP)
65 #define _CONFIGURE_MAXIMUM_PROCESSORS CONFIGURE_MAXIMUM_PROCESSORS
67 #define _CONFIGURE_MAXIMUM_PROCESSORS 1
72 _CONFIGURE_MAXIMUM_PROCESSORS;
80#ifndef CONFIGURE_INTERRUPT_STACK_SIZE
81 #if !defined(CONFIGURE_DISABLE_BSP_SETTINGS) && \
82 defined(BSP_INTERRUPT_STACK_SIZE)
83 #define CONFIGURE_INTERRUPT_STACK_SIZE BSP_INTERRUPT_STACK_SIZE
85 #define CONFIGURE_INTERRUPT_STACK_SIZE CPU_STACK_MINIMUM_SIZE
89#if CONFIGURE_INTERRUPT_STACK_SIZE % CPU_INTERRUPT_STACK_ALIGNMENT != 0
90 #error "CONFIGURE_INTERRUPT_STACK_SIZE fails to meet the CPU port interrupt stack alignment"
98#define _CONFIGURE_INTERRUPT_STACK_AREA_SIZE \
99 ( CONFIGURE_INTERRUPT_STACK_SIZE * _CONFIGURE_MAXIMUM_PROCESSORS )
108 + _CONFIGURE_INTERRUPT_STACK_AREA_SIZE
113#ifndef CONFIGURE_MINIMUM_TASK_STACK_SIZE
114 #define CONFIGURE_MINIMUM_TASK_STACK_SIZE CPU_STACK_MINIMUM_SIZE
117#ifndef CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE
118 #define CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE \
119 ( 2 * CONFIGURE_MINIMUM_TASK_STACK_SIZE )
124#ifndef CONFIGURE_IDLE_TASK_STACK_SIZE
125 #if !defined(CONFIGURE_DISABLE_BSP_SETTINGS) && \
126 defined(BSP_IDLE_TASK_STACK_SIZE)
127 #define CONFIGURE_IDLE_TASK_STACK_SIZE BSP_IDLE_TASK_STACK_SIZE
129 #define CONFIGURE_IDLE_TASK_STACK_SIZE CONFIGURE_MINIMUM_TASK_STACK_SIZE
133#if CONFIGURE_IDLE_TASK_STACK_SIZE < CONFIGURE_MINIMUM_TASK_STACK_SIZE
134 #error "CONFIGURE_IDLE_TASK_STACK_SIZE less than CONFIGURE_MINIMUM_TASK_STACK_SIZE"
139#if defined(CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION) && \
140 !defined(CONFIGURE_IDLE_TASK_BODY)
141 #error "If you define CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION, then you must define CONFIGURE_IDLE_TASK_BODY as well"
144#if !defined(CONFIGURE_IDLE_TASK_BODY) && \
145 !defined(CONFIGURE_DISABLE_BSP_SETTINGS) && defined(BSP_IDLE_TASK_BODY)
146 #define CONFIGURE_IDLE_TASK_BODY BSP_IDLE_TASK_BODY
149#ifdef CONFIGURE_IDLE_TASK_BODY
This header file provides the interfaces of the Context Handler.
This header file evaluates configuration options related to the BSP configuration.
This header file provides interfaces of the SMP Support which are used by the implementation and the ...
#define RTEMS_SYMBOL_NAME(_name)
Maps the name to the associated symbol name.
Definition: basedefs.h:861
#define RTEMS_SECTION(_section)
Instructs the compiler to place the variable or function in the section.
Definition: basedefs.h:411
#define RTEMS_ALIGNED(_alignment)
Instructs the compiler in a declaration or definition to enforce the alignment.
Definition: basedefs.h:157
#define RTEMS_DEFINE_GLOBAL_SYMBOL(_name, _value)
Defines a global symbol with the name and value.
Definition: basedefs.h:1015
#define CONFIGURE_INTERRUPT_STACK_SIZE
This configuration option is an integer define.
Definition: appl-config.h:2871
#define CONFIGURE_IDLE_TASK_STACK_SIZE
This configuration option is an integer define.
Definition: appl-config.h:3602
#define CONFIGURE_IDLE_TASK_BODY
This configuration option is an initializer define.
Definition: appl-config.h:3518
const char _ISR_Stack_area_end[]
The interrupt stack area end.
char _ISR_Stack_area_begin[]
The interrupt stack area begin.
CPU_STRUCTURE_ALIGNMENT Per_CPU_Control_envelope _Per_CPU_Information[]
Set of Per CPU Core Information.
Definition: asm.h:171
#define _SMP_Processor_configured_maximum
The configured processor maximum.
Definition: smp.h:68
void *(* Thread_Idle_body)(uintptr_t)
The idle thread body type.
Definition: threadidledata.h:64
const Thread_Idle_body _Thread_Idle_body
The idle thread body.
Definition: threadidledefault.c:44
const size_t _Thread_Idle_stack_size
The idle thread stack size in bytes.
This header file provides the interfaces of the Per-CPU Information.