From 6c5640131fca82624f72b2bd33b5b5f46156626e Mon Sep 17 00:00:00 2001 From: Chris Johns Date: Sun, 12 Nov 2017 14:34:48 +1100 Subject: c-user: Fix index locations. Update #3229. --- c-user/ada_support.rst | 9 +- c-user/barrier_manager.rst | 29 ++- c-user/board_support_packages.rst | 2 +- c-user/chains.rst | 118 +++++---- c-user/clock_manager.rst | 72 +++--- c-user/configuring_a_system.rst | 338 +++++++++++++------------- c-user/constant_bandwidth_server.rst | 59 +++-- c-user/cpu_usage_statistics.rst | 4 + c-user/directive_status_codes.rst | 6 +- c-user/dual_ports_memory_manager.rst | 33 +-- c-user/event_manager.rst | 22 +- c-user/fatal_error.rst | 39 ++- c-user/initialization.rst | 9 +- c-user/interrupt_manager.rst | 51 ++-- c-user/io_manager.rst | 65 ++--- c-user/key_concepts.rst | 45 ++-- c-user/linker_sets.rst | 43 ++-- c-user/message_manager.rst | 45 ++-- c-user/multiprocessing.rst | 30 ++- c-user/object_services.rst | 80 +++--- c-user/overview.rst | 8 + c-user/partition_manager.rst | 34 +-- c-user/pci_library.rst | 8 +- c-user/rate_monotonic_manager.rst | 72 +++--- c-user/red_black_trees.rst | 8 +- c-user/region_manager.rst | 47 ++-- c-user/rtems_data_types.rst | 3 + c-user/scheduling_concepts.rst | 43 ++-- c-user/semaphore_manager.rst | 43 ++-- c-user/signal_manager.rst | 34 +-- c-user/stack_bounds_checker.rst | 5 +- c-user/symmetric_multiprocessing_services.rst | 13 +- c-user/task_manager.rst | 147 +++++------ c-user/timer_manager.rst | 48 ++-- c-user/timespec_helpers.rst | 32 +-- c-user/user_extensions.rst | 61 ++--- 36 files changed, 920 insertions(+), 785 deletions(-) (limited to 'c-user') diff --git a/c-user/ada_support.rst b/c-user/ada_support.rst index b3a61f9..ba7b5b5 100644 --- a/c-user/ada_support.rst +++ b/c-user/ada_support.rst @@ -6,11 +6,11 @@ .. _ada_support +.. index:: Ada + Ada Support ************ -.. index:: Ada - Introduction ============ RTEMS has long had support for the Ada programming language @@ -24,7 +24,7 @@ components to this support: Ada Programming Language Support ================================ -The Ada programming natively supports multi-threaded programming +The Ada programming natively supports multi-threaded programming with its own tasking and concurrency model. Native Ada multi-threaded applications should work using GNAT/RTEMS with no changes. @@ -90,10 +90,9 @@ to violating assumptions in the GNAT run-time. Specifically a priority ceiling mutex should never be used from an ISR and it is difficult to predict when the Ada compiler or run-time will use a mutex. -RTEMS has two capabilities which can assist in avoiding this problem. The +RTEMS has two capabilities which can assist in avoiding this problem. The Classic API Timer Manager allows the creation of Timer Service Routines which execute in the context of a task rather than the clock tick Interrupt Service Routine. Similarly, there is support for Interrupt Tasks which is a mechanism to defer the processing of the event from the hardware interrupt level to a thread. - diff --git a/c-user/barrier_manager.rst b/c-user/barrier_manager.rst index be40985..8e49ef4 100644 --- a/c-user/barrier_manager.rst +++ b/c-user/barrier_manager.rst @@ -4,11 +4,11 @@ .. COMMENT: On-Line Applications Research Corporation (OAR). .. COMMENT: All rights reserved. +.. index:: barrier + Barrier Manager *************** -.. index:: barrier - Introduction ============ @@ -162,11 +162,12 @@ sequence, related constants, usage, and status codes. .. _rtems_barrier_create: -BARRIER_CREATE - Create a barrier ---------------------------------- .. index:: create a barrier .. index:: rtems_barrier_create +BARRIER_CREATE - Create a barrier +--------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -237,12 +238,13 @@ NOTES: .. _rtems_barrier_ident: -BARRIER_IDENT - Get ID of a barrier ------------------------------------ .. index:: get ID of a barrier .. index:: obtain ID of a barrier .. index:: rtems_barrier_ident +BARRIER_IDENT - Get ID of a barrier +----------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -278,11 +280,12 @@ NOTES: .. _rtems_barrier_delete: -BARRIER_DELETE - Delete a barrier ---------------------------------- .. index:: delete a barrier .. index:: rtems_barrier_delete +BARRIER_DELETE - Delete a barrier +--------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -320,12 +323,13 @@ NOTES: .. _rtems_barrier_wait: -BARRIER_OBTAIN - Acquire a barrier ----------------------------------- .. index:: obtain a barrier .. index:: lock a barrier .. index:: rtems_barrier_wait +BARRIER_OBTAIN - Acquire a barrier +---------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -394,12 +398,13 @@ NOTES: .. _rtems_barrier_release: -BARRIER_RELEASE - Release a barrier ------------------------------------ .. index:: wait at a barrier .. index:: release a barrier .. index:: rtems_barrier_release +BARRIER_RELEASE - Release a barrier +----------------------------------- + CALLING SEQUENCE: .. code-block:: c diff --git a/c-user/board_support_packages.rst b/c-user/board_support_packages.rst index 9e58632..5d3153f 100644 --- a/c-user/board_support_packages.rst +++ b/c-user/board_support_packages.rst @@ -9,10 +9,10 @@ Board Support Packages .. index:: Board Support Packages .. index:: BSPs +.. index:: BSP, definition Introduction ============ -.. index:: BSP, definition A board support package (BSP) is a collection of user-provided facilities which interface RTEMS and an application with a specific hardware platform. These diff --git a/c-user/chains.rst b/c-user/chains.rst index 382bc46..73e7980 100644 --- a/c-user/chains.rst +++ b/c-user/chains.rst @@ -172,9 +172,10 @@ Add nodes with the following code: The chain is initialized and the nodes allocated and appended to the chain. This is an example of a pool of buffers. +.. index:: chain iterate + Iterating a Chain ----------------- -.. index:: chain iterate Iterating a chain is a common function. The example shows how to iterate the buffer pool chain created in the last section to find buffers starting with a @@ -219,11 +220,12 @@ The section details the Chains directives. .. _rtems_chain_initialize: -Initialize Chain With Nodes ---------------------------- .. index:: chain initialize .. index:: rtems_chain_initialize +Initialize Chain With Nodes +--------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -256,11 +258,12 @@ NOTES: .. _rtems_chain_initialize_empty: -Initialize Empty ----------------- .. index:: chain initialize empty .. index:: rtems_chain_initialize_empty +Initialize Empty +---------------- + CALLING SEQUENCE: .. code-block:: c @@ -284,11 +287,12 @@ NOTES: .. _rtems_chain_is_null_node: -Is Null Node ? --------------- .. index:: chain is node null .. index:: rtems_chain_is_null_node +Is Null Node ? +-------------- + CALLING SEQUENCE: .. code-block:: c @@ -309,11 +313,12 @@ DESCRIPTION: .. _rtems_chain_head: -Head ----- .. index:: chain get head .. index:: rtems_chain_head +Head +---- + CALLING SEQUENCE: .. code-block:: c @@ -333,11 +338,12 @@ DESCRIPTION: .. _rtems_chain_tail: -Tail ----- .. index:: chain get tail .. index:: rtems_chain_tail +Tail +---- + CALLING SEQUENCE: .. code-block:: c @@ -357,11 +363,12 @@ DESCRIPTION: .. _rtems_chain_are_nodes_equal: -Are Two Nodes Equal ? ---------------------- .. index:: chare are nodes equal .. index:: rtems_chain_are_nodes_equal +Are Two Nodes Equal ? +--------------------- + CALLING SEQUENCE: .. code-block:: c @@ -384,11 +391,12 @@ DESCRIPTION: .. _rtems_chain_is_empty: -Is the Chain Empty ------------------- .. index:: chain is chain empty .. index:: rtems_chain_is_empty +Is the Chain Empty +------------------ + CALLING SEQUENCE: .. code-block:: c @@ -410,11 +418,12 @@ DESCRIPTION: .. _rtems_chain_is_first: -Is this the First Node on the Chain ? -------------------------------------- .. index:: chain is node the first .. index:: rtems_chain_is_first +Is this the First Node on the Chain ? +------------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -436,11 +445,12 @@ DESCRIPTION: .. _rtems_chain_is_last: -Is this the Last Node on the Chain ? ------------------------------------- .. index:: chain is node the last .. index:: rtems_chain_is_last +Is this the Last Node on the Chain ? +------------------------------------ + CALLING SEQUENCE: .. code-block:: c @@ -462,11 +472,12 @@ DESCRIPTION: .. _rtems_chain_has_only_one_node: -Does this Chain have only One Node ? ------------------------------------- .. index:: chain only one node .. index:: rtems_chain_has_only_one_node +Does this Chain have only One Node ? +------------------------------------ + CALLING SEQUENCE: .. code-block:: c @@ -488,11 +499,12 @@ DESCRIPTION: .. _rtems_chain_node_count_unprotected: -Returns the node count of the chain (unprotected) -------------------------------------------------- .. index:: chain only one node .. index:: rtems_chain_node_count_unprotected +Returns the node count of the chain (unprotected) +------------------------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -512,11 +524,12 @@ DESCRIPTION: .. _rtems_chain_is_head: -Is this Node the Chain Head ? ------------------------------ .. index:: chain is node the head .. index:: rtems_chain_is_head +Is this Node the Chain Head ? +----------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -539,11 +552,12 @@ DESCRIPTION: .. _rtems_chain_is_tail: -Is this Node the Chain Tail ? ------------------------------ .. index:: chain is node the tail .. index:: rtems_chain_is_tail +Is this Node the Chain Tail ? +----------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -566,11 +580,12 @@ DESCRIPTION: .. _rtems_chain_extract: -Extract a Node --------------- .. index:: chain extract a node .. index:: rtems_chain_extract +Extract a Node +-------------- + CALLING SEQUENCE: .. code-block:: c @@ -596,11 +611,12 @@ NOTES: .. _rtems_chain_extract_unprotected: -Extract a Node (unprotected) ----------------------------- .. index:: chain extract a node unprotected .. index:: rtems_chain_extract_unprotected +Extract a Node (unprotected) +---------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -623,11 +639,12 @@ NOTES: .. _rtems_chain_get: -Get the First Node ------------------- .. index:: chain get first node .. index:: rtems_chain_get +Get the First Node +------------------ + CALLING SEQUENCE: .. code-block:: c @@ -655,11 +672,12 @@ NOTES: .. _rtems_chain_get_unprotected: -Get the First Node (unprotected) --------------------------------- .. index:: chain get first node .. index:: rtems_chain_get_unprotected +Get the First Node (unprotected) +-------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -683,11 +701,12 @@ NOTES: .. _rtems_chain_insert: -Insert a Node -------------- .. index:: chain insert a node .. index:: rtems_chain_insert +Insert a Node +------------- + CALLING SEQUENCE: .. code-block:: c @@ -715,11 +734,12 @@ NOTES: .. _rtems_chain_insert_unprotected: -Insert a Node (unprotected) ---------------------------- .. index:: chain insert a node unprotected .. index:: rtems_chain_insert_unprotected +Insert a Node (unprotected) +--------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -744,11 +764,12 @@ NOTES: .. _rtems_chain_append: -Append a Node -------------- .. index:: chain append a node .. index:: rtems_chain_append +Append a Node +------------- + CALLING SEQUENCE: .. code-block:: c @@ -775,11 +796,12 @@ NOTES: .. _rtems_chain_append_unprotected: -Append a Node (unprotected) ---------------------------- .. index:: chain append a node unprotected .. index:: rtems_chain_append_unprotected +Append a Node (unprotected) +--------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -803,11 +825,12 @@ NOTES: .. _rtems_chain_prepend: -Prepend a Node --------------- .. index:: prepend node .. index:: rtems_chain_prepend +Prepend a Node +-------------- + CALLING SEQUENCE: .. code-block:: c @@ -834,11 +857,12 @@ NOTES: .. _rtems_chain_prepend_unprotected: -Prepend a Node (unprotected) ----------------------------- .. index:: prepend node unprotected .. index:: rtems_chain_prepend_unprotected +Prepend a Node (unprotected) +---------------------------- + CALLING SEQUENCE: .. code-block:: c diff --git a/c-user/clock_manager.rst b/c-user/clock_manager.rst index 03ab4e0..4a7ee84 100644 --- a/c-user/clock_manager.rst +++ b/c-user/clock_manager.rst @@ -92,9 +92,10 @@ field in this data structure is the number of seconds since the POSIX epoch of *January 1, 1970* but will never be prior to the RTEMS epoch of *January 1, 1988*. +.. index:: timeslicing + Clock Tick and Timeslicing -------------------------- -.. index:: timeslicing Timeslicing is a task scheduling discipline in which tasks of equal priority are executed for a specific period of time before control of the CPU is passed @@ -111,9 +112,10 @@ running task's time-remaining counter when both timeslicing and preemption are enabled. If the task's timeslice has expired, then that task will be preempted if there exists a ready task of equal priority. +.. index:: delays + Delays ------ -.. index:: delays A sleep timer allows a task to delay for a given interval or up until a given time, and then wake and continue execution. This type of timer is created @@ -122,9 +124,10 @@ directives and, as a result, does not have an RTEMS ID. Once activated, a sleep timer cannot be explicitly deleted. Each task may activate one and only one sleep timer at a time. +.. index:: timeouts + Timeouts -------- -.. index:: timeouts Timeouts are a special type of timer automatically created when the timeout option is used on the ``rtems_message_queue_receive``, ``rtems_event_receive``, @@ -183,11 +186,11 @@ RTEMS provides multiple directives which can be used by an application to obtain Calendar time operations will return an error code if invoked before the date and time have been set. +.. index:: rtems_clock_get + Transition Advice for the Obsolete rtems_clock_get -------------------------------------------------- -.. index:: rtems_clock_get - The method ``rtems_clock_get`` took an untyped pointer with an options argument to indicate the time information desired. This has been replaced with a set of typed directives whose name is of the form @@ -211,11 +214,12 @@ related constants, usage, and status codes. .. _rtems_clock_set: -CLOCK_SET - Set date and time ------------------------------ .. index:: set the time of day .. index:: rtems_clock_set +CLOCK_SET - Set date and time +----------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -260,11 +264,12 @@ NOTES: .. _rtems_clock_get_tod: -CLOCK_GET_TOD - Get date and time in TOD format ------------------------------------------------ .. index:: obtain the time of day .. index:: rtems_clock_get_tod +CLOCK_GET_TOD - Get date and time in TOD format +----------------------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -303,11 +308,12 @@ NOTES: .. _rtems_clock_get_tod_timeval: -CLOCK_GET_TOD_TIMEVAL - Get date and time in timeval format ------------------------------------------------------------ .. index:: obtain the time of day .. index:: rtems_clock_get_tod_timeval +CLOCK_GET_TOD_TIMEVAL - Get date and time in timeval format +----------------------------------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -346,11 +352,12 @@ NOTES: .. _rtems_clock_get_seconds_since_epoch: -CLOCK_GET_SECONDS_SINCE_EPOCH - Get seconds since epoch -------------------------------------------------------- .. index:: obtain seconds since epoch .. index:: rtems_clock_get_seconds_since_epoch +CLOCK_GET_SECONDS_SINCE_EPOCH - Get seconds since epoch +------------------------------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -389,11 +396,12 @@ NOTES: .. _rtems_clock_get_ticks_per_second: -CLOCK_GET_TICKS_PER_SECOND - Get ticks per second -------------------------------------------------- .. index:: obtain seconds since epoch .. index:: rtems_clock_get_ticks_per_second +CLOCK_GET_TICKS_PER_SECOND - Get ticks per second +------------------------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -418,12 +426,13 @@ NOTES: .. _rtems_clock_get_ticks_since_boot: -CLOCK_GET_TICKS_SINCE_BOOT - Get current ticks counter value ------------------------------------------------------------- .. index:: obtain ticks since boot .. index:: get current ticks counter value .. index:: rtems_clock_get_ticks_since_boot +CLOCK_GET_TICKS_SINCE_BOOT - Get current ticks counter value +------------------------------------------------------------ + CALLING SEQUENCE: .. code-block:: c @@ -452,9 +461,10 @@ NOTES: .. _rtems_clock_tick_later: +.. index:: rtems_clock_tick_later + CLOCK_TICK_LATER - Get tick value in the future ----------------------------------------------- -.. index:: rtems_clock_tick_later CALLING SEQUENCE: .. code-block:: c @@ -477,9 +487,10 @@ NOTES: .. _rtems_clock_tick_later_usec: +.. index:: rtems_clock_tick_later_usec + CLOCK_TICK_LATER_USEC - Get tick value in the future in microseconds -------------------------------------------------------------------- -.. index:: rtems_clock_tick_later_usec CALLING SEQUENCE: .. code-block:: c @@ -502,9 +513,10 @@ NOTES: .. _rtems_clock_tick_before: +.. index:: rtems_clock_tick_before + CLOCK_TICK_BEFORE - Is tick value is before a point in time ----------------------------------------------------------- -.. index:: rtems_clock_tick_before CALLING SEQUENCE: .. code-block:: c @@ -542,12 +554,13 @@ EXAMPLE: .. _rtems_clock_get_uptime: -CLOCK_GET_UPTIME - Get the time since boot ------------------------------------------- .. index:: clock get uptime .. index:: uptime .. index:: rtems_clock_get_uptime +CLOCK_GET_UPTIME - Get the time since boot +------------------------------------------ + CALLING SEQUENCE: .. code-block:: c @@ -577,12 +590,13 @@ NOTES: .. _rtems_clock_get_uptime_timeval: -CLOCK_GET_UPTIME_TIMEVAL - Get the time since boot in timeval format --------------------------------------------------------------------- .. index:: clock get uptime interval .. index:: uptime .. index:: rtems_clock_get_uptime_timeval +CLOCK_GET_UPTIME_TIMEVAL - Get the time since boot in timeval format +-------------------------------------------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -607,12 +621,13 @@ NOTES: .. _rtems_clock_get_uptime_seconds: -CLOCK_GET_UPTIME_SECONDS - Get the seconds since boot ------------------------------------------------------ .. index:: clock get uptime seconds .. index:: uptime .. index:: rtems_clock_get_uptime_seconds +CLOCK_GET_UPTIME_SECONDS - Get the seconds since boot +----------------------------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -633,12 +648,13 @@ NOTES: .. _rtems_clock_get_uptime_nanoseconds: -CLOCK_GET_UPTIME_NANOSECONDS - Get the nanoseconds since boot -------------------------------------------------------------- .. index:: clock get nanoseconds uptime .. index:: uptime .. index:: rtems_clock_get_uptime_nanoseconds +CLOCK_GET_UPTIME_NANOSECONDS - Get the nanoseconds since boot +------------------------------------------------------------- + CALLING SEQUENCE: .. code-block:: c diff --git a/c-user/configuring_a_system.rst b/c-user/configuring_a_system.rst index d507088..dd1ddd8 100644 --- a/c-user/configuring_a_system.rst +++ b/c-user/configuring_a_system.rst @@ -6,11 +6,11 @@ .. _Configuring a System: +.. index:: configuring a system + Configuring a System ******************** -.. index:: configuring a system - Introduction ============ @@ -400,9 +400,10 @@ largely unpredictable time in the field. .. _Per Object Class Unlimited Object Instances: +.. index:: rtems_resource_unlimited + Per Object Class Unlimited Object Instances ------------------------------------------- -.. index:: rtems_resource_unlimited When the number of objects is not known ahead of time, RTEMS provides an auto-extending mode that can be enabled individually for each object type by @@ -442,10 +443,10 @@ responsible for enabling unlimited objects and specifying the allocation size. .. COMMENT: === CONFIGURE_UNLIMITED_OBJECTS === .. _Enable Unlimited Object Instances: +.. index:: CONFIGURE_UNLIMITED_OBJECTS Enable Unlimited Object Instances --------------------------------- -.. index:: CONFIGURE_UNLIMITED_OBJECTS CONSTANT: ``CONFIGURE_UNLIMITED_OBJECTS`` @@ -517,10 +518,10 @@ supported by ````. .. COMMENT: === CONFIGURE_MAXIMUM_TASKS === .. _Specify Maximum Classic API Tasks: +.. index:: CONFIGURE_MAXIMUM_TASKS Specify Maximum Classic API Tasks --------------------------------- -.. index:: CONFIGURE_MAXIMUM_TASKS CONSTANT: ``CONFIGURE_MAXIMUM_TASKS`` @@ -562,10 +563,10 @@ NOTES: .. COMMENT: === CONFIGURE_MAXIMUM_TIMERS === .. _Specify Maximum Classic API Timers: +.. index:: CONFIGURE_MAXIMUM_TIMERS Specify Maximum Classic API Timers ---------------------------------- -.. index:: CONFIGURE_MAXIMUM_TIMERS CONSTANT: ``CONFIGURE_MAXIMUM_TIMERS`` @@ -589,10 +590,10 @@ NOTES: .. COMMENT: === CONFIGURE_MAXIMUM_SEMAPHORES === .. _Specify Maximum Classic API Semaphores: +.. index:: CONFIGURE_MAXIMUM_SEMAPHORES Specify Maximum Classic API Semaphores -------------------------------------- -.. index:: CONFIGURE_MAXIMUM_SEMAPHORES CONSTANT: ``CONFIGURE_MAXIMUM_SEMAPHORES`` @@ -616,10 +617,10 @@ NOTES: .. COMMENT: === CONFIGURE_MAXIMUM_MRSP_SEMAPHORES === .. _Specify Maximum Classic API Semaphores usable with MrsP: +.. index:: CONFIGURE_MAXIMUM_MRSP_SEMAPHORES Specify Maximum Classic API Semaphores usable with MrsP ------------------------------------------------------- -.. index:: CONFIGURE_MAXIMUM_MRSP_SEMAPHORES CONSTANT: ``CONFIGURE_MAXIMUM_MRSP_SEMAPHORES`` @@ -645,10 +646,10 @@ NOTES: .. COMMENT: === CONFIGURE_MAXIMUM_MESSAGE_QUEUES === .. _Specify Maximum Classic API Message Queues: +.. index:: CONFIGURE_MAXIMUM_MESSAGE_QUEUES Specify Maximum Classic API Message Queues ------------------------------------------ -.. index:: CONFIGURE_MAXIMUM_MESSAGE_QUEUES CONSTANT: ``CONFIGURE_MAXIMUM_MESSAGE_QUEUES`` @@ -672,10 +673,10 @@ NOTES: .. COMMENT: === CONFIGURE_MAXIMUM_BARRIERS === .. _Specify Maximum Classic API Barriers: +.. index:: CONFIGURE_MAXIMUM_BARRIERS Specify Maximum Classic API Barriers ------------------------------------ -.. index:: CONFIGURE_MAXIMUM_BARRIERS CONSTANT: ``CONFIGURE_MAXIMUM_BARRIERS`` @@ -699,10 +700,10 @@ NOTES: .. COMMENT: === CONFIGURE_MAXIMUM_PERIODS === .. _Specify Maximum Classic API Periods: +.. index:: CONFIGURE_MAXIMUM_PERIODS Specify Maximum Classic API Periods ----------------------------------- -.. index:: CONFIGURE_MAXIMUM_PERIODS CONSTANT: ``CONFIGURE_MAXIMUM_PERIODS`` @@ -726,10 +727,10 @@ NOTES: .. COMMENT: === CONFIGURE_MAXIMUM_PARTITIONS === .. _Specify Maximum Classic API Partitions: +.. index:: CONFIGURE_MAXIMUM_PARTITIONS Specify Maximum Classic API Partitions -------------------------------------- -.. index:: CONFIGURE_MAXIMUM_PARTITIONS CONSTANT: ``CONFIGURE_MAXIMUM_PARTITIONS`` @@ -753,10 +754,10 @@ NOTES: .. COMMENT: === CONFIGURE_MAXIMUM_REGIONS === .. _Specify Maximum Classic API Regions: +.. index:: CONFIGURE_MAXIMUM_REGIONS Specify Maximum Classic API Regions ----------------------------------- -.. index:: CONFIGURE_MAXIMUM_REGIONS CONSTANT: ``CONFIGURE_MAXIMUM_REGIONS`` @@ -780,10 +781,10 @@ NOTES: .. COMMENT: === CONFIGURE_MAXIMUM_PORTS === .. _Specify Maximum Classic API Ports: +.. index:: CONFIGURE_MAXIMUM_PORTS Specify Maximum Classic API Ports --------------------------------- -.. index:: CONFIGURE_MAXIMUM_PORTS CONSTANT: ``CONFIGURE_MAXIMUM_PORTS`` @@ -807,10 +808,10 @@ NOTES: .. COMMENT: === CONFIGURE_MAXIMUM_USER_EXTENSIONS === .. _Specify Maximum Classic API User Extensions: +.. index:: CONFIGURE_MAXIMUM_USER_EXTENSIONS Specify Maximum Classic API User Extensions ------------------------------------------- -.. index:: CONFIGURE_MAXIMUM_USER_EXTENSIONS CONSTANT: ``CONFIGURE_MAXIMUM_USER_EXTENSIONS`` @@ -843,10 +844,10 @@ The following parameters control the generation of that table. .. COMMENT: === CONFIGURE_RTEMS_INIT_TASKS_TABLE === .. _Instantiate Classic API Initialization Task Table: +.. index:: CONFIGURE_RTEMS_INIT_TASKS_TABLE Instantiate Classic API Initialization Task Table ------------------------------------------------- -.. index:: CONFIGURE_RTEMS_INIT_TASKS_TABLE CONSTANT: ``CONFIGURE_RTEMS_INIT_TASKS_TABLE`` @@ -880,10 +881,10 @@ NOTES: .. COMMENT: === CONFIGURE_INIT_TASK_ENTRY_POINT === .. _Specifying Classic API Initialization Task Entry Point: +.. index:: CONFIGURE_INIT_TASK_ENTRY_POINT Specifying Classic API Initialization Task Entry Point ------------------------------------------------------ -.. index:: CONFIGURE_INIT_TASK_ENTRY_POINT CONSTANT: ``CONFIGURE_INIT_TASK_ENTRY_POINT`` @@ -909,10 +910,10 @@ NOTES: .. COMMENT: === CONFIGURE_INIT_TASK_NAME === .. _Specifying Classic API Initialization Task Name: +.. index:: CONFIGURE_INIT_TASK_NAME Specifying Classic API Initialization Task Name ----------------------------------------------- -.. index:: CONFIGURE_INIT_TASK_NAME CONSTANT: ``CONFIGURE_INIT_TASK_NAME`` @@ -936,10 +937,10 @@ NOTES: .. COMMENT: === CONFIGURE_INIT_TASK_STACK_SIZE === .. _Specifying Classic API Initialization Task Stack Size: +.. index:: CONFIGURE_INIT_TASK_STACK_SIZE Specifying Classic API Initialization Task Stack Size ----------------------------------------------------- -.. index:: CONFIGURE_INIT_TASK_STACK_SIZE CONSTANT: ``CONFIGURE_INIT_TASK_STACK_SIZE`` @@ -966,10 +967,10 @@ NOTES: .. COMMENT: === CONFIGURE_INIT_TASK_PRIORITY === .. _Specifying Classic API Initialization Task Priority: +.. index:: CONFIGURE_INIT_TASK_PRIORITY Specifying Classic API Initialization Task Priority --------------------------------------------------- -.. index:: CONFIGURE_INIT_TASK_PRIORITY CONSTANT: ``CONFIGURE_INIT_TASK_PRIORITY`` @@ -993,10 +994,10 @@ NOTES: .. COMMENT: === CONFIGURE_INIT_TASK_ATTRIBUTES === .. _Specifying Classic API Initialization Task Attributes: +.. index:: CONFIGURE_INIT_TASK_ATTRIBUTES Specifying Classic API Initialization Task Attributes ----------------------------------------------------- -.. index:: CONFIGURE_INIT_TASK_ATTRIBUTES CONSTANT: ``CONFIGURE_INIT_TASK_ATTRIBUTES`` @@ -1020,10 +1021,10 @@ NOTES: .. COMMENT: === CONFIGURE_INIT_TASK_INITIAL_MODES === .. _Specifying Classic API Initialization Task Modes: +.. index:: CONFIGURE_INIT_TASK_INITIAL_MODES Specifying Classic API Initialization Task Modes ------------------------------------------------ -.. index:: CONFIGURE_INIT_TASK_INITIAL_MODES CONSTANT: ``CONFIGURE_INIT_TASK_INITIAL_MODES`` @@ -1048,10 +1049,10 @@ NOTES: .. COMMENT: === CONFIGURE_INIT_TASK_ARGUMENTS === .. _Specifying Classic API Initialization Task Arguments: +.. index:: CONFIGURE_INIT_TASK_ARGUMENTS Specifying Classic API Initialization Task Arguments ---------------------------------------------------- -.. index:: CONFIGURE_INIT_TASK_ARGUMENTS CONSTANT: ``CONFIGURE_INIT_TASK_ARGUMENTS`` @@ -1075,10 +1076,10 @@ NOTES: .. COMMENT: === CONFIGURE_HAS_OWN_INIT_TASK_TABLE === .. _Not Using Generated Initialization Tasks Table: +.. index:: CONFIGURE_HAS_OWN_INIT_TASK_TABLE Not Using Generated Initialization Tasks Table ---------------------------------------------- -.. index:: CONFIGURE_HAS_OWN_INIT_TASK_TABLE CONSTANT: ``CONFIGURE_HAS_OWN_INIT_TASK_TABLE`` @@ -1113,10 +1114,10 @@ time using the ``--enable-posix`` option. .. COMMENT: === CONFIGURE_MAXIMUM_POSIX_THREADS === .. _Specify Maximum POSIX API Threads: +.. index:: CONFIGURE_MAXIMUM_POSIX_THREADS Specify Maximum POSIX API Threads --------------------------------- -.. index:: CONFIGURE_MAXIMUM_POSIX_THREADS CONSTANT: ``CONFIGURE_MAXIMUM_POSIX_THREADS`` @@ -1153,10 +1154,10 @@ NOTES: .. COMMENT: === CONFIGURE_MAXIMUM_POSIX_KEYS === .. _Specify Maximum POSIX API Keys: +.. index:: CONFIGURE_MAXIMUM_POSIX_KEYS Specify Maximum POSIX API Keys ------------------------------ -.. index:: CONFIGURE_MAXIMUM_POSIX_KEYS CONSTANT: ``CONFIGURE_MAXIMUM_POSIX_KEYS`` @@ -1182,10 +1183,10 @@ NOTES: .. COMMENT: === CONFIGURE_MAXIMUM_POSIX_TIMERS === .. _Specify Maximum POSIX API Timers: +.. index:: CONFIGURE_MAXIMUM_POSIX_TIMERS Specify Maximum POSIX API Timers -------------------------------- -.. index:: CONFIGURE_MAXIMUM_POSIX_TIMERS CONSTANT: ``CONFIGURE_MAXIMUM_POSIX_TIMERS`` @@ -1209,10 +1210,10 @@ NOTES: .. COMMENT: === CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS === .. _Specify Maximum POSIX API Queued Signals: +.. index:: CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS Specify Maximum POSIX API Queued Signals ---------------------------------------- -.. index:: CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS CONSTANT: ``CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS`` @@ -1236,10 +1237,10 @@ NOTES: .. COMMENT: === CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES === .. _Specify Maximum POSIX API Message Queues: +.. index:: CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES Specify Maximum POSIX API Message Queues ---------------------------------------- -.. index:: CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES CONSTANT: ``CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES`` @@ -1263,10 +1264,10 @@ NOTES: .. COMMENT: === CONFIGURE_MAXIMUM_POSIX_SEMAPHORES === .. _Specify Maximum POSIX API Semaphores: +.. index:: CONFIGURE_MAXIMUM_POSIX_SEMAPHORES Specify Maximum POSIX API Named Semaphores ------------------------------------------ -.. index:: CONFIGURE_MAXIMUM_POSIX_SEMAPHORES CONSTANT: ``CONFIGURE_MAXIMUM_POSIX_SEMAPHORES`` @@ -1302,10 +1303,10 @@ a single entry. The following parameters control the generation of that table. .. COMMENT: === CONFIGURE_POSIX_INIT_THREAD_TABLE === .. _Instantiate POSIX API Initialization Thread Table: +.. index:: CONFIGURE_POSIX_INIT_THREAD_TABLE Instantiate POSIX API Initialization Thread Table ------------------------------------------------- -.. index:: CONFIGURE_POSIX_INIT_THREAD_TABLE CONSTANT: @@ -1341,10 +1342,10 @@ NOTES: .. COMMENT: === CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT === .. _Specifying POSIX API Initialization Thread Entry Point: +.. index:: CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT Specifying POSIX API Initialization Thread Entry Point ------------------------------------------------------ -.. index:: CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT CONSTANT: ``CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT`` @@ -1370,10 +1371,10 @@ NOTES: .. COMMENT: === CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE === .. _Specifying POSIX API Initialization Thread Stack Size: +.. index:: CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE Specifying POSIX API Initialization Thread Stack Size ----------------------------------------------------- -.. index:: CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE CONSTANT: ``CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE`` @@ -1401,10 +1402,10 @@ NOTES: .. COMMENT: === CONFIGURE_POSIX_HAS_OWN_INIT_THREAD_TABLE === .. _Not Using Generated POSIX Initialization Threads Table: +.. index:: CONFIGURE_POSIX_HAS_OWN_INIT_THREAD_TABLE Not Using Generated POSIX Initialization Threads Table ------------------------------------------------------ -.. index:: CONFIGURE_POSIX_HAS_OWN_INIT_THREAD_TABLE CONSTANT: ``CONFIGURE_POSIX_HAS_OWN_INIT_THREAD_TABLE`` @@ -1438,15 +1439,15 @@ This section defines the general system configuration parameters supported by .. COMMENT: === CONFIGURE_UNIFIED_WORK_AREAS === .. _Separate or Unified Work Areas: - -Separate or Unified Work Areas ------------------------------- .. index:: CONFIGURE_UNIFIED_WORK_AREAS .. index:: unified work areas .. index:: separate work areas .. index:: RTEMS Workspace .. index:: C Program Heap +Separate or Unified Work Areas +------------------------------ + CONSTANT: ``CONFIGURE_UNIFIED_WORK_AREAS`` @@ -1481,10 +1482,10 @@ NOTES: .. COMMENT: === CONFIGURE_MAXIMUM_PROCESSORS === .. _CONFIGURE_MAXIMUM_PROCESSORS: +.. index:: CONFIGURE_MAXIMUM_PROCESSORS Specify Maximum Processors ---------------------------------------- -.. index:: CONFIGURE_MAXIMUM_PROCESSORS CONSTANT: ``CONFIGURE_MAXIMUM_PROCESSORS`` @@ -1514,11 +1515,11 @@ NOTES: .. COMMENT: === CONFIGURE_MICROSECONDS_PER_TICK === .. _CONFIGURE_MICROSECONDS_PER_TICK: +.. index:: CONFIGURE_MICROSECONDS_PER_TICK +.. index:: tick quantum Length of Each Clock Tick ------------------------- -.. index:: CONFIGURE_MICROSECONDS_PER_TICK -.. index:: tick quantum CONSTANT: ``CONFIGURE_MICROSECONDS_PER_TICK`` @@ -1561,11 +1562,11 @@ NOTES: .. COMMENT: === CONFIGURE_TICKS_PER_TIMESLICE === .. _Specifying Timeslicing Quantum: +.. index:: CONFIGURE_TICKS_PER_TIMESLICE +.. index:: ticks per timeslice Specifying Timeslicing Quantum ------------------------------ -.. index:: CONFIGURE_TICKS_PER_TIMESLICE -.. index:: ticks per timeslice CONSTANT: ``CONFIGURE_TICKS_PER_TIMESLICE`` @@ -1590,13 +1591,13 @@ NOTES: .. COMMENT: === CONFIGURE_MAXIMUM_PRIORITY === .. _Specifying the Number of Thread Priority Levels: - -Specifying the Number of Thread Priority Levels ------------------------------------------------ .. index:: CONFIGURE_MAXIMUM_PRIORITY .. index:: maximum priority .. index:: number of priority levels +Specifying the Number of Thread Priority Levels +----------------------------------------------- + CONSTANT: ``CONFIGURE_MAXIMUM_PRIORITY`` @@ -1637,11 +1638,11 @@ NOTES: .. COMMENT: === CONFIGURE_MAXIMUM_THREAD_NAME_SIZE === .. _CONFIGURE_MAXIMUM_THREAD_NAME_SIZE: +.. index:: CONFIGURE_MAXIMUM_THREAD_NAME_SIZE +.. index:: maximum thread name size Specifying the Maximum Thread Name Size --------------------------------------- -.. index:: CONFIGURE_MAXIMUM_THREAD_NAME_SIZE -.. index:: maximum thread name size CONSTANT: ``CONFIGURE_MAXIMUM_THREAD_NAME_SIZE`` @@ -1668,11 +1669,11 @@ NOTE: .. COMMENT: === CONFIGURE_MINIMUM_TASK_STACK_SIZE === .. _Specifying the Minimum Task Size: +.. index:: CONFIGURE_MINIMUM_TASK_STACK_SIZE +.. index:: minimum task stack size Specifying the Minimum Task Size -------------------------------- -.. index:: CONFIGURE_MINIMUM_TASK_STACK_SIZE -.. index:: minimum task stack size CONSTANT: ``CONFIGURE_MINIMUM_TASK_STACK_SIZE`` @@ -1707,11 +1708,11 @@ NOTES: .. COMMENT: === CONFIGURE_INTERRUPT_STACK_SIZE === .. _Configuring the Size of the Interrupt Stack: +.. index:: CONFIGURE_INTERRUPT_STACK_SIZE +.. index:: interrupt stack size Configuring the Size of the Interrupt Stack ------------------------------------------- -.. index:: CONFIGURE_INTERRUPT_STACK_SIZE -.. index:: interrupt stack size CONSTANT: ``CONFIGURE_INTERRUPT_STACK_SIZE`` @@ -1742,11 +1743,11 @@ NOTES: .. COMMENT: === CONFIGURE_EXTRA_TASK_STACKS === .. _Reserve Task/Thread Stack Memory Above Minimum: +.. index:: CONFIGURE_EXTRA_TASK_STACKS +.. index:: memory for task tasks Reserve Task/Thread Stack Memory Above Minimum ---------------------------------------------- -.. index:: CONFIGURE_EXTRA_TASK_STACKS -.. index:: memory for task tasks CONSTANT: ``CONFIGURE_EXTRA_TASK_STACKS`` @@ -1773,15 +1774,15 @@ NOTES: .. COMMENT: === CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY === .. _Automatically Zeroing the RTEMS Workspace and C Program Heap: - -Automatically Zeroing the RTEMS Workspace and C Program Heap ------------------------------------------------------------- .. index:: CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY .. index:: clear C Program Heap .. index:: clear RTEMS Workspace .. index:: zero C Program Heap .. index:: zero RTEMS Workspace +Automatically Zeroing the RTEMS Workspace and C Program Heap +------------------------------------------------------------ + CONSTANT: ``CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY`` @@ -1807,10 +1808,10 @@ NOTES: .. COMMENT: === CONFIGURE_STACK_CHECKER_ENABLED === .. _Enable The Task Stack Usage Checker: +.. index:: CONFIGURE_STACK_CHECKER_ENABLED Enable The Task Stack Usage Checker ----------------------------------- -.. index:: CONFIGURE_STACK_CHECKER_ENABLED CONSTANT: ``CONFIGURE_STACK_CHECKER_ENABLED`` @@ -1837,10 +1838,10 @@ NOTES: .. COMMENT: === CONFIGURE_INITIAL_EXTENSIONS === .. _CONFIGURE_INITIAL_EXTENSIONS: +.. index:: CONFIGURE_INITIAL_EXTENSIONS Specify Application Specific User Extensions -------------------------------------------- -.. index:: CONFIGURE_INITIAL_EXTENSIONS CONSTANT: ``CONFIGURE_INITIAL_EXTENSIONS`` @@ -1875,10 +1876,10 @@ overflows are detected in hardware. .. COMMENT: === CONFIGURE_TASK_STACK_ALLOCATOR_INIT === .. _Custom Task Stack Allocator Initialization: +.. index:: CONFIGURE_TASK_STACK_ALLOCATOR_INIT Custom Task Stack Allocator Initialization ------------------------------------------ -.. index:: CONFIGURE_TASK_STACK_ALLOCATOR_INIT CONSTANT: ``CONFIGURE_TASK_STACK_ALLOCATOR_INIT`` @@ -1910,12 +1911,11 @@ NOTES: .. COMMENT: === CONFIGURE_TASK_STACK_ALLOCATOR === .. _Custom Task Stack Allocator: +.. index:: CONFIGURE_TASK_STACK_ALLOCATOR +.. index:: task stack allocator Custom Task Stack Allocator --------------------------- -.. index:: CONFIGURE_TASK_STACK_ALLOCATOR - -.. index:: task stack allocator CONSTANT: ``CONFIGURE_TASK_STACK_ALLOCATOR`` @@ -1946,11 +1946,11 @@ NOTES: .. COMMENT: === CONFIGURE_TASK_STACK_DEALLOCATOR === .. _Custom Task Stack Deallocator: +.. index:: CONFIGURE_TASK_STACK_DEALLOCATOR +.. index:: task stack deallocator Custom Task Stack Deallocator ----------------------------- -.. index:: CONFIGURE_TASK_STACK_DEALLOCATOR -.. index:: task stack deallocator CONSTANT: ``CONFIGURE_TASK_STACK_DEALLOCATOR`` @@ -1989,11 +1989,11 @@ amount of memory reserved for Classic API Message Buffers. .. COMMENT: === CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE === .. _Calculate Memory for a Single Classic Message API Message Queue: +.. index:: CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE +.. index:: memory for a single message queue's buffers Calculate Memory for a Single Classic Message API Message Queue --------------------------------------------------------------- -.. index:: CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE -.. index:: memory for a single message queue's buffers CONSTANT: ``CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE(max_messages, size_per)`` @@ -2029,11 +2029,11 @@ NOTES: .. COMMENT: === CONFIGURE_MESSAGE_BUFFER_MEMORY === .. _Reserve Memory for All Classic Message API Message Queues: +.. index:: CONFIGURE_MESSAGE_BUFFER_MEMORY +.. index:: configure message queue buffer memory Reserve Memory for All Classic Message API Message Queues --------------------------------------------------------- -.. index:: CONFIGURE_MESSAGE_BUFFER_MEMORY -.. index:: configure message queue buffer memory CONSTANT: ``CONFIGURE_MESSAGE_BUFFER_MEMORY`` @@ -2084,10 +2084,10 @@ work-arounds when the memory estimated by ```` is incorrect. .. COMMENT: === CONFIGURE_MEMORY_OVERHEAD === .. _Specify Memory Overhead: +.. index:: CONFIGURE_MEMORY_OVERHEAD Specify Memory Overhead ----------------------- -.. index:: CONFIGURE_MEMORY_OVERHEAD CONSTANT: ``CONFIGURE_MEMORY_OVERHEAD`` @@ -2114,10 +2114,10 @@ NOTES: .. COMMENT: === CONFIGURE_HAS_OWN_CONFIGURATION_TABLE === .. _Do Not Generate Configuration Information: +.. index:: CONFIGURE_HAS_OWN_CONFIGURATION_TABLE Do Not Generate Configuration Information ----------------------------------------- -.. index:: CONFIGURE_HAS_OWN_CONFIGURATION_TABLE CONSTANT: ``CONFIGURE_HAS_OWN_CONFIGURATION_TABLE`` @@ -2149,11 +2149,11 @@ parameters supported by ````. .. COMMENT: === CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS === .. _Specify Maximum Number of File Descriptors: +.. index:: CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS +.. index:: maximum file descriptors Specify Maximum Number of File Descriptors ------------------------------------------ -.. index:: CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS -.. index:: maximum file descriptors CONSTANT: ``CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS`` @@ -2180,10 +2180,10 @@ NOTES: .. COMMENT: === CONFIGURE_TERMIOS_DISABLED === .. _Disable POSIX Termios Support: +.. index:: CONFIGURE_TERMIOS_DISABLED Disable POSIX Termios Support ----------------------------- -.. index:: CONFIGURE_TERMIOS_DISABLED CONSTANT: ``CONFIGURE_TERMIOS_DISABLED`` @@ -2210,10 +2210,10 @@ NOTES: .. COMMENT: === CONFIGURE_NUMBER_OF_TERMIOS_PORTS === .. _Specify Maximum Termios Ports: +.. index:: CONFIGURE_NUMBER_OF_TERMIOS_PORTS Specify Maximum Termios Ports ----------------------------- -.. index:: CONFIGURE_NUMBER_OF_TERMIOS_PORTS CONSTANT: ``CONFIGURE_NUMBER_OF_TERMIOS_PORTS`` @@ -2248,10 +2248,10 @@ This section defines File System related configuration parameters. .. COMMENT: === CONFIGURE_HAS_OWN_MOUNT_TABLE === .. _Providing Application Specific Mount Table: +.. index:: CONFIGURE_HAS_OWN_MOUNT_TABLE Providing Application Specific Mount Table ------------------------------------------ -.. index:: CONFIGURE_HAS_OWN_MOUNT_TABLE CONSTANT: ``CONFIGURE_HAS_OWN_MOUNT_TABLE`` @@ -2282,10 +2282,10 @@ NOTES: .. COMMENT: === CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM === .. _Configure devFS as Root File System: +.. index:: CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM Configure devFS as Root File System ----------------------------------- -.. index:: CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM CONSTANT: ``CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM`` @@ -2314,10 +2314,10 @@ NOTES: .. COMMENT: === CONFIGURE_MAXIMUM_DEVICES === .. _Specifying Maximum Devices for devFS: +.. index:: CONFIGURE_MAXIMUM_DEVICES Specifying Maximum Devices for devFS ------------------------------------ -.. index:: CONFIGURE_MAXIMUM_DEVICES CONSTANT: ``CONFIGURE_MAXIMUM_DEVICES`` @@ -2345,10 +2345,10 @@ NOTES: .. COMMENT: === CONFIGURE_APPLICATION_DISABLE_FILESYSTEM === .. _Disable File System Support: +.. index:: CONFIGURE_APPLICATION_DISABLE_FILESYSTEM Disable File System Support --------------------------- -.. index:: CONFIGURE_APPLICATION_DISABLE_FILESYSTEM CONSTANT: ``CONFIGURE_APPLICATION_DISABLE_FILESYSTEM`` @@ -2374,10 +2374,10 @@ NOTES: .. COMMENT: === CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM === .. _Use a Root IMFS with a Minimalistic Feature Set: +.. index:: CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM Use a Root IMFS with a Minimalistic Feature Set ----------------------------------------------- -.. index:: CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM CONSTANT: ``CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM`` @@ -2414,10 +2414,10 @@ DESCRIPTION: .. COMMENT: === CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK === .. _Specify Block Size for IMFS: +.. index:: CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK Specify Block Size for IMFS --------------------------- -.. index:: CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK CONSTANT: ``CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK`` @@ -2464,10 +2464,10 @@ DESCRIPTION: .. COMMENT: === CONFIGURE_IMFS_DISABLE_CHOWN === .. _Disable Change Owner Support of Root IMFS: +.. index:: CONFIGURE_IMFS_DISABLE_CHOWN Disable Change Owner Support of Root IMFS ----------------------------------------- -.. index:: CONFIGURE_IMFS_DISABLE_CHOWN CONSTANT: ``CONFIGURE_IMFS_DISABLE_CHOWN`` @@ -2488,10 +2488,10 @@ DESCRIPTION: .. COMMENT: === CONFIGURE_IMFS_DISABLE_CHMOD === .. _Disable Change Mode Support of Root IMFS: +.. index:: CONFIGURE_IMFS_DISABLE_CHMOD Disable Change Mode Support of Root IMFS ---------------------------------------- -.. index:: CONFIGURE_IMFS_DISABLE_CHMOD CONSTANT: ``CONFIGURE_IMFS_DISABLE_CHMOD`` @@ -2512,10 +2512,10 @@ DESCRIPTION: .. COMMENT: === CONFIGURE_IMFS_DISABLE_UTIME === .. _Disable Change Times Support of Root IMFS: +.. index:: CONFIGURE_IMFS_DISABLE_UTIME Disable Change Times Support of Root IMFS ----------------------------------------- -.. index:: CONFIGURE_IMFS_DISABLE_UTIME CONSTANT: ``CONFIGURE_IMFS_DISABLE_UTIME`` @@ -2536,10 +2536,10 @@ DESCRIPTION: .. COMMENT: === CONFIGURE_IMFS_DISABLE_LINK === .. _Disable Create Hard Link Support of Root IMFS: +.. index:: CONFIGURE_IMFS_DISABLE_LINK Disable Create Hard Link Support of Root IMFS --------------------------------------------- -.. index:: CONFIGURE_IMFS_DISABLE_LINK CONSTANT: ``CONFIGURE_IMFS_DISABLE_LINK`` @@ -2560,10 +2560,10 @@ DESCRIPTION: .. COMMENT: === CONFIGURE_IMFS_DISABLE_SYMLINK === .. _Disable Create Symbolic Link Support of Root IMFS: +.. index:: CONFIGURE_IMFS_DISABLE_SYMLINK Disable Create Symbolic Link Support of Root IMFS ------------------------------------------------- -.. index:: CONFIGURE_IMFS_DISABLE_SYMLINK CONSTANT: ``CONFIGURE_IMFS_DISABLE_SYMLINK`` @@ -2584,10 +2584,10 @@ DESCRIPTION: .. COMMENT: === CONFIGURE_IMFS_DISABLE_READLINK === .. _Disable Read Symbolic Link Support of Root IMFS: +.. index:: CONFIGURE_IMFS_DISABLE_READLINK Disable Read Symbolic Link Support of Root IMFS ----------------------------------------------- -.. index:: CONFIGURE_IMFS_DISABLE_READLINK CONSTANT: ``CONFIGURE_IMFS_DISABLE_READLINK`` @@ -2608,10 +2608,10 @@ DESCRIPTION: .. COMMENT: === CONFIGURE_IMFS_DISABLE_RENAME === .. _Disable Rename Support of Root IMFS: +.. index:: CONFIGURE_IMFS_DISABLE_RENAME Disable Rename Support of Root IMFS ----------------------------------- -.. index:: CONFIGURE_IMFS_DISABLE_RENAME CONSTANT: ``CONFIGURE_IMFS_DISABLE_RENAME`` @@ -2632,10 +2632,10 @@ DESCRIPTION: .. COMMENT: === CONFIGURE_IMFS_DISABLE_READDIR === .. _Disable Directory Read Support of Root IMFS: +.. index:: CONFIGURE_IMFS_DISABLE_READDIR Disable Directory Read Support of Root IMFS ------------------------------------------- -.. index:: CONFIGURE_IMFS_DISABLE_READDIR CONSTANT: ``CONFIGURE_IMFS_DISABLE_READDIR`` @@ -2657,10 +2657,10 @@ DESCRIPTION: .. COMMENT: === CONFIGURE_IMFS_DISABLE_MOUNT === .. _Disable Mount Support of Root IMFS: +.. index:: CONFIGURE_IMFS_DISABLE_MOUNT Disable Mount Support of Root IMFS ---------------------------------- -.. index:: CONFIGURE_IMFS_DISABLE_MOUNT CONSTANT: ``CONFIGURE_IMFS_DISABLE_MOUNT`` @@ -2681,10 +2681,10 @@ DESCRIPTION: .. COMMENT: === CONFIGURE_IMFS_DISABLE_UNMOUNT === .. _Disable Unmount Support of Root IMFS: +.. index:: CONFIGURE_IMFS_DISABLE_UNMOUNT Disable Unmount Support of Root IMFS ------------------------------------ -.. index:: CONFIGURE_IMFS_DISABLE_UNMOUNT CONSTANT: ``CONFIGURE_IMFS_DISABLE_UNMOUNT`` @@ -2705,10 +2705,10 @@ DESCRIPTION: .. COMMENT: === CONFIGURE_IMFS_DISABLE_MKNOD === .. _Disable Make Nodes Support of Root IMFS: +.. index:: CONFIGURE_IMFS_DISABLE_MKNOD Disable Make Nodes Support of Root IMFS --------------------------------------- -.. index:: CONFIGURE_IMFS_DISABLE_MKNOD CONSTANT: ``CONFIGURE_IMFS_DISABLE_MKNOD`` @@ -2729,10 +2729,10 @@ DESCRIPTION: .. COMMENT: === CONFIGURE_IMFS_DISABLE_MKNOD_FILE === .. _Disable Make Files Support of Root IMFS: +.. index:: CONFIGURE_IMFS_DISABLE_MKNOD_FILE Disable Make Files Support of Root IMFS --------------------------------------- -.. index:: CONFIGURE_IMFS_DISABLE_MKNOD_FILE CONSTANT: ``CONFIGURE_IMFS_DISABLE_MKNOD_FILE`` @@ -2753,10 +2753,10 @@ DESCRIPTION: .. COMMENT: === CONFIGURE_IMFS_DISABLE_RMNOD === .. _Disable Remove Nodes Support of Root IMFS: +.. index:: CONFIGURE_IMFS_DISABLE_RMNOD Disable Remove Nodes Support of Root IMFS ----------------------------------------- -.. index:: CONFIGURE_IMFS_DISABLE_RMNOD CONSTANT: ``CONFIGURE_IMFS_DISABLE_RMNOD`` @@ -2785,10 +2785,10 @@ parameters. .. COMMENT: === CONFIGURE_APPLICATION_NEEDS_LIBBLOCK === .. _Enable Block Device Cache: +.. index:: CONFIGURE_APPLICATION_NEEDS_LIBBLOCK Enable Block Device Cache ------------------------- -.. index:: CONFIGURE_APPLICATION_NEEDS_LIBBLOCK CONSTANT: ``CONFIGURE_APPLICATION_NEEDS_LIBBLOCK`` @@ -2813,10 +2813,10 @@ NOTES: .. COMMENT: === CONFIGURE_BDBUF_CACHE_MEMORY_SIZE === .. _Size of the Cache Memory: +.. index:: CONFIGURE_BDBUF_CACHE_MEMORY_SIZE Size of the Cache Memory ------------------------ -.. index:: CONFIGURE_BDBUF_CACHE_MEMORY_SIZE CONSTANT: ``CONFIGURE_BDBUF_CACHE_MEMORY_SIZE`` @@ -2839,10 +2839,10 @@ NOTES: .. COMMENT: === CONFIGURE_BDBUF_BUFFER_MIN_SIZE === .. _Minimum Size of a Buffer: +.. index:: CONFIGURE_BDBUF_BUFFER_MIN_SIZE Minimum Size of a Buffer ------------------------ -.. index:: CONFIGURE_BDBUF_BUFFER_MIN_SIZE CONSTANT: ``CONFIGURE_BDBUF_BUFFER_MIN_SIZE`` @@ -2865,10 +2865,10 @@ NOTES: .. COMMENT: === CONFIGURE_BDBUF_BUFFER_MAX_SIZE === .. _Maximum Size of a Buffer: +.. index:: CONFIGURE_BDBUF_BUFFER_MAX_SIZE Maximum Size of a Buffer ------------------------ -.. index:: CONFIGURE_BDBUF_BUFFER_MAX_SIZE CONSTANT: ``CONFIGURE_BDBUF_BUFFER_MAX_SIZE`` @@ -2891,10 +2891,10 @@ NOTES: .. COMMENT: === CONFIGURE_SWAPOUT_SWAP_PERIOD === .. _Swapout Task Swap Period: +.. index:: CONFIGURE_SWAPOUT_SWAP_PERIOD Swapout Task Swap Period ------------------------ -.. index:: CONFIGURE_SWAPOUT_SWAP_PERIOD CONSTANT: ``CONFIGURE_SWAPOUT_SWAP_PERIOD`` @@ -2917,10 +2917,10 @@ NOTES: .. COMMENT: === CONFIGURE_SWAPOUT_BLOCK_HOLD === .. _Swapout Task Maximum Block Hold Time: +.. index:: CONFIGURE_SWAPOUT_BLOCK_HOLD Swapout Task Maximum Block Hold Time ------------------------------------ -.. index:: CONFIGURE_SWAPOUT_BLOCK_HOLD CONSTANT: ``CONFIGURE_SWAPOUT_BLOCK_HOLD`` @@ -2943,10 +2943,10 @@ NOTES: .. COMMENT: === CONFIGURE_SWAPOUT_TASK_PRIORITY === .. _Swapout Task Priority: +.. index:: CONFIGURE_SWAPOUT_TASK_PRIORITY Swapout Task Priority --------------------- -.. index:: CONFIGURE_SWAPOUT_TASK_PRIORITY CONSTANT: ``CONFIGURE_SWAPOUT_TASK_PRIORITY`` @@ -2969,10 +2969,10 @@ NOTES: .. COMMENT: === CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS === .. _Maximum Blocks per Read-Ahead Request: +.. index:: CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS Maximum Blocks per Read-Ahead Request ------------------------------------- -.. index:: CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS CONSTANT: ``CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS`` @@ -2997,10 +2997,10 @@ NOTES: .. COMMENT: === CONFIGURE_BDBUF_MAX_WRITE_BLOCKS === .. _Maximum Blocks per Write Request: +.. index:: CONFIGURE_BDBUF_MAX_WRITE_BLOCKS Maximum Blocks per Write Request -------------------------------- -.. index:: CONFIGURE_BDBUF_MAX_WRITE_BLOCKS CONSTANT: ``CONFIGURE_BDBUF_MAX_WRITE_BLOCKS`` @@ -3023,10 +3023,10 @@ NOTES: .. COMMENT: === CONFIGURE_BDBUF_TASK_STACK_SIZE === .. _Task Stack Size of the Block Device Cache Tasks: +.. index:: CONFIGURE_BDBUF_TASK_STACK_SIZE Task Stack Size of the Block Device Cache Tasks ----------------------------------------------- -.. index:: CONFIGURE_BDBUF_TASK_STACK_SIZE CONSTANT: ``CONFIGURE_BDBUF_TASK_STACK_SIZE`` @@ -3049,10 +3049,10 @@ NOTES: .. COMMENT: === CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY === .. _Read-Ahead Task Priority: +.. index:: CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY Read-Ahead Task Priority ------------------------ -.. index:: CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY CONSTANT: ``CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY`` @@ -3075,10 +3075,10 @@ NOTES: .. COMMENT: === CONFIGURE_SWAPOUT_WORKER_TASKS === .. _Swapout Worker Task Count: +.. index:: CONFIGURE_SWAPOUT_WORKER_TASKS Swapout Worker Task Count ------------------------- -.. index:: CONFIGURE_SWAPOUT_WORKER_TASKS CONSTANT: ``CONFIGURE_SWAPOUT_WORKER_TASKS`` @@ -3101,10 +3101,10 @@ NOTES: .. COMMENT: === CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY === .. _Swapout Worker Task Priority: +.. index:: CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY Swapout Worker Task Priority ---------------------------- -.. index:: CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY CONSTANT: ``CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY`` @@ -3136,10 +3136,10 @@ This section describes BSP specific configuration settings used by .. COMMENT: === Disable BSP Settings === .. _Disable BSP Configuration Settings: +.. index:: CONFIGURE_DISABLE_BSP_SETTINGS Disable BSP Configuration Settings ---------------------------------- -.. index:: CONFIGURE_DISABLE_BSP_SETTINGS CONSTANT: ``CONFIGURE_DISABLE_BSP_SETTINGS`` @@ -3163,10 +3163,10 @@ NOTES: .. COMMENT: === CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK === .. _Specify BSP Supports sbrk(): +.. index:: CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK Specify BSP Supports sbrk() --------------------------- -.. index:: CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK CONSTANT: ``CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK`` @@ -3195,10 +3195,10 @@ NOTES: .. COMMENT: === BSP_IDLE_TASK_BODY === .. _Specify BSP Specific Idle Task: +.. index:: BSP_IDLE_TASK_BODY Specify BSP Specific Idle Task ------------------------------ -.. index:: BSP_IDLE_TASK_BODY CONSTANT: ``BSP_IDLE_TASK_BODY`` @@ -3225,10 +3225,10 @@ NOTES: .. COMMENT: === BSP_IDLE_TASK_STACK_SIZE === .. _Specify BSP Suggested Value for IDLE Task Stack Size: +.. index:: BSP_IDLE_TASK_STACK_SIZE Specify BSP Suggested Value for IDLE Task Stack Size ---------------------------------------------------- -.. index:: BSP_IDLE_TASK_STACK_SIZE CONSTANT: ``BSP_IDLE_TASK_STACK_SIZE`` @@ -3263,10 +3263,10 @@ NOTES: .. COMMENT: === BSP_INITIAL_EXTENSION === .. _Specify BSP Specific User Extensions: +.. index:: BSP_INITIAL_EXTENSION Specify BSP Specific User Extensions ------------------------------------ -.. index:: BSP_INITIAL_EXTENSION CONSTANT: ``BSP_INITIAL_EXTENSION`` @@ -3291,10 +3291,10 @@ NOTES: .. COMMENT: === BSP_INTERRUPT_STACK_SIZE === .. _Specifying BSP Specific Interrupt Stack Size: +.. index:: BSP_INTERRUPT_STACK_SIZE Specifying BSP Specific Interrupt Stack Size -------------------------------------------- -.. index:: BSP_INTERRUPT_STACK_SIZE CONSTANT: ``BSP_INTERRUPT_STACK_SIZE`` @@ -3319,10 +3319,10 @@ NOTES: .. COMMENT: === BSP_MAXIMUM_DEVICES === .. _Specifying BSP Specific Maximum Devices: +.. index:: BSP_MAXIMUM_DEVICES Specifying BSP Specific Maximum Devices --------------------------------------- -.. index:: BSP_MAXIMUM_DEVICES CONSTANT: ``BSP_MAXIMUM_DEVICES`` @@ -3350,10 +3350,10 @@ NOTES: .. COMMENT: === BSP_ZERO_WORKSPACE_AUTOMATICALLY === .. _BSP Recommends RTEMS Workspace be Cleared: +.. index:: BSP_ZERO_WORKSPACE_AUTOMATICALLY BSP Recommends RTEMS Workspace be Cleared ----------------------------------------- -.. index:: BSP_ZERO_WORKSPACE_AUTOMATICALLY CONSTANT: ``BSP_ZERO_WORKSPACE_AUTOMATICALLY`` @@ -3379,10 +3379,10 @@ NOTES: .. COMMENT: === CONFIGURE_BSP_PREREQUISITE_DRIVERS === .. _Specify BSP Prerequisite Drivers: +.. index:: CONFIGURE_BSP_PREREQUISITE_DRIVERS Specify BSP Prerequisite Drivers -------------------------------- -.. index:: CONFIGURE_BSP_PREREQUISITE_DRIVERS CONSTANT: ``CONFIGURE_BSP_PREREQUISITE_DRIVERS`` @@ -3419,10 +3419,10 @@ by ````. .. COMMENT: === CONFIGURE_IDLE_TASK_BODY === .. _Specify Application Specific Idle Task Body: +.. index:: CONFIGURE_IDLE_TASK_BODY Specify Application Specific Idle Task Body ------------------------------------------- -.. index:: CONFIGURE_IDLE_TASK_BODY CONSTANT: ``CONFIGURE_IDLE_TASK_BODY`` @@ -3447,10 +3447,10 @@ NOTES: .. COMMENT: === CONFIGURE_IDLE_TASK_STACK_SIZE === .. _Specify Idle Task Stack Size: +.. index:: CONFIGURE_IDLE_TASK_STACK_SIZE Specify Idle Task Stack Size ---------------------------- -.. index:: CONFIGURE_IDLE_TASK_STACK_SIZE CONSTANT: ``CONFIGURE_IDLE_TASK_STACK_SIZE`` @@ -3474,10 +3474,10 @@ NOTES: .. COMMENT: === CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION === .. _Specify Idle Task Performs Application Initialization: +.. index:: CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION Specify Idle Task Performs Application Initialization ----------------------------------------------------- -.. index:: CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION CONSTANT: ``CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION`` @@ -3524,10 +3524,10 @@ configuration macros. .. COMMENT: === CONFIGURE_SCHEDULER_PRIORITY === .. _Use Deterministic Priority Scheduler: +.. index:: CONFIGURE_SCHEDULER_PRIORITY Use Deterministic Priority Scheduler ------------------------------------ -.. index:: CONFIGURE_SCHEDULER_PRIORITY CONSTANT: ``CONFIGURE_SCHEDULER_PRIORITY`` @@ -3557,10 +3557,10 @@ NOTES: .. COMMENT: === CONFIGURE_SCHEDULER_SIMPLE === .. _Use Simple Priority Scheduler: +.. index:: CONFIGURE_SCHEDULER_SIMPLE Use Simple Priority Scheduler ----------------------------- -.. index:: CONFIGURE_SCHEDULER_SIMPLE CONSTANT: ``CONFIGURE_SCHEDULER_SIMPLE`` @@ -3592,10 +3592,10 @@ NOTES: .. COMMENT: === CONFIGURE_SCHEDULER_EDF === .. _Use Earliest Deadline First Scheduler: +.. index:: CONFIGURE_SCHEDULER_EDF Use Earliest Deadline First Scheduler ------------------------------------- -.. index:: CONFIGURE_SCHEDULER_EDF CONSTANT: ``CONFIGURE_SCHEDULER_EDF`` @@ -3629,10 +3629,10 @@ NOTES: .. COMMENT: === CONFIGURE_SCHEDULER_EDF_SMP === .. _Use Earliest Deadline First SMP Scheduler: +.. index:: CONFIGURE_SCHEDULER_EDF_SMP Use Earliest Deadline First Scheduler ------------------------------------- -.. index:: CONFIGURE_SCHEDULER_EDF_SMP CONSTANT: ``CONFIGURE_SCHEDULER_EDF_SMP`` @@ -3656,10 +3656,10 @@ NOTES: .. COMMENT: === CONFIGURE_SCHEDULER_CBS === .. _Use Constant Bandwidth Server Scheduler: +.. index:: CONFIGURE_SCHEDULER_CBS Use Constant Bandwidth Server Scheduler --------------------------------------- -.. index:: CONFIGURE_SCHEDULER_CBS CONSTANT: ``CONFIGURE_SCHEDULER_CBS`` @@ -3691,10 +3691,10 @@ NOTES: .. COMMENT: === CONFIGURE_SCHEDULER_PRIORITY_SMP === .. _Use Deterministic Priority SMP Scheduler: +.. index:: CONFIGURE_SCHEDULER_PRIORITY_SMP Use Deterministic Priority SMP Scheduler ---------------------------------------- -.. index:: CONFIGURE_SCHEDULER_PRIORITY_SMP CONSTANT: ``CONFIGURE_SCHEDULER_PRIORITY_SMP`` @@ -3726,10 +3726,10 @@ NOTES: .. COMMENT: === CONFIGURE_SCHEDULER_SIMPLE_SMP === .. _Use Simple SMP Priority Scheduler: +.. index:: CONFIGURE_SCHEDULER_SIMPLE_SMP Use Simple SMP Priority Scheduler --------------------------------- -.. index:: CONFIGURE_SCHEDULER_SIMPLE_SMP CONSTANT: ``CONFIGURE_SCHEDULER_SIMPLE_SMP`` @@ -3767,10 +3767,10 @@ NOTES: .. COMMENT: === Configuring a Scheduler Name === .. _Configuring a Scheduler Name: +.. index:: CONFIGURE_SCHEDULER_NAME Configuring a Scheduler Name ---------------------------- -.. index:: CONFIGURE_SCHEDULER_NAME CONSTANT: ``CONFIGURE_SCHEDULER_NAME`` @@ -3801,10 +3801,10 @@ NOTES: .. COMMENT: === Configuring a User Scheduler === .. _Configuring a User Provided Scheduler: +.. index:: CONFIGURE_SCHEDULER_USER Configuring a User Provided Scheduler ------------------------------------- -.. index:: CONFIGURE_SCHEDULER_USER CONSTANT: ``CONFIGURE_SCHEDULER_USER`` @@ -4030,10 +4030,10 @@ Note that network device drivers are not configured in the Device Driver Table. .. COMMENT: === CONFIGURE_MAXIMUM_DRIVERS === .. _Specifying the Maximum Number of Device Drivers: +.. index:: CONFIGURE_MAXIMUM_DRIVERS Specifying the Maximum Number of Device Drivers ----------------------------------------------- -.. index:: CONFIGURE_MAXIMUM_DRIVERS CONSTANT: @@ -4064,10 +4064,10 @@ NOTES: .. COMMENT: === CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER === .. _Enable Console Device Driver: +.. index:: CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER Enable Console Device Driver ---------------------------- -.. index:: CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER CONSTANT: ``CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER`` @@ -4095,10 +4095,10 @@ NOTES: .. COMMENT: === CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER === .. _Enable Clock Driver: +.. index:: CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER Enable Clock Driver ------------------- -.. index:: CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER CONSTANT: ``CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER`` @@ -4128,10 +4128,10 @@ NOTES: .. COMMENT: === CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER === .. _Enable the Benchmark Timer Driver: +.. index:: CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER Enable the Benchmark Timer Driver --------------------------------- -.. index:: CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER CONSTANT: ``CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER`` @@ -4159,10 +4159,10 @@ NOTES: .. COMMENT: === CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER === .. _Specify Clock and Benchmark Timer Drivers Are Not Needed: +.. index:: CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER Specify Clock and Benchmark Timer Drivers Are Not Needed -------------------------------------------------------- -.. index:: CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER CONSTANT: ``CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`` @@ -4190,10 +4190,10 @@ NOTES: .. COMMENT: === CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER === .. _Enable Real-Time Clock Driver: +.. index:: CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER Enable Real-Time Clock Driver ----------------------------- -.. index:: CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER CONSTANT: ``CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER`` @@ -4221,10 +4221,10 @@ NOTES: .. COMMENT: === CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER === .. _Enable the Watchdog Device Driver: +.. index:: CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER Enable the Watchdog Device Driver --------------------------------- -.. index:: CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER CONSTANT: ``CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER`` @@ -4252,10 +4252,10 @@ NOTES: .. COMMENT: === CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER === .. _Enable the Graphics Frame Buffer Device Driver: +.. index:: CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER Enable the Graphics Frame Buffer Device Driver ---------------------------------------------- -.. index:: CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER CONSTANT: ``CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER`` @@ -4283,10 +4283,10 @@ NOTES: .. COMMENT: === CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER === .. _Enable Stub Device Driver: +.. index:: CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER Enable Stub Device Driver ------------------------- -.. index:: CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER CONSTANT: ``CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER`` @@ -4311,10 +4311,10 @@ NOTES: .. COMMENT: === CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS === .. _Specify Application Prerequisite Device Drivers: +.. index:: CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS Specify Application Prerequisite Device Drivers ----------------------------------------------- -.. index:: CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS CONSTANT: ``CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS`` @@ -4347,10 +4347,10 @@ NOTES: .. COMMENT: === CONFIGURE_APPLICATION_EXTRA_DRIVERS === .. _Specify Extra Application Device Drivers: +.. index:: CONFIGURE_APPLICATION_EXTRA_DRIVERS Specify Extra Application Device Drivers ---------------------------------------- -.. index:: CONFIGURE_APPLICATION_EXTRA_DRIVERS CONSTANT: ``CONFIGURE_APPLICATION_EXTRA_DRIVERS`` @@ -4376,11 +4376,11 @@ NOTES: .. COMMENT: === CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER === .. _Enable /dev/null Device Driver: +.. index:: CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER +.. index:: /dev/null Enable /dev/null Device Driver ------------------------------ -.. index:: CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER -.. index:: /dev/null CONSTANT: ``CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER`` @@ -4403,11 +4403,11 @@ NOTES: .. COMMENT: === CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER === .. _Enable /dev/zero Device Driver: +.. index:: CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER +.. index:: /dev/zero Enable /dev/zero Device Driver ------------------------------ -.. index:: CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER -.. index:: /dev/zero CONSTANT: ``CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER`` @@ -4430,10 +4430,10 @@ NOTES: .. COMMENT: === CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE === .. _Specifying Application Defined Device Driver Table: +.. index:: CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE Specifying Application Defined Device Driver Table -------------------------------------------------- -.. index:: CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE CONSTANT: ``CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE`` @@ -4476,10 +4476,10 @@ Additionally, this class of Configuration Constants are only applicable if .. COMMENT: === CONFIGURE_MP_APPLICATION === .. _Specify Application Will Use Multiprocessing: +.. index:: CONFIGURE_MP_APPLICATION Specify Application Will Use Multiprocessing -------------------------------------------- -.. index:: CONFIGURE_MP_APPLICATION CONSTANT: ``CONFIGURE_MP_APPLICATION`` @@ -4506,10 +4506,10 @@ NOTES: .. COMMENT: === CONFIGURE_MP_NODE_NUMBER === .. _Configure Node Number in Multiprocessor Configuration: +.. index:: CONFIGURE_MP_NODE_NUMBER Configure Node Number in Multiprocessor Configuration ----------------------------------------------------- -.. index:: CONFIGURE_MP_NODE_NUMBER CONSTANT: ``CONFIGURE_MP_NODE_NUMBER`` @@ -4537,10 +4537,10 @@ NOTES: .. COMMENT: === CONFIGURE_MP_MAXIMUM_NODES === .. _Configure Maximum Node in Multiprocessor Configuration: +.. index:: CONFIGURE_MP_MAXIMUM_NODES Configure Maximum Node in Multiprocessor Configuration ------------------------------------------------------ -.. index:: CONFIGURE_MP_MAXIMUM_NODES CONSTANT: ``CONFIGURE_MP_MAXIMUM_NODES`` @@ -4564,10 +4564,10 @@ NOTES: .. COMMENT: === CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS === .. _Configure Maximum Global Objects in Multiprocessor Configuration: +.. index:: CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS Configure Maximum Global Objects in Multiprocessor Configuration ---------------------------------------------------------------- -.. index:: CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS CONSTANT: ``CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS`` @@ -4592,10 +4592,10 @@ NOTES: .. COMMENT: === CONFIGURE_MP_MAXIMUM_PROXIES === .. _Configure Maximum Proxies in Multiprocessor Configuration: +.. index:: CONFIGURE_MP_MAXIMUM_PROXIES Configure Maximum Proxies in Multiprocessor Configuration --------------------------------------------------------- -.. index:: CONFIGURE_MP_MAXIMUM_PROXIES CONSTANT: ``CONFIGURE_MP_MAXIMUM_PROXIES`` @@ -4623,10 +4623,10 @@ NOTES: .. COMMENT: === CONFIGURE_MP_MPCI_TABLE_POINTER === .. _Configure MPCI in Multiprocessor Configuration: +.. index:: CONFIGURE_MP_MPCI_TABLE_POINTER Configure MPCI in Multiprocessor Configuration ---------------------------------------------- -.. index:: CONFIGURE_MP_MPCI_TABLE_POINTER CONSTANT: ``CONFIGURE_MP_MPCI_TABLE_POINTER`` @@ -4652,10 +4652,10 @@ NOTES: .. COMMENT: === CONFIGURE_HAS_OWN_MULTIPROCESSING_TABLE === .. _Do Not Generate Multiprocessor Configuration Table: +.. index:: CONFIGURE_HAS_OWN_MULTIPROCESSING_TABLE Do Not Generate Multiprocessor Configuration Table -------------------------------------------------- -.. index:: CONFIGURE_HAS_OWN_MULTIPROCESSING_TABLE CONSTANT: ``CONFIGURE_HAS_OWN_MULTIPROCESSING_TABLE`` @@ -4699,10 +4699,10 @@ has a test suite. This test suite is enabled only when``--enable-tests`` and .. COMMENT: === CONFIGURE_GNAT_RTEMS === .. _Specify Application Includes Ada Code: +.. index:: CONFIGURE_GNAT_RTEMS Specify Application Includes Ada Code ------------------------------------- -.. index:: CONFIGURE_GNAT_RTEMS CONSTANT: ``CONFIGURE_GNAT_RTEMS`` @@ -4728,10 +4728,10 @@ NOTES: .. COMMENT: === CONFIGURE_MAXIMUM_ADA_TASKS === .. _Specify the Maximum Number of Ada Tasks.: +.. index:: CONFIGURE_MAXIMUM_ADA_TASKS Specify the Maximum Number of Ada Tasks. ---------------------------------------- -.. index:: CONFIGURE_MAXIMUM_ADA_TASKS CONSTANT: ``CONFIGURE_MAXIMUM_ADA_TASKS`` @@ -4756,13 +4756,13 @@ NOTES: .. COMMENT: === CONFIGURE_MAXIMUM_FAKE_ADA_TASKS === .. _Specify the Maximum Fake Ada Tasks: +.. index:: CONFIGURE_MAXIMUM_FAKE_ADA_TASKS Specify the Maximum Fake Ada Tasks ---------------------------------- -.. index:: CONFIGURE_MAXIMUM_FAKE_ADA_TASKS CONSTANT: - .. index:: ``CONFIGURE_MAXIMUM_FAKE_ADA_TASKS`` + ``CONFIGURE_MAXIMUM_FAKE_ADA_TASKS`` DATA TYPE: Unsigned integer (``uint32_t``). @@ -4844,10 +4844,10 @@ Go Tasks .. COMMENT: === CONFIGURE_ENABLE_GO === .. _Specify Application Includes Go Code: +.. index:: CONFIGURE_ENABLE_GO Specify Application Includes Go Code ------------------------------------ -.. index:: CONFIGURE_ENABLE_GO CONSTANT: ``CONFIGURE_ENABLE_GO`` @@ -4871,10 +4871,10 @@ NOTES: .. COMMENT: === CONFIGURE_MAXIMUM_GOROUTINES === .. _Specify the maximum number of Go routines: +.. index:: CONFIGURE_MAXIMUM_GOROUTINES Specify the maximum number of Go routines ----------------------------------------- -.. index:: CONFIGURE_MAXIMUM_GOROUTINES CONSTANT: ``CONFIGURE_MAXIMUM_GOROUTINES`` @@ -4898,10 +4898,10 @@ NOTES: .. COMMENT: === CONFIGURE_MAXIMUM_GO_CHANNELS === .. _Specify the maximum number of Go Channels: +.. index:: CONFIGURE_MAXIMUM_GO_CHANNELS Specify the maximum number of Go Channels ----------------------------------------- -.. index:: CONFIGURE_MAXIMUM_GO_CHANNELS CONSTANT: ``CONFIGURE_MAXIMUM_GO_CHANNELS`` @@ -4924,82 +4924,82 @@ NOTES: Obsolete Configuration Options ============================== +.. index:: CONFIGURE_BDBUF_BUFFER_COUNT CONFIGURE_BDBUF_BUFFER_COUNT ---------------------------- -.. index:: CONFIGURE_BDBUF_BUFFER_COUNT This configuration option was introduced in RTEMS 4.7.0 and is obsolete since RTEMS 4.10.0. +.. index:: CONFIGURE_BDBUF_BUFFER_SIZE CONFIGURE_BDBUF_BUFFER_SIZE --------------------------- -.. index:: CONFIGURE_BDBUF_BUFFER_SIZE This configuration option was introduced in RTEMS 4.7.0 and is obsolete since RTEMS 4.10.0. +.. index:: CONFIGURE_DISABLE_CLASSIC_API_NOTEPADS CONFIGURE_DISABLE_CLASSIC_API_NOTEPADS -------------------------------------- -.. index:: CONFIGURE_DISABLE_CLASSIC_API_NOTEPADS This configuration option was introduced in RTEMS 4.9.0 and is obsolete since RTEMS 5.1. +.. index:: CONFIGURE_HAS_OWN_BDBUF_TABLE CONFIGURE_HAS_OWN_BDBUF_TABLE ----------------------------- -.. index:: CONFIGURE_HAS_OWN_BDBUF_TABLE This configuration option was introduced in RTEMS 4.7.0 and is obsolete since RTEMS 4.10.0. +.. index:: CONFIGURE_MAXIMUM_POSIX_BARRIERS CONFIGURE_MAXIMUM_POSIX_BARRIERS -------------------------------- -.. index:: CONFIGURE_MAXIMUM_POSIX_BARRIERS This configuration option is obsolete since RTEMS 5.1. +.. index:: CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES ------------------------------------------- -.. index:: CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES This configuration option is obsolete since RTEMS 5.1. +.. index:: CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUE_DESCRIPTORS CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUE_DESCRIPTORS ------------------------------- -.. index:: CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUE_DESCRIPTORS This configuration option was introduced in RTEMS 4.10.0 and is obsolete since RTEMS 5.1. +.. index:: CONFIGURE_MAXIMUM_POSIX_MUTEXES CONFIGURE_MAXIMUM_POSIX_MUTEXES ------------------------------- -.. index:: CONFIGURE_MAXIMUM_POSIX_MUTEXES This configuration option is obsolete since RTEMS 5.1. +.. index:: CONFIGURE_MAXIMUM_POSIX_RWLOCKS CONFIGURE_MAXIMUM_POSIX_RWLOCKS ------------------------------- -.. index:: CONFIGURE_MAXIMUM_POSIX_RWLOCKS This configuration option is obsolete since RTEMS 5.1. +.. index:: CONFIGURE_MAXIMUM_POSIX_SPINLOCKS CONFIGURE_MAXIMUM_POSIX_SPINLOCKS --------------------------------- -.. index:: CONFIGURE_MAXIMUM_POSIX_SPINLOCKS This configuration option is obsolete since RTEMS 5.1. +.. index:: CONFIGURE_SMP_APPLICATION CONFIGURE_SMP_APPLICATION ------------------------- -.. index:: CONFIGURE_SMP_APPLICATION This configuration option was introduced in RTEMS 4.11.0 and is obsolete since RTEMS 5.1. +.. index:: CONFIGURE_SMP_MAXIMUM_PROCESSORS CONFIGURE_SMP_MAXIMUM_PROCESSORS -------------------------------- -.. index:: CONFIGURE_SMP_MAXIMUM_PROCESSORS This configuration option was introduced in RTEMS 4.11.0 and is obsolete since RTEMS 5.1. See also :ref:`CONFIGURE_MAXIMUM_PROCESSORS`. diff --git a/c-user/constant_bandwidth_server.rst b/c-user/constant_bandwidth_server.rst index 2db0daa..2a6ed40 100644 --- a/c-user/constant_bandwidth_server.rst +++ b/c-user/constant_bandwidth_server.rst @@ -42,12 +42,11 @@ provided by the CBS API are: Background ========== +.. index:: CBS parameters +.. index:: rtems_cbs_parameters Constant Bandwidth Server Definitions ------------------------------------- -.. index:: CBS parameters - -.. index:: rtems_cbs_parameters The Constant Bandwidth Server API enables tasks to communicate with the scheduler and indicate its scheduling parameters. The scheduler has to be set @@ -71,10 +70,10 @@ ordinary tasks that are not attached to any server. In order to make the server effective to the executing tasks, tasks have to be attached to the servers. The ``rtems_cbs_server_id`` is a type denoting an id of a server and ``rtems_id`` a type for id of tasks. +.. index:: CBS periodic tasks Handling Periodic Tasks ----------------------- -.. index:: CBS periodic tasks Each task's execution begins with a default background priority (see the chapter Scheduling Concepts to understand the concept of priorities in @@ -84,10 +83,10 @@ of periodic behavior, or you declare deadline and budget using the CBS API in which case these properties are constant for all subsequent periods, unless you change them using the CBS API again. Task now only has to indicate and end of each period using ``rtems_rate_monotonic_period``. +.. index:: CBS overrun handler Registering a Callback Function ------------------------------- -.. index:: CBS overrun handler In case tasks attached to servers are not aware of their execution time and happen to exceed it, the scheduler does not guarantee execution any more and @@ -113,10 +112,10 @@ The calling convention of the callback function is: void overrun_handler( rtems_cbs_server_id server_id ); +.. index:: CBS limitations Limitations ----------- -.. index:: CBS limitations When using this scheduler you have to keep in mind several things: @@ -234,11 +233,11 @@ sequence, related constants, usage, and status codes. \clearpage .. _rtems_cbs_initialize: +.. index:: initialize the CBS library +.. index:: rtems_cbs_initialize CBS_INITIALIZE - Initialize the CBS library ------------------------------------------- -.. index:: initialize the CBS library -.. index:: rtems_cbs_initialize CALLING SEQUENCE: .. code-block:: c @@ -272,11 +271,11 @@ NOTES: \clearpage .. _rtems_cbs_cleanup: +.. index:: cleanup the CBS library +.. index:: rtems_cbs_cleanup CBS_CLEANUP - Cleanup the CBS library ------------------------------------- -.. index:: cleanup the CBS library -.. index:: rtems_cbs_cleanup CALLING SEQUENCE: .. code-block:: c @@ -302,11 +301,11 @@ NOTES: \clearpage .. _rtems_cbs_create_server: +.. index:: create a new bandwidth server +.. index:: rtems_cbs_create_server CBS_CREATE_SERVER - Create a new bandwidth server ------------------------------------------------- -.. index:: create a new bandwidth server -.. index:: rtems_cbs_create_server CALLING SEQUENCE: .. code-block:: c @@ -350,11 +349,11 @@ NOTES: \clearpage .. _rtems_cbs_attach_thread: +.. index:: attach a thread to server +.. index:: rtems_cbs_attach_thread CBS_ATTACH_THREAD - Attach a thread to server --------------------------------------------- -.. index:: attach a thread to server -.. index:: rtems_cbs_attach_thread CALLING SEQUENCE: .. code-block:: c @@ -392,11 +391,11 @@ NOTES: \clearpage .. _rtems_cbs_detach_thread: +.. index:: detach a thread from server +.. index:: rtems_cbs_detach_thread CBS_DETACH_THREAD - Detach a thread from server ----------------------------------------------- -.. index:: detach a thread from server -.. index:: rtems_cbs_detach_thread CALLING SEQUENCE: .. code-block:: c @@ -429,11 +428,11 @@ NOTES: \clearpage .. _rtems_cbs_destroy_server: +.. index:: destroy a bandwidth server +.. index:: rtems_cbs_destroy_server CBS_DESTROY_SERVER - Destroy a bandwidth server ----------------------------------------------- -.. index:: destroy a bandwidth server -.. index:: rtems_cbs_destroy_server CALLING SEQUENCE: .. code-block:: c @@ -466,11 +465,11 @@ NOTES: \clearpage .. _rtems_cbs_get_server_id: +.. index:: get an ID of a server +.. index:: rtems_cbs_get_server_id CBS_GET_SERVER_ID - Get an ID of a server ----------------------------------------- -.. index:: get an ID of a server -.. index:: rtems_cbs_get_server_id CALLING SEQUENCE: .. code-block:: c @@ -497,11 +496,11 @@ DESCRIPTION: \clearpage .. _rtems_cbs_get_parameters: +.. index:: get scheduling parameters of a server +.. index:: rtems_cbs_get_parameters CBS_GET_PARAMETERS - Get scheduling parameters of a server ---------------------------------------------------------- -.. index:: get scheduling parameters of a server -.. index:: rtems_cbs_get_parameters CALLING SEQUENCE: .. code-block:: c @@ -534,11 +533,11 @@ NOTES: \clearpage .. _rtems_cbs_set_parameters: +.. index:: set scheduling parameters +.. index:: rtems_cbs_set_parameters CBS_SET_PARAMETERS - Set scheduling parameters ---------------------------------------------- -.. index:: set scheduling parameters -.. index:: rtems_cbs_set_parameters CALLING SEQUENCE: .. code-block:: c @@ -573,11 +572,11 @@ NOTES: \clearpage .. _rtems_cbs_get_execution_time: +.. index:: get elapsed execution time +.. index:: rtems_cbs_get_execution_time CBS_GET_EXECUTION_TIME - Get elapsed execution time --------------------------------------------------- -.. index:: get elapsed execution time -.. index:: rtems_cbs_get_execution_time CALLING SEQUENCE: .. code-block:: c @@ -611,11 +610,11 @@ NOTES: \clearpage .. _rtems_cbs_get_remaining_budget: +.. index:: get remaining execution time +.. index:: rtems_cbs_get_remaining_budget CBS_GET_REMAINING_BUDGET - Get remaining execution time ------------------------------------------------------- -.. index:: get remaining execution time -.. index:: rtems_cbs_get_remaining_budget CALLING SEQUENCE: .. code-block:: c @@ -649,11 +648,11 @@ NOTES: \clearpage .. _rtems_cbs_get_approved_budget: +.. index:: get scheduler approved execution time +.. index:: rtems_cbs_get_approved_budget CBS_GET_APPROVED_BUDGET - Get scheduler approved execution time --------------------------------------------------------------- -.. index:: get scheduler approved execution time -.. index:: rtems_cbs_get_approved_budget CALLING SEQUENCE: .. code-block:: c diff --git a/c-user/cpu_usage_statistics.rst b/c-user/cpu_usage_statistics.rst index 81eb41f..fde008f 100644 --- a/c-user/cpu_usage_statistics.rst +++ b/c-user/cpu_usage_statistics.rst @@ -4,6 +4,8 @@ .. COMMENT: On-Line Applications Research Corporation (OAR). .. COMMENT: All rights reserved. +.. index:: CPU Usage + CPU Usage Statistics ******************** @@ -109,6 +111,7 @@ calling sequence, related constants, usage, and status codes. \clearpage .. _rtems_cpu_usage_report: +.. index:: rtems_cpu_usage_report cpu_usage_report - Report CPU Usage Statistics ---------------------------------------------- @@ -133,6 +136,7 @@ NOTES: \clearpage .. _rtems_cpu_usage_reset: +.. index:: rtems_cpu_usage_reset cpu_usage_reset - Reset CPU Usage Statistics -------------------------------------------- diff --git a/c-user/directive_status_codes.rst b/c-user/directive_status_codes.rst index 420a0a0..6acfd4d 100644 --- a/c-user/directive_status_codes.rst +++ b/c-user/directive_status_codes.rst @@ -3,6 +3,8 @@ .. COMMENT: Copyright 2015 embedded brains GmbH .. COMMENT: All rights reserved. +.. index:: Status Codes + Directive Status Codes ********************** @@ -18,6 +20,8 @@ Directives The directives are: +.. index:: rtems_status_code + .. list-table:: :class: rtems-table @@ -81,10 +85,10 @@ The directives are: \clearpage .. _rtems_status_text: +.. index:: rtems_status_text STATUS_TEXT - Returns the enumeration name for a status code ------------------------------------------------------------ -.. index:: rtems_status_text CALLING SEQUENCE: .. code-block:: c diff --git a/c-user/dual_ports_memory_manager.rst b/c-user/dual_ports_memory_manager.rst index 18b5808..ed93482 100644 --- a/c-user/dual_ports_memory_manager.rst +++ b/c-user/dual_ports_memory_manager.rst @@ -4,12 +4,12 @@ .. COMMENT: On-Line Applications Research Corporation (OAR). .. COMMENT: All rights reserved. -Dual-Ported Memory Manager -************************** - .. index:: ports .. index:: dual ported memory +Dual-Ported Memory Manager +************************** + Introduction ============ @@ -27,12 +27,13 @@ areas (DPMA). The directives provided by the dual-ported memory manager are: - rtems_port_internal_to_external_ - Convert internal to external address -Background -========== .. index:: dual ported memory, definition .. index:: external addresses, definition .. index:: internal addresses, definition +Background +========== + A dual-ported memory area (DPMA) is an contiguous block of RAM owned by a particular processor but which can be accessed by other processors in the system. The owner accesses the memory using internal addresses, while other @@ -99,11 +100,11 @@ sequence, related constants, usage, and status codes. \clearpage .. _rtems_port_create: +.. index:: create a port +.. index:: rtems_port_create PORT_CREATE - Create a port --------------------------- -.. index:: create a port -.. index:: rtems_port_create CALLING SEQUENCE: .. code-block:: c @@ -152,13 +153,13 @@ NOTES: \clearpage .. _rtems_port_ident: - -PORT_IDENT - Get ID of a port ------------------------------ .. index:: get ID of a port .. index:: obtain ID of a port .. index:: rtems_port_ident +PORT_IDENT - Get ID of a port +----------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -193,11 +194,11 @@ NOTES: \clearpage .. _rtems_port_delete: +.. index:: delete a port +.. index:: rtems_port_delete PORT_DELETE - Delete a port --------------------------- -.. index:: delete a port -.. index:: rtems_port_delete CALLING SEQUENCE: .. code-block:: c @@ -230,11 +231,11 @@ NOTES: \clearpage .. _rtems_port_external_to_internal: +.. index:: convert external to internal address +.. index:: rtems_port_external_to_internal PORT_EXTERNAL_TO_INTERNAL - Convert external to internal address ---------------------------------------------------------------- -.. index:: convert external to internal address -.. index:: rtems_port_external_to_internal CALLING SEQUENCE: .. code-block:: c @@ -270,11 +271,11 @@ NOTES: \clearpage .. _rtems_port_internal_to_external: +.. index:: convert internal to external address +.. index:: rtems_port_internal_to_external PORT_INTERNAL_TO_EXTERNAL - Convert internal to external address ---------------------------------------------------------------- -.. index:: convert internal to external address -.. index:: rtems_port_internal_to_external CALLING SEQUENCE: .. code-block:: c diff --git a/c-user/event_manager.rst b/c-user/event_manager.rst index 784fbd9..d3c1a95 100644 --- a/c-user/event_manager.rst +++ b/c-user/event_manager.rst @@ -4,11 +4,11 @@ .. COMMENT: On-Line Applications Research Corporation (OAR). .. COMMENT: All rights reserved. +.. index:: events + Event Manager ************* -.. index:: events - Introduction ============ @@ -21,12 +21,13 @@ and synchronization. The directives provided by the event manager are: Background ========== -Event Sets ----------- .. index:: event flag, definition .. index:: event set, definition .. index:: rtems_event_set +Event Sets +---------- + An event flag is used by a task (or ISR) to inform another task of the occurrence of a significant situation. Thirty-two event flags are associated with each task. A collection of one or more event flags is referred to as an @@ -59,11 +60,12 @@ condition is satisfied when at least a single requested event is posted. The ``RTEMS_EVENT_ALL`` algorithm states that an event condition is satisfied when every requested event is posted. -Building an Event Set or Condition ----------------------------------- .. index:: event condition, building .. index:: event set, building +Building an Event Set or Condition +---------------------------------- + An event set or condition is built by a bitwise OR of the desired events. The set of valid events is ``RTEMS_EVENT_0`` through ``RTEMS_EVENT_31``. If an event is not explicitly specified in the set or condition, then it is not @@ -181,11 +183,11 @@ related constants, usage, and status codes. \clearpage .. _rtems_event_send: +.. index:: send event set to a task +.. index:: rtems_event_send EVENT_SEND - Send event set to a task ------------------------------------- -.. index:: send event set to a task -.. index:: rtems_event_send CALLING SEQUENCE: .. code-block:: c @@ -232,11 +234,11 @@ NOTES: \clearpage .. _rtems_event_receive: +.. index:: receive event condition +.. index:: rtems_event_receive EVENT_RECEIVE - Receive event condition --------------------------------------- -.. index:: receive event condition -.. index:: rtems_event_receive CALLING SEQUENCE: .. code-block:: c diff --git a/c-user/fatal_error.rst b/c-user/fatal_error.rst index c716c89..6cee174 100644 --- a/c-user/fatal_error.rst +++ b/c-user/fatal_error.rst @@ -5,12 +5,11 @@ .. COMMENT: All rights reserved. .. _fatal_error_manager: +.. index:: fatal errors Fatal Error Manager ******************* -.. index:: fatal errors - Introduction ============ @@ -34,13 +33,13 @@ provided by the fatal error manager are: Background ========== -Overview --------- - .. index:: fatal error detection .. index:: fatal error processing .. index:: fatal error user extension +Overview +-------- + The fatal error manager is called upon detection of an irrecoverable error condition by either RTEMS or the application software. Fatal errors are also used in case it is difficult or impossible to return an error condition by @@ -388,10 +387,10 @@ Operations ========== .. _Terminate: +.. index:: _Terminate Announcing a Fatal Error ------------------------ -.. index:: _Terminate The :c:func:`_Terminate()` internal error handler is invoked when the application or the executive itself determines that a fatal error has occurred @@ -443,13 +442,13 @@ sequence, related constants, usage, and status codes. \clearpage .. _rtems_fatal: - -FATAL - Invoke the fatal error ------------------------------- .. index:: announce fatal error .. index:: fatal error, announce .. index:: rtems_fatal +FATAL - Invoke the fatal error +------------------------------ + CALLING SEQUENCE: .. code-block:: c @@ -473,12 +472,12 @@ NOTE: \clearpage .. _rtems_shutdown_executive: +.. index:: shutdown RTEMS +.. index:: rtems_shutdown_executive SHUTDOWN_EXECUTIVE - Shutdown RTEMS ----------------------------------- -.. index:: shutdown RTEMS -.. index:: rtems_shutdown_executive CALLING SEQUENCE: .. code-block:: c @@ -505,11 +504,11 @@ NOTES: \clearpage .. _rtems_exception_frame_print: +.. index:: exception frame +.. index:: rtems_exception_frame_print EXCEPTION_FRAME_PRINT - Prints the exception frame -------------------------------------------------- -.. index:: exception frame -.. index:: rtems_exception_frame_print CALLING SEQUENCE: .. code-block:: c @@ -529,11 +528,11 @@ DESCRIPTION: \clearpage .. _rtems_fatal_source_text: +.. index:: fatal error +.. index:: rtems_fatal_source_text FATAL_SOURCE_TEXT - Returns a text for a fatal source ----------------------------------------------------- -.. index:: fatal error -.. index:: rtems_fatal_source_text CALLING SEQUENCE: .. code-block:: c @@ -554,11 +553,11 @@ DESCRIPTION: \clearpage .. _rtems_internal_error_text: +.. index:: fatal error +.. index:: rtems_internal_error_text INTERNAL_ERROR_TEXT - Returns a text for an internal error code --------------------------------------------------------------- -.. index:: fatal error -.. index:: rtems_internal_error_text CALLING SEQUENCE: .. code-block:: c @@ -579,13 +578,13 @@ DESCRIPTION: \clearpage .. _rtems_fatal_error_occurred: - -FATAL_ERROR_OCCURRED - Invoke the fatal error handler (deprecated) ------------------------------------------------------------------- .. index:: announce fatal error .. index:: fatal error, announce .. index:: rtems_fatal_error_occurred +FATAL_ERROR_OCCURRED - Invoke the fatal error handler (deprecated) +------------------------------------------------------------------ + CALLING SEQUENCE: .. code-block:: c diff --git a/c-user/initialization.rst b/c-user/initialization.rst index 7d7d2de..a04633d 100644 --- a/c-user/initialization.rst +++ b/c-user/initialization.rst @@ -22,9 +22,10 @@ The Initialization Manager provides only one directive: Background ========== +.. index:: initialization tasks + Initialization Tasks -------------------- -.. index:: initialization tasks Initialization task(s) are the mechanism by which RTEMS transfers initial control to the user's application. Initialization tasks differ from other @@ -305,13 +306,13 @@ sequence, related constants, usage, and status codes. \clearpage .. _rtems_initialize_executive: +.. index:: initialize RTEMS +.. index:: start multitasking +.. index:: rtems_initialize_executive INITIALIZE_EXECUTIVE - Initialize RTEMS --------------------------------------- -.. index:: initialize RTEMS -.. index:: start multitasking -.. index:: rtems_initialize_executive CALLING SEQUENCE: .. code-block:: c diff --git a/c-user/interrupt_manager.rst b/c-user/interrupt_manager.rst index 37b5cbe..41dc8dd 100644 --- a/c-user/interrupt_manager.rst +++ b/c-user/interrupt_manager.rst @@ -4,6 +4,8 @@ .. COMMENT: On-Line Applications Research Corporation (OAR). .. COMMENT: All rights reserved. +.. index:: interrupts + Interrupt Manager ***************** @@ -44,9 +46,10 @@ from an ISR. The interrupt manager includes the following directive: Background ========== +.. index:: interrupt processing + Processing an Interrupt ----------------------- -.. index:: interrupt processing The interrupt manager allows the application to connect a function to a hardware interrupt vector. When an interrupt occurs, the processor will @@ -111,9 +114,10 @@ another ISR. RTEMS supports efficient interrupt nesting by allowing the nested ISRs to terminate without performing any dispatch processing. Only when the outermost ISR terminates will the postponed dispatching occur. +.. index:: interrupt levels + RTEMS Interrupt Levels ---------------------- -.. index:: interrupt levels Many processors support multiple interrupt levels or priorities. The exact number of interrupt levels is processor dependent. RTEMS internally supports @@ -122,9 +126,10 @@ specific information on the mapping between RTEMS and the target processor's interrupt levels, refer to the Interrupt Processing chapter of the Applications Supplement document for a specific target processor. +.. index:: disabling interrupts + Disabling of Interrupts by RTEMS -------------------------------- -.. index:: disabling interrupts During the execution of directive calls, critical sections of code may be executed. When these sections are encountered, RTEMS disables all maskable @@ -264,13 +269,13 @@ sequence, related constants, usage, and status codes. \clearpage .. _rtems_interrupt_catch: - -INTERRUPT_CATCH - Establish an ISR ----------------------------------- .. index:: establish an ISR .. index:: install an ISR .. index:: rtems_interrupt_catch +INTERRUPT_CATCH - Establish an ISR +---------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -308,11 +313,11 @@ NOTES: \clearpage .. _rtems_interrupt_disable: +.. index:: disable interrupts +.. index:: rtems_interrupt_disable INTERRUPT_DISABLE - Disable Interrupts -------------------------------------- -.. index:: disable interrupts -.. index:: rtems_interrupt_disable CALLING SEQUENCE: .. code-block:: c @@ -346,11 +351,11 @@ NOTES: \clearpage .. _rtems_interrupt_enable: +.. index:: enable interrupts +.. index:: rtems_interrupt_enable INTERRUPT_ENABLE - Enable Interrupts ------------------------------------ -.. index:: enable interrupts -.. index:: rtems_interrupt_enable CALLING SEQUENCE: .. code-block:: c @@ -381,11 +386,11 @@ NOTES: \clearpage .. _rtems_interrupt_flash: +.. index:: flash interrupts +.. index:: rtems_interrupt_flash INTERRUPT_FLASH - Flash Interrupts ---------------------------------- -.. index:: flash interrupts -.. index:: rtems_interrupt_flash CALLING SEQUENCE: .. code-block:: c @@ -416,11 +421,11 @@ NOTES: \clearpage .. _rtems_interrupt_local_disable: +.. index:: disable interrupts +.. index:: rtems_interrupt_local_disable INTERRUPT_LOCAL_DISABLE - Disable Interrupts on Current Processor ----------------------------------------------------------------- -.. index:: disable interrupts -.. index:: rtems_interrupt_local_disable CALLING SEQUENCE: .. code-block:: c @@ -453,11 +458,11 @@ NOTES: \clearpage .. _rtems_interrupt_local_enable: +.. index:: enable interrupts +.. index:: rtems_interrupt_local_enable INTERRUPT_LOCAL_ENABLE - Enable Interrupts on Current Processor --------------------------------------------------------------- -.. index:: enable interrupts -.. index:: rtems_interrupt_local_enable CALLING SEQUENCE: .. code-block:: c @@ -484,10 +489,10 @@ NOTES: \clearpage .. _rtems_interrupt_lock_initialize: +.. index:: rtems_interrupt_lock_initialize INTERRUPT_LOCK_INITIALIZE - Initialize an ISR Lock -------------------------------------------------- -.. index:: rtems_interrupt_lock_initialize CALLING SEQUENCE: .. code-block:: c @@ -512,10 +517,10 @@ NOTES: \clearpage .. _rtems_interrupt_lock_acquire: +.. index:: rtems_interrupt_lock_acquire INTERRUPT_LOCK_ACQUIRE - Acquire an ISR Lock -------------------------------------------- -.. index:: rtems_interrupt_lock_acquire CALLING SEQUENCE: .. code-block:: c @@ -547,10 +552,10 @@ NOTES: \clearpage .. _rtems_interrupt_lock_release: +.. index:: rtems_interrupt_lock_release INTERRUPT_LOCK_RELEASE - Release an ISR Lock -------------------------------------------- -.. index:: rtems_interrupt_lock_release CALLING SEQUENCE: .. code-block:: c @@ -579,10 +584,10 @@ NOTES: \clearpage .. _rtems_interrupt_lock_acquire_isr: +.. index:: rtems_interrupt_lock_acquire_isr INTERRUPT_LOCK_ACQUIRE_ISR - Acquire an ISR Lock from ISR --------------------------------------------------------- -.. index:: rtems_interrupt_lock_acquire_isr CALLING SEQUENCE: .. code-block:: c @@ -617,10 +622,10 @@ NOTES: \clearpage .. _rtems_interrupt_lock_release_isr: +.. index:: rtems_interrupt_lock_release_isr INTERRUPT_LOCK_RELEASE_ISR - Release an ISR Lock from ISR --------------------------------------------------------- -.. index:: rtems_interrupt_lock_release_isr CALLING SEQUENCE: .. code-block:: c @@ -649,11 +654,11 @@ NOTES: \clearpage .. _rtems_interrupt_is_in_progress: +.. index:: is interrupt in progress +.. index:: rtems_interrupt_is_in_progress INTERRUPT_IS_IN_PROGRESS - Is an ISR in Progress ------------------------------------------------ -.. index:: is interrupt in progress -.. index:: rtems_interrupt_is_in_progress CALLING SEQUENCE: .. code-block:: c diff --git a/c-user/io_manager.rst b/c-user/io_manager.rst index cb8f70d..ab7be41 100644 --- a/c-user/io_manager.rst +++ b/c-user/io_manager.rst @@ -4,12 +4,12 @@ .. COMMENT: On-Line Applications Research Corporation (OAR). .. COMMENT: All rights reserved. -I/O Manager -*********** - .. index:: device drivers .. index:: IO Manager +I/O Manager +*********** + Introduction ============ @@ -40,9 +40,10 @@ drivers. The directives provided by the I/O manager are: Background ========== +.. index:: Device Driver Table + Device Driver Table ------------------- -.. index:: Device Driver Table Each application utilizing the RTEMS I/O manager must specify the address of a Device Driver Table in its Configuration Table. This table contains each device @@ -73,11 +74,12 @@ table. The :file:`confdefs.h` entry ``CONFIGURE_MAXIMUM_DRIVERS`` configures the number of driver slots available to the application. -Major and Minor Device Numbers ------------------------------- .. index:: major device number .. index:: minor device number +Major and Minor Device Numbers +------------------------------ + Each call to the I/O manager must provide a device's major and minor numbers as arguments. The major number is the index of the requested driver's entry points in the Device Driver Table, and is used to select a specific device @@ -91,9 +93,10 @@ driver. The data types ``rtems_device_major_number`` and ``rtems_device_minor_number`` are used to manipulate device major and minor numbers, respectively. +.. index:: device names + Device Names ------------ -.. index:: device names The I/O Manager provides facilities to associate a name with a particular device. Directives are provided to register the name of a device and to look @@ -122,9 +125,10 @@ Although the RTEMS I/O manager provides a framework for device drivers, it makes no assumptions regarding the construction or operation of a device driver. +.. index:: runtime driver registration + Runtime Driver Registration --------------------------- -.. index:: runtime driver registration Board support package and application developers can select wether a device driver is statically entered into the default device table or registered at @@ -144,9 +148,10 @@ Dynamic registration helps applications where: - Support for runtime loadable driver modules. +.. index:: device driver interface + Device Driver Interface ----------------------- -.. index:: device driver interface When an application invokes an I/O manager directive, RTEMS determines which device driver entry point must be invoked. The information passed by the @@ -226,11 +231,11 @@ related constants, usage, and status codes. \clearpage .. _rtems_io_register_driver: +.. index:: register a device driver +.. index:: rtems_io_register_driver IO_REGISTER_DRIVER - Register a device driver --------------------------------------------- -.. index:: register a device driver -.. index:: rtems_io_register_driver CALLING SEQUENCE: .. code-block:: c @@ -284,11 +289,11 @@ NOTES: \clearpage .. _rtems_io_unregister_driver: +.. index:: unregister a device driver +.. index:: rtems_io_unregister_driver IO_UNREGISTER_DRIVER - Unregister a device driver ------------------------------------------------- -.. index:: unregister a device driver -.. index:: rtems_io_unregister_driver CALLING SEQUENCE: .. code-block:: c @@ -317,11 +322,11 @@ NOTES: \clearpage .. _rtems_io_initialize: +.. index:: initialize a device driver +.. index:: rtems_io_initialize IO_INITIALIZE - Initialize a device driver ------------------------------------------ -.. index:: initialize a device driver -.. index:: rtems_io_initialize CALLING SEQUENCE: .. code-block:: c @@ -360,11 +365,11 @@ NOTES: \clearpage .. _rtems_io_register_name: +.. index:: register device +.. index:: rtems_io_register_name IO_REGISTER_NAME - Register a device ------------------------------------ -.. index:: register device -.. index:: rtems_io_register_name CALLING SEQUENCE: .. code-block:: c @@ -395,11 +400,11 @@ NOTES: \clearpage .. _rtems_io_lookup_name: +.. index:: lookup device major and minor number +.. index:: rtems_io_lookup_name IO_LOOKUP_NAME - Lookup a device -------------------------------- -.. index:: lookup device major and minor number -.. index:: rtems_io_lookup_name CALLING SEQUENCE: .. code-block:: c @@ -430,11 +435,11 @@ NOTES: \clearpage .. _rtems_io_open: +.. index:: open a devive +.. index:: rtems_io_open IO_OPEN - Open a device ----------------------- -.. index:: open a devive -.. index:: rtems_io_open CALLING SEQUENCE: .. code-block:: c @@ -468,11 +473,11 @@ NOTES: \clearpage .. _rtems_io_close: +.. index:: close a device +.. index:: rtems_io_close IO_CLOSE - Close a device ------------------------- -.. index:: close a device -.. index:: rtems_io_close CALLING SEQUENCE: .. code-block:: c @@ -506,11 +511,11 @@ NOTES: \clearpage .. _rtems_io_read: +.. index:: read from a device +.. index:: rtems_io_read IO_READ - Read from a device ---------------------------- -.. index:: read from a device -.. index:: rtems_io_read CALLING SEQUENCE: .. code-block:: c @@ -545,11 +550,11 @@ NOTES: \clearpage .. _rtems_io_write: +.. index:: write to a device +.. index:: rtems_io_write IO_WRITE - Write to a device ---------------------------- -.. index:: write to a device -.. index:: rtems_io_write CALLING SEQUENCE: .. code-block:: c @@ -584,13 +589,13 @@ NOTES: \clearpage .. _rtems_io_control: - -IO_CONTROL - Special device services ------------------------------------- .. index:: special device services .. index:: IO Control .. index:: rtems_io_control +IO_CONTROL - Special device services +------------------------------------ + CALLING SEQUENCE: .. code-block:: c diff --git a/c-user/key_concepts.rst b/c-user/key_concepts.rst index 3d1a473..c88132e 100644 --- a/c-user/key_concepts.rst +++ b/c-user/key_concepts.rst @@ -17,11 +17,11 @@ one with these concepts. .. _objects: +.. index:: objects + Objects ======= -.. index:: objects - RTEMS provides directives which can be used to dynamically create, delete, and manipulate a set of predefined object types. These types include tasks, message queues, semaphores, memory regions, memory partitions, timers, ports, @@ -37,14 +37,17 @@ selected by the user as a meaningful "tag" which may commonly reflect the object's use in the application. Conversely, object IDs are designed to facilitate efficient object manipulation by the executive. -Object Names ------------- .. index:: object name .. index:: rtems_name +Object Names +------------ + An object name is an unsigned thirty-two bit entity associated with the object by the user. The data type ``rtems_name`` is used to store object -names... index:: rtems_build_name +names. + +.. index:: rtems_build_name Although not required by RTEMS, object names are often composed of four ASCII characters which help identify that object. For example, a task which causes a @@ -84,12 +87,13 @@ name: printk( "ID=0x%08x name=%s\n", id, ((result) ? result : "no name") ); } -Object IDs ----------- .. index:: object ID .. index:: object ID composition .. index:: rtems_id +Object IDs +---------- + An object ID is a unique unsigned integer value which uniquely identifies an object instance. Object IDs are passed as arguments to many directives in RTEMS and RTEMS translates the ID to an internal object pointer. The efficient @@ -198,9 +202,10 @@ create time and freed when the object is deleted. With the exception of user extension routines, object control blocks are not directly manipulated by user applications. +.. index:: communication and synchronization + Communication and Synchronization ================================= -.. index:: communication and synchronization In real-time multitasking applications, the ability for cooperating execution threads to communicate and synchronize with each other is imperative. A @@ -239,9 +244,10 @@ synchronization, while the event manager primarily provides a high performance synchronization mechanism. The signal manager supports only asynchronous communication and is typically used for exception handling. +.. index:: locking protocols + Locking Protocols ================= -.. index:: locking protocols RTEMS supports the four locking protocols @@ -265,10 +271,10 @@ obtain, release and timeout operations depend on the complexity of this resource dependency graph. .. _PriorityInversion: +.. index:: priority inversion Priority Inversion ------------------ -.. index:: priority inversion Priority inversion is a form of indefinite postponement which is common in multitasking, preemptive executives with shared resources. Priority inversion @@ -281,11 +287,11 @@ complete its interaction with the resource and release that resource. The high priority task is effectively prevented from executing by lower priority tasks. .. _PriorityCeiling: +.. index:: priority ceiling protocol +.. index:: immediate ceiling priority protocol Immediate Ceiling Priority Protocol (ICPP) ------------------------------------------ -.. index:: priority ceiling protocol -.. index:: immediate ceiling priority protocol Each mutex using the Immediate Ceiling Priority Protocol (ICPP) has a ceiling priority. The priority of the mutex owner is immediately raised to the ceiling @@ -307,10 +313,10 @@ protocol is more forgiving in that it does not require this apriori information. .. _PriorityInheritance: +.. index:: priority inheritance protocol Priority Inheritance Protocol ----------------------------- -.. index:: priority inheritance protocol The priority of the mutex owner is raised to the highest priority of all threads that currently wait for ownership of this mutex :cite:`Sha:1990:PI`. @@ -318,10 +324,10 @@ Since RTEMS 5.1, priority updates due to the priority inheritance protocol take place immediately and are propagated recursively. .. _MrsP: +.. index:: Multiprocessor Resource Sharing Protocol (MrsP) Multiprocessor Resource Sharing Protocol (MrsP) ----------------------------------------------- -.. index:: Multiprocessor Resource Sharing Protocol (MrsP) The Multiprocessor Resource Sharing Protocol (MrsP) is a generalization of the priority ceiling protocol to clustered scheduling :cite:`Burns:2013:MrsP`. One @@ -339,10 +345,10 @@ overcome some shortcomings of the original implementation :cite:`Catellani:2015:MrsP`. .. _OMIP: +.. index:: O(m) Independence-Preserving Protocol (OMIP) O(m) Independence-Preserving Protocol (OMIP) ---------------------------------------------------- -.. index:: O(m) Independence-Preserving Protocol (OMIP) The :math:`O(m)` Independence-Preserving Protocol (OMIP) is a generalization of the priority inheritance protocol to clustered scheduling which avoids the @@ -355,9 +361,10 @@ need internal locking. The complex part of the implementation is contained in the thread queues and shared with the MrsP support. This locking protocol is available since RTEMS 5.1. +.. index:: thread queues + Thread Queues ============= -.. index:: thread queues In case more than one :term:`thread` may wait on a synchronization object, e.g. a semaphore or a message queue, then the waiting threads are added to a data @@ -415,9 +422,10 @@ A red-black tree is used to implement the priority queues yielding a :math:`O(log(n))` worst-case time complexity for enqueue and dequeue operations with :math:`n` being the count of threads already on the queue. +.. index:: time + Time ==== -.. index:: time The development of responsive real-time applications requires an understanding of how RTEMS maintains and supports time-related operations. The basic unit of @@ -505,9 +513,10 @@ and removal operations offered by the timer wheel algorithms. See also tree support already used in other areas, e.g. for the thread priority queues. Less code is a good thing for size, testing and verification. +.. index:: memory management + Memory Management ================= -.. index:: memory management RTEMS memory management facilities can be grouped into two classes: dynamic memory allocation and address translation. Dynamic memory allocation is diff --git a/c-user/linker_sets.rst b/c-user/linker_sets.rst index f6f250e..a93f829 100644 --- a/c-user/linker_sets.rst +++ b/c-user/linker_sets.rst @@ -5,12 +5,11 @@ .. COMMENT: All rights reserved. .. _linker_sets: +.. index:: linkersets Linker Sets *********** -.. index:: linkersets - Introduction ============ @@ -128,10 +127,10 @@ Directives \clearpage .. _RTEMS_LINKER_SET_BEGIN: +.. index:: RTEMS_LINKER_SET_BEGIN RTEMS_LINKER_SET_BEGIN - Designator of the linker set begin marker ------------------------------------------------------------------ -.. index:: RTEMS_LINKER_SET_BEGIN CALLING SEQUENCE: .. code-block:: c @@ -161,10 +160,10 @@ NOTE: \clearpage .. _RTEMS_LINKER_SET_END: +.. index:: RTEMS_LINKER_SET_END RTEMS_LINKER_SET_END - Designator of the linker set end marker -------------------------------------------------------------- -.. index:: RTEMS_LINKER_SET_END CALLING SEQUENCE: .. code-block:: c @@ -183,10 +182,10 @@ DESCRIPTION: \clearpage .. _RTEMS_LINKER_SET_SIZE: +.. index:: RTEMS_LINKER_SET_SIZE RTEMS_LINKER_SET_SIZE - The linker set size in characters --------------------------------------------------------- -.. index:: RTEMS_LINKER_SET_SIZE CALLING SEQUENCE: .. code-block:: c @@ -204,10 +203,10 @@ DESCRIPTION: \clearpage .. _RTEMS_LINKER_SET_ITEM_COUNT: +.. index:: RTEMS_LINKER_SET_ITEM_COUNT RTEMS_LINKER_SET_ITEM_COUNT - The linker set item count --------------------------------------------------------- -.. index:: RTEMS_LINKER_SET_ITEM_COUNT CALLING SEQUENCE: .. code-block:: c @@ -224,10 +223,10 @@ DESCRIPTION: \clearpage .. _RTEMS_LINKER_SET_IS_EMPTY: +.. index:: RTEMS_LINKER_SET_IS_EMPTY RTEMS_LINKER_SET_IS_EMPTY - Is the linker set empty? --------------------------------------------------------- -.. index:: RTEMS_LINKER_SET_IS_EMPTY CALLING SEQUENCE: .. code-block:: c @@ -245,10 +244,10 @@ DESCRIPTION: \clearpage .. _RTEMS_LINKER_SET_FOREACH: +.. index:: RTEMS_LINKER_SET_FOREACH RTEMS_LINKER_SET_FOREACH - Iterate through the linker set items --------------------------------------------------------- -.. index:: RTEMS_LINKER_SET_FOREACH CALLING SEQUENCE: .. code-block:: c @@ -281,10 +280,10 @@ DESCRIPTION: \clearpage .. _RTEMS_LINKER_ROSET_DECLARE: +.. index:: RTEMS_LINKER_ROSET_DECLARE RTEMS_LINKER_ROSET_DECLARE - Declares a read-only linker set ------------------------------------------------------------ -.. index:: RTEMS_LINKER_ROSET_DECLARE CALLING SEQUENCE: .. code-block:: c @@ -304,10 +303,10 @@ DESCRIPTION: \clearpage .. _RTEMS_LINKER_ROSET: +.. index:: RTEMS_LINKER_ROSET RTEMS_LINKER_ROSET - Defines a read-only linker set --------------------------------------------------- -.. index:: RTEMS_LINKER_ROSET CALLING SEQUENCE: .. code-block:: c @@ -327,10 +326,10 @@ DESCRIPTION: \clearpage .. _RTEMS_LINKER_ROSET_ITEM_DECLARE: +.. index:: RTEMS_LINKER_ROSET_ITEM_DECLARE RTEMS_LINKER_ROSET_ITEM_DECLARE - Declares a read-only linker set item ---------------------------------------------------------------------- -.. index:: RTEMS_LINKER_ROSET_ITEM_DECLARE CALLING SEQUENCE: .. code-block:: c @@ -352,10 +351,10 @@ DESCRIPTION: \clearpage .. _RTEMS_LINKER_ROSET_ITEM_REFERENCE: +.. index:: RTEMS_LINKER_ROSET_ITEM_REFERENCE RTEMS_LINKER_ROSET_ITEM_REFERENCE - References a read-only linker set item -------------------------------------------------------------------------- -.. index:: RTEMS_LINKER_ROSET_ITEM_REFERENCE CALLING SEQUENCE: .. code-block:: c @@ -377,10 +376,10 @@ DESCRIPTION: \clearpage .. _RTEMS_LINKER_ROSET_ITEM: +.. index:: RTEMS_LINKER_ROSET_ITEM RTEMS_LINKER_ROSET_ITEM - Defines a read-only linker set item ------------------------------------------------------------- -.. index:: RTEMS_LINKER_ROSET_ITEM CALLING SEQUENCE: .. code-block:: c @@ -402,10 +401,10 @@ DESCRIPTION: \clearpage .. _RTEMS_LINKER_ROSET_ITEM_ORDERED: +.. index:: RTEMS_LINKER_ROSET_ITEM_ORDERED RTEMS_LINKER_ROSET_ITEM_ORDERED - Defines an ordered read-only linker set item ------------------------------------------------------------------------------ -.. index:: RTEMS_LINKER_ROSET_ITEM_ORDERED CALLING SEQUENCE: .. code-block:: c @@ -459,10 +458,10 @@ NOTES: \clearpage .. _RTEMS_LINKER_ROSET_CONTENT: +.. index:: RTEMS_LINKER_ROSET_CONTENT RTEMS_LINKER_ROSET_CONTENT - Marks a declaration as a read-only linker set content ---------------------------------------------------------------------------------- -.. index:: RTEMS_LINKER_ROSET_CONTENT CALLING SEQUENCE: .. code-block:: c @@ -481,10 +480,10 @@ DESCRIPTION: \clearpage .. _RTEMS_LINKER_RWSET_DECLARE: +.. index:: RTEMS_LINKER_RWSET_DECLARE RTEMS_LINKER_RWSET_DECLARE - Declares a read-write linker set ------------------------------------------------------------- -.. index:: RTEMS_LINKER_RWSET_DECLARE CALLING SEQUENCE: .. code-block:: c @@ -504,10 +503,10 @@ DESCRIPTION: \clearpage .. _RTEMS_LINKER_RWSET: +.. index:: RTEMS_LINKER_RWSET RTEMS_LINKER_RWSET - Defines a read-write linker set ---------------------------------------------------- -.. index:: RTEMS_LINKER_RWSET CALLING SEQUENCE: .. code-block:: c @@ -527,10 +526,10 @@ DESCRIPTION: \clearpage .. _RTEMS_LINKER_RWSET_ITEM_DECLARE: +.. index:: RTEMS_LINKER_RWSET_ITEM_DECLARE RTEMS_LINKER_RWSET_ITEM_DECLARE - Declares a read-write linker set item ----------------------------------------------------------------------- -.. index:: RTEMS_LINKER_RWSET_ITEM_DECLARE CALLING SEQUENCE: .. code-block:: c @@ -552,10 +551,10 @@ DESCRIPTION: \clearpage .. _RTEMS_LINKER_RWSET_ITEM_REFERENCE: +.. index:: RTEMS_LINKER_RWSET_ITEM_REFERENCE RTEMS_LINKER_RWSET_ITEM_REFERENCE - References a read-write linker set item --------------------------------------------------------------------------- -.. index:: RTEMS_LINKER_RWSET_ITEM_REFERENCE CALLING SEQUENCE: .. code-block:: c @@ -577,10 +576,10 @@ DESCRIPTION: \clearpage .. _RTEMS_LINKER_RWSET_ITEM: +.. index:: RTEMS_LINKER_RWSET_ITEM RTEMS_LINKER_RWSET_ITEM - Defines a read-write linker set item -------------------------------------------------------------- -.. index:: RTEMS_LINKER_RWSET_ITEM CALLING SEQUENCE: .. code-block:: c @@ -602,10 +601,10 @@ DESCRIPTION: \clearpage .. _RTEMS_LINKER_RWSET_ITEM_ORDERED: +.. index:: RTEMS_LINKER_RWSET_ITEM_ORDERED RTEMS_LINKER_RWSET_ITEM_ORDERED - Defines an ordered read-write linker set item ------------------------------------------------------------------------------- -.. index:: RTEMS_LINKER_RWSET_ITEM_ORDERED CALLING SEQUENCE: .. code-block:: c @@ -659,10 +658,10 @@ NOTES: \clearpage .. _RTEMS_LINKER_RWSET_CONTENT: +.. index:: RTEMS_LINKER_RWSET_CONTENT RTEMS_LINKER_RWSET_CONTENT - Marks a declaration as a read-write linker set content ----------------------------------------------------------------------------------- -.. index:: RTEMS_LINKER_RWSET_CONTENT CALLING SEQUENCE: .. code-block:: c diff --git a/c-user/message_manager.rst b/c-user/message_manager.rst index 496137e..2c908d9 100644 --- a/c-user/message_manager.rst +++ b/c-user/message_manager.rst @@ -4,12 +4,12 @@ .. COMMENT: On-Line Applications Research Corporation (OAR). .. COMMENT: All rights reserved. -Message Manager -*************** - .. index:: messages .. index:: message queues +Message Manager +*************** + Introduction ============ @@ -64,9 +64,10 @@ buffer of the message queue or directly to a peer in certain cases. This copy operation is performed with interrupts disabled. So it is advisable to keep the messages as short as possible. +.. index:: message queue attributes + Building a Message Queue Attribute Set -------------------------------------- -.. index:: message queue attributes In general, an attribute set is built by a bitwise OR of the desired attribute components. The set of valid message queue attributes is provided in the @@ -220,11 +221,11 @@ sequence, related constants, usage, and status codes. \clearpage .. _rtems_message_queue_create: +.. index:: create a message queue +.. index:: rtems_message_queue_create MESSAGE_QUEUE_CREATE - Create a queue ------------------------------------- -.. index:: create a message queue -.. index:: rtems_message_queue_create CALLING SEQUENCE: .. code-block:: c @@ -307,11 +308,11 @@ NOTES: \clearpage .. _rtems_message_queue_ident: +.. index:: get ID of a message queue +.. index:: rtems_message_queue_ident MESSAGE_QUEUE_IDENT - Get ID of a queue --------------------------------------- -.. index:: get ID of a message queue -.. index:: rtems_message_queue_ident CALLING SEQUENCE: .. code-block:: c @@ -360,11 +361,11 @@ NOTES: \clearpage .. _rtems_message_queue_delete: +.. index:: delete a message queue +.. index:: rtems_message_queue_delete MESSAGE_QUEUE_DELETE - Delete a queue ------------------------------------- -.. index:: delete a message queue -.. index:: rtems_message_queue_delete CALLING SEQUENCE: .. code-block:: c @@ -418,11 +419,11 @@ NOTES: \clearpage .. _rtems_message_queue_send: +.. index:: send message to a queue +.. index:: rtems_message_queue_send MESSAGE_QUEUE_SEND - Put message at rear of a queue --------------------------------------------------- -.. index:: send message to a queue -.. index:: rtems_message_queue_send CALLING SEQUENCE: .. code-block:: c @@ -475,11 +476,11 @@ NOTES: \clearpage .. _rtems_message_queue_urgent: +.. index:: put message at front of queue +.. index:: rtems_message_queue_urgent MESSAGE_QUEUE_URGENT - Put message at front of a queue ------------------------------------------------------ -.. index:: put message at front of queue -.. index:: rtems_message_queue_urgent **CALLING SEQUENCE:** .. code-block:: c @@ -532,11 +533,11 @@ NOTES: \clearpage .. _rtems_message_queue_broadcast: +.. index:: broadcast message to a queue +.. index:: rtems_message_queue_broadcast MESSAGE_QUEUE_BROADCAST - Broadcast N messages to a queue --------------------------------------------------------- -.. index:: broadcast message to a queue -.. index:: rtems_message_queue_broadcast CALLING SEQUENCE: .. code-block:: c @@ -592,11 +593,11 @@ NOTES: \clearpage .. _rtems_message_queue_receive: +.. index:: receive message from a queue +.. index:: rtems_message_queue_receive MESSAGE_QUEUE_RECEIVE - Receive message from a queue ---------------------------------------------------- -.. index:: receive message from a queue -.. index:: rtems_message_queue_receive CALLING SEQUENCE: .. code-block:: c @@ -679,11 +680,11 @@ NOTES: \clearpage .. _rtems_message_queue_get_number_pending: +.. index:: get number of pending messages +.. index:: rtems_message_queue_get_number_pending MESSAGE_QUEUE_GET_NUMBER_PENDING - Get number of messages pending on a queue ---------------------------------------------------------------------------- -.. index:: get number of pending messages -.. index:: rtems_message_queue_get_number_pending CALLING SEQUENCE: .. code-block:: c @@ -718,11 +719,11 @@ NOTES: \clearpage .. _rtems_message_queue_flush: +.. index:: flush messages on a queue +.. index:: rtems_message_queue_flush MESSAGE_QUEUE_FLUSH - Flush all messages on a queue --------------------------------------------------- -.. index:: flush messages on a queue -.. index:: rtems_message_queue_flush CALLING SEQUENCE: .. code-block:: c diff --git a/c-user/multiprocessing.rst b/c-user/multiprocessing.rst index 6ff2dff..740eabf 100644 --- a/c-user/multiprocessing.rst +++ b/c-user/multiprocessing.rst @@ -4,11 +4,11 @@ .. COMMENT: On-Line Applications Research Corporation (OAR). .. COMMENT: All rights reserved. +.. index:: multiprocessing + Multiprocessing Manager *********************** -.. index:: multiprocessing - Introduction ============ @@ -42,11 +42,11 @@ The directives provided by the Manager are: - rtems_multiprocessing_announce_ - A multiprocessing communications packet has arrived +.. index:: multiprocessing topologies + Background ========== -.. index:: multiprocessing topologies - RTEMS makes no assumptions regarding the connection media or topology of a multiprocessor system. The tasks which compose a particular application can be spread among as many processors as needed to satisfy the application's timing @@ -68,9 +68,10 @@ a homogeneous one. In keeping with RTEMS philosophy of providing transparent physical node boundaries, the minimal heterogeneous processing required is isolated in the MPCI layer. +.. index:: nodes, definition + Nodes ----- -.. index:: nodes, definition A processor in a RTEMS system is referred to as a node. Each node is assigned a unique non-zero node number by the application designer. RTEMS assumes that @@ -85,9 +86,10 @@ The node number is used by RTEMS to identify each node when performing remote operations. Thus, the Multiprocessor Communications Interface Layer (MPCI) must be able to route messages based on the node number. +.. index:: global objects, definition + Global Objects -------------- -.. index:: global objects, definition All RTEMS objects which are created with the GLOBAL attribute will be known on all other nodes. Global objects can be referenced from any node in the system, @@ -99,9 +101,10 @@ field in the Multiprocessor Configuration Table. The distribution of tasks to processors is performed during the application design phase. Dynamic task relocation is not supported by RTEMS. +.. index:: global objects table + Global Object Table ------------------- -.. index:: global objects table RTEMS maintains two tables containing object information on every node in a multiprocessor system: a local object table and a global object table. The @@ -118,9 +121,10 @@ This parameter, as well as the maximum_nodes parameter, is required to be the same on all nodes. To maintain consistency among the table copies, every node in the system must be informed of the creation or deletion of a global object. +.. index:: MPCI and remote operations + Remote Operations ----------------- -.. index:: MPCI and remote operations When an application performs an operation on a remote global object, RTEMS must generate a Remote Request (RQ) message and send it to the appropriate node. @@ -175,9 +179,10 @@ error handler should be invoked. RTEMS assumes the reliable transmission and reception of messages by the MPCI and makes no attempt to detect or correct errors. +.. index:: proxy, definition + Proxies ------- -.. index:: proxy, definition A proxy is an RTEMS data structure which resides on a remote node and is used to represent a task which must block as part of a remote operation. This action @@ -381,9 +386,10 @@ The ``to_convert`` field of the ``rtems_packet_prefix`` portion of the packet indicates how much of the packet in 32-bit units may require conversion in a heterogeneous system. +.. index:: heterogeneous multiprocessing + Supporting Heterogeneous Environments ------------------------------------- -.. index:: heterogeneous multiprocessing Developing an MPCI layer for a heterogeneous system requires a thorough understanding of the differences between the processors which comprise the @@ -476,11 +482,11 @@ usage, and status codes. \clearpage .. _rtems_multiprocessing_announce: +.. index:: announce arrival of package +.. index:: rtems_multiprocessing_announce MULTIPROCESSING_ANNOUNCE - Announce the arrival of a packet ----------------------------------------------------------- -.. index:: announce arrival of package -.. index:: rtems_multiprocessing_announce CALLING SEQUENCE: .. code-block:: c diff --git a/c-user/object_services.rst b/c-user/object_services.rst index 0ee32ef..dd924da 100644 --- a/c-user/object_services.rst +++ b/c-user/object_services.rst @@ -4,11 +4,11 @@ .. COMMENT: On-Line Applications Research Corporation (OAR). .. COMMENT: All rights reserved. +.. index:: object manipulation + Object Services *************** -.. index:: object manipulation - Introduction ============ @@ -181,11 +181,11 @@ Directives \clearpage .. _rtems_build_name: +.. index:: build object name +.. index:: rtems_build_name BUILD_NAME - Build object name from characters ---------------------------------------------- -.. index:: build object name -.. index:: rtems_build_name CALLING SEQUENCE: .. code-block:: c @@ -213,13 +213,13 @@ NOTES: \clearpage .. _rtems_object_get_classic_name: - -OBJECT_GET_CLASSIC_NAME - Lookup name from id ---------------------------------------------- .. index:: get name from id .. index:: obtain name from id .. index:: rtems_object_get_classic_name +OBJECT_GET_CLASSIC_NAME - Lookup name from id +--------------------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -251,13 +251,13 @@ NOTES: \clearpage .. _rtems_object_get_name: - -OBJECT_GET_NAME - Obtain object name as string ----------------------------------------------- .. index:: get object name as string .. index:: obtain object name as string .. index:: rtems_object_get_name +OBJECT_GET_NAME - Obtain object name as string +---------------------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -284,11 +284,11 @@ NOTES: \clearpage .. _rtems_object_set_name: +.. index:: set object name +.. index:: rtems_object_set_name OBJECT_SET_NAME - Set object name --------------------------------- -.. index:: set object name -.. index:: rtems_object_set_name CALLING SEQUENCE: .. code-block:: c @@ -331,11 +331,11 @@ NOTES: \clearpage .. _rtems_object_id_get_api: +.. index:: obtain API from id +.. index:: rtems_object_id_get_api OBJECT_ID_GET_API - Obtain API from Id -------------------------------------- -.. index:: obtain API from id -.. index:: rtems_object_id_get_api CALLING SEQUENCE: .. code-block:: c @@ -360,11 +360,11 @@ NOTES: \clearpage .. _rtems_object_id_get_class: +.. index:: obtain class from object id +.. index:: rtems_object_id_get_class OBJECT_ID_GET_CLASS - Obtain Class from Id ------------------------------------------ -.. index:: obtain class from object id -.. index:: rtems_object_id_get_class CALLING SEQUENCE: .. code-block:: c @@ -389,11 +389,11 @@ NOTES: \clearpage .. _rtems_object_id_get_node: +.. index:: obtain node from object id +.. index:: rtems_object_id_get_node OBJECT_ID_GET_NODE - Obtain Node from Id ---------------------------------------- -.. index:: obtain node from object id -.. index:: rtems_object_id_get_node CALLING SEQUENCE: .. code-block:: c @@ -418,11 +418,11 @@ NOTES: \clearpage .. _rtems_object_id_get_index: +.. index:: obtain index from object id +.. index:: rtems_object_id_get_index OBJECT_ID_GET_INDEX - Obtain Index from Id ------------------------------------------ -.. index:: obtain index from object id -.. index:: rtems_object_id_get_index CALLING SEQUENCE: .. code-block:: c @@ -447,11 +447,11 @@ NOTES: \clearpage .. _rtems_build_id: +.. index:: build object id from components +.. index:: rtems_build_id BUILD_ID - Build Object Id From Components ------------------------------------------ -.. index:: build object id from components -.. index:: rtems_build_id CALLING SEQUENCE: .. code-block:: c @@ -481,11 +481,11 @@ NOTES: \clearpage .. _rtems_object_id_api_minimum: +.. index:: obtain minimum API value +.. index:: rtems_object_id_api_minimum OBJECT_ID_API_MINIMUM - Obtain Minimum API Value ------------------------------------------------ -.. index:: obtain minimum API value -.. index:: rtems_object_id_api_minimum CALLING SEQUENCE: .. code-block:: c @@ -506,11 +506,11 @@ NOTES: \clearpage .. _rtems_object_id_api_maximum: +.. index:: obtain maximum API value +.. index:: rtems_object_id_api_maximum OBJECT_ID_API_MAXIMUM - Obtain Maximum API Value ------------------------------------------------ -.. index:: obtain maximum API value -.. index:: rtems_object_id_api_maximum CALLING SEQUENCE: .. code-block:: c @@ -531,11 +531,11 @@ NOTES: \clearpage .. _rtems_object_api_minimum_class: +.. index:: obtain minimum class value +.. index:: rtems_object_api_minimum_class OBJECT_API_MINIMUM_CLASS - Obtain Minimum Class Value ----------------------------------------------------- -.. index:: obtain minimum class value -.. index:: rtems_object_api_minimum_class CALLING SEQUENCE: .. code-block:: c @@ -562,11 +562,11 @@ NOTES: \clearpage .. _rtems_object_api_maximum_class: +.. index:: obtain maximum class value +.. index:: rtems_object_api_maximum_class OBJECT_API_MAXIMUM_CLASS - Obtain Maximum Class Value ----------------------------------------------------- -.. index:: obtain maximum class value -.. index:: rtems_object_api_maximum_class CALLING SEQUENCE: .. code-block:: c @@ -593,11 +593,11 @@ NOTES: \clearpage .. _rtems_object_id_api_minimum_class: +.. index:: obtain minimum class value for an API +.. index:: rtems_object_id_api_minimum_class OBJECT_ID_API_MINIMUM_CLASS - Obtain Minimum Class Value for an API ------------------------------------------------------------------- -.. index:: obtain minimum class value for an API -.. index:: rtems_object_id_api_minimum_class CALLING SEQUENCE: .. code-block:: c @@ -624,11 +624,11 @@ NOTES: \clearpage .. _rtems_object_id_api_maximum_class: +.. index:: obtain maximum class value for an API +.. index:: rtems_object_id_api_maximum_class OBJECT_ID_API_MAXIMUM_CLASS - Obtain Maximum Class Value for an API ------------------------------------------------------------------- -.. index:: obtain maximum class value for an API -.. index:: rtems_object_id_api_maximum_class CALLING SEQUENCE: .. code-block:: c @@ -655,11 +655,11 @@ NOTES: \clearpage .. _rtems_object_get_api_name: +.. index:: obtain API name +.. index:: rtems_object_get_api_name OBJECT_GET_API_NAME - Obtain API Name ------------------------------------- -.. index:: obtain API name -.. index:: rtems_object_get_api_name CALLING SEQUENCE: .. code-block:: c @@ -687,11 +687,11 @@ NOTES: \clearpage .. _rtems_object_get_api_class_name: +.. index:: obtain class name +.. index:: rtems_object_get_api_class_name OBJECT_GET_API_CLASS_NAME - Obtain Class Name --------------------------------------------- -.. index:: obtain class name -.. index:: rtems_object_get_api_class_name CALLING SEQUENCE: .. code-block:: c @@ -723,11 +723,11 @@ NOTES: \clearpage .. _rtems_object_get_class_information: +.. index:: obtain class information +.. index:: rtems_object_get_class_information OBJECT_GET_CLASS_INFORMATION - Obtain Class Information ------------------------------------------------------- -.. index:: obtain class information -.. index:: rtems_object_get_class_information CALLING SEQUENCE: .. code-block:: c diff --git a/c-user/overview.rst b/c-user/overview.rst index e6722af..3a1862c 100644 --- a/c-user/overview.rst +++ b/c-user/overview.rst @@ -38,6 +38,8 @@ dependent are provided in the Applications Supplement documents. A supplement document which addresses specific architectural issues that affect RTEMS is provided for each processor type that is supported. +.. index:: Real-time applications + Real-time Application Systems ============================= @@ -73,6 +75,8 @@ communication channels and global resources that must be shared between competing processors are introduced. The ramifications of multiple processors complicate each and every characteristic of a real-time system. +.. index:: Real-time executive + Real-time Executive =================== @@ -113,6 +117,8 @@ developer is then able to concentrate solely on the application. By using standard software components, the time and cost required to develop sophisticated real-time applications is significantly reduced. +.. index:: Application architecture + RTEMS Application Architecture ============================== @@ -135,6 +141,8 @@ real-time system can benefit from this architecture by building a rich library of standard application components which can be used repeatedly in other real-time projects. +.. index:: Internal Architecture + RTEMS Internal Architecture =========================== diff --git a/c-user/partition_manager.rst b/c-user/partition_manager.rst index fafd988..9edf09f 100644 --- a/c-user/partition_manager.rst +++ b/c-user/partition_manager.rst @@ -4,11 +4,11 @@ .. COMMENT: On-Line Applications Research Corporation (OAR). .. COMMENT: All rights reserved. +.. index:: partitions + Partition Manager ***************** -.. index:: partitions - Introduction ============ @@ -28,9 +28,10 @@ fixed-size units. The directives provided by the partition manager are: Background ========== +.. index:: partition, definition + Partition Manager Definitions ----------------------------- -.. index:: partition, definition A partition is a physically contiguous memory area divided into fixed-size buffers that can be dynamically allocated and deallocated. @@ -45,9 +46,10 @@ buffer is allocated, the entire buffer is available for application use. Therefore, modifying memory that is outside of an allocated buffer could destroy the free buffer chain or the contents of an adjacent allocated buffer. +.. index:: partition attribute set, building + Building a Partition Attribute Set ---------------------------------- -.. index:: partition attribute set, building In general, an attribute set is built by a bitwise OR of the desired attribute components. The set of valid partition attributes is provided in the following @@ -134,11 +136,11 @@ sequence, related constants, usage, and status codes. \clearpage .. _rtems_partition_create: +.. index:: create a partition +.. index:: rtems_partition_create PARTITION_CREATE - Create a partition ------------------------------------- -.. index:: create a partition -.. index:: rtems_partition_create CALLING SEQUENCE: .. code-block:: c @@ -228,13 +230,13 @@ NOTES: \clearpage .. _rtems_partition_ident: - -PARTITION_IDENT - Get ID of a partition ---------------------------------------- .. index:: get ID of a partition .. index:: obtain ID of a partition .. index:: rtems_partition_ident +PARTITION_IDENT - Get ID of a partition +--------------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -282,11 +284,11 @@ NOTES: \clearpage .. _rtems_partition_delete: +.. index:: delete a partition +.. index:: rtems_partition_delete PARTITION_DELETE - Delete a partition ------------------------------------- -.. index:: delete a partition -.. index:: rtems_partition_delete CALLING SEQUENCE: .. code-block:: c @@ -331,13 +333,13 @@ NOTES: \clearpage .. _rtems_partition_get_buffer: - -PARTITION_GET_BUFFER - Get buffer from a partition --------------------------------------------------- .. index:: get buffer from partition .. index:: obtain buffer from partition .. index:: rtems_partition_get_buffer +PARTITION_GET_BUFFER - Get buffer from a partition +-------------------------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -379,11 +381,11 @@ NOTES: \clearpage .. _rtems_partition_return_buffer: +.. index:: return buffer to partitition +.. index:: rtems_partition_return_buffer PARTITION_RETURN_BUFFER - Return buffer to a partition ------------------------------------------------------ -.. index:: return buffer to partitition -.. index:: rtems_partition_return_buffer CALLING SEQUENCE: .. code-block:: c diff --git a/c-user/pci_library.rst b/c-user/pci_library.rst index ea0bf51..736888d 100644 --- a/c-user/pci_library.rst +++ b/c-user/pci_library.rst @@ -4,12 +4,12 @@ .. COMMENT: Aeroflex Gaisler AB .. COMMENT: All rights reserved. +.. index:: PCI +.. index:: libpci PCI Library *********** -.. index:: libpci - Introduction ============ @@ -390,6 +390,8 @@ this is mosly for debugging or for development systems. When the product is finally deployed macros switch to using the inline functions instead which have been configured for the correct endianness. +.. index:: PCI address translation + PCI address translation ~~~~~~~~~~~~~~~~~~~~~~~ @@ -408,6 +410,8 @@ different PCI spaces/regions. /* Translate CPU accessible address into PCI address (for DMA) */ static inline int pci_cpu2pci(uint32_t *address, int type); +.. index:: PCI Interrupt + PCI Interrupt ------------- diff --git a/c-user/rate_monotonic_manager.rst b/c-user/rate_monotonic_manager.rst index 96539ed..ad675b0 100644 --- a/c-user/rate_monotonic_manager.rst +++ b/c-user/rate_monotonic_manager.rst @@ -5,12 +5,12 @@ .. COMMENT: COPYRIGHT (c) 2017 Kuan-Hsun Chen. .. COMMENT: All rights reserved. -Rate Monotonic Manager -********************** - .. index:: rate mononitonic tasks .. index:: periodic tasks +Rate Monotonic Manager +********************** + Introduction ============ @@ -133,9 +133,10 @@ milliseconds every 100 (10 percent of the CPU). As a general rule of thumb, the higher frequency at which a task executes, the more important it is to optimize that task. +.. index:: periodic task, definition + Periodicity Definitions ---------------------------------- -.. index:: periodic task, definition A periodic task is one which must be executed at a regular interval. The interval between successive iterations of the task is referred to as its @@ -165,11 +166,12 @@ joystick. The mechanical action of the fire button ensures a minimum time period between successive activations, but the missile must be launched by a hard deadline. -Rate Monotonic Scheduling Algorithm ------------------------------------ .. index:: Rate Monotonic Scheduling Algorithm, definition .. index:: RMS Algorithm, definition +Rate Monotonic Scheduling Algorithm +----------------------------------- + The Rate Monotonic Scheduling Algorithm (RMS) is important to real-time systems designers because it allows one to sufficiently guarantee that a set of tasks is schedulable (see :cite:`Liu:1973:Scheduling`, :cite:`Lehoczky:1989:RM`, @@ -229,11 +231,11 @@ highest priority non-critical task. Although RMS may be used to assign priorities to the non-critical tasks, it is not necessary. In this instance, schedulability is only guaranteed for the critical task set. +.. index:: RMS schedulability analysis + Schedulability Analysis ----------------------- -.. index:: RMS schedulability analysis - RMS allows application designers to ensure that tasks can meet all deadlines under fixed-priority assignment, even under transient overload, without knowing exactly when any given task will execute by applying proven schedulability analysis rules. @@ -261,9 +263,10 @@ assumptions: Once the basic schedulability analysis is understood, some of the above assumptions can be relaxed and the side-effects accounted for. +.. index:: RMS Processor Utilization Rule + Processor Utilization Rule ^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. index:: RMS Processor Utilization Rule The Processor Utilization Rule requires that processor utilization be calculated based upon the period and execution time of each task. @@ -312,9 +315,10 @@ upper bound of 3 * (2**(1/3) - 1), or 0.779, imposed by the Processor Utilization Rule. Therefore, this task set is guaranteed to be schedulable using RMS. +.. index:: RMS First Deadline Rule + First Deadline Rule ^^^^^^^^^^^^^^^^^^^ -.. index:: RMS First Deadline Rule If a given set of tasks do exceed the processor utilization upper limit imposed by the Processor Utilization Rule, they can still be guaranteed to meet all @@ -631,11 +635,11 @@ sequence, related constants, usage, and status codes. \clearpage .. _rtems_rate_monotonic_create: +.. index:: create a period +.. index:: rtems_rate_monotonic_create RATE_MONOTONIC_CREATE - Create a rate monotonic period ------------------------------------------------------ -.. index:: create a period -.. index:: rtems_rate_monotonic_create CALLING SEQUENCE: .. code-block:: c @@ -671,13 +675,13 @@ NOTES: \clearpage .. _rtems_rate_monotonic_ident: - -RATE_MONOTONIC_IDENT - Get ID of a period ------------------------------------------ .. index:: get ID of a period .. index:: obtain ID of a period .. index:: rtems_rate_monotonic_ident +RATE_MONOTONIC_IDENT - Get ID of a period +----------------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -710,11 +714,11 @@ NOTES: \clearpage .. _rtems_rate_monotonic_cancel: +.. index:: cancel a period +.. index:: rtems_rate_monotonic_cancel RATE_MONOTONIC_CANCEL - Cancel a period --------------------------------------- -.. index:: cancel a period -.. index:: rtems_rate_monotonic_cancel CALLING SEQUENCE: .. code-block:: c @@ -752,10 +756,10 @@ NOTES: .. _rtems_rate_monotonic_delete: .. index:: rtems_rate_monotonic_delete +.. index:: delete a period RATE_MONOTONIC_DELETE - Delete a rate monotonic period ------------------------------------------------------ -.. index:: delete a period CALLING SEQUENCE: .. code-block:: c @@ -790,14 +794,14 @@ NOTES: \clearpage .. _rtems_rate_monotonic_period: - -RATE_MONOTONIC_PERIOD - Conclude current/Start next period ----------------------------------------------------------- .. index:: conclude current period .. index:: start current period .. index:: period initiation .. index:: rtems_rate_monotonic_period +RATE_MONOTONIC_PERIOD - Conclude current/Start next period +---------------------------------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -844,13 +848,13 @@ NOTES: \clearpage .. _rtems_rate_monotonic_get_status: - -RATE_MONOTONIC_GET_STATUS - Obtain status from a period -------------------------------------------------------- .. index:: get status of period .. index:: obtain status of period .. index:: rtems_rate_monotonic_get_status +RATE_MONOTONIC_GET_STATUS - Obtain status from a period +------------------------------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -909,13 +913,13 @@ NOTES: \clearpage .. _rtems_rate_monotonic_get_statistics: - -RATE_MONOTONIC_GET_STATISTICS - Obtain statistics from a period ---------------------------------------------------------------- .. index:: get statistics of period .. index:: obtain statistics of period .. index:: rtems_rate_monotonic_get_statistics +RATE_MONOTONIC_GET_STATISTICS - Obtain statistics from a period +--------------------------------------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -978,11 +982,11 @@ NOTES: \clearpage .. _rtems_rate_monotonic_reset_statistics: +.. index:: reset statistics of period +.. index:: rtems_rate_monotonic_reset_statistics RATE_MONOTONIC_RESET_STATISTICS - Reset statistics for a period --------------------------------------------------------------- -.. index:: reset statistics of period -.. index:: rtems_rate_monotonic_reset_statistics CALLING SEQUENCE: .. code-block:: c @@ -1012,11 +1016,11 @@ NOTES: \clearpage .. _rtems_rate_monotonic_reset_all_statistics: +.. index:: reset statistics of all periods +.. index:: rtems_rate_monotonic_reset_all_statistics RATE_MONOTONIC_RESET_ALL_STATISTICS - Reset statistics for all periods ---------------------------------------------------------------------- -.. index:: reset statistics of all periods -.. index:: rtems_rate_monotonic_reset_all_statistics CALLING SEQUENCE: .. code-block:: c @@ -1038,13 +1042,13 @@ NOTES: \clearpage .. _rtems_rate_monotonic_report_statistics: - -RATE_MONOTONIC_REPORT_STATISTICS - Print period statistics report ------------------------------------------------------------------ .. index:: print period statistics report .. index:: period statistics report .. index:: rtems_rate_monotonic_report_statistics +RATE_MONOTONIC_REPORT_STATISTICS - Print period statistics report +----------------------------------------------------------------- + CALLING SEQUENCE: .. code-block:: c diff --git a/c-user/red_black_trees.rst b/c-user/red_black_trees.rst index 53c8f81..bac16d1 100644 --- a/c-user/red_black_trees.rst +++ b/c-user/red_black_trees.rst @@ -4,11 +4,12 @@ .. COMMENT: On-Line Applications Research Corporation (OAR). .. COMMENT: All rights reserved. +.. index:: Red-Black Trees +.. index:: rbtrees + Red-Black Trees *************** -.. index:: rbtrees - Introduction ============ @@ -111,9 +112,10 @@ Examples for using the red-black trees can be found in the Directives ========== +.. index:: rbtree doc + Documentation for the Red-Black Tree Directives ----------------------------------------------- -.. index:: rbtree doc Source documentation for the Red-Black Tree API can be found in the generated Doxygen output for ``cpukit/sapi``. diff --git a/c-user/region_manager.rst b/c-user/region_manager.rst index 70cf31d..9867a72 100644 --- a/c-user/region_manager.rst +++ b/c-user/region_manager.rst @@ -4,11 +4,11 @@ .. COMMENT: On-Line Applications Research Corporation (OAR). .. COMMENT: All rights reserved. +.. index:: regions + Region Manager ************** -.. index:: regions - Introduction ============ @@ -34,11 +34,12 @@ variable sized units. The directives provided by the region manager are: Background ========== -Region Manager Definitions --------------------------- .. index:: region, definition .. index:: segment, definition +Region Manager Definitions +-------------------------- + A region makes up a physically contiguous memory space with user-defined boundaries from which variable-sized segments are dynamically allocated and deallocated. A segment is a variable size section of memory which is allocated @@ -59,9 +60,10 @@ boundaries while the region is currently active in the system. Upon return to the region, the free block is coalesced with its neighbors (if free) on both sides to produce the largest possible unused block. +.. index:: region attribute set, building + Building an Attribute Set ------------------------- -.. index:: region attribute set, building In general, an attribute set is built by a bitwise OR of the desired attribute components. The set of valid region attributes is provided in the following @@ -223,10 +225,11 @@ sequence, related constants, usage, and status codes. \clearpage .. _rtems_region_create: +.. index:: create a region REGION_CREATE - Create a region ------------------------------- -.. index:: create a region + CALLING SEQUENCE: .. code-block:: c @@ -298,13 +301,13 @@ NOTES: \clearpage .. _rtems_region_ident: - -REGION_IDENT - Get ID of a region ---------------------------------- .. index:: get ID of a region .. index:: obtain ID of a region .. index:: rtems_region_ident +REGION_IDENT - Get ID of a region +--------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -340,11 +343,11 @@ NOTES: \clearpage .. _rtems_region_delete: +.. index:: delete a region +.. index:: rtems_region_delete REGION_DELETE - Delete a region ------------------------------- -.. index:: delete a region -.. index:: rtems_region_delete CALLING SEQUENCE: .. code-block:: c @@ -381,13 +384,13 @@ NOTES: \clearpage .. _rtems_region_extend: - -REGION_EXTEND - Add memory to a region --------------------------------------- .. index:: add memory to a region .. index:: region, add memory .. index:: rtems_region_extend +REGION_EXTEND - Add memory to a region +-------------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -434,11 +437,11 @@ NOTES: \clearpage .. _rtems_region_get_segment: +.. index:: get segment from region +.. index:: rtems_region_get_segment REGION_GET_SEGMENT - Get segment from a region ---------------------------------------------- -.. index:: get segment from region -.. index:: rtems_region_get_segment CALLING SEQUENCE: .. code-block:: c @@ -520,11 +523,11 @@ NOTES: \clearpage .. _rtems_region_return_segment: +.. index:: return segment to region +.. index:: rtems_region_return_segment REGION_RETURN_SEGMENT - Return segment to a region -------------------------------------------------- -.. index:: return segment to region -.. index:: rtems_region_return_segment CALLING SEQUENCE: .. code-block:: c @@ -569,11 +572,11 @@ NOTES: \clearpage .. _rtems_region_get_segment_size: +.. index:: get size of segment +.. index:: rtems_region_get_segment_size REGION_GET_SEGMENT_SIZE - Obtain size of a segment -------------------------------------------------- -.. index:: get size of segment -.. index:: rtems_region_get_segment_size CALLING SEQUENCE: .. code-block:: c @@ -611,11 +614,11 @@ NOTES: \clearpage .. _rtems_region_resize_segment: +.. index:: resize segment +.. index:: rtems_region_resize_segment REGION_RESIZE_SEGMENT - Change size of a segment ------------------------------------------------ -.. index:: resize segment -.. index:: rtems_region_resize_segment CALLING SEQUENCE: .. code-block:: c diff --git a/c-user/rtems_data_types.rst b/c-user/rtems_data_types.rst index e5be2f3..6e76367 100644 --- a/c-user/rtems_data_types.rst +++ b/c-user/rtems_data_types.rst @@ -4,6 +4,9 @@ .. COMMENT: On-Line Applications Research Corporation (OAR). .. COMMENT: All rights reserved. +.. index:: RTEMS Data Types +.. index:: data types + RTEMS Data Types **************** diff --git a/c-user/scheduling_concepts.rst b/c-user/scheduling_concepts.rst index d6a57c4..ff47e0a 100644 --- a/c-user/scheduling_concepts.rst +++ b/c-user/scheduling_concepts.rst @@ -4,12 +4,12 @@ .. COMMENT: On-Line Applications Research Corporation (OAR). .. COMMENT: All rights reserved. -Scheduling Concepts -******************* - .. index:: scheduling .. index:: task scheduling +Scheduling Concepts +******************* + Introduction ============ @@ -39,11 +39,11 @@ The directives provided by the scheduler manager are: - rtems_scheduler_remove_processor_ - Remove processor from a scheduler +.. index:: scheduling algorithms + Scheduling Algorithms --------------------- -.. index:: scheduling algorithms - RTEMS provides a plugin framework which allows it to support multiple scheduling algorithms. RTEMS includes multiple scheduling algorithms and the user can select which of these they wish to use in their application at @@ -60,9 +60,10 @@ scheduling algorithm. This scheduling algoritm is suitable for uniprocessor Scheduler*. Unless the user configures another scheduling algorithm, RTEMS will use this on uniprocessor systems. +.. index:: priority scheduling + Priority Scheduling ------------------- -.. index:: priority scheduling When using priority based scheduling, RTEMS allocates the processor using a priority-based, preemptive algorithm augmented to provide round-robin @@ -153,9 +154,10 @@ supporting a large number of tasks. This scheduler is only aware of a single core. +.. index:: earliest deadline first scheduling + Earliest Deadline First Scheduler --------------------------------- -.. index:: earliest deadline first scheduling This is an alternative scheduler in RTEMS for single core applications. The primary EDF advantage is high total CPU utilization (theoretically up to @@ -185,9 +187,10 @@ period, it has to be finished until the end of this period. The call of deadline. Moreover, the ``rtems_rate_monotonic_cancel`` and ``rtems_rate_monotonic_delete`` calls clear the deadlines assigned to the task. +.. index:: constant bandwidth server scheduling + Constant Bandwidth Server Scheduling (CBS) ------------------------------------------ -.. index:: constant bandwidth server scheduling This is an alternative scheduler in RTEMS for single core applications. The CBS is a budget aware extension of EDF scheduler. The main goal of this @@ -264,11 +267,11 @@ levels). This scheduler supports arbitrary task processor affinities. The worst-case run-time complexity of some scheduler operations exceeds :math:`O(n)` while :math:`n` is the count of ready tasks. +.. index:: scheduling mechanisms + Scheduling Modification Mechanisms ================================== -.. index:: scheduling mechanisms - RTEMS provides four mechanisms which allow the user to alter the task scheduling decisions: @@ -290,9 +293,10 @@ timeslicing and manual round-robin it is important to keep in mind that preemption (if enabled) of a task by higher priority tasks will occur as required, overriding the other factors presented in the description. +.. index:: task priority + Task Priority and Scheduling ---------------------------- -.. index:: task priority The most significant task scheduling modification mechanism is the ability for the user to assign a priority level to each individual task when it is created @@ -301,9 +305,10 @@ on the configured scheduler. A lower priority level means higher priority (higher importance). The maximum priority level of the default uniprocessor scheduler is 255. +.. index:: preemption + Preemption ---------- -.. index:: preemption Another way the user can alter the basic scheduling algorithm is by manipulating the preemption mode flag (``RTEMS_PREEMPT_MASK``) of individual @@ -314,11 +319,12 @@ higher priority levels will not be allowed to execute. Note that the preemption setting has no effect on the manner in which a task is scheduled. It only applies once a task has control of the processor. -Timeslicing ------------ .. index:: timeslicing .. index:: round robin scheduling +Timeslicing +----------- + Timeslicing or round-robin scheduling is an additional method which can be used to alter the basic scheduling algorithm. Like preemption, timeslicing is specified on a task by task basis using the timeslicing mode flag @@ -333,9 +339,10 @@ and continues to run. Remember that a higher priority task will preempt the task (unless preemption is disabled) as soon as it is ready to run, even if the task has not used up its entire timeslice. +.. index:: manual round robin + Manual Round-Robin ------------------ -.. index:: manual round robin The final mechanism for altering the RTEMS scheduling algorithm is called manual round-robin. Manual round-robin is invoked by using @@ -345,9 +352,10 @@ immediately returned to the ready chain at the end of its priority group. If no other tasks of the same priority are ready to run, then the task does not lose control of the processor. +.. index:: dispatching + Dispatching Tasks ================= -.. index:: dispatching The dispatcher is the RTEMS component responsible for allocating the processor to a ready task. In order to allocate the processor to one task, it must be @@ -370,9 +378,10 @@ unnecessary save and restore operations, the state of the numeric coprocessor is only saved when a ``RTEMS_FLOATING_POINT`` task is dispatched and that task was not the last task to utilize the coprocessor. +.. index:: task state transitions + Task State Transitions ====================== -.. index:: task state transitions Tasks in an RTEMS system must always be in one of the five allowable task states. These states are: executing, ready, blocked, dormant, and diff --git a/c-user/semaphore_manager.rst b/c-user/semaphore_manager.rst index 58558a5..6d95708 100644 --- a/c-user/semaphore_manager.rst +++ b/c-user/semaphore_manager.rst @@ -4,14 +4,14 @@ .. COMMENT: On-Line Applications Research Corporation (OAR). .. COMMENT: All rights reserved. -Semaphore Manager -***************** - .. index:: semaphores .. index:: binary semaphores .. index:: counting semaphores .. index:: mutual exclusion +Semaphore Manager +***************** + Introduction ============ @@ -325,11 +325,11 @@ sequence, related constants, usage, and status codes. \clearpage .. _rtems_semaphore_create: +.. index:: create a semaphore +.. index:: rtems_semaphore_create SEMAPHORE_CREATE - Create a semaphore ------------------------------------- -.. index:: create a semaphore -.. index:: rtems_semaphore_create CALLING SEQUENCE: @@ -437,14 +437,13 @@ NOTES: \clearpage .. _rtems_semaphore_ident: - -SEMAPHORE_IDENT - Get ID of a semaphore ---------------------------------------- .. index:: get ID of a semaphore .. index:: obtain ID of a semaphore - .. index:: rtems_semaphore_ident +SEMAPHORE_IDENT - Get ID of a semaphore +--------------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -490,11 +489,11 @@ NOTES: \clearpage .. _rtems_semaphore_delete: +.. index:: delete a semaphore +.. index:: rtems_semaphore_delete SEMAPHORE_DELETE - Delete a semaphore ------------------------------------- -.. index:: delete a semaphore -.. index:: rtems_semaphore_delete CALLING SEQUENCE: .. code-block:: c @@ -546,13 +545,13 @@ NOTES: \clearpage .. _rtems_semaphore_obtain: - -SEMAPHORE_OBTAIN - Acquire a semaphore --------------------------------------- .. index:: obtain a semaphore .. index:: lock a semaphore .. index:: rtems_semaphore_obtain +SEMAPHORE_OBTAIN - Acquire a semaphore +-------------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -645,13 +644,13 @@ NOTES: \clearpage .. _rtems_semaphore_release: - -SEMAPHORE_RELEASE - Release a semaphore ---------------------------------------- .. index:: release a semaphore .. index:: unlock a semaphore .. index:: rtems_semaphore_release +SEMAPHORE_RELEASE - Release a semaphore +--------------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -706,13 +705,13 @@ NOTES: \clearpage .. _rtems_semaphore_flush: - -SEMAPHORE_FLUSH - Unblock all tasks waiting on a semaphore ----------------------------------------------------------- .. index:: flush a semaphore .. index:: unblock all tasks waiting on a semaphore .. index:: rtems_semaphore_flush +SEMAPHORE_FLUSH - Unblock all tasks waiting on a semaphore +---------------------------------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -762,11 +761,11 @@ NOTES: \clearpage .. _rtems_semaphore_set_priority: +.. index:: set priority by scheduler for a semaphore +.. index:: rtems_semaphore_set_priority SEMAPHORE_SET_PRIORITY - Set priority by scheduler for a semaphore ------------------------------------------------------------------ -.. index:: set priority by scheduler for a semaphore -.. index:: rtems_semaphore_set_priority CALLING SEQUENCE: .. code-block:: c diff --git a/c-user/signal_manager.rst b/c-user/signal_manager.rst index 2bc9709..6b74854 100644 --- a/c-user/signal_manager.rst +++ b/c-user/signal_manager.rst @@ -4,11 +4,11 @@ .. COMMENT: On-Line Applications Research Corporation (OAR). .. COMMENT: All rights reserved. +.. index:: signals + Signal Manager ************** -.. index:: signals - Introduction ============ @@ -22,11 +22,12 @@ communication. The directives provided by the signal manager are: Background ========== -Signal Manager Definitions --------------------------- .. index:: asynchronous signal routine .. index:: ASR +Signal Manager Definitions +-------------------------- + The signal manager allows a task to optionally define an asynchronous signal routine (ASR). An ASR is to a task what an ISR is to an application's set of tasks. When the processor is interrupted, the execution of an application is @@ -46,11 +47,12 @@ A signal set is posted when it is directed (or sent) to a task. A pending signal is a signal that has been sent to a task with a valid ASR, but has not been processed by that task's ASR. -A Comparison of ASRs and ISRs ------------------------------ .. index:: ASR vs. ISR .. index:: ISR vs. ASR +A Comparison of ASRs and ISRs +----------------------------- + The format of an ASR is similar to that of an ISR with the following exceptions: @@ -66,9 +68,10 @@ exceptions: - An ASR has a task mode which can be different from that of the task. An ISR does not execute as a task and, as a result, does not have a task mode. +.. index:: signal set, building + Building a Signal Set --------------------- -.. index:: signal set, building A signal set is built by a bitwise OR of the desired signals. The set of valid signals is ``RTEMS_SIGNAL_0`` through ``RTEMS_SIGNAL_31``. If a signal is not @@ -82,9 +85,10 @@ consisting of ``RTEMS_SIGNAL_6``, ``RTEMS_SIGNAL_15``, and ``RTEMS_SIGNAL_31``. The signal parameter provided to the ``rtems_signal_send`` directive should be ``RTEMS_SIGNAL_6 | RTEMS_SIGNAL_15 | RTEMS_SIGNAL_31``. +.. index:: ASR mode, building + Building an ASR Mode -------------------- -.. index:: ASR mode, building In general, an ASR's mode is built by a bitwise OR of the desired mode components. The set of valid mode components is the same as those allowed with @@ -175,6 +179,8 @@ sending the same signal multiple times to a task (without any intermediate signal processing occurring for the task), has the same result as sending that signal to that task once. +.. index:: rtems_asr + Processing an ASR ----------------- @@ -185,8 +191,6 @@ and ISRs is limited to the meaning of the single argument passed to an ASR. The ASR should have the following calling sequence and adhere to C calling conventions: -.. index:: rtems_asr - .. code-block:: c rtems_asr user_routine( @@ -208,13 +212,13 @@ sequence, related constants, usage, and status codes. \clearpage .. _rtems_signal_catch: - -SIGNAL_CATCH - Establish an ASR -------------------------------- .. index:: establish an ASR .. index:: install an ASR .. index:: rtems_signal_catch +SIGNAL_CATCH - Establish an ASR +------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -269,11 +273,11 @@ NOTES: \clearpage .. _rtems_signal_send: +.. index:: send signal set +.. index:: rtems_signal_send SIGNAL_SEND - Send signal set to a task --------------------------------------- -.. index:: send signal set -.. index:: rtems_signal_send CALLING SEQUENCE: .. code-block:: c diff --git a/c-user/stack_bounds_checker.rst b/c-user/stack_bounds_checker.rst index 67f1771..31ecf1d 100644 --- a/c-user/stack_bounds_checker.rst +++ b/c-user/stack_bounds_checker.rst @@ -4,11 +4,12 @@ .. COMMENT: On-Line Applications Research Corporation (OAR). .. COMMENT: All rights reserved. +.. index:: Stack Bounds Checker +.. index:: stack + Stack Bounds Checker ******************** -.. index:: stack - Introduction ============ diff --git a/c-user/symmetric_multiprocessing_services.rst b/c-user/symmetric_multiprocessing_services.rst index 5ff24a3..0cdf1ef 100644 --- a/c-user/symmetric_multiprocessing_services.rst +++ b/c-user/symmetric_multiprocessing_services.rst @@ -5,6 +5,9 @@ .. COMMENT: Copyright (c) 2017 embedded brains GmbH. .. COMMENT: All rights reserved. +.. index:: Symmetric Multiprocessing +.. index:: SMP + Symmetric Multiprocessing (SMP) ******************************* @@ -124,11 +127,12 @@ when a task switch occurred at just the wrong moment. Now there are N-1 tasks executing in parallel all the time and this results in many more opportunities for small windows in critical sections to be hit. -Task Affinity -------------- .. index:: task affinity .. index:: thread affinity +Task Affinity +------------- + RTEMS provides services to manipulate the affinity of a task. Affinity is used to specify the subset of processors in an SMP system on which a particular task can execute. @@ -144,11 +148,12 @@ not support affinity, it is likely to ignore all attempts to set affinity. The scheduler with support for arbitary processor affinities uses a proof of concept implementation. See https://devel.rtems.org/ticket/2510. -Task Migration --------------- .. index:: task migration .. index:: thread migration +Task Migration +-------------- + With more than one processor in the system tasks can migrate from one processor to another. There are four reasons why tasks migrate in RTEMS. diff --git a/c-user/task_manager.rst b/c-user/task_manager.rst index be99895..8934315 100644 --- a/c-user/task_manager.rst +++ b/c-user/task_manager.rst @@ -4,11 +4,11 @@ .. COMMENT: On-Line Applications Research Corporation (OAR). .. COMMENT: All rights reserved. +.. index:: tasks + Task Manager ************ -.. index:: tasks - Introduction ============ @@ -56,9 +56,10 @@ and administer tasks. The directives provided by the task manager are: Background ========== +.. index:: task, definition + Task Definition --------------- -.. index:: task, definition Many definitions of a task have been proposed in computer literature. Unfortunately, none of these definitions encompasses all facets of the concept @@ -102,9 +103,10 @@ regains control of the processor, its context is restored from the TCB. When a task is restarted, the initial state of the task is restored from the starting context area in the task's TCB. +.. index:: task name + Task Name --------- -.. index:: task name By default, the task name is defined by the task object name given to :ref:`rtems_task_create() `. The task name can be obtained @@ -116,9 +118,10 @@ The maximum size of a task name is defined by the application configuration option :ref:`CONFIGURE_MAXIMUM_THREAD_NAME_SIZE `. +.. index:: task states + Task States ----------- -.. index:: task states A task may exist in one of the following five states: @@ -140,12 +143,13 @@ tasks appear to execute in parallel, but actually each is dispatched to the CPU for periods of time determined by the RTEMS scheduling algorithm. The scheduling of a task is based on its current state and priority. -Task Priority -------------- .. index:: task priority .. index:: priority, task .. index:: rtems_task_priority +Task Priority +------------- + A task's priority determines its importance in relation to the other tasks executing on the same processor. RTEMS supports 255 levels of priority ranging from 1 to 255. The data type ``rtems_task_priority`` is used to store task @@ -164,11 +168,12 @@ Priorities are used by the scheduler to determine which ready task will be allowed to execute. In general, the higher the logical priority of a task, the more likely it is to receive processor execution time. -Task Mode ---------- .. index:: task mode .. index:: rtems_task_mode +Task Mode +--------- + A task's execution mode is a combination of the following four components: - preemption @@ -242,11 +247,12 @@ the task will execute at interrupt level n. The set of default modes may be selected by specifying the ``RTEMS_DEFAULT_MODES`` constant. -Accessing Task Arguments ------------------------- .. index:: task arguments .. index:: task prototype +Accessing Task Arguments +------------------------ + All RTEMS tasks are invoked with a single argument which is specified when they are started or restarted. The argument is commonly used to communicate startup information to the task. The simplest manner in which to define a task which @@ -263,9 +269,10 @@ accesses it argument is: Application tasks requiring more information may view this single argument as an index into an array of parameter blocks. +.. index:: floating point + Floating Point Considerations ----------------------------- -.. index:: floating point Creating a task with the ``RTEMS_FLOATING_POINT`` attribute flag results in additional memory being allocated for the TCB to store the state of the numeric @@ -313,9 +320,10 @@ consequence of a ``RTEMS_NO_FLOATING_POINT`` task attempting to access the floating point unit is CPU dependent but will generally result in an exception condition. +.. index:: task attributes, building + Building a Task Attribute Set ----------------------------- -.. index:: task attributes, building In general, an attribute set is built by a bitwise OR of the desired components. The set of valid task attribute components is listed below: @@ -347,9 +355,10 @@ attribute_set parameter can be set to ``RTEMS_FLOATING_POINT`` because and used the numeric coprocessor, then the attribute_set parameter would be ``RTEMS_GLOBAL | RTEMS_FLOATING_POINT``. +.. index:: task mode, building + Building a Mode and Mask ------------------------ -.. index:: task mode, building In general, a mode and its corresponding mask is built by a bitwise OR of the desired components. The set of valid mode constants and each mode's @@ -547,12 +556,12 @@ It is important to note that the ``cpuset`` is not validated until the ``rtems_task_set_affinity`` call is made. At that point, it is validated against the current system configuration. -Transition Advice for Obsolete Notepads ---------------------------------------- - .. index:: rtems_task_get_note .. index:: rtems_task_set_note +Transition Advice for Obsolete Notepads +--------------------------------------- + Task notepads and the associated directives :ref:`rtems_task_get_note` and :ref:`rtems_task_set_note` were removed in RTEMS 5.1. These were never thread-safe to access and subject to conflicting use of the notepad index by @@ -564,13 +573,13 @@ over the key (e.g. notepad index) selection. For most applications, POSIX Keys should be used. These are available in all RTEMS build configurations. It is also possible that thread-local storage (TLS) is an option for some use cases. -Transition Advice for Obsolete Task Variables ---------------------------------------------- - .. index:: rtems_task_variable_add .. index:: rtems_task_variable_get .. index:: rtems_task_variable_delete +Transition Advice for Obsolete Task Variables +--------------------------------------------- + Task notepads and the associated directives :ref:`rtems_task_variable_add`, :ref:`rtems_task_variable_get` and :ref:`rtems_task_variable_delete` were removed in RTEMS 5.1. Task variables must be replaced by POSIX Keys or @@ -590,11 +599,11 @@ related constants, usage, and status codes. \clearpage .. _rtems_task_create: +.. index:: create a task +.. index:: rtems_task_create TASK_CREATE - Create a task --------------------------- -.. index:: create a task -.. index:: rtems_task_create CALLING SEQUENCE: .. code-block:: c @@ -735,11 +744,11 @@ NOTES: \clearpage .. _rtems_task_ident: +.. index:: get ID of a task +.. index:: rtems_task_ident TASK_IDENT - Get ID of a task ----------------------------- -.. index:: get ID of a task -.. index:: rtems_task_ident CALLING SEQUENCE: .. code-block:: c @@ -789,11 +798,11 @@ NOTES: \clearpage .. _rtems_task_self: +.. index:: obtain ID of caller +.. index:: rtems_task_self TASK_SELF - Obtain ID of caller ------------------------------- -.. index:: obtain ID of caller -.. index:: rtems_task_self CALLING SEQUENCE: .. code-block:: c @@ -815,11 +824,11 @@ NOTES: \clearpage .. _rtems_task_start: +.. index:: starting a task +.. index:: rtems_task_start TASK_START - Start a task ------------------------- -.. index:: starting a task -.. index:: rtems_task_start CALLING SEQUENCE: .. code-block:: c @@ -869,11 +878,11 @@ NOTES: \clearpage .. _rtems_task_restart: +.. index:: restarting a task +.. index:: rtems_task_restart TASK_RESTART - Restart a task ----------------------------- -.. index:: restarting a task -.. index:: rtems_task_restart CALLING SEQUENCE: .. code-block:: c @@ -931,11 +940,11 @@ NOTES: \clearpage .. _rtems_task_delete: +.. index:: deleting a task +.. index:: rtems_task_delete TASK_DELETE - Delete a task --------------------------- -.. index:: deleting a task -.. index:: rtems_task_delete CALLING SEQUENCE: .. code-block:: c @@ -987,11 +996,11 @@ NOTES: \clearpage .. _rtems_task_suspend: +.. index:: suspending a task +.. index:: rtems_task_suspend TASK_SUSPEND - Suspend a task ----------------------------- -.. index:: suspending a task -.. index:: rtems_task_suspend CALLING SEQUENCE: .. code-block:: c @@ -1034,11 +1043,11 @@ NOTES: \clearpage .. _rtems_task_resume: +.. index:: resuming a task +.. index:: rtems_task_resume TASK_RESUME - Resume a task --------------------------- -.. index:: resuming a task -.. index:: rtems_task_resume CALLING SEQUENCE: .. code-block:: c @@ -1079,11 +1088,11 @@ NOTES: \clearpage .. _rtems_task_is_suspended: +.. index:: is task suspended +.. index:: rtems_task_is_suspended TASK_IS_SUSPENDED - Determine if a task is Suspended ---------------------------------------------------- -.. index:: is task suspended -.. index:: rtems_task_is_suspended CALLING SEQUENCE: .. code-block:: c @@ -1117,15 +1126,15 @@ NOTES: \clearpage .. _rtems_task_set_priority: - -TASK_SET_PRIORITY - Set task priority -------------------------------------- .. index:: rtems_task_set_priority .. index:: current task priority .. index:: set task priority .. index:: get task priority .. index:: obtain task priority +TASK_SET_PRIORITY - Set task priority +------------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -1181,14 +1190,14 @@ NOTES: \clearpage .. _rtems_task_get_priority: - -TASK_GET_PRIORITY - Get task priority -------------------------------------- .. index:: rtems_task_get_priority .. index:: current task priority .. index:: get task priority .. index:: obtain task priority +TASK_GET_PRIORITY - Get task priority +------------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -1230,9 +1239,6 @@ NOTES: \clearpage .. _rtems_task_mode: - -TASK_MODE - Change the current task mode ----------------------------------------- .. index:: current task mode .. index:: set task mode .. index:: get task mode @@ -1241,6 +1247,9 @@ TASK_MODE - Change the current task mode .. index:: obtain task mode .. index:: rtems_task_mode +TASK_MODE - Change the current task mode +---------------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -1309,13 +1318,13 @@ NOTES: \clearpage .. _rtems_task_wake_after: - -TASK_WAKE_AFTER - Wake up after interval ----------------------------------------- .. index:: delay a task for an interval .. index:: wake up after an interval .. index:: rtems_task_wake_after +TASK_WAKE_AFTER - Wake up after interval +---------------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -1352,13 +1361,13 @@ NOTES: \clearpage .. _rtems_task_wake_when: - -TASK_WAKE_WHEN - Wake up when specified ---------------------------------------- .. index:: delay a task until a wall time .. index:: wake up at a wall time .. index:: rtems_task_wake_when +TASK_WAKE_WHEN - Wake up when specified +--------------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -1608,11 +1617,11 @@ NOTES: \clearpage .. _rtems_task_iterate: +.. index:: iterate over all threads +.. index:: rtems_task_iterate TASK_ITERATE - Iterate Over Tasks --------------------------------- -.. index:: iterate over all threads -.. index:: rtems_task_iterate CALLING SEQUENCE: .. code-block:: c @@ -1650,10 +1659,10 @@ Deprecated and Removed Directives \clearpage .. _rtems_iterate_over_all_threads: +.. index:: rtems_iterate_over_all_threads ITERATE_OVER_ALL_THREADS - Iterate Over Tasks --------------------------------------------- -.. index:: rtems_iterate_over_all_threads .. warning:: @@ -1689,11 +1698,11 @@ NOTES: \clearpage .. _rtems_task_get_note: +.. index:: get task notepad entry +.. index:: rtems_task_get_note TASK_GET_NOTE - Get task notepad entry -------------------------------------- -.. index:: get task notepad entry -.. index:: rtems_task_get_note .. warning:: @@ -1742,11 +1751,11 @@ NOTES: \clearpage .. _rtems_task_set_note: +.. index:: set task notepad entry +.. index:: rtems_task_set_note TASK_SET_NOTE - Set task notepad entry -------------------------------------- -.. index:: set task notepad entry -.. index:: rtems_task_set_note .. warning:: @@ -1794,14 +1803,14 @@ NOTES: \clearpage .. _rtems_task_variable_add: - -TASK_VARIABLE_ADD - Associate per task variable ------------------------------------------------ .. index:: per-task variable .. index:: task private variable .. index:: task private data .. index:: rtems_task_variable_add +TASK_VARIABLE_ADD - Associate per task variable +----------------------------------------------- + .. warning:: This directive was removed in RTEMS 5.1. @@ -1857,13 +1866,13 @@ NOTES: \clearpage .. _rtems_task_variable_get: - -TASK_VARIABLE_GET - Obtain value of a per task variable -------------------------------------------------------- .. index:: get per-task variable .. index:: obtain per-task variable .. index:: rtems_task_variable_get +TASK_VARIABLE_GET - Obtain value of a per task variable +------------------------------------------------------- + .. warning:: This directive was removed in RTEMS 5.1. @@ -1914,14 +1923,14 @@ NOTES: \clearpage .. _rtems_task_variable_delete: - -TASK_VARIABLE_DELETE - Remove per task variable ------------------------------------------------ .. index:: per-task variable .. index:: task private variable .. index:: task private data .. index:: rtems_task_variable_delete +TASK_VARIABLE_DELETE - Remove per task variable +----------------------------------------------- + .. warning:: This directive was removed in RTEMS 5.1. diff --git a/c-user/timer_manager.rst b/c-user/timer_manager.rst index 1e29add..ca80dfd 100644 --- a/c-user/timer_manager.rst +++ b/c-user/timer_manager.rst @@ -4,11 +4,11 @@ .. COMMENT: On-Line Applications Research Corporation (OAR). .. COMMENT: All rights reserved. +.. index:: timers + Timer Manager ************* -.. index:: timers - Introduction ============ @@ -84,14 +84,14 @@ service routine finished its work. The Timer Server is designed to remain blocked until a task-based timer fires. This reduces the execution overhead of the Timer Server. +.. index:: rtems_timer_service_routine + Timer Service Routines ---------------------- The timer service routine should adhere to C calling conventions and have a prototype similar to the following: -.. index:: rtems_timer_service_routine - .. code-block:: c rtems_timer_service_routine user_routine( @@ -195,11 +195,11 @@ related constants, usage, and status codes. \clearpage .. _rtems_timer_create: +.. index:: create a timer +.. index:: rtems_timer_create TIMER_CREATE - Create a timer ----------------------------- -.. index:: create a timer -.. index:: rtems_timer_create CALLING SEQUENCE: .. code-block:: c @@ -241,11 +241,11 @@ NOTES: \clearpage .. _rtems_timer_ident: +.. index:: obtain the ID of a timer +.. index:: rtems_timer_ident TIMER_IDENT - Get ID of a timer ------------------------------- -.. index:: obtain the ID of a timer -.. index:: rtems_timer_ident CALLING SEQUENCE: .. code-block:: c @@ -281,11 +281,11 @@ NOTES: \clearpage .. _rtems_timer_cancel: +.. index:: cancel a timer +.. index:: rtems_timer_cancel TIMER_CANCEL - Cancel a timer ----------------------------- -.. index:: cancel a timer -.. index:: rtems_timer_cancel CALLING SEQUENCE: .. code-block:: c @@ -316,11 +316,11 @@ NOTES: \clearpage .. _rtems_timer_delete: +.. index:: delete a timer +.. index:: rtems_timer_delete TIMER_DELETE - Delete a timer ----------------------------- -.. index:: delete a timer -.. index:: rtems_timer_delete CALLING SEQUENCE: .. code-block:: c @@ -355,11 +355,11 @@ NOTES: \clearpage .. _rtems_timer_fire_after: +.. index:: fire a timer after an interval +.. index:: rtems_timer_fire_after TIMER_FIRE_AFTER - Fire timer after interval -------------------------------------------- -.. index:: fire a timer after an interval -.. index:: rtems_timer_fire_after CALLING SEQUENCE: .. code-block:: c @@ -399,11 +399,11 @@ NOTES: \clearpage .. _rtems_timer_fire_when: +.. index:: fire a timer at wall time +.. index:: rtems_timer_fire_when TIMER_FIRE_WHEN - Fire timer when specified ------------------------------------------- -.. index:: fire a timer at wall time -.. index:: rtems_timer_fire_when CALLING SEQUENCE: .. code-block:: c @@ -447,11 +447,11 @@ NOTES: \clearpage .. _rtems_timer_initiate_server: +.. index:: initiate the Timer Server +.. index:: rtems_timer_initiate_server TIMER_INITIATE_SERVER - Initiate server for task-based timers ------------------------------------------------------------- -.. index:: initiate the Timer Server -.. index:: rtems_timer_initiate_server CALLING SEQUENCE: .. code-block:: c @@ -492,11 +492,11 @@ NOTES: \clearpage .. _rtems_timer_server_fire_after: +.. index:: fire task-based a timer after an interval +.. index:: rtems_timer_server_fire_after TIMER_SERVER_FIRE_AFTER - Fire task-based timer after interval -------------------------------------------------------------- -.. index:: fire task-based a timer after an interval -.. index:: rtems_timer_server_fire_after CALLING SEQUENCE: .. code-block:: c @@ -540,11 +540,11 @@ NOTES: \clearpage .. _rtems_timer_server_fire_when: +.. index:: fire a task-based timer at wall time +.. index:: rtems_timer_server_fire_when TIMER_SERVER_FIRE_WHEN - Fire task-based timer when specified ------------------------------------------------------------- -.. index:: fire a task-based timer at wall time -.. index:: rtems_timer_server_fire_when CALLING SEQUENCE: .. code-block:: c @@ -592,11 +592,11 @@ NOTES: \clearpage .. _rtems_timer_reset: +.. index:: reset a timer +.. index:: rtems_timer_reset TIMER_RESET - Reset an interval timer ------------------------------------- -.. index:: reset a timer -.. index:: rtems_timer_reset CALLING SEQUENCE: .. code-block:: c diff --git a/c-user/timespec_helpers.rst b/c-user/timespec_helpers.rst index 905af55..115833b 100644 --- a/c-user/timespec_helpers.rst +++ b/c-user/timespec_helpers.rst @@ -4,6 +4,8 @@ .. COMMENT: On-Line Applications Research Corporation (OAR). .. COMMENT: All rights reserved. +.. index:: TImespec Helpers + Timespec Helpers **************** @@ -124,11 +126,11 @@ sequence, related constants, usage, and status codes. \clearpage .. _rtems_timespec_set: +.. index:: set struct timespec instance +.. index:: rtems_timespec_set TIMESPEC_SET - Set struct timespec Instance ------------------------------------------- -.. index:: set struct timespec instance -.. index:: rtems_timespec_set CALLING SEQUENCE: .. code-block:: c @@ -155,10 +157,10 @@ NOTES: \clearpage .. _rtems_timespec_zero: +.. index:: rtems_timespec_zero TIMESPEC_ZERO - Zero struct timespec Instance --------------------------------------------- -.. index:: rtems_timespec_zero CALLING SEQUENCE: .. code-block:: c @@ -182,10 +184,10 @@ NOTES: \clearpage .. _rtems_timespec_is_valid: +.. index:: rtems_timespec_is_valid TIMESPEC_IS_VALID - Check validity of a struct timespec instance ---------------------------------------------------------------- -.. index:: rtems_timespec_is_valid CALLING SEQUENCE: .. code-block:: c @@ -211,10 +213,10 @@ NOTES: \clearpage .. _rtems_timespec_add_to: +.. index:: rtems_timespec_add_to TIMESPEC_ADD_TO - Add Two struct timespec Instances --------------------------------------------------- -.. index:: rtems_timespec_add_to CALLING SEQUENCE: .. code-block:: c @@ -240,10 +242,10 @@ NOTES: \clearpage .. _rtems_timespec_subtract: +.. index:: rtems_timespec_subtract TIMESPEC_SUBTRACT - Subtract Two struct timespec Instances ---------------------------------------------------------- -.. index:: rtems_timespec_subtract CALLING SEQUENCE: .. code-block:: c @@ -274,10 +276,10 @@ NOTES: \clearpage .. _rtems_timespec_divide: +.. index:: rtems_timespec_divide TIMESPEC_DIVIDE - Divide Two struct timespec Instances ------------------------------------------------------ -.. index:: rtems_timespec_divide CALLING SEQUENCE: .. code-block:: c @@ -314,10 +316,10 @@ NOTES: \clearpage .. _rtems_timespec_divide_by_integer: +.. index:: rtems_timespec_divide_by_integer TIMESPEC_DIVIDE_BY_INTEGER - Divide a struct timespec Instance by an Integer ---------------------------------------------------------------------------- -.. index:: rtems_timespec_divide_by_integer CALLING SEQUENCE: .. code-block:: c @@ -345,10 +347,10 @@ NOTES: \clearpage .. _rtems_timespec_less_than: +.. index:: rtems_timespec_less_than TIMESPEC_LESS_THAN - Less than operator --------------------------------------- -.. index:: rtems_timespec_less_than CALLING SEQUENCE: .. code-block:: c @@ -375,10 +377,10 @@ NOTES: \clearpage .. _rtems_timespec_greater_than: +.. index:: rtems_timespec_greater_than TIMESPEC_GREATER_THAN - Greater than operator --------------------------------------------- -.. index:: rtems_timespec_greater_than CALLING SEQUENCE: .. code-block:: c @@ -403,10 +405,10 @@ NOTES: \clearpage .. _rtems_timespec_equal_to: +.. index:: rtems_timespec_equal_to TIMESPEC_EQUAL_TO - Check equality of timespecs ----------------------------------------------- -.. index:: rtems_timespec_equal_to CALLING SEQUENCE: .. code-block:: c @@ -431,10 +433,10 @@ NOTES: \clearpage .. _rtems_timespec_get_seconds: +.. index:: rtems_timespec_get_seconds TIMESPEC_GET_SECONDS - Get Seconds Portion of struct timespec Instance ---------------------------------------------------------------------- -.. index:: rtems_timespec_get_seconds CALLING SEQUENCE: .. code-block:: c @@ -459,10 +461,10 @@ NOTES: \clearpage .. _rtems_timespec_get_nanoseconds: +.. index:: rtems_timespec_get_nanoseconds TIMESPEC_GET_NANOSECONDS - Get Nanoseconds Portion of the struct timespec Instance ---------------------------------------------------------------------------------- -.. index:: rtems_timespec_get_nanoseconds CALLING SEQUENCE: .. code-block:: c @@ -487,10 +489,10 @@ NOTES: \clearpage .. _rtems_timespec_to_ticks: +.. index:: rtems_timespec_to_ticks TIMESPEC_TO_TICKS - Convert struct timespec Instance to Ticks ------------------------------------------------------------- -.. index:: rtems_timespec_to_ticks CALLING SEQUENCE: .. code-block:: c @@ -514,10 +516,10 @@ NOTES: \clearpage .. _rtems_timespec_from_ticks: +.. index:: rtems_timespec_from_ticks TIMESPEC_FROM_TICKS - Convert Ticks to struct timespec Representation --------------------------------------------------------------------- -.. index:: rtems_timespec_from_ticks CALLING SEQUENCE: .. code-block:: c diff --git a/c-user/user_extensions.rst b/c-user/user_extensions.rst index f51e6d6..84af815 100644 --- a/c-user/user_extensions.rst +++ b/c-user/user_extensions.rst @@ -5,12 +5,11 @@ .. COMMENT: All rights reserved. .. _User Extensions Manager: +.. index:: user extensions User Extensions Manager *********************** -.. index:: user extensions - Introduction ============ @@ -62,11 +61,12 @@ dynamic memory allocations and object creation/deletion. Some user extensions are invoked with thread dispatching disabled. The fatal error extension is invoked in an arbitrary context. -Extension Sets --------------- .. index:: user extension set .. index:: rtems_extensions_table +Extension Sets +-------------- + User extensions are maintained as a set. All user extensions are optional and may be `NULL`. Together a set of these user extensions typically performs a specific functionality such as performance monitoring or debugger support. The @@ -86,9 +86,10 @@ extension set is defined via the following structure. rtems_task_terminate_extension thread_terminate; } rtems_extensions_table; +.. index:: TCB extension area + TCB Extension Area ------------------ -.. index:: TCB extension area There is no system-provided storage for the initial extension sets. @@ -169,6 +170,8 @@ installed after the Standard C Library will operate correctly even if they utilize the C Library because the C Library's thread delete extension is invoked after that of the other thread delete extensions. +.. index:: rtems_task_create_extension + Thread Create Extension ----------------------- @@ -176,8 +179,6 @@ The thread create extension is invoked during thread creation, for example via :ref:`rtems_task_create() ` or :c:func:`pthread_create`. The thread create extension is defined as follows. -.. index:: rtems_task_create_extension - .. code-block:: c typedef bool ( *rtems_task_create_extension )( @@ -202,6 +203,8 @@ must return :c:data:`true`. The thread create extension is invoked in forward order with thread dispatching enabled (except during system initialization). +.. index:: rtems_task_start_extension + Thread Start Extension ---------------------- @@ -209,8 +212,6 @@ The thread start extension is invoked during a thread start, for example via :ref:`rtems_task_start() ` or :c:func:`pthread_create`. The thread start extension is defined as follows. -.. index:: rtems_task_start_extension - .. code-block:: c typedef void ( *rtems_task_start_extension )( @@ -228,6 +229,8 @@ invoked. The thread start extension is invoked in forward order with thread dispatching disabled. +.. index:: rtems_task_restart_extension + Thread Restart Extension ------------------------ @@ -235,8 +238,6 @@ The thread restart extension is invoked during a thread restart, for example via :ref:`rtems_task_restart() `. The thread restart extension is defined as follows. -.. index:: rtems_task_restart_extension - .. code-block:: c typedef void ( *rtems_task_restart_extension )( @@ -254,6 +255,8 @@ dispatching enabled (except during system initialization). The thread life is protected. Thread restart and delete requests issued by thread restart extensions lead to recursion. +.. index:: rtems_task_switch_extension + Thread Switch Extension ----------------------- @@ -261,8 +264,6 @@ The thread switch extension is invoked before the context switch from the currently executing thread to the heir thread. The thread switch extension is defined as follows. -.. index:: rtems_task_switch_extension - .. code-block:: c typedef void ( *rtems_task_switch_extension )( @@ -280,14 +281,14 @@ SMP lock is owned. The context switches initiated through the multitasking start are not covered by the thread switch extension. +.. index:: rtems_task_begin_extension + Thread Begin Extension ---------------------- The thread begin extension is invoked during a thread begin before the thread entry function is called. The thread begin extension is defined as follows. -.. index:: rtems_task_begin_extension - .. code-block:: c typedef void ( *rtems_task_begin_extension )( @@ -303,14 +304,14 @@ The thread begin extension is invoked in forward order with thread dispatching enabled. The thread switch extension may be called multiple times for this thread before the thread begin extension is invoked. +.. index:: rtems_task_exitted_extension + Thread Exitted Extension ------------------------ The thread exitted extension is invoked once the thread entry function returns. The thread exitted extension is defined as follows. -.. index:: rtems_task_exitted_extension - .. code-block:: c typedef void ( *rtems_task_exitted_extension )( @@ -322,6 +323,8 @@ thread. This extension is invoked in forward order with thread dispatching enabled. +.. index:: rtems_task_terminate_extension + Thread Termination Extension ---------------------------- @@ -331,8 +334,6 @@ due to calls of :ref:`rtems_task_delete() `, :c:func:`pthread_exit`, or :c:func:`pthread_cancel`. The thread termination extension is defined as follows. -.. index:: rtems_task_terminate_extension - .. code-block:: c typedef void ( *rtems_task_terminate_extension )( @@ -351,6 +352,8 @@ The thread terminate extension is invoked in reverse order with thread dispatching enabled. The thread life is protected. Thread restart and delete requests issued by thread terminate extensions lead to recursion. +.. index:: rtems_task_delete_extension + Thread Delete Extension ----------------------- @@ -358,8 +361,6 @@ The thread delete extension is invoked in case a zombie thread is killed. A thread becomes a zombie thread after it terminated. The thread delete extension is defined as follows. -.. index:: rtems_task_delete_extension - .. code-block:: c typedef void ( *rtems_task_delete_extension )( @@ -383,14 +384,14 @@ must first terminate and this may take some time. The thread delete extension is invoked by :ref:`rtems_task_create() ` or similar as a result of a lazy garbage collection of zombie threads. +.. index:: rtems_fatal_extension + Fatal Error Extension --------------------- The fatal error extension is invoked during :ref:`system termination `. The fatal error extension is defined as follows. -.. index:: rtems_fatal_extension - .. code-block:: c typedef void( *rtems_fatal_extension )( @@ -424,11 +425,11 @@ sequence, related constants, usage, and status codes. \clearpage .. _rtems_extension_create: +.. index:: create an extension set +.. index:: rtems_extension_create EXTENSION_CREATE - Create a extension set ----------------------------------------- -.. index:: create an extension set -.. index:: rtems_extension_create CALLING SEQUENCE: .. code-block:: c @@ -472,13 +473,13 @@ NOTES: \clearpage .. _rtems_extension_ident: - -EXTENSION_IDENT - Get ID of a extension set -------------------------------------------- .. index:: get ID of an extension set .. index:: obtain ID of an extension set .. index:: rtems_extension_ident +EXTENSION_IDENT - Get ID of a extension set +------------------------------------------- + CALLING SEQUENCE: .. code-block:: c @@ -513,11 +514,11 @@ NOTES: \clearpage .. _rtems_extension_delete: +.. index:: delete an extension set +.. index:: rtems_extension_delete EXTENSION_DELETE - Delete a extension set ----------------------------------------- -.. index:: delete an extension set -.. index:: rtems_extension_delete CALLING SEQUENCE: .. code-block:: c -- cgit v1.2.3