39#ifndef _RTEMS_CONFDEFS_OBJECTSPOSIX_H
40#define _RTEMS_CONFDEFS_OBJECTSPOSIX_H
42#ifndef __CONFIGURATION_TEMPLATE_h
43#error "Do not include this file directly, use <rtems/confdefs.h> instead"
50#include <rtems/config.h>
54#define _Configure_Memory_for_named_objects( _number, _size ) \
55 ( rtems_resource_maximum_per_allocation( _number ) \
56 * _Configure_From_workspace( _POSIX_PATH_MAX + 1 ) )
58#ifndef CONFIGURE_MAXIMUM_POSIX_KEYS
59 #define CONFIGURE_MAXIMUM_POSIX_KEYS 0
62#ifndef CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
63 #define CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS \
64 ( CONFIGURE_MAXIMUM_POSIX_KEYS * \
65 ( CONFIGURE_MAXIMUM_POSIX_THREADS + CONFIGURE_MAXIMUM_TASKS ) )
68#if CONFIGURE_MAXIMUM_POSIX_KEYS > 0 \
69 && CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS < CONFIGURE_MAXIMUM_POSIX_KEYS
70 #error "CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS must be greater than or equal to CONFIGURE_MAXIMUM_POSIX_KEYS"
73#if CONFIGURE_MAXIMUM_POSIX_KEYS == 0 \
74 && CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS > 0
75 #warning "If CONFIGURE_MAXIMUM_POSIX_KEYS is zero, then CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS should be zero as well"
78#if CONFIGURE_MAXIMUM_POSIX_KEYS > 0 || CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS > 0
82#if CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES > 0
86#if CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS > 0
90#if CONFIGURE_MAXIMUM_POSIX_SEMAPHORES > 0
94#if CONFIGURE_MAXIMUM_POSIX_SHMS > 0
98#if CONFIGURE_MAXIMUM_POSIX_TIMERS > 0
106#if CONFIGURE_MAXIMUM_POSIX_KEYS > 0
110#if CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS > 0
121#if CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES > 0
126 #define _CONFIGURE_MEMORY_FOR_POSIX_MESSAGE_QUEUES \
127 _Configure_Memory_for_named_objects( \
128 CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES, \
129 sizeof( POSIX_Message_queue_Control ) \
132 #define _CONFIGURE_MEMORY_FOR_POSIX_MESSAGE_QUEUES 0
135#if CONFIGURE_MAXIMUM_POSIX_SEMAPHORES > 0
138 #define _CONFIGURE_MEMORY_FOR_POSIX_SEMAPHORES \
139 _Configure_Memory_for_named_objects( \
140 CONFIGURE_MAXIMUM_POSIX_SEMAPHORES, \
141 sizeof( POSIX_Semaphore_Control ) \
144 #define _CONFIGURE_MEMORY_FOR_POSIX_SEMAPHORES 0
147#if CONFIGURE_MAXIMUM_POSIX_SHMS > 0
150 #define _CONFIGURE_MEMORY_FOR_POSIX_SHMS \
151 _Configure_Memory_for_named_objects( \
152 CONFIGURE_MAXIMUM_POSIX_SHMS, \
153 sizeof( POSIX_Shm_Control ) \
156 #define _CONFIGURE_MEMORY_FOR_POSIX_SHMS 0
159#if CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS > 0
160 #ifndef RTEMS_POSIX_API
161 #error "CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS must be zero if POSIX API is disabled"
164 const uint32_t _POSIX_signals_Maximum_queued_signals =
171 #define _CONFIGURE_MEMORY_FOR_POSIX_QUEUED_SIGNALS \
172 _Configure_From_workspace( CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS \
173 * sizeof( POSIX_signals_Siginfo_node ) )
175 #define _CONFIGURE_MEMORY_FOR_POSIX_QUEUED_SIGNALS 0
178#if CONFIGURE_MAXIMUM_POSIX_TIMERS > 0
179 #ifndef RTEMS_POSIX_API
180 #error "CONFIGURE_MAXIMUM_POSIX_TIMERS must be zero if POSIX API is disabled"
190#define _CONFIGURE_MEMORY_FOR_POSIX_OBJECTS \
191 ( _CONFIGURE_MEMORY_FOR_POSIX_MESSAGE_QUEUES \
192 + _CONFIGURE_MEMORY_FOR_POSIX_QUEUED_SIGNALS \
193 + _CONFIGURE_MEMORY_FOR_POSIX_SEMAPHORES \
194 + _CONFIGURE_MEMORY_FOR_POSIX_SHMS )
POSIX Timers Internal Support.
#define POSIX_SEMAPHORE_INFORMATION_DEFINE(max)
Macro to define the objects information for the POSIX Semaphore objects.
Definition: semaphore.h:84
#define POSIX_SHM_INFORMATION_DEFINE(max)
Macro to define the objects information for the POSIX Shared Memory objects.
Definition: shm.h:162
#define POSIX_TIMER_INFORMATION_DEFINE(max)
Macro to define the objects information for the POSIX Timer objects.
Definition: timer.h:86
#define POSIX_KEYS_INFORMATION_DEFINE(max)
Macro to define the objects information for the POSIX Key objects.
Definition: key.h:138
POSIX_Keys_Key_value_pair _POSIX_Keys_Key_value_pairs[]
The initial set of POSIX key and value pairs.
Definition: keyzerokvp.c:34
const uint32_t _POSIX_Keys_Key_value_pair_maximum
The POSIX key and value pairs maximum.
Definition: keyzerokvp.c:36
#define POSIX_MESSAGE_QUEUE_INFORMATION_DEFINE(max)
Macro to define the objects information for the POSIX Message Queue objects.
Definition: mqueue.h:99
#define rtems_resource_maximum_per_allocation(_resource)
Gets the maximum number per allocation of a resource number.
Definition: config.h:890
#define CONFIGURE_MAXIMUM_POSIX_SEMAPHORES
This configuration option is an integer define.
Definition: appl-config.h:4142
#define CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
This configuration option is an integer define.
Definition: appl-config.h:4046
#define CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
This configuration option is an integer define.
Definition: appl-config.h:4000
#define CONFIGURE_MAXIMUM_POSIX_KEYS
This configuration option is an integer define.
Definition: appl-config.h:3953
#define CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS
This configuration option is an integer define.
Definition: appl-config.h:4091
#define CONFIGURE_MAXIMUM_POSIX_TIMERS
This configuration option is an integer define.
Definition: appl-config.h:4290
#define CONFIGURE_MAXIMUM_POSIX_SHMS
This configuration option is an integer define.
Definition: appl-config.h:4187
POSIX Key Private Support.
Internal Information about POSIX Signals.
POSIX Message Queues Private Private Support.
Private Support Information for POSIX Semaphores.
Internal Support for POSIX Shared Memory.
Represents POSIX key and value pair.
Definition: key.h:65
This header file evaluates configuration options related to the thread configuration.
This header file provides support macros to evaluate configuration options related to the RTEMS Works...