38#ifndef _RTEMS_CONFDEFS_OBJECTSPOSIX_H
39#define _RTEMS_CONFDEFS_OBJECTSPOSIX_H
41#ifndef __CONFIGURATION_TEMPLATE_h
42#error "Do not include this file directly, use <rtems/confdefs.h> instead"
49#include <rtems/config.h>
53#define _Configure_Memory_for_named_objects( _number, _size ) \
54 ( rtems_resource_maximum_per_allocation( _number ) \
55 * _Configure_From_workspace( _POSIX_PATH_MAX + 1 ) )
57#ifndef CONFIGURE_MAXIMUM_POSIX_KEYS
58 #define CONFIGURE_MAXIMUM_POSIX_KEYS 0
61#ifndef CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
62 #define CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS \
63 ( CONFIGURE_MAXIMUM_POSIX_KEYS * \
64 ( CONFIGURE_MAXIMUM_POSIX_THREADS + CONFIGURE_MAXIMUM_TASKS ) )
67#if CONFIGURE_MAXIMUM_POSIX_KEYS > 0 \
68 && CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS < CONFIGURE_MAXIMUM_POSIX_KEYS
69 #error "CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS must be greater than or equal to CONFIGURE_MAXIMUM_POSIX_KEYS"
72#if CONFIGURE_MAXIMUM_POSIX_KEYS == 0 \
73 && CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS > 0
74 #warning "If CONFIGURE_MAXIMUM_POSIX_KEYS is zero, then CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS should be zero as well"
77#if CONFIGURE_MAXIMUM_POSIX_KEYS > 0 || CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS > 0
81#if CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES > 0
85#if CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS > 0
89#if CONFIGURE_MAXIMUM_POSIX_SEMAPHORES > 0
93#if CONFIGURE_MAXIMUM_POSIX_SHMS > 0
97#if CONFIGURE_MAXIMUM_POSIX_TIMERS > 0
105#if CONFIGURE_MAXIMUM_POSIX_KEYS > 0
109#if CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS > 0
111 rtems_resource_maximum_per_allocation(
112 CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
117 CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS;
120#if CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES > 0
122 CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
125 #define _CONFIGURE_MEMORY_FOR_POSIX_MESSAGE_QUEUES \
126 _Configure_Memory_for_named_objects( \
127 CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES, \
128 sizeof( POSIX_Message_queue_Control ) \
131 #define _CONFIGURE_MEMORY_FOR_POSIX_MESSAGE_QUEUES 0
134#if CONFIGURE_MAXIMUM_POSIX_SEMAPHORES > 0
137 #define _CONFIGURE_MEMORY_FOR_POSIX_SEMAPHORES \
138 _Configure_Memory_for_named_objects( \
139 CONFIGURE_MAXIMUM_POSIX_SEMAPHORES, \
140 sizeof( POSIX_Semaphore_Control ) \
143 #define _CONFIGURE_MEMORY_FOR_POSIX_SEMAPHORES 0
146#if CONFIGURE_MAXIMUM_POSIX_SHMS > 0
149 #define _CONFIGURE_MEMORY_FOR_POSIX_SHMS \
150 _Configure_Memory_for_named_objects( \
151 CONFIGURE_MAXIMUM_POSIX_SHMS, \
152 sizeof( POSIX_Shm_Control ) \
155 #define _CONFIGURE_MEMORY_FOR_POSIX_SHMS 0
158#if CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS > 0
159 #ifndef RTEMS_POSIX_API
160 #error "CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS must be zero if POSIX API is disabled"
163 const uint32_t _POSIX_signals_Maximum_queued_signals =
164 CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS;
167 CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS
170 #define _CONFIGURE_MEMORY_FOR_POSIX_QUEUED_SIGNALS \
171 _Configure_From_workspace( CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS \
172 * sizeof( POSIX_signals_Siginfo_node ) )
174 #define _CONFIGURE_MEMORY_FOR_POSIX_QUEUED_SIGNALS 0
177#if CONFIGURE_MAXIMUM_POSIX_TIMERS > 0
178 #ifndef RTEMS_POSIX_API
179 #error "CONFIGURE_MAXIMUM_POSIX_TIMERS must be zero if POSIX API is disabled"
189#define _CONFIGURE_MEMORY_FOR_POSIX_OBJECTS \
190 ( _CONFIGURE_MEMORY_FOR_POSIX_MESSAGE_QUEUES \
191 + _CONFIGURE_MEMORY_FOR_POSIX_QUEUED_SIGNALS \
192 + _CONFIGURE_MEMORY_FOR_POSIX_SEMAPHORES \
193 + _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:65
#define POSIX_SHM_INFORMATION_DEFINE(max)
Macro to define the objects information for the POSIX Shared Memory objects.
Definition: shm.h:143
#define POSIX_TIMER_INFORMATION_DEFINE(max)
Macro to define the objects information for the POSIX Timer objects.
Definition: timer.h:66
#define POSIX_KEYS_INFORMATION_DEFINE(max)
Macro to define the objects information for the POSIX Key objects.
Definition: key.h:119
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:80
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:46
Evaluate Thread Configuration Options.
Configuration Options Workspace Support Macros.