From 8083970e47f4e4114847246b57af04d1d2c7f3c4 Mon Sep 17 00:00:00 2001 From: Chris Johns Date: Tue, 26 Jan 2016 12:29:49 +1100 Subject: Switch the task manager to tables for status codes. --- c_user/task_manager.rst | 514 ++++++++++++++++++++++++------------------------ 1 file changed, 252 insertions(+), 262 deletions(-) (limited to 'c_user') diff --git a/c_user/task_manager.rst b/c_user/task_manager.rst index 8e2b54c..e303518 100644 --- a/c_user/task_manager.rst +++ b/c_user/task_manager.rst @@ -199,29 +199,25 @@ The interrupt level component is used to determine which interrupts will be enabled when the task is executing. ``RTEMS_INTERRUPT_LEVEL(n)`` specifies that the task will execute at interrupt level n. -``RTEMS_PREEMPT`` - enable preemption (default) - -``RTEMS_NO_PREEMPT`` - disable preemption - -``RTEMS_NO_TIMESLICE`` - disable timeslicing (default) - -``RTEMS_TIMESLICE`` - enable timeslicing - -``RTEMS_ASR`` - enable ASR processing (default) - -``RTEMS_NO_ASR`` - disable ASR processing - -``RTEMS_INTERRUPT_LEVEL(0)`` - enable all interrupts (default) - -``RTEMS_INTERRUPT_LEVEL(n)`` - execute at interrupt level n +.. list-table:: + :widths: 1, 50 + + * - ``RTEMS_PREEMPT`` + - enable preemption (default) + * - ``RTEMS_NO_PREEMPT`` + - disable preemption + * - ``RTEMS_NO_TIMESLICE`` + - disable timeslicing (default) + * - ``RTEMS_TIMESLICE`` + - enable timeslicing + * - ``RTEMS_ASR`` + - enable ASR processing (default) + * - ``RTEMS_NO_ASR`` + - disable ASR processing + * - ``RTEMS_INTERRUPT_LEVEL(0)`` + - enable all interrupts (default) + * - ``RTEMS_INTERRUPT_LEVEL(n)`` + - execute at interrupt level n The set of default modes may be selected by specifying the ``RTEMS_DEFAULT_MODES`` constant. @@ -350,17 +346,17 @@ Building a Task Attribute Set 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: -``RTEMS_NO_FLOATING_POINT`` - does not use coprocessor (default) - -``RTEMS_FLOATING_POINT`` - uses numeric coprocessor - -``RTEMS_LOCAL`` - local task (default) +.. list-table:: + :widths: 1, 50 -``RTEMS_GLOBAL`` - global task + * - ``RTEMS_NO_FLOATING_POINT`` + - does not use coprocessor (default) + * - ``RTEMS_FLOATING_POINT`` + - uses numeric coprocessor + * - ``RTEMS_LOCAL`` + - local task (default) + * - ``RTEMS_GLOBAL`` + - global task Attribute values are specifically designed to be mutually exclusive, therefore bitwise OR and addition operations are equivalent as long as each attribute @@ -385,21 +381,25 @@ 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 corresponding mask constant is listed below: -- ``RTEMS_PREEMPT`` is masked by``RTEMS_PREEMPT_MASK`` and enables preemption - -- ``RTEMS_NO_PREEMPT`` is masked by``RTEMS_PREEMPT_MASK`` and disables preemption - -- ``RTEMS_NO_TIMESLICE`` is masked by``RTEMS_TIMESLICE_MASK`` and disables timeslicing - -- ``RTEMS_TIMESLICE`` is masked by``RTEMS_TIMESLICE_MASK`` and enables timeslicing - -- ``RTEMS_ASR`` is masked by``RTEMS_ASR_MASK`` and enables ASR processing - -- ``RTEMS_NO_ASR`` is masked by``RTEMS_ASR_MASK`` and disables ASR processing - -- ``RTEMS_INTERRUPT_LEVEL(0)`` is masked by``RTEMS_INTERRUPT_MASK`` and enables all interrupts - -- ``RTEMS_INTERRUPT_LEVEL(n)`` is masked by``RTEMS_INTERRUPT_MASK`` and sets interrupts level n +.. list-table:: + :widths: 1, 50 + + * - ``RTEMS_PREEMPT`` + - is masked by``RTEMS_PREEMPT_MASK`` and enables preemption + * - ``RTEMS_NO_PREEMPT`` + - is masked by``RTEMS_PREEMPT_MASK`` and disables preemption + * - ``RTEMS_NO_TIMESLICE`` + - is masked by``RTEMS_TIMESLICE_MASK`` and disables timeslicing + * - ``RTEMS_TIMESLICE`` + - is masked by``RTEMS_TIMESLICE_MASK`` and enables timeslicing + * - ``RTEMS_ASR`` + - is masked by``RTEMS_ASR_MASK`` and enables ASR processing + * - ``RTEMS_NO_ASR`` + - is masked by``RTEMS_ASR_MASK`` and disables ASR processing + * - ``RTEMS_INTERRUPT_LEVEL(0)`` + - is masked by``RTEMS_INTERRUPT_MASK`` and enables all interrupts + * - ``RTEMS_INTERRUPT_LEVEL(n)`` + - is masked by``RTEMS_INTERRUPT_MASK`` and sets interrupts level n Mode values are specifically designed to be mutually exclusive, therefore bitwise OR and addition operations are equivalent as long as each mode appears @@ -594,30 +594,25 @@ TASK_CREATE - Create a task **DIRECTIVE STATUS CODES:** -``RTEMS_SUCCESSFUL`` - task created successfully - -``RTEMS_INVALID_ADDRESS`` - ``id`` is NULL - -``RTEMS_INVALID_NAME`` - invalid task name - -``RTEMS_INVALID_PRIORITY`` - invalid task priority - -``RTEMS_MP_NOT_CONFIGURED`` - multiprocessing not configured - -``RTEMS_TOO_MANY`` - too many tasks created - -``RTEMS_UNSATISFIED`` - not enough memory for stack/FP context - -``RTEMS_TOO_MANY`` - too many global objects - +.. list-table:: + :widths: 1, 50 + + * - ``RTEMS_SUCCESSFUL`` + - task created successfully + * - ``RTEMS_INVALID_ADDRESS`` + - ``id`` is NULL + * - ``RTEMS_INVALID_NAME`` + - invalid task name + * - ``RTEMS_INVALID_PRIORITY`` + - invalid task priority + * - ``RTEMS_MP_NOT_CONFIGURED`` + - multiprocessing not configured + * - ``RTEMS_TOO_MANY`` + - too many tasks created + * - ``RTEMS_UNSATISFIED`` + - not enough memory for stack/FP context + * - ``RTEMS_TOO_MANY`` + - too many global objects **DESCRIPTION:** @@ -667,43 +662,39 @@ when calculating the stack size required for tasks which utilize the driver. The following task attribute constants are defined by RTEMS: -``RTEMS_NO_FLOATING_POINT`` - does not use coprocessor (default) - -``RTEMS_FLOATING_POINT`` - uses numeric coprocessor +.. list-table:: + :widths: 1, 50 -``RTEMS_LOCAL`` - local task (default) - -``RTEMS_GLOBAL`` - global task + * - ``RTEMS_NO_FLOATING_POINT`` + - does not use coprocessor (default) + * - ``RTEMS_FLOATING_POINT`` + - uses numeric coprocessor + * - ``RTEMS_LOCAL`` + - local task (default) + * - ``RTEMS_GLOBAL`` + - global task The following task mode constants are defined by RTEMS: -``RTEMS_PREEMPT`` - enable preemption (default) - -``RTEMS_NO_PREEMPT`` - disable preemption - -``RTEMS_NO_TIMESLICE`` - disable timeslicing (default) - -``RTEMS_TIMESLICE`` - enable timeslicing - -``RTEMS_ASR`` - enable ASR processing (default) - -``RTEMS_NO_ASR`` - disable ASR processing - -``RTEMS_INTERRUPT_LEVEL(0)`` - enable all interrupts (default) - -``RTEMS_INTERRUPT_LEVEL(n)`` - execute at interrupt level n +.. list-table:: + :widths: 1, 50 + + * - ``RTEMS_PREEMPT`` + - enable preemption (default) + * - ``RTEMS_NO_PREEMPT`` + - disable preemption + * - ``RTEMS_NO_TIMESLICE`` + - disable timeslicing (default) + * - ``RTEMS_TIMESLICE`` + - enable timeslicing + * - ``RTEMS_ASR`` + - enable ASR processing (default) + * - ``RTEMS_NO_ASR`` + - disable ASR processing + * - ``RTEMS_INTERRUPT_LEVEL(0)`` + - enable all interrupts (default) + * - ``RTEMS_INTERRUPT_LEVEL(n)`` + - execute at interrupt level n The interrupt level portion of the task execution mode supports a maximum of 256 interrupt levels. These levels are mapped onto the interrupt levels @@ -738,18 +729,17 @@ TASK_IDENT - Get ID of a task **DIRECTIVE STATUS CODES:** -``RTEMS_SUCCESSFUL`` - task identified successfully - -``RTEMS_INVALID_ADDRESS`` - ``id`` is NULL - -``RTEMS_INVALID_NAME`` - invalid task name - -``RTEMS_INVALID_NODE`` - invalid node id +.. list-table:: + :widths: 1, 50 + * - ``RTEMS_SUCCESSFUL`` + - task identified successfully + * - ``RTEMS_INVALID_ADDRESS`` + - ``id`` is NULL + * - ``RTEMS_INVALID_NAME`` + - invalid task name + * - ``RTEMS_INVALID_NODE`` + - invalid node id **DESCRIPTION:** @@ -821,20 +811,19 @@ TASK_START - Start a task **DIRECTIVE STATUS CODES:** -``RTEMS_SUCCESSFUL`` - ask started successfully - -``RTEMS_INVALID_ADDRESS`` - invalid task entry point - -``RTEMS_INVALID_ID`` - invalid task id +.. list-table:: + :widths: 1, 50 -``RTEMS_INCORRECT_STATE`` - task not in the dormant state - -``RTEMS_ILLEGAL_ON_REMOTE_OBJECT`` - cannot start remote task + * - ``RTEMS_SUCCESSFUL`` + - ask started successfully + * - ``RTEMS_INVALID_ADDRESS`` + - invalid task entry point + * - ``RTEMS_INVALID_ID`` + - invalid task id + * - ``RTEMS_INCORRECT_STATE`` + - task not in the dormant state + * - ``RTEMS_ILLEGAL_ON_REMOTE_OBJECT`` + - cannot start remote task **DESCRIPTION:** @@ -875,17 +864,17 @@ TASK_RESTART - Restart a task **DIRECTIVE STATUS CODES:** -``RTEMS_SUCCESSFUL`` - task restarted successfully - -``RTEMS_INVALID_ID`` - task id invalid +.. list-table:: + :widths: 1, 50 -``RTEMS_INCORRECT_STATE`` - task never started - -``RTEMS_ILLEGAL_ON_REMOTE_OBJECT`` - cannot restart remote task + * - ``RTEMS_SUCCESSFUL`` + - task restarted successfully + * - ``RTEMS_INVALID_ID`` + - task id invalid + * - ``RTEMS_INCORRECT_STATE`` + - task never started + * - ``RTEMS_ILLEGAL_ON_REMOTE_OBJECT`` + - cannot restart remote task **DESCRIPTION:** @@ -936,14 +925,15 @@ TASK_DELETE - Delete a task **DIRECTIVE STATUS CODES:** -``RTEMS_SUCCESSFUL`` - task deleted successfully - -``RTEMS_INVALID_ID`` - task id invalid +.. list-table:: + :widths: 1, 50 -``RTEMS_ILLEGAL_ON_REMOTE_OBJECT`` - cannot restart remote task + * - ``RTEMS_SUCCESSFUL`` + - task deleted successfully + * - ``RTEMS_INVALID_ID`` + - task id invalid + * - ``RTEMS_ILLEGAL_ON_REMOTE_OBJECT`` + - cannot restart remote task **DESCRIPTION:** @@ -991,14 +981,15 @@ TASK_SUSPEND - Suspend a task **DIRECTIVE STATUS CODES:** -``RTEMS_SUCCESSFUL`` - task suspended successfully +.. list-table:: + :widths: 1, 50 -``RTEMS_INVALID_ID`` - task id invalid - -``RTEMS_ALREADY_SUSPENDED`` - task already suspended + * - ``RTEMS_SUCCESSFUL`` + - task suspended successfully + * - ``RTEMS_INVALID_ID`` + - task id invalid + * - ``RTEMS_ALREADY_SUSPENDED`` + - task already suspended **DESCRIPTION:** @@ -1038,14 +1029,15 @@ TASK_RESUME - Resume a task **DIRECTIVE STATUS CODES:** -``RTEMS_SUCCESSFUL`` - task resumed successfully - -``RTEMS_INVALID_ID`` - task id invalid +.. list-table:: + :widths: 1, 50 -``RTEMS_INCORRECT_STATE`` - task not suspended + * - ``RTEMS_SUCCESSFUL`` + - task resumed successfully + * - ``RTEMS_INVALID_ID`` + - task id invalid + * - ``RTEMS_INCORRECT_STATE`` + - task not suspended **DESCRIPTION:** @@ -1083,17 +1075,17 @@ TASK_IS_SUSPENDED - Determine if a task is Suspended **DIRECTIVE STATUS CODES:** -``RTEMS_SUCCESSFUL`` - task is NOT suspended +.. list-table:: + :widths: 1, 50 -``RTEMS_ALREADY_SUSPENDED`` - task is currently suspended - -``RTEMS_INVALID_ID`` - task id invalid - -``RTEMS_ILLEGAL_ON_REMOTE_OBJECT`` - not supported on remote tasks + * - ``RTEMS_SUCCESSFUL`` + - task is NOT suspended + * - ``RTEMS_ALREADY_SUSPENDED`` + - task is currently suspended + * - ``RTEMS_INVALID_ID`` + - task id invalid + * - ``RTEMS_ILLEGAL_ON_REMOTE_OBJECT`` + - not supported on remote tasks **DESCRIPTION:** @@ -1126,17 +1118,17 @@ TASK_SET_PRIORITY - Set task priority **DIRECTIVE STATUS CODES:** -``RTEMS_SUCCESSFUL`` - task priority set successfully - -``RTEMS_INVALID_ID`` - invalid task id +.. list-table:: + :widths: 1, 50 -``RTEMS_INVALID_ADDRESS`` - invalid return argument pointer - -``RTEMS_INVALID_PRIORITY`` - invalid task priority + * - ``RTEMS_SUCCESSFUL`` + - task priority set successfully + * - ``RTEMS_INVALID_ID`` + - invalid task id + * - ``RTEMS_INVALID_ADDRESS`` + - invalid return argument pointer + * - ``RTEMS_INVALID_PRIORITY`` + - invalid task priority **DESCRIPTION:** @@ -1192,11 +1184,13 @@ TASK_MODE - Change the current task mode **DIRECTIVE STATUS CODES:** -``RTEMS_SUCCESSFUL`` - task mode set successfully +.. list-table:: + :widths: 1, 50 -``RTEMS_INVALID_ADDRESS`` - ``previous_mode_set`` is NULL + * - ``RTEMS_SUCCESSFUL`` + - task mode set successfully + * - ``RTEMS_INVALID_ADDRESS`` + - ``previous_mode_set`` is NULL **DESCRIPTION:** @@ -1224,29 +1218,25 @@ directive with the ``RTEMS_NO_ASR`` indicator specified in mode. The set of task mode constants and each mode's corresponding mask constant is provided in the following table: -``RTEMS_PREEMPT`` - is masked by ``RTEMS_PREEMPT_MASK`` and enables preemption - -``RTEMS_NO_PREEMPT`` - is masked by ``RTEMS_PREEMPT_MASK`` and disables preemption - -``RTEMS_NO_TIMESLICE`` - is masked by ``RTEMS_TIMESLICE_MASK`` and disables timeslicing - -``RTEMS_TIMESLICE`` - is masked by ``RTEMS_TIMESLICE_MASK`` and enables timeslicing - -``RTEMS_ASR`` - is masked by ``RTEMS_ASR_MASK`` and enables ASR processing - -``RTEMS_NO_ASR`` - is masked by ``RTEMS_ASR_MASK`` and disables ASR processing - -``RTEMS_INTERRUPT_LEVEL(0)`` - is masked by ``RTEMS_INTERRUPT_MASK`` and enables all interrupts - -``RTEMS_INTERRUPT_LEVEL(n)`` - is masked by ``RTEMS_INTERRUPT_MASK`` and sets interrupts level n +.. list-table:: + :widths: 1, 50 + + * - ``RTEMS_PREEMPT`` + - is masked by ``RTEMS_PREEMPT_MASK`` and enables preemption + * - ``RTEMS_NO_PREEMPT`` + - is masked by ``RTEMS_PREEMPT_MASK`` and disables preemption + * - ``RTEMS_NO_TIMESLICE`` + - is masked by ``RTEMS_TIMESLICE_MASK`` and disables timeslicing + * - ``RTEMS_TIMESLICE`` + - is masked by ``RTEMS_TIMESLICE_MASK`` and enables timeslicing + * - ``RTEMS_ASR`` + - is masked by ``RTEMS_ASR_MASK`` and enables ASR processing + * - ``RTEMS_NO_ASR`` + - is masked by ``RTEMS_ASR_MASK`` and disables ASR processing + * - ``RTEMS_INTERRUPT_LEVEL(0)`` + - is masked by ``RTEMS_INTERRUPT_MASK`` and enables all interrupts + * - ``RTEMS_INTERRUPT_LEVEL(n)`` + - is masked by ``RTEMS_INTERRUPT_MASK`` and sets interrupts level n .. _rtems_task_wake_after: @@ -1267,7 +1257,11 @@ TASK_WAKE_AFTER - Wake up after interval **DIRECTIVE STATUS CODES:** -``RTEMS_SUCCESSFUL`` - always successful +.. list-table:: + :widths: 1, 50 + + * - ``RTEMS_SUCCESSFUL`` + - always successful **DESCRIPTION:** @@ -1307,17 +1301,17 @@ TASK_WAKE_WHEN - Wake up when specified **DIRECTIVE STATUS CODES:** -``RTEMS_SUCCESSFUL`` - awakened at date/time successfully - -``RTEMS_INVALID_ADDRESS`` - ``time_buffer`` is NULL - -``RTEMS_INVALID_TIME_OF_DAY`` - invalid time buffer +.. list-table:: + :widths: 1, 50 -``RTEMS_NOT_DEFINED`` - system date and time is not set + * - ``RTEMS_SUCCESSFUL`` + - awakened at date/time successfully + * - ``RTEMS_INVALID_ADDRESS`` + - ``time_buffer`` is NULL + * - ``RTEMS_INVALID_TIME_OF_DAY`` + - invalid time buffer + * - ``RTEMS_NOT_DEFINED`` + - system date and time is not set **DESCRIPTION:** @@ -1395,20 +1389,19 @@ TASK_VARIABLE_ADD - Associate per task variable **DIRECTIVE STATUS CODES:** -``RTEMS_SUCCESSFUL`` - per task variable added successfully +.. list-table:: + :widths: 1, 50 -``RTEMS_INVALID_ADDRESS`` - ``task_variable`` is NULL - -``RTEMS_INVALID_ID`` - invalid task id - -``RTEMS_NO_MEMORY`` - invalid task id - -``RTEMS_ILLEGAL_ON_REMOTE_OBJECT`` - not supported on remote tasks + * - ``RTEMS_SUCCESSFUL`` + - per task variable added successfully + * - ``RTEMS_INVALID_ADDRESS`` + - ``task_variable`` is NULL + * - ``RTEMS_INVALID_ID`` + - invalid task id + * - ``RTEMS_NO_MEMORY`` + - invalid task id + * - ``RTEMS_ILLEGAL_ON_REMOTE_OBJECT`` + - not supported on remote tasks **DESCRIPTION:** @@ -1458,23 +1451,21 @@ TASK_VARIABLE_GET - Obtain value of a per task variable **DIRECTIVE STATUS CODES:** -``RTEMS_SUCCESSFUL`` - per task variable obtained successfully - -``RTEMS_INVALID_ADDRESS`` - ``task_variable`` is NULL - -``RTEMS_INVALID_ADDRESS`` - ``task_variable_value`` is NULL - -``RTEMS_INVALID_ADDRESS`` - ``task_variable`` is not found - -``RTEMS_NO_MEMORY`` - invalid task id - -``RTEMS_ILLEGAL_ON_REMOTE_OBJECT`` - not supported on remote tasks +.. list-table:: + :widths: 1, 50 + + * - ``RTEMS_SUCCESSFUL`` + - per task variable obtained successfully + * - ``RTEMS_INVALID_ADDRESS`` + - ``task_variable`` is NULL + * - ``RTEMS_INVALID_ADDRESS`` + - ``task_variable_value`` is NULL + * - ``RTEMS_INVALID_ADDRESS`` + - ``task_variable`` is not found + * - ``RTEMS_NO_MEMORY`` + - invalid task id + * - ``RTEMS_ILLEGAL_ON_REMOTE_OBJECT`` + - not supported on remote tasks **DESCRIPTION:** @@ -1518,20 +1509,19 @@ TASK_VARIABLE_DELETE - Remove per task variable **DIRECTIVE STATUS CODES:** -``RTEMS_SUCCESSFUL`` - per task variable deleted successfully - -``RTEMS_INVALID_ID`` - invalid task id - -``RTEMS_NO_MEMORY`` - invalid task id - -``RTEMS_INVALID_ADDRESS`` - ``task_variable`` is NULL - -``RTEMS_ILLEGAL_ON_REMOTE_OBJECT`` - not supported on remote tasks +.. list-table:: + :widths: 1, 50 + + * - ``RTEMS_SUCCESSFUL`` + - per task variable deleted successfully + * - ``RTEMS_INVALID_ID`` + - invalid task id + * - ``RTEMS_NO_MEMORY`` + - invalid task id + * - ``RTEMS_INVALID_ADDRESS`` + - ``task_variable`` is NULL + * - ``RTEMS_ILLEGAL_ON_REMOTE_OBJECT`` + - not supported on remote tasks **DESCRIPTION:** -- cgit v1.2.3