RTEMS Logo

RTEMS 4.6.1 On-Line Library


Configuring a System POSIX API Configuration Table

PREV UP NEXT Bookshelf RTEMS Ada User's Guide

22.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 Ada record:

   type POSIX_Thread_Entry is access procedure (
      Argument : in     RTEMS.Address
   );

   type POSIX_Initialization_Threads_Table_Entry is
   record
      Thread_Entry : RTEMS.POSIX_Thread_Entry;
   end record;

   type POSIX_Initialization_Threads_Table is array
       ( RTEMS.Unsigned32 range <> ) of
       RTEMS.POSIX_Initialization_Threads_Table_Entry;

   type POSIX_Initialization_Threads_Table_Pointer is access all
       POSIX_Initialization_Threads_Table;

   type POSIX_API_Configuration_Table_Entry is
      record
         Maximum_Threads                 : Interfaces.C.Int;
         Maximum_Mutexes                 : Interfaces.C.Int;
         Maximum_Condition_Variables     : Interfaces.C.Int;
         Maximum_Keys                    : Interfaces.C.Int;
         Maximum_Timers                  : Interfaces.C.Int;
         Maximum_Queued_Signals          : Interfaces.C.Int;
         Number_Of_Initialization_Tasks  : Interfaces.C.Int;
         User_Initialization_Tasks_Table :
            RTEMS.POSIX_Initialization_Threads_Table_Pointer;
      end record;

   type POSIX_API_Configuration_Table is array
      ( RTEMS.Unsigned32 range <> ) of
          RTEMS.POSIX_API_Configuration_Table_Entry;

   type POSIX_API_Configuration_Table_Pointer is access all
          RTEMS.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 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 10.
maximum_mutexes
is the maximum number of mutexes that can be concurrently active in the system. When using the 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 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 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 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 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.
number_of_initialization_threads
is the number of initialization threads configured. At least one initialization threads must be configured. When using the 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 record. When using the 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 Ada User's Guide

Copyright © 1988-2004 OAR Corporation