RTEMS Logo

RTEMS 4.10.2 On-Line Library


Configuring a System POSIX API Configuration Table

PREV UP NEXT Bookshelf RTEMS C User's Guide

23.5: POSIX API Configuration Table

The POSIX API Configuration Table is used to configure the managers which constitute the POSIX API for a particular application. For example, the user can configure the maximum number of threads for this application. The POSIX API Configuration Table is defined in the following C structure:

typedef struct {
  void       *(*thread_entry)(void *);
} posix_initialization_threads_table;

typedef struct {
  int                                 maximum_threads;
  int                                 maximum_mutexes;
  int                                 maximum_condition_variables;
  int                                 maximum_keys;
  int                                 maximum_timers;
  int                                 maximum_queued_signals;
  int                                 maximum_message_queues;
  int                                 maximum_message_queue_descriptors;
  int                                 maximum_semaphores;
  int                                 maximum_barriers;
  int                                 maximum_rwlocks;
  int                                 maximum_spinlocks;
  int                                 number_of_initialization_threads;
  posix_initialization_threads_table *User_initialization_tasks_table;
} posix_api_configuration_table;
maximum_threads
is the maximum number of threads that can be concurrently active (created) in the system including initialization threads. When using the rtems/confdefs.h mechanism for configuring an RTEMS application, the value for this field corresponds to the setting of the macro CONFIGURE_MAXIMUM_POSIX_THREADS. If not defined by the application, then the CONFIGURE_MAXIMUM_POSIX_THREADS macro defaults to 0.
maximum_mutexes
is the maximum number of mutexes that can be concurrently active in the system. When using the rtems/confdefs.h mechanism for configuring an RTEMS application, the value for this field corresponds to the setting of the macro CONFIGURE_MAXIMUM_POSIX_MUTEXES. If not defined by the application, then the CONFIGURE_MAXIMUM_POSIX_MUTEXES macro defaults to 0.
maximum_condition_variables
is the maximum number of condition variables that can be concurrently active in the system. When using the rtems/confdefs.h mechanism for configuring an RTEMS application, the value for this field corresponds to the setting of the macro CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES. If not defined by the application, then the CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES macro defaults to 0.
maximum_keys
is the maximum number of keys that can be concurrently active in the system. When using the rtems/confdefs.h mechanism for configuring an RTEMS application, the value for this field corresponds to the setting of the macro CONFIGURE_MAXIMUM_POSIX_KEYS. If not defined by the application, then the CONFIGURE_MAXIMUM_POSIX_KEYS macro defaults to 0.
maximum_timers
is the maximum number of POSIX timers that can be concurrently active in the system. When using the rtems/confdefs.h mechanism for configuring an RTEMS application, the value for this field corresponds to the setting of the macro CONFIGURE_MAXIMUM_POSIX_TIMERS. If not defined by the application, then the CONFIGURE_MAXIMUM_POSIX_TIMERS macro defaults to 0.
maximum_queued_signals
is the maximum number of queued signals that can be concurrently pending in the system. When using the rtems/confdefs.h mechanism for configuring an RTEMS application, the value for this field corresponds to the setting of the macro CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS. If not defined by the application, then the CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS macro defaults to 0.
maximum_message_queues
is the maximum number of POSIX message queues that can be concurrently active in the system. When using the rtems/confdefs.h mechanism for configuring an RTEMS application, the value for this field corresponds to the setting of the macro CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES. If not defined by the application, then the CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES macro defaults to 0.
maximum_message_queue_descriptors
is the maximum number of POSIX message queue descriptors that can be concurrently active in the system. When using the rtems/confdefs.h mechanism for configuring an RTEMS application, the value for this field corresponds to the setting of the macro CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUE_DESCRIPTORS. If not defined by the application, then the CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUE_DESCRIPTORS macro defaults to the value of CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
maximum_semaphores
is the maximum number of POSIX semaphore that can be concurrently active in the system. When using the rtems/confdefs.h mechanism for configuring an RTEMS application, the value for this field corresponds to the setting of the macro CONFIGURE_MAXIMUM_POSIX_SEMAPHORES. If not defined by the application, then the CONFIGURE_MAXIMUM_POSIX_SEMAPHORES macro defaults to 0.
maximum_barriers
is the maximum number of POSIX barriers that can be concurrently active in the system. When using the rtems/confdefs.h mechanism for configuring an RTEMS application, the value for this field corresponds to the setting of the macro CONFIGURE_MAXIMUM_POSIX_BARRIERS. If not defined by the application, then the CONFIGURE_MAXIMUM_POSIX_BARRIERS macro defaults to 0.
maximum_rwlocks
is the maximum number of POSIX rwlocks that can be concurrently active in the system. When using the rtems/confdefs.h mechanism for configuring an RTEMS application, the value for this field corresponds to the setting of the macro CONFIGURE_MAXIMUM_POSIX_SPINLOCKS. If not defined by the application, then the CONFIGURE_MAXIMUM_POSIX_SPINLOCKS macro defaults to 0.
maximum_spinlocks
is the maximum number of POSIX spinlocks that can be concurrently active in the system. When using the rtems/confdefs.h mechanism for configuring an RTEMS application, the value for this field corresponds to the setting of the macro CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES. If not defined by the application, then the CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES macro defaults to 0.
number_of_initialization_threads
is the number of initialization threads configured. At least one initialization threads must be configured. When using the rtems/confdefs.h mechanism for configuring an RTEMS application, the user must define the CONFIGURE_POSIX_INIT_THREAD_TABLE to indicate that there is one or more POSIX initialization thread. If the application only has one POSIX initialization thread, then the automatically generated POSIX Initialization Thread Table will be sufficient. The following macros correspond to the single initialization task:
User_initialization_threads_table
is the address of the Initialization Threads Table. This table contains the information needed to create and start each of the initialization threads. The format of each entry in this table is defined in the posix_initialization_threads_table structure. When using the rtems/confdefs.h mechanism for configuring an RTEMS application, the value for this field corresponds to the address of the POSIX_Initialization_threads structure.


PREV UP NEXT Bookshelf RTEMS C User's Guide

Copyright © 1988-2008 OAR Corporation