forked from Imagelibrary/rtems
Conditionally adding RTEMS_ and rtems_ prefixes.
This commit is contained in:
@@ -30,11 +30,11 @@ representations for multiple dual-ported memory areas (DPMA).
|
|||||||
The directives provided by the dual-ported memory manager are:
|
The directives provided by the dual-ported memory manager are:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{port_create} - Create a port
|
@item @code{@value{DIRPREFIX}port_create} - Create a port
|
||||||
@item @code{port_ident} - Get ID of a port
|
@item @code{@value{DIRPREFIX}port_ident} - Get ID of a port
|
||||||
@item @code{port_delete} - Delete a port
|
@item @code{@value{DIRPREFIX}port_delete} - Delete a port
|
||||||
@item @code{port_external_to_internal} - Convert external to internal address
|
@item @code{@value{DIRPREFIX}port_external_to_internal} - Convert external to internal address
|
||||||
@item @code{port_internal_to_external} - Convert internal to external address
|
@item @code{@value{DIRPREFIX}port_internal_to_external} - Convert internal to external address
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
@ifinfo
|
@ifinfo
|
||||||
@@ -175,10 +175,10 @@ procedure Port_Create (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - port created successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - port created successfully@*
|
||||||
@code{INVALID_NAME} - invalid task name@*
|
@code{@value{RPREFIX}INVALID_NAME} - invalid task name@*
|
||||||
@code{INVALID_ADDRESS} - address not on four byte boundary@*
|
@code{@value{RPREFIX}INVALID_ADDRESS} - address not on four byte boundary@*
|
||||||
@code{TOO_MANY} - too many DP memory areas created
|
@code{@value{RPREFIX}TOO_MANY} - too many DP memory areas created
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -229,8 +229,8 @@ procedure Port_Ident (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - port identified successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - port identified successfully@*
|
||||||
@code{INVALID_NAME} - port name not found
|
@code{@value{RPREFIX}INVALID_NAME} - port name not found
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -272,8 +272,8 @@ procedure Port_Delete (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - port deleted successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - port deleted successfully@*
|
||||||
@code{INVALID_ID} - invalid port id
|
@code{@value{RPREFIX}INVALID_ID} - invalid port id
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -320,7 +320,7 @@ procedure Port_External_To_Internal (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - always successful
|
@code{@value{RPREFIX}SUCCESSFUL} - always successful
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -367,7 +367,7 @@ procedure Port_Internal_To_External (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - always successful
|
@code{@value{RPREFIX}SUCCESSFUL} - always successful
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
|
|||||||
@@ -29,8 +29,8 @@ of intertask communication and synchronization. The directives
|
|||||||
provided by the event manager are:
|
provided by the event manager are:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{event_send} - Send event set to a task
|
@item @code{@value{DIRPREFIX}event_send} - Send event set to a task
|
||||||
@item @code{event_receive} - Receive event condition
|
@item @code{@value{DIRPREFIX}event_receive} - Receive event condition
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
@ifinfo
|
@ifinfo
|
||||||
@@ -80,9 +80,9 @@ not received. An event condition is used to specify the events
|
|||||||
which the task desires to receive and the algorithm which will
|
which the task desires to receive and the algorithm which will
|
||||||
be used to determine when the request is satisfied. An event
|
be used to determine when the request is satisfied. An event
|
||||||
condition is satisfied based upon one of two algorithms which
|
condition is satisfied based upon one of two algorithms which
|
||||||
are selected by the user. The @code{EVENT_ANY} algorithm states that
|
are selected by the user. The @code{@value{RPREFIX}EVENT_ANY} algorithm states that
|
||||||
an event condition is satisfied when at least a single requested
|
an event condition is satisfied when at least a single requested
|
||||||
event is posted. The @code{EVENT_ALL} algorithm states that an event
|
event is posted. The @code{@value{RPREFIX}EVENT_ALL} algorithm states that an event
|
||||||
condition is satisfied when every requested event is posted.
|
condition is satisfied when every requested event is posted.
|
||||||
|
|
||||||
@ifinfo
|
@ifinfo
|
||||||
@@ -91,15 +91,15 @@ condition is satisfied when every requested event is posted.
|
|||||||
@subsection Building an Event Set or Condition
|
@subsection Building an Event Set or Condition
|
||||||
|
|
||||||
An event set or condition is built by a bitwise OR of
|
An event set or condition is built by a bitwise OR of
|
||||||
the desired events. The set of valid events is @code{EVENT_0} through
|
the desired events. The set of valid events is @code{@value{RPREFIX}EVENT_0} through
|
||||||
@code{EVENT_31}. If an event is not explicitly specified in the set or
|
@code{@value{RPREFIX}EVENT_31}. If an event is not explicitly specified in the set or
|
||||||
condition, then it is not present. Events are specifically
|
condition, then it is not present. Events are specifically
|
||||||
designed to be mutually exclusive, therefore bitwise OR and
|
designed to be mutually exclusive, therefore bitwise OR and
|
||||||
addition operations are equivalent as long as each event appears
|
addition operations are equivalent as long as each event appears
|
||||||
exactly once in the event set list.
|
exactly once in the event set list.
|
||||||
|
|
||||||
For example, when sending the event set consisting of
|
For example, when sending the event set consisting of
|
||||||
@code{EVENT_6}, @code{EVENT_15}, and @code{EVENT_31},
|
@code{@value{RPREFIX}EVENT_6}, @code{@value{RPREFIX}EVENT_15}, and @code{@value{RPREFIX}EVENT_31},
|
||||||
the event parameter to the event_send directive should be
|
the event parameter to the event_send directive should be
|
||||||
@code{@value{RPREFIX}EVENT_6 @value{OR}
|
@code{@value{RPREFIX}EVENT_6 @value{OR}
|
||||||
@value{RPREFIX}EVENT_15 @value{OR} @value{RPREFIX}EVENT_31}.
|
@value{RPREFIX}EVENT_15 @value{OR} @value{RPREFIX}EVENT_31}.
|
||||||
@@ -114,10 +114,10 @@ desired option components. The set of valid options for the
|
|||||||
event_receive directive are listed in the following table:
|
event_receive directive are listed in the following table:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{WAIT} - task will wait for event (default)
|
@item @code{@value{RPREFIX}WAIT} - task will wait for event (default)
|
||||||
@item @code{NO_WAIT} - task should not wait
|
@item @code{@value{RPREFIX}NO_WAIT} - task should not wait
|
||||||
@item @code{EVENT_ALL} - return after all events (default)
|
@item @code{@value{RPREFIX}EVENT_ALL} - return after all events (default)
|
||||||
@item @code{EVENT_ANY} - return after any events
|
@item @code{@value{RPREFIX}EVENT_ANY} - return after any events
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
Option values are specifically designed to be
|
Option values are specifically designed to be
|
||||||
@@ -126,7 +126,7 @@ are equivalent as long as each option appears exactly once in
|
|||||||
the component list. An option listed as a default is not
|
the component list. An option listed as a default is not
|
||||||
required to appear in the option list, although it is a good
|
required to appear in the option list, although it is a good
|
||||||
programming practice to specify default options. If all
|
programming practice to specify default options. If all
|
||||||
defaults are desired, the option @code{DEFAULT_OPTIONS} should be
|
defaults are desired, the option @code{@value{RPREFIX}DEFAULT_OPTIONS} should be
|
||||||
specified on this call.
|
specified on this call.
|
||||||
|
|
||||||
This example demonstrates the option parameter needed
|
This example demonstrates the option parameter needed
|
||||||
@@ -134,8 +134,8 @@ to poll for all events in a particular event condition to
|
|||||||
arrive. The option parameter passed to the event_receive
|
arrive. The option parameter passed to the event_receive
|
||||||
directive should be either
|
directive should be either
|
||||||
@code{@value{RPREFIX}EVENT_ALL @value{OR} @value{RPREFIX}NO_WAIT}
|
@code{@value{RPREFIX}EVENT_ALL @value{OR} @value{RPREFIX}NO_WAIT}
|
||||||
or @code{NO_WAIT}. The option parameter can be set to
|
or @code{@value{RPREFIX}NO_WAIT}. The option parameter can be set to
|
||||||
@code{NO_WAIT} because @code{EVENT_ALL} is the
|
@code{@value{RPREFIX}NO_WAIT} because @code{@value{RPREFIX}EVENT_ALL} is the
|
||||||
default condition for event_receive.
|
default condition for event_receive.
|
||||||
|
|
||||||
@ifinfo
|
@ifinfo
|
||||||
@@ -200,7 +200,7 @@ satisfied, then one of the following situations applies:
|
|||||||
@item By default, the calling task will wait forever for the
|
@item By default, the calling task will wait forever for the
|
||||||
event condition to be satisfied.
|
event condition to be satisfied.
|
||||||
|
|
||||||
@item Specifying the @code{NO_WAIT} option forces an immediate return
|
@item Specifying the @code{@value{RPREFIX}NO_WAIT} option forces an immediate return
|
||||||
with an error status code.
|
with an error status code.
|
||||||
|
|
||||||
@item Specifying a timeout limits the period the task will
|
@item Specifying a timeout limits the period the task will
|
||||||
@@ -224,11 +224,11 @@ the calling task but the event set is left unaltered.
|
|||||||
|
|
||||||
A task can receive all of the currently pending
|
A task can receive all of the currently pending
|
||||||
events by calling the event_receive directive with a value of
|
events by calling the event_receive directive with a value of
|
||||||
@code{ALL_EVENTS} for the input event condition and
|
@code{@value{RPREFIX}ALL_EVENTS} for the input event condition and
|
||||||
@code{@value{RPREFIX}NO_WAIT @value{OR} @value{RPREFIX}EVENT_ANY}
|
@code{@value{RPREFIX}NO_WAIT @value{OR} @value{RPREFIX}EVENT_ANY}
|
||||||
for the option set. The pending events are returned to the
|
for the option set. The pending events are returned to the
|
||||||
calling task and the event set is cleared. If no events are
|
calling task and the event set is cleared. If no events are
|
||||||
pending then the @code{UNSATISFIED} status code will be returned.
|
pending then the @code{@value{RPREFIX}UNSATISFIED} status code will be returned.
|
||||||
|
|
||||||
@ifinfo
|
@ifinfo
|
||||||
@node Event Manager Directives, EVENT_SEND - Send event set to a task, Receiving all Pending Events, Event Manager
|
@node Event Manager Directives, EVENT_SEND - Send event set to a task, Receiving all Pending Events, Event Manager
|
||||||
@@ -274,8 +274,8 @@ procedure Event_Send (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - event set sent successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - event set sent successfully@*
|
||||||
@code{INVALID_ID} - invalid task id
|
@code{@value{RPREFIX}INVALID_ID} - invalid task id
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -289,7 +289,7 @@ events, then the events sent are left pending.
|
|||||||
|
|
||||||
@subheading NOTES:
|
@subheading NOTES:
|
||||||
|
|
||||||
Specifying @code{SELF} for id results in the event set being
|
Specifying @code{@value{RPREFIX}SELF} for id results in the event set being
|
||||||
sent to the calling task.
|
sent to the calling task.
|
||||||
|
|
||||||
Identical events sent to a task are not queued. In
|
Identical events sent to a task are not queued. In
|
||||||
@@ -336,19 +336,19 @@ procedure Event_Receive (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - event received successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - event received successfully@*
|
||||||
@code{UNSATISFIED} - input event not satisfied (@code{NO_WAIT})@*
|
@code{@value{RPREFIX}UNSATISFIED} - input event not satisfied (@code{@value{RPREFIX}NO_WAIT})@*
|
||||||
@code{TIMEOUT} - timed out waiting for event
|
@code{@value{RPREFIX}TIMEOUT} - timed out waiting for event
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
This directive attempts to receive the event
|
This directive attempts to receive the event
|
||||||
condition specified in event_in. If event_in is set to
|
condition specified in event_in. If event_in is set to
|
||||||
@code{PENDING_EVENTS}, then the current pending events are returned in
|
@code{@value{RPREFIX}PENDING_EVENTS}, then the current pending events are returned in
|
||||||
event_out and left pending. The @code{WAIT} and @code{NO_WAIT} options in the
|
event_out and left pending. The @code{@value{RPREFIX}WAIT} and @code{@value{RPREFIX}NO_WAIT} options in the
|
||||||
option_set parameter are used to specify whether or not the task
|
option_set parameter are used to specify whether or not the task
|
||||||
is willing to wait for the event condition to be satisfied.
|
is willing to wait for the event condition to be satisfied.
|
||||||
@code{EVENT_ANY} and @code{EVENT_ALL} are used in the option_set parameter are
|
@code{@value{RPREFIX}EVENT_ANY} and @code{@value{RPREFIX}EVENT_ALL} are used in the option_set parameter are
|
||||||
used to specify whether a single event or the complete event set
|
used to specify whether a single event or the complete event set
|
||||||
is necessary to satisfy the event condition. The event_out
|
is necessary to satisfy the event condition. The event_out
|
||||||
parameter is returned to the calling task with the value that
|
parameter is returned to the calling task with the value that
|
||||||
@@ -357,13 +357,13 @@ corresponds to the events in event_in that were satisfied.
|
|||||||
If pending events satisfy the event condition, then
|
If pending events satisfy the event condition, then
|
||||||
event_out is set to the satisfied events and the pending events
|
event_out is set to the satisfied events and the pending events
|
||||||
in the event condition are cleared. If the event condition is
|
in the event condition are cleared. If the event condition is
|
||||||
not satisfied and @code{NO_WAIT} is specified, then event_out is set to
|
not satisfied and @code{@value{RPREFIX}NO_WAIT} is specified, then event_out is set to
|
||||||
the currently satisfied events. If the calling task chooses to
|
the currently satisfied events. If the calling task chooses to
|
||||||
wait, then it will block waiting for the event condition.
|
wait, then it will block waiting for the event condition.
|
||||||
|
|
||||||
If the calling task must wait for the event condition
|
If the calling task must wait for the event condition
|
||||||
to be satisfied, then the timeout parameter is used to specify
|
to be satisfied, then the timeout parameter is used to specify
|
||||||
the maximum interval to wait. If it is set to @code{NO_TIMEOUT}, then
|
the maximum interval to wait. If it is set to @code{@value{RPREFIX}NO_TIMEOUT}, then
|
||||||
the calling task will wait forever.
|
the calling task will wait forever.
|
||||||
|
|
||||||
@subheading NOTES:
|
@subheading NOTES:
|
||||||
@@ -376,10 +376,10 @@ The following event receive option constants are defined by
|
|||||||
RTEMS:
|
RTEMS:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{WAIT} task will wait for event (default)
|
@item @code{@value{RPREFIX}WAIT} task will wait for event (default)
|
||||||
@item @code{NO_WAIT} task should not wait
|
@item @code{@value{RPREFIX}NO_WAIT} task should not wait
|
||||||
@item @code{EVENT_ALL} return after all events (default)
|
@item @code{@value{RPREFIX}EVENT_ALL} return after all events (default)
|
||||||
@item @code{EVENT_ANY} return after any events
|
@item @code{@value{RPREFIX}EVENT_ANY} return after any events
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
A clock tick is required to support the functionality of this directive.
|
A clock tick is required to support the functionality of this directive.
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ irrecoverable errors. The directive provided by the fatal error
|
|||||||
manager is:
|
manager is:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{fatal_error_occurred} - Invoke the fatal error handler
|
@item @code{@value{DIRPREFIX}fatal_error_occurred} - Invoke the fatal error handler
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
@ifinfo
|
@ifinfo
|
||||||
|
|||||||
@@ -33,10 +33,10 @@ also initializes the interprocessor communications layer. The
|
|||||||
directives provided by the initialization manager are:
|
directives provided by the initialization manager are:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{initialize_executive} - Initialize RTEMS
|
@item @code{@value{DIRPREFIX}initialize_executive} - Initialize RTEMS
|
||||||
@item @code{initialize_executive_early} - Initialize RTEMS and do NOT Start Multitasking
|
@item @code{@value{DIRPREFIX}initialize_executive_early} - Initialize RTEMS and do NOT Start Multitasking
|
||||||
@item @code{initialize_executive_late} - Complete Initialization and Start Multitasking
|
@item @code{@value{DIRPREFIX}initialize_executive_late} - Complete Initialization and Start Multitasking
|
||||||
@item @code{shutdown_executive} - Shutdown RTEMS
|
@item @code{@value{DIRPREFIX}shutdown_executive} - Shutdown RTEMS
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
@ifinfo
|
@ifinfo
|
||||||
|
|||||||
@@ -34,11 +34,11 @@ exit from an ISR. The interrupt manager includes the following
|
|||||||
directive:
|
directive:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{interrupt_catch} - Establish an ISR
|
@item @code{@value{DIRPREFIX}interrupt_catch} - Establish an ISR
|
||||||
@item @code{interrupt_disable} - Disable Interrupts
|
@item @code{@value{DIRPREFIX}interrupt_disable} - Disable Interrupts
|
||||||
@item @code{interrupt_enable} - Enable Interrupts
|
@item @code{@value{DIRPREFIX}interrupt_enable} - Enable Interrupts
|
||||||
@item @code{interrupt_flash} - Flash Interrupt
|
@item @code{@value{DIRPREFIX}interrupt_flash} - Flash Interrupt
|
||||||
@item @code{interrupt_is_in_progress} - Is an ISR in Progress
|
@item @code{@value{DIRPREFIX}interrupt_is_in_progress} - Is an ISR in Progress
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
@ifinfo
|
@ifinfo
|
||||||
@@ -313,9 +313,9 @@ procedure Interrupt_Catch (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - ISR established successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - ISR established successfully@*
|
||||||
@code{INVALID_NUMBER} - illegal vector number@*
|
@code{@value{RPREFIX}INVALID_NUMBER} - illegal vector number@*
|
||||||
@code{INVALID_ADDRESS} - illegal ISR entry point or invalid old_isr_handler
|
@code{@value{RPREFIX}INVALID_ADDRESS} - illegal ISR entry point or invalid old_isr_handler
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -360,7 +360,7 @@ NONE
|
|||||||
|
|
||||||
This directive disables all maskable interrupts and returns
|
This directive disables all maskable interrupts and returns
|
||||||
the previous @code{level}. A later invocation of the
|
the previous @code{level}. A later invocation of the
|
||||||
@code{interrupt_enable} directive should be used to
|
@code{@value{DIRPREFIX}interrupt_enable} directive should be used to
|
||||||
restore the interrupt level.
|
restore the interrupt level.
|
||||||
|
|
||||||
@subheading NOTES:
|
@subheading NOTES:
|
||||||
@@ -403,9 +403,9 @@ NONE
|
|||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
This directive enables maskable interrupts to the @code{level}
|
This directive enables maskable interrupts to the @code{level}
|
||||||
which was returned by a previous call to @code{interrupt_disable}.
|
which was returned by a previous call to @code{@value{DIRPREFIX}interrupt_disable}.
|
||||||
Immediately prior to invoking this directive, maskable interrupts should
|
Immediately prior to invoking this directive, maskable interrupts should
|
||||||
be disabled by a call to @code{interrupt_disable} and will be enabled
|
be disabled by a call to @code{@value{DIRPREFIX}interrupt_disable} and will be enabled
|
||||||
when this directive returns to the caller.
|
when this directive returns to the caller.
|
||||||
|
|
||||||
@subheading NOTES:
|
@subheading NOTES:
|
||||||
@@ -444,9 +444,9 @@ NONE
|
|||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
This directive temporarily enables maskable interrupts to the @code{level}
|
This directive temporarily enables maskable interrupts to the @code{level}
|
||||||
which was returned by a previous call to @code{interrupt_disable}.
|
which was returned by a previous call to @code{@value{DIRPREFIX}interrupt_disable}.
|
||||||
Immediately prior to invoking this directive, maskable interrupts should
|
Immediately prior to invoking this directive, maskable interrupts should
|
||||||
be disabled by a call to @code{interrupt_disable} and will be redisabled
|
be disabled by a call to @code{@value{DIRPREFIX}interrupt_disable} and will be redisabled
|
||||||
when this directive returns to the caller.
|
when this directive returns to the caller.
|
||||||
|
|
||||||
@subheading NOTES:
|
@subheading NOTES:
|
||||||
|
|||||||
@@ -30,14 +30,14 @@ structured methodology for organizing device drivers. The
|
|||||||
directives provided by the I/O manager are:
|
directives provided by the I/O manager are:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{io_initialize} - Initialize a device driver
|
@item @code{@value{DIRPREFIX}io_initialize} - Initialize a device driver
|
||||||
@item @code{io_register_name} - Register a device name
|
@item @code{@value{DIRPREFIX}io_register_name} - Register a device name
|
||||||
@item @code{io_lookup_name} - Look up a device name
|
@item @code{@value{DIRPREFIX}io_lookup_name} - Look up a device name
|
||||||
@item @code{io_open} - Open a device
|
@item @code{@value{DIRPREFIX}io_open} - Open a device
|
||||||
@item @code{io_close} - Close a device
|
@item @code{@value{DIRPREFIX}io_close} - Close a device
|
||||||
@item @code{io_read} - Read from a device
|
@item @code{@value{DIRPREFIX}io_read} - Read from a device
|
||||||
@item @code{io_write} - Write to a device
|
@item @code{@value{DIRPREFIX}io_write} - Write to a device
|
||||||
@item @code{io_control} - Special device services
|
@item @code{@value{DIRPREFIX}io_control} - Special device services
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
|
|
||||||
@@ -79,7 +79,7 @@ entry points:
|
|||||||
|
|
||||||
If the device driver does not support a particular
|
If the device driver does not support a particular
|
||||||
entry point, then that entry in the Configuration Table should
|
entry point, then that entry in the Configuration Table should
|
||||||
be NULL. RTEMS will return @code{SUCCESSFUL} as the executive's and
|
be NULL. RTEMS will return @code{@value{RPREFIX}SUCCESSFUL} as the executive's and
|
||||||
zero (0) as the device driver's return code for these device
|
zero (0) as the device driver's return code for these device
|
||||||
driver entry points.
|
driver entry points.
|
||||||
|
|
||||||
@@ -298,8 +298,8 @@ procedure IO_Initialize (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - successfully initialized@*
|
@code{@value{RPREFIX}SUCCESSFUL} - successfully initialized@*
|
||||||
@code{INVALID_NUMBER} - invalid major device number
|
@code{@value{RPREFIX}INVALID_NUMBER} - invalid major device number
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -350,8 +350,8 @@ procedure IO_Register_Name (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - successfully initialized@*
|
@code{@value{RPREFIX}SUCCESSFUL} - successfully initialized@*
|
||||||
@code{TOO_MANY} - too many devices registered
|
@code{@value{RPREFIX}TOO_MANY} - too many devices registered
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -391,8 +391,8 @@ procedure IO_Lookup_Name (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - successfully initialized@*
|
@code{@value{RPREFIX}SUCCESSFUL} - successfully initialized@*
|
||||||
@code{UNSATISFIED} - name not registered
|
@code{@value{RPREFIX}UNSATISFIED} - name not registered
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -435,8 +435,8 @@ procedure IO_Open (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - successfully initialized@*
|
@code{@value{RPREFIX}SUCCESSFUL} - successfully initialized@*
|
||||||
@code{INVALID_NUMBER} - invalid major device number
|
@code{@value{RPREFIX}INVALID_NUMBER} - invalid major device number
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -482,8 +482,8 @@ procedure IO_Close (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - successfully initialized@*
|
@code{@value{RPREFIX}SUCCESSFUL} - successfully initialized@*
|
||||||
@code{INVALID_NUMBER} - invalid major device number
|
@code{@value{RPREFIX}INVALID_NUMBER} - invalid major device number
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -529,8 +529,8 @@ procedure IO_Read (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - successfully initialized@*
|
@code{@value{RPREFIX}SUCCESSFUL} - successfully initialized@*
|
||||||
@code{INVALID_NUMBER} - invalid major device number
|
@code{@value{RPREFIX}INVALID_NUMBER} - invalid major device number
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -577,8 +577,8 @@ procedure IO_Write (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - successfully initialized@*
|
@code{@value{RPREFIX}SUCCESSFUL} - successfully initialized@*
|
||||||
@code{INVALID_NUMBER} - invalid major device number
|
@code{@value{RPREFIX}INVALID_NUMBER} - invalid major device number
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -625,8 +625,8 @@ procedure IO_Control (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - successfully initialized@*
|
@code{@value{RPREFIX}SUCCESSFUL} - successfully initialized@*
|
||||||
@code{INVALID_NUMBER} - invalid major device number
|
@code{@value{RPREFIX}INVALID_NUMBER} - invalid major device number
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
|
|||||||
@@ -601,7 +601,7 @@ must be aware of the following:
|
|||||||
|
|
||||||
@item Packets are composed of both RTEMS and application data.
|
@item Packets are composed of both RTEMS and application data.
|
||||||
All RTEMS data is treated as thirty-two (32) bit unsigned
|
All RTEMS data is treated as thirty-two (32) bit unsigned
|
||||||
quantities and is in the first @code{MINIMUM_UNSIGNED32S_TO_CONVERT}
|
quantities and is in the first @code{@value{RPREFIX}MINIMUM_UNSIGNED32S_TO_CONVERT}
|
||||||
thirty-two (32) quantities of the packet.
|
thirty-two (32) quantities of the packet.
|
||||||
|
|
||||||
@item The RTEMS data component of the packet must be in native
|
@item The RTEMS data component of the packet must be in native
|
||||||
|
|||||||
140
doc/user/msg.t
140
doc/user/msg.t
@@ -29,14 +29,14 @@ synchronization capabilities using RTEMS message queues. The
|
|||||||
directives provided by the message manager are:
|
directives provided by the message manager are:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{message_queue_create} - Create a queue
|
@item @code{@value{DIRPREFIX}message_queue_create} - Create a queue
|
||||||
@item @code{message_queue_ident} - Get ID of a queue
|
@item @code{@value{DIRPREFIX}message_queue_ident} - Get ID of a queue
|
||||||
@item @code{message_queue_delete} - Delete a queue
|
@item @code{@value{DIRPREFIX}message_queue_delete} - Delete a queue
|
||||||
@item @code{message_queue_send} - Put message at rear of a queue
|
@item @code{@value{DIRPREFIX}message_queue_send} - Put message at rear of a queue
|
||||||
@item @code{message_queue_urgent} - Put message at front of a queue
|
@item @code{@value{DIRPREFIX}message_queue_urgent} - Put message at front of a queue
|
||||||
@item @code{message_queue_broadcast} - Broadcast N messages to a queue
|
@item @code{@value{DIRPREFIX}message_queue_broadcast} - Broadcast N messages to a queue
|
||||||
@item @code{message_queue_receive} - Receive message from a queue
|
@item @code{@value{DIRPREFIX}message_queue_receive} - Receive message from a queue
|
||||||
@item @code{message_queue_get_number_pending} - Get number of messages pending on a queue
|
@item @code{@value{DIRPREFIX}message_queue_get_number_pending} - Get number of messages pending on a queue
|
||||||
@item @code{message_queue_flush} - Flush all messages on a queue
|
@item @code{message_queue_flush} - Flush all messages on a queue
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
@@ -92,10 +92,10 @@ of the desired attribute components. The set of valid message
|
|||||||
queue attributes is provided in the following table:
|
queue attributes is provided in the following table:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{FIFO} - tasks wait by FIFO (default)
|
@item @code{@value{RPREFIX}FIFO} - tasks wait by FIFO (default)
|
||||||
@item @code{PRIORITY} - tasks wait by priority
|
@item @code{@value{RPREFIX}PRIORITY} - tasks wait by priority
|
||||||
@item @code{LOCAL} - local message queue (default)
|
@item @code{@value{RPREFIX}LOCAL} - local message queue (default)
|
||||||
@item @code{GLOBAL} - global message queue
|
@item @code{@value{RPREFIX}GLOBAL} - global message queue
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
|
|
||||||
@@ -103,17 +103,17 @@ queue attributes is provided in the following table:
|
|||||||
An attribute listed as a default is not required to
|
An attribute listed as a default is not required to
|
||||||
appear in the attribute list, although it is a good programming
|
appear in the attribute list, although it is a good programming
|
||||||
practice to specify default attributes. If all defaults are
|
practice to specify default attributes. If all defaults are
|
||||||
desired, the attribute @code{DEFAULT_ATTRIBUTES} should be specified on
|
desired, the attribute @code{@value{RPREFIX}DEFAULT_ATTRIBUTES} should be specified on
|
||||||
this call.
|
this call.
|
||||||
|
|
||||||
This example demonstrates the attribute_set parameter
|
This example demonstrates the attribute_set parameter
|
||||||
needed to create a local message queue with the task priority
|
needed to create a local message queue with the task priority
|
||||||
waiting queue discipline. The attribute_set parameter to the
|
waiting queue discipline. The attribute_set parameter to the
|
||||||
message_queue_create directive could be either
|
message_queue_create directive could be either
|
||||||
@code{PRIORITY} or
|
@code{@value{RPREFIX}PRIORITY} or
|
||||||
@code{@value{RPREFIX}LOCAL @value{OR} @value{RPREFIX}PRIORITY}.
|
@code{@value{RPREFIX}LOCAL @value{OR} @value{RPREFIX}PRIORITY}.
|
||||||
The attribute_set parameter can be set to @code{PRIORITY}
|
The attribute_set parameter can be set to @code{@value{RPREFIX}PRIORITY}
|
||||||
because @code{LOCAL} is the default for all created message queues. If
|
because @code{@value{RPREFIX}LOCAL} is the default for all created message queues. If
|
||||||
a similar message queue were to be known globally, then the
|
a similar message queue were to be known globally, then the
|
||||||
attribute_set parameter would be
|
attribute_set parameter would be
|
||||||
@code{@value{RPREFIX}GLOBAL @value{OR} @value{RPREFIX}PRIORITY}.
|
@code{@value{RPREFIX}GLOBAL @value{OR} @value{RPREFIX}PRIORITY}.
|
||||||
@@ -129,19 +129,19 @@ message_queue_receive directive are listed in the following
|
|||||||
table:
|
table:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{WAIT} - task will wait for a message (default)
|
@item @code{@value{RPREFIX}WAIT} - task will wait for a message (default)
|
||||||
@item @code{NO_WAIT} - task should not wait
|
@item @code{@value{RPREFIX}NO_WAIT} - task should not wait
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
An option listed as a default is not required to
|
An option listed as a default is not required to
|
||||||
appear in the option OR list, although it is a good programming
|
appear in the option OR list, although it is a good programming
|
||||||
practice to specify default options. If all defaults are
|
practice to specify default options. If all defaults are
|
||||||
desired, the option @code{DEFAULT_OPTIONS} should be specified on this
|
desired, the option @code{@value{RPREFIX}DEFAULT_OPTIONS} should be specified on this
|
||||||
call.
|
call.
|
||||||
|
|
||||||
This example demonstrates the option parameter needed
|
This example demonstrates the option parameter needed
|
||||||
to poll for a message to arrive. The option parameter passed to
|
to poll for a message to arrive. The option parameter passed to
|
||||||
the message_queue_receive directive should be @code{NO_WAIT}.
|
the message_queue_receive directive should be @code{@value{RPREFIX}NO_WAIT}.
|
||||||
|
|
||||||
@ifinfo
|
@ifinfo
|
||||||
@node Message Manager Operations, Creating a Message Queue, Building a MESSAGE_QUEUE_RECEIVE Option Set, Message Manager
|
@node Message Manager Operations, Creating a Message Queue, Building a MESSAGE_QUEUE_RECEIVE Option Set, Message Manager
|
||||||
@@ -209,7 +209,7 @@ applies:
|
|||||||
@item By default, the calling task will wait forever for the
|
@item By default, the calling task will wait forever for the
|
||||||
message to arrive.
|
message to arrive.
|
||||||
|
|
||||||
@item Specifying the @code{NO_WAIT} option forces an immediate return
|
@item Specifying the @code{@value{RPREFIX}NO_WAIT} option forces an immediate return
|
||||||
with an error status code.
|
with an error status code.
|
||||||
|
|
||||||
@item Specifying a timeout limits the period the task will
|
@item Specifying a timeout limits the period the task will
|
||||||
@@ -326,13 +326,13 @@ procedure Message_Queue_Create (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - queue created successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - queue created successfully@*
|
||||||
@code{INVALID_NAME} - invalid task name@*
|
@code{@value{RPREFIX}INVALID_NAME} - invalid task name@*
|
||||||
@code{INVALID_NUMBER} - invalid message count@*
|
@code{@value{RPREFIX}INVALID_NUMBER} - invalid message count@*
|
||||||
@code{INVALID_SIZE} - invalid message size@*
|
@code{@value{RPREFIX}INVALID_SIZE} - invalid message size@*
|
||||||
@code{TOO_MANY} - too many queues created@*
|
@code{@value{RPREFIX}TOO_MANY} - too many queues created@*
|
||||||
@code{MP_NOT_CONFIGURED} - multiprocessing not configured@*
|
@code{@value{RPREFIX}MP_NOT_CONFIGURED} - multiprocessing not configured@*
|
||||||
@code{TOO_MANY} - too many global objects
|
@code{@value{RPREFIX}TOO_MANY} - too many global objects
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -344,9 +344,9 @@ for the specified count of messages, each of max_message_size
|
|||||||
bytes in length. The RTEMS-assigned queue id, returned in id,
|
bytes in length. The RTEMS-assigned queue id, returned in id,
|
||||||
is used to access the message queue.
|
is used to access the message queue.
|
||||||
|
|
||||||
Specifying @code{PRIORITY} in attribute_set causes tasks
|
Specifying @code{@value{RPREFIX}PRIORITY} in attribute_set causes tasks
|
||||||
waiting for a message to be serviced according to task priority.
|
waiting for a message to be serviced according to task priority.
|
||||||
When @code{FIFO} is specified, waiting tasks are serviced in First
|
When @code{@value{RPREFIX}FIFO} is specified, waiting tasks are serviced in First
|
||||||
In-First Out order.
|
In-First Out order.
|
||||||
|
|
||||||
@subheading NOTES:
|
@subheading NOTES:
|
||||||
@@ -358,10 +358,10 @@ The following message queue attribute constants are
|
|||||||
defined by RTEMS:
|
defined by RTEMS:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{FIFO} - tasks wait by FIFO (default)
|
@item @code{@value{RPREFIX}FIFO} - tasks wait by FIFO (default)
|
||||||
@item @code{PRIORITY} - tasks wait by priority
|
@item @code{@value{RPREFIX}PRIORITY} - tasks wait by priority
|
||||||
@item @code{LOCAL} - local message queue (default)
|
@item @code{@value{RPREFIX}LOCAL} - local message queue (default)
|
||||||
@item @code{GLOBAL} - global message queue
|
@item @code{@value{RPREFIX}GLOBAL} - global message queue
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
Message queues should not be made global unless
|
Message queues should not be made global unless
|
||||||
@@ -410,9 +410,9 @@ procedure Message_Queue_Ident (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - queue identified successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - queue identified successfully@*
|
||||||
@code{INVALID_NAME} - queue name not found@*
|
@code{@value{RPREFIX}INVALID_NAME} - queue name not found@*
|
||||||
@code{INVALID_NODE} - invalid node id
|
@code{@value{RPREFIX}INVALID_NODE} - invalid node id
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -428,7 +428,7 @@ related directives to access the message queue.
|
|||||||
This directive will not cause the running task to be
|
This directive will not cause the running task to be
|
||||||
preempted.
|
preempted.
|
||||||
|
|
||||||
If node is @code{SEARCH_ALL_NODES}, all nodes are searched
|
If node is @code{@value{RPREFIX}SEARCH_ALL_NODES}, all nodes are searched
|
||||||
with the local node being searched first. All other nodes are
|
with the local node being searched first. All other nodes are
|
||||||
searched with the lowest numbered node searched first.
|
searched with the lowest numbered node searched first.
|
||||||
|
|
||||||
@@ -466,9 +466,9 @@ procedure Message_Queue_Delete (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - queue deleted successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - queue deleted successfully@*
|
||||||
@code{INVALID_ID} - invalid queue id@*
|
@code{@value{RPREFIX}INVALID_ID} - invalid queue id@*
|
||||||
@code{ILLEGAL_ON_REMOTE_OBJECT} - cannot delete remote queue
|
@code{@value{RPREFIX}ILLEGAL_ON_REMOTE_OBJECT} - cannot delete remote queue
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -534,11 +534,11 @@ procedure Message_Queue_Send (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - message sent successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - message sent successfully@*
|
||||||
@code{INVALID_ID} - invalid queue id@*
|
@code{@value{RPREFIX}INVALID_ID} - invalid queue id@*
|
||||||
@code{INVALID_SIZE} - invalid message size@*
|
@code{@value{RPREFIX}INVALID_SIZE} - invalid message size@*
|
||||||
@code{UNSATISFIED} - out of message buffers@*
|
@code{@value{RPREFIX}UNSATISFIED} - out of message buffers@*
|
||||||
@code{TOO_MANY} - queue's limit has been reached
|
@code{@value{RPREFIX}TOO_MANY} - queue's limit has been reached
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -595,11 +595,11 @@ procedure Message_Queue_Urgent (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - message sent successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - message sent successfully@*
|
||||||
@code{INVALID_ID} - invalid queue id@*
|
@code{@value{RPREFIX}INVALID_ID} - invalid queue id@*
|
||||||
@code{INVALID_SIZE} - invalid message size@*
|
@code{@value{RPREFIX}INVALID_SIZE} - invalid message size@*
|
||||||
@code{UNSATISFIED} - out of message buffers@*
|
@code{@value{RPREFIX}UNSATISFIED} - out of message buffers@*
|
||||||
@code{TOO_MANY} - queue's limit has been reached
|
@code{@value{RPREFIX}TOO_MANY} - queue's limit has been reached
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -659,9 +659,9 @@ procedure Message_Queue_Broadcast (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - message broadcasted successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - message broadcasted successfully@*
|
||||||
@code{INVALID_ID} - invalid queue id@*
|
@code{@value{RPREFIX}INVALID_ID} - invalid queue id@*
|
||||||
@code{INVALID_SIZE} - invalid message size
|
@code{@value{RPREFIX}INVALID_SIZE} - invalid message size
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -727,16 +727,16 @@ procedure Message_Queue_Receive (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - message received successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - message received successfully@*
|
||||||
@code{INVALID_ID} - invalid queue id@*
|
@code{@value{RPREFIX}INVALID_ID} - invalid queue id@*
|
||||||
@code{UNSATISFIED} - queue is empty@*
|
@code{@value{RPREFIX}UNSATISFIED} - queue is empty@*
|
||||||
@code{TIMEOUT} - timed out waiting for message@*
|
@code{@value{RPREFIX}TIMEOUT} - timed out waiting for message@*
|
||||||
@code{OBJECT_WAS_DELETED} - queue deleted while waiting
|
@code{@value{RPREFIX}OBJECT_WAS_DELETED} - queue deleted while waiting
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
This directive receives a message from the message
|
This directive receives a message from the message
|
||||||
queue specified in id. The @code{WAIT} and @code{NO_WAIT} options of the
|
queue specified in id. The @code{@value{RPREFIX}WAIT} and @code{@value{RPREFIX}NO_WAIT} options of the
|
||||||
options parameter allow the calling task to specify whether to
|
options parameter allow the calling task to specify whether to
|
||||||
wait for a message to become available or return immediately.
|
wait for a message to become available or return immediately.
|
||||||
For either option, if there is at least one message in the
|
For either option, if there is at least one message in the
|
||||||
@@ -749,16 +749,16 @@ the queue is empty, then a status code indicating this condition
|
|||||||
is returned. If the calling task chooses to wait at the message
|
is returned. If the calling task chooses to wait at the message
|
||||||
queue and the queue is empty, then the calling task is placed on
|
queue and the queue is empty, then the calling task is placed on
|
||||||
the message wait queue and blocked. If the queue was created
|
the message wait queue and blocked. If the queue was created
|
||||||
with the @code{PRIORITY} option specified, then the calling task is
|
with the @code{@value{RPREFIX}PRIORITY} option specified, then the calling task is
|
||||||
inserted into the wait queue according to its priority. But, if
|
inserted into the wait queue according to its priority. But, if
|
||||||
the queue was created with the @code{FIFO} option specified, then the
|
the queue was created with the @code{@value{RPREFIX}FIFO} option specified, then the
|
||||||
calling task is placed at the rear of the wait queue.
|
calling task is placed at the rear of the wait queue.
|
||||||
|
|
||||||
A task choosing to wait at the queue can optionally
|
A task choosing to wait at the queue can optionally
|
||||||
specify a timeout value in the timeout parameter. The timeout
|
specify a timeout value in the timeout parameter. The timeout
|
||||||
parameter specifies the maximum interval to wait before the
|
parameter specifies the maximum interval to wait before the
|
||||||
calling task desires to be unblocked. If it is set to
|
calling task desires to be unblocked. If it is set to
|
||||||
@code{NO_TIMEOUT}, then the calling task will wait forever.
|
@code{@value{RPREFIX}NO_TIMEOUT}, then the calling task will wait forever.
|
||||||
|
|
||||||
@subheading NOTES:
|
@subheading NOTES:
|
||||||
|
|
||||||
@@ -766,14 +766,14 @@ The following message receive option constants are
|
|||||||
defined by RTEMS:
|
defined by RTEMS:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{WAIT} - task will wait for a message (default)
|
@item @code{@value{RPREFIX}WAIT} - task will wait for a message (default)
|
||||||
@item @code{NO_WAIT} - task should not wait
|
@item @code{@value{RPREFIX}NO_WAIT} - task should not wait
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
Receiving a message from a global message queue which
|
Receiving a message from a global message queue which
|
||||||
does not reside on the local node will generate a request to the
|
does not reside on the local node will generate a request to the
|
||||||
remote node to obtain a message from the specified message
|
remote node to obtain a message from the specified message
|
||||||
queue. If no message is available and @code{WAIT} was specified, then
|
queue. If no message is available and @code{@value{RPREFIX}WAIT} was specified, then
|
||||||
the task must be blocked until a message is posted. A proxy is
|
the task must be blocked until a message is posted. A proxy is
|
||||||
allocated on the remote node to represent the task until the
|
allocated on the remote node to represent the task until the
|
||||||
message is posted.
|
message is posted.
|
||||||
@@ -809,8 +809,8 @@ procedure Message_Queue_Get_Number_Pending (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - number of messages pending returned successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - number of messages pending returned successfully@*
|
||||||
@code{INVALID_ID} - invalid queue id
|
@code{@value{RPREFIX}INVALID_ID} - invalid queue id
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -854,8 +854,8 @@ procedure Message_Queue_Flush (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - message queue flushed successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - message queue flushed successfully@*
|
||||||
@code{INVALID_ID} - invalid queue id
|
@code{@value{RPREFIX}INVALID_ID} - invalid queue id
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
|
|||||||
@@ -29,11 +29,11 @@ dynamically allocate memory in fixed-size units. The directives
|
|||||||
provided by the partition manager are:
|
provided by the partition manager are:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{partition_create} - Create a partition
|
@item @code{@value{DIRPREFIX}partition_create} - Create a partition
|
||||||
@item @code{partition_ident} - Get ID of a partition
|
@item @code{@value{DIRPREFIX}partition_ident} - Get ID of a partition
|
||||||
@item @code{partition_delete} - Delete a partition
|
@item @code{@value{DIRPREFIX}partition_delete} - Delete a partition
|
||||||
@item @code{partition_get_buffer} - Get buffer from a partition
|
@item @code{@value{DIRPREFIX}partition_get_buffer} - Get buffer from a partition
|
||||||
@item @code{partition_return_buffer} - Return buffer to a partition
|
@item @code{@value{DIRPREFIX}partition_return_buffer} - Return buffer to a partition
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
@ifinfo
|
@ifinfo
|
||||||
@@ -88,7 +88,7 @@ are equivalent as long as each attribute appears exactly once in
|
|||||||
the component list. An attribute listed as a default is not
|
the component list. An attribute listed as a default is not
|
||||||
required to appear in the attribute list, although it is a good
|
required to appear in the attribute list, although it is a good
|
||||||
programming practice to specify default attributes. If all
|
programming practice to specify default attributes. If all
|
||||||
defaults are desired, the attribute @code{DEFAULT_ATTRIBUTES} should be
|
defaults are desired, the attribute @code{@value{RPREFIX}DEFAULT_ATTRIBUTES} should be
|
||||||
specified on this call. The attribute_set parameter should be
|
specified on this call. The attribute_set parameter should be
|
||||||
GLOBAL to indicate that the partition is to be known globally.
|
GLOBAL to indicate that the partition is to be known globally.
|
||||||
|
|
||||||
@@ -224,15 +224,15 @@ procedure Partition_Create (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - partition created successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - partition created successfully@*
|
||||||
@code{INVALID_NAME} - invalid task name@*
|
@code{@value{RPREFIX}INVALID_NAME} - invalid task name@*
|
||||||
@code{TOO_MANY} - too many partitions created@*
|
@code{@value{RPREFIX}TOO_MANY} - too many partitions created@*
|
||||||
@code{INVALID_ADDRESS} - address not on four byte boundary@*
|
@code{@value{RPREFIX}INVALID_ADDRESS} - address not on four byte boundary@*
|
||||||
@code{INVALID_SIZE} - length or buffer size is 0@*
|
@code{@value{RPREFIX}INVALID_SIZE} - length or buffer size is 0@*
|
||||||
@code{INVALID_SIZE} - length is less than the buffer size@*
|
@code{@value{RPREFIX}INVALID_SIZE} - length is less than the buffer size@*
|
||||||
@code{INVALID_SIZE} - buffer size not a multiple of 4@*
|
@code{@value{RPREFIX}INVALID_SIZE} - buffer size not a multiple of 4@*
|
||||||
@code{MP_NOT_CONFIGURED} - multiprocessing not configured@*
|
@code{@value{RPREFIX}MP_NOT_CONFIGURED} - multiprocessing not configured@*
|
||||||
@code{TOO_MANY} - too many global objects
|
@code{@value{RPREFIX}TOO_MANY} - too many global objects
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -307,9 +307,9 @@ procedure Partition_Ident (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - partition identified successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - partition identified successfully@*
|
||||||
@code{INVALID_NAME} - partition name not found@*
|
@code{@value{RPREFIX}INVALID_NAME} - partition name not found@*
|
||||||
@code{INVALID_NODE} - invalid node id
|
@code{@value{RPREFIX}INVALID_NODE} - invalid node id
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -325,7 +325,7 @@ with other partition related directives to access the partition.
|
|||||||
This directive will not cause the running task to be
|
This directive will not cause the running task to be
|
||||||
preempted.
|
preempted.
|
||||||
|
|
||||||
If node is @code{SEARCH_ALL_NODES}, all nodes are searched
|
If node is @code{@value{RPREFIX}SEARCH_ALL_NODES}, all nodes are searched
|
||||||
with the local node being searched first. All other nodes are
|
with the local node being searched first. All other nodes are
|
||||||
searched with the lowest numbered node searched first.
|
searched with the lowest numbered node searched first.
|
||||||
|
|
||||||
@@ -363,10 +363,10 @@ procedure Partition_Delete (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - partition deleted successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - partition deleted successfully@*
|
||||||
@code{INVALID_ID} - invalid partition id@*
|
@code{@value{RPREFIX}INVALID_ID} - invalid partition id@*
|
||||||
@code{RESOURCE_IN_USE} - buffers still in use@*
|
@code{@value{RPREFIX}RESOURCE_IN_USE} - buffers still in use@*
|
||||||
@code{ILLEGAL_ON_REMOTE_OBJECT} - cannot delete remote partition
|
@code{@value{RPREFIX}ILLEGAL_ON_REMOTE_OBJECT} - cannot delete remote partition
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -419,9 +419,9 @@ procedure Partition_Get_Buffer (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - buffer obtained successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - buffer obtained successfully@*
|
||||||
@code{INVALID_ID} - invalid partition id@*
|
@code{@value{RPREFIX}INVALID_ID} - invalid partition id@*
|
||||||
@code{UNSATISFIED} - all buffers are allocated
|
@code{@value{RPREFIX}UNSATISFIED} - all buffers are allocated
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -470,9 +470,9 @@ procedure Partition_Return_Buffer (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - buffer returned successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - buffer returned successfully@*
|
||||||
@code{INVALID_ID} - invalid partition id@*
|
@code{@value{RPREFIX}INVALID_ID} - invalid partition id@*
|
||||||
@code{INVALID_ADDRESS} - buffer address not in partition
|
@code{@value{RPREFIX}INVALID_ADDRESS} - buffer address not in partition
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
|
|||||||
@@ -29,13 +29,13 @@ allocate memory in variable sized units. The directives
|
|||||||
provided by the region manager are:
|
provided by the region manager are:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{region_create} - Create a region
|
@item @code{@value{DIRPREFIX}region_create} - Create a region
|
||||||
@item @code{region_ident} - Get ID of a region
|
@item @code{@value{DIRPREFIX}region_ident} - Get ID of a region
|
||||||
@item @code{region_delete} - Delete a region
|
@item @code{@value{DIRPREFIX}region_delete} - Delete a region
|
||||||
@item @code{region_extend} - Add memory to a region
|
@item @code{@value{DIRPREFIX}region_extend} - Add memory to a region
|
||||||
@item @code{region_get_segment} - Get segment from a region
|
@item @code{@value{DIRPREFIX}region_get_segment} - Get segment from a region
|
||||||
@item @code{region_return_segment} - Return segment to a region
|
@item @code{@value{DIRPREFIX}region_return_segment} - Return segment to a region
|
||||||
@item @code{region_get_segment_size} - Obtain size of a segment
|
@item @code{@value{DIRPREFIX}region_get_segment_size} - Obtain size of a segment
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
@ifinfo
|
@ifinfo
|
||||||
@@ -90,8 +90,8 @@ of the desired attribute components. The set of valid region
|
|||||||
attributes is provided in the following table:
|
attributes is provided in the following table:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{FIFO} - tasks wait by FIFO (default)
|
@item @code{@value{RPREFIX}FIFO} - tasks wait by FIFO (default)
|
||||||
@item @code{PRIORITY} - tasks wait by priority
|
@item @code{@value{RPREFIX}PRIORITY} - tasks wait by priority
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
Attribute values are specifically designed to be
|
Attribute values are specifically designed to be
|
||||||
@@ -100,13 +100,13 @@ are equivalent as long as each attribute appears exactly once in
|
|||||||
the component list. An attribute listed as a default is not
|
the component list. An attribute listed as a default is not
|
||||||
required to appear in the attribute list, although it is a good
|
required to appear in the attribute list, although it is a good
|
||||||
programming practice to specify default attributes. If all
|
programming practice to specify default attributes. If all
|
||||||
defaults are desired, the attribute @code{DEFAULT_ATTRIBUTES} should be
|
defaults are desired, the attribute @code{@value{RPREFIX}DEFAULT_ATTRIBUTES} should be
|
||||||
specified on this call.
|
specified on this call.
|
||||||
|
|
||||||
This example demonstrates the attribute_set parameter
|
This example demonstrates the attribute_set parameter
|
||||||
needed to create a region with the task priority waiting queue
|
needed to create a region with the task priority waiting queue
|
||||||
discipline. The attribute_set parameter to the region_create
|
discipline. The attribute_set parameter to the region_create
|
||||||
directive should be @code{PRIORITY}.
|
directive should be @code{@value{RPREFIX}PRIORITY}.
|
||||||
|
|
||||||
@ifinfo
|
@ifinfo
|
||||||
@node Building an Option Set, Region Manager Operations, Building an Attribute Set, Region Manager Background
|
@node Building an Option Set, Region Manager Operations, Building an Attribute Set, Region Manager Background
|
||||||
@@ -118,8 +118,8 @@ desired option components. The set of valid options for the
|
|||||||
region_get_segment directive are listed in the following table:
|
region_get_segment directive are listed in the following table:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{WAIT} - task will wait for semaphore (default)
|
@item @code{@value{RPREFIX}WAIT} - task will wait for semaphore (default)
|
||||||
@item @code{NO_WAIT} - task should not wait
|
@item @code{@value{RPREFIX}NO_WAIT} - task should not wait
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
Option values are specifically designed to be
|
Option values are specifically designed to be
|
||||||
@@ -128,12 +128,12 @@ are equivalent as long as each option appears exactly once in
|
|||||||
the component list. An option listed as a default is not
|
the component list. An option listed as a default is not
|
||||||
required to appear in the option list, although it is a good
|
required to appear in the option list, although it is a good
|
||||||
programming practice to specify default options. If all
|
programming practice to specify default options. If all
|
||||||
defaults are desired, the option @code{DEFAULT_OPTIONS} should be
|
defaults are desired, the option @code{@value{RPREFIX}DEFAULT_OPTIONS} should be
|
||||||
specified on this call.
|
specified on this call.
|
||||||
|
|
||||||
This example demonstrates the option parameter needed
|
This example demonstrates the option parameter needed
|
||||||
to poll for a segment. The option parameter passed to the
|
to poll for a segment. The option parameter passed to the
|
||||||
region_get_segment directive should be @code{NO_WAIT}.
|
region_get_segment directive should be @code{@value{RPREFIX}NO_WAIT}.
|
||||||
|
|
||||||
@ifinfo
|
@ifinfo
|
||||||
@node Region Manager Operations, Creating a Region, Building an Option Set, Region Manager
|
@node Region Manager Operations, Creating a Region, Building an Option Set, Region Manager
|
||||||
@@ -218,7 +218,7 @@ following situations applies:
|
|||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item By default, the calling task will wait forever to acquire the segment.
|
@item By default, the calling task will wait forever to acquire the segment.
|
||||||
|
|
||||||
@item Specifying the @code{NO_WAIT} option forces an immediate return
|
@item Specifying the @code{@value{RPREFIX}NO_WAIT} option forces an immediate return
|
||||||
with an error status code.
|
with an error status code.
|
||||||
|
|
||||||
@item Specifying a timeout limits the interval the task will
|
@item Specifying a timeout limits the interval the task will
|
||||||
@@ -325,11 +325,11 @@ procedure Region_Create (
|
|||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
|
|
||||||
@code{SUCCESSFUL} - region created successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - region created successfully@*
|
||||||
@code{INVALID_NAME} - invalid task name@*
|
@code{@value{RPREFIX}INVALID_NAME} - invalid task name@*
|
||||||
@code{INVALID_ADDRESS} - address not on four byte boundary@*
|
@code{@value{RPREFIX}INVALID_ADDRESS} - address not on four byte boundary@*
|
||||||
@code{TOO_MANY} - too many regions created@*
|
@code{@value{RPREFIX}TOO_MANY} - too many regions created@*
|
||||||
@code{INVALID_SIZE} - invalid page size
|
@code{@value{RPREFIX}INVALID_SIZE} - invalid page size
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -346,10 +346,10 @@ memory from the region is not used to store the RNCB. However,
|
|||||||
some overhead within the region is required by RTEMS each time a
|
some overhead within the region is required by RTEMS each time a
|
||||||
segment is constructed in the region.
|
segment is constructed in the region.
|
||||||
|
|
||||||
Specifying @code{PRIORITY} in attribute_set causes tasks
|
Specifying @code{@value{RPREFIX}PRIORITY} in attribute_set causes tasks
|
||||||
waiting for a segment to be serviced according to task priority.
|
waiting for a segment to be serviced according to task priority.
|
||||||
Specifying @code{FIFO} in attribute_set or selecting
|
Specifying @code{@value{RPREFIX}FIFO} in attribute_set or selecting
|
||||||
@code{DEFAULT_ATTRIBUTES} will cause waiting tasks to be serviced in
|
@code{@value{RPREFIX}DEFAULT_ATTRIBUTES} will cause waiting tasks to be serviced in
|
||||||
First In-First Out order.
|
First In-First Out order.
|
||||||
|
|
||||||
The starting_address parameter must be aligned on a
|
The starting_address parameter must be aligned on a
|
||||||
@@ -398,8 +398,8 @@ procedure Region_Ident (
|
|||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
|
|
||||||
@code{SUCCESSFUL} - region identified successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - region identified successfully@*
|
||||||
@code{INVALID_NAME} - region name not found
|
@code{@value{RPREFIX}INVALID_NAME} - region name not found
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -441,9 +441,9 @@ procedure Region_Delete (
|
|||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
|
|
||||||
@code{SUCCESSFUL} - region deleted successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - region deleted successfully@*
|
||||||
@code{INVALID_ID} - invalid region id@*
|
@code{@value{RPREFIX}INVALID_ID} - invalid region id@*
|
||||||
@code{RESOURCE_IN_USE} - segments still in use
|
@code{@value{RPREFIX}RESOURCE_IN_USE} - segments still in use
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -491,9 +491,9 @@ procedure Region_Extend (
|
|||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
|
|
||||||
@code{SUCCESSFUL} - region extended successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - region extended successfully@*
|
||||||
@code{INVALID_ID} - invalid region id@*
|
@code{@value{RPREFIX}INVALID_ID} - invalid region id@*
|
||||||
@code{INVALID_ADDRESS} - invalid address of area to add
|
@code{@value{RPREFIX}INVALID_ADDRESS} - invalid address of area to add
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -543,25 +543,25 @@ procedure Region_Get_Segment (
|
|||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
|
|
||||||
@code{SUCCESSFUL} - segment obtained successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - segment obtained successfully@*
|
||||||
@code{INVALID_ID} - invalid region id@*
|
@code{@value{RPREFIX}INVALID_ID} - invalid region id@*
|
||||||
@code{INVALID_SIZE} - request is for zero bytes or exceeds
|
@code{@value{RPREFIX}INVALID_SIZE} - request is for zero bytes or exceeds
|
||||||
the size of maximum segment which is possible for this region@*
|
the size of maximum segment which is possible for this region@*
|
||||||
@code{UNSATISFIED} - segment of requested size not available@*
|
@code{@value{RPREFIX}UNSATISFIED} - segment of requested size not available@*
|
||||||
@code{TIMEOUT} - timed out waiting for segment@*
|
@code{@value{RPREFIX}TIMEOUT} - timed out waiting for segment@*
|
||||||
@code{OBJECT_WAS_DELETED} - semaphore deleted while waiting
|
@code{@value{RPREFIX}OBJECT_WAS_DELETED} - semaphore deleted while waiting
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
This directive obtains a variable size segment from
|
This directive obtains a variable size segment from
|
||||||
the region specified by id. The address of the allocated
|
the region specified by id. The address of the allocated
|
||||||
segment is returned in segment. The @code{WAIT} and @code{NO_WAIT} components
|
segment is returned in segment. The @code{@value{RPREFIX}WAIT} and @code{@value{RPREFIX}NO_WAIT} components
|
||||||
of the options parameter are used to specify whether the calling
|
of the options parameter are used to specify whether the calling
|
||||||
tasks wish to wait for a segment to become available or return
|
tasks wish to wait for a segment to become available or return
|
||||||
immediately if no segment is available. For either option, if a
|
immediately if no segment is available. For either option, if a
|
||||||
sufficiently sized segment is available, then the segment is
|
sufficiently sized segment is available, then the segment is
|
||||||
successfully acquired by returning immediately with the
|
successfully acquired by returning immediately with the
|
||||||
@code{SUCCESSFUL} status code.
|
@code{@value{RPREFIX}SUCCESSFUL} status code.
|
||||||
|
|
||||||
If the calling task chooses to return immediately and
|
If the calling task chooses to return immediately and
|
||||||
a segment large enough is not available, then an error code
|
a segment large enough is not available, then an error code
|
||||||
@@ -569,14 +569,14 @@ indicating this fact is returned. If the calling task chooses
|
|||||||
to wait for the segment and a segment large enough is not
|
to wait for the segment and a segment large enough is not
|
||||||
available, then the calling task is placed on the region's
|
available, then the calling task is placed on the region's
|
||||||
segment wait queue and blocked. If the region was created with
|
segment wait queue and blocked. If the region was created with
|
||||||
the @priority{PRIORITY} option, then the calling task is inserted into the
|
the @code{@value{RPREFIX}PRIORITY} option, then the calling task is inserted into the
|
||||||
wait queue according to its priority. However, if the region
|
wait queue according to its priority. However, if the region
|
||||||
was created with the @priority{FIFO} option, then the calling task is
|
was created with the @code{@value{RPREFIX}FIFO} option, then the calling task is
|
||||||
placed at the rear of the wait queue.
|
placed at the rear of the wait queue.
|
||||||
|
|
||||||
The timeout parameter specifies the maximum interval
|
The timeout parameter specifies the maximum interval
|
||||||
that a task is willing to wait to obtain a segment. If timeout
|
that a task is willing to wait to obtain a segment. If timeout
|
||||||
is set to @code{NO_TIMEOUT}, then the calling task will wait forever.
|
is set to @code{@value{RPREFIX}NO_TIMEOUT}, then the calling task will wait forever.
|
||||||
|
|
||||||
@subheading NOTES:
|
@subheading NOTES:
|
||||||
|
|
||||||
@@ -588,8 +588,8 @@ The following segment acquisition option constants
|
|||||||
are defined by RTEMS:
|
are defined by RTEMS:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{WAIT} - task will wait for semaphore (default)
|
@item @code{@value{RPREFIX}WAIT} - task will wait for semaphore (default)
|
||||||
@item @code{NO_WAIT} - task should not wait
|
@item @code{@value{RPREFIX}NO_WAIT} - task should not wait
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
A clock tick is required to support the timeout functionality of
|
A clock tick is required to support the timeout functionality of
|
||||||
@@ -624,9 +624,9 @@ procedure Region_Return_Segment (
|
|||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
|
|
||||||
@code{SUCCESSFUL} - segment returned successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - segment returned successfully@*
|
||||||
@code{INVALID_ID} - invalid region id@*
|
@code{@value{RPREFIX}INVALID_ID} - invalid region id@*
|
||||||
@code{INVALID_ADDRESS} - segment address not in region
|
@code{@value{RPREFIX}INVALID_ADDRESS} - segment address not in region
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -682,9 +682,9 @@ procedure Region_Get_Segment_Size (
|
|||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
|
|
||||||
@code{SUCCESSFUL} - segment obtained successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - segment obtained successfully@*
|
||||||
@code{INVALID_ID} - invalid region id@*
|
@code{@value{RPREFIX}INVALID_ID} - invalid region id@*
|
||||||
@code{INVALID_ADDRESS} - segment address not in region
|
@code{@value{RPREFIX}INVALID_ADDRESS} - segment address not in region
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
|
|||||||
@@ -35,12 +35,12 @@ implement tasks which execute in a periodic fashion. The
|
|||||||
directives provided by the rate monotonic manager are:
|
directives provided by the rate monotonic manager are:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{rate_monotonic_create} - Create a rate monotonic period
|
@item @code{@value{DIRPREFIX}rate_monotonic_create} - Create a rate monotonic period
|
||||||
@item @code{rate_monotonic_ident} - Get ID of a period
|
@item @code{@value{DIRPREFIX}rate_monotonic_ident} - Get ID of a period
|
||||||
@item @code{rate_monotonic_cancel} - Cancel a period
|
@item @code{@value{DIRPREFIX}rate_monotonic_cancel} - Cancel a period
|
||||||
@item @code{rate_monotonic_delete} - Delete a rate monotonic period
|
@item @code{@value{DIRPREFIX}rate_monotonic_delete} - Delete a rate monotonic period
|
||||||
@item @code{rate_monotonic_period} - Conclude current/Start next period
|
@item @code{@value{DIRPREFIX}rate_monotonic_period} - Conclude current/Start next period
|
||||||
@item @code{rate_monotonic_get_status} - Obtain status information on period
|
@item @code{@value{DIRPREFIX}rate_monotonic_get_status} - Obtain status information on period
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
@ifinfo
|
@ifinfo
|
||||||
@@ -739,18 +739,18 @@ returns immediately with a timeout error status.
|
|||||||
@subsection Obtaining a Period's Status
|
@subsection Obtaining a Period's Status
|
||||||
|
|
||||||
If the rate_monotonic_period directive is invoked
|
If the rate_monotonic_period directive is invoked
|
||||||
with a period of @code{PERIOD_STATUS} ticks, the current state of the
|
with a period of @code{@value{RPREFIX}PERIOD_STATUS} ticks, the current state of the
|
||||||
specified rate monotonic period will be returned. The following
|
specified rate monotonic period will be returned. The following
|
||||||
table details the relationship between the period's status and
|
table details the relationship between the period's status and
|
||||||
the directive status code returned by the rate_monotonic_period
|
the directive status code returned by the rate_monotonic_period
|
||||||
directive:
|
directive:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{SUCCESSFUL} - period is running
|
@item @code{@value{RPREFIX}SUCCESSFUL} - period is running
|
||||||
|
|
||||||
@item @code{TIMEOUT} - period has expired
|
@item @code{@value{RPREFIX}TIMEOUT} - period has expired
|
||||||
|
|
||||||
@item @code{NOT_DEFINED} - period has never been initiated
|
@item @code{@value{RPREFIX}NOT_DEFINED} - period has never been initiated
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
Obtaining the status of a rate monotonic period does
|
Obtaining the status of a rate monotonic period does
|
||||||
@@ -966,9 +966,9 @@ procedure Rate_Monotonic_Create (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - rate monotonic period created successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - rate monotonic period created successfully@*
|
||||||
@code{INVALID_NAME} - invalid task name@*
|
@code{@value{RPREFIX}INVALID_NAME} - invalid task name@*
|
||||||
@code{TOO_MANY} - too many periods created
|
@code{@value{RPREFIX}TOO_MANY} - too many periods created
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -1012,8 +1012,8 @@ procedure Rate_Monotonic_Ident (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - period identified successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - period identified successfully@*
|
||||||
@code{INVALID_NAME} - period name not found
|
@code{@value{RPREFIX}INVALID_NAME} - period name not found
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -1055,9 +1055,9 @@ procedure Rate_Monotonic_Cancel (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - period canceled successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - period canceled successfully@*
|
||||||
@code{INVALID_ID} - invalid rate monotonic period id@*
|
@code{@value{RPREFIX}INVALID_ID} - invalid rate monotonic period id@*
|
||||||
@code{NOT_OWNER_OF_RESOURCE} - rate monotonic period not created by calling task
|
@code{@value{RPREFIX}NOT_OWNER_OF_RESOURCE} - rate monotonic period not created by calling task
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -1099,8 +1099,8 @@ procedure Rate_Monotonic_Delete (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - period deleted successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - period deleted successfully@*
|
||||||
@code{INVALID_ID} - invalid rate monotonic period id
|
@code{@value{RPREFIX}INVALID_ID} - invalid rate monotonic period id
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -1144,12 +1144,12 @@ procedure Rate_Monotonic_Period (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - period initiated successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - period initiated successfully@*
|
||||||
@code{INVALID_ID} - invalid rate monotonic period id@*
|
@code{@value{RPREFIX}INVALID_ID} - invalid rate monotonic period id@*
|
||||||
@code{NOT_OWNER_OF_RESOURCE} - period not created by calling task@*
|
@code{@value{RPREFIX}NOT_OWNER_OF_RESOURCE} - period not created by calling task@*
|
||||||
@code{NOT_DEFINED} - period has never been initiated (only
|
@code{@value{RPREFIX}NOT_DEFINED} - period has never been initiated (only
|
||||||
possible when period is set to PERIOD_STATUS)@*
|
possible when period is set to PERIOD_STATUS)@*
|
||||||
@code{TIMEOUT} - period has expired
|
@code{@value{RPREFIX}TIMEOUT} - period has expired
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -1160,7 +1160,7 @@ reinitiating the period with the specified period. If id was
|
|||||||
not running (either expired or never initiated), the period is
|
not running (either expired or never initiated), the period is
|
||||||
immediately initiated and the directive returns immediately.
|
immediately initiated and the directive returns immediately.
|
||||||
|
|
||||||
If invoked with a period of @code{PERIOD_STATUS} ticks, the
|
If invoked with a period of @code{@value{RPREFIX}PERIOD_STATUS} ticks, the
|
||||||
current state of id will be returned. The directive status
|
current state of id will be returned. The directive status
|
||||||
indicates the current state of the period. This does not alter
|
indicates the current state of the period. This does not alter
|
||||||
the state or period of the period.
|
the state or period of the period.
|
||||||
@@ -1198,9 +1198,9 @@ procedure Rate_Monotonic_Get_Status (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - period initiated successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - period initiated successfully@*
|
||||||
@code{INVALID_ID} - invalid rate monotonic period id@*
|
@code{@value{RPREFIX}INVALID_ID} - invalid rate monotonic period id@*
|
||||||
@code{INVALID_ADDRESS} - invalid address of status@*
|
@code{@value{RPREFIX}INVALID_ADDRESS} - invalid address of status@*
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
|
|||||||
@@ -128,8 +128,8 @@ to a task.}
|
|||||||
|
|
||||||
Another way the user can alter the basic scheduling
|
Another way the user can alter the basic scheduling
|
||||||
algorithm is by manipulating the preemption mode flag
|
algorithm is by manipulating the preemption mode flag
|
||||||
(@code{PREEMPT_MASK}) of individual tasks. If preemption is disabled
|
(@code{@value{RPREFIX}PREEMPT_MASK}) of individual tasks. If preemption is disabled
|
||||||
for a task (@code{NO_PREEMPT}), then the task will not relinquish
|
for a task (@code{@value{RPREFIX}NO_PREEMPT}), then the task will not relinquish
|
||||||
control of the processor until it terminates, blocks, or
|
control of the processor until it terminates, blocks, or
|
||||||
re-enables preemption. Even tasks which become ready to run and
|
re-enables preemption. Even tasks which become ready to run and
|
||||||
possess higher priority levels will not be allowed to execute.
|
possess higher priority levels will not be allowed to execute.
|
||||||
@@ -146,8 +146,8 @@ Timeslicing or round-robin scheduling is an
|
|||||||
additional method which can be used to alter the basic
|
additional method which can be used to alter the basic
|
||||||
scheduling algorithm. Like preemption, timeslicing is specified
|
scheduling algorithm. Like preemption, timeslicing is specified
|
||||||
on a task by task basis using the timeslicing mode flag
|
on a task by task basis using the timeslicing mode flag
|
||||||
(@code{TIMESLICE_MASK}). If timeslicing is enabled for a task
|
(@code{@value{RPREFIX}TIMESLICE_MASK}). If timeslicing is enabled for a task
|
||||||
(@code{TIMESLICE}), then RTEMS will limit the amount of time the task
|
(@code{@value{RPREFIX}TIMESLICE}), then RTEMS will limit the amount of time the task
|
||||||
can execute before the processor is allocated to another task.
|
can execute before the processor is allocated to another task.
|
||||||
Each tick of the real-time clock reduces the currently running
|
Each tick of the real-time clock reduces the currently running
|
||||||
task's timeslice. When the execution time equals the timeslice,
|
task's timeslice. When the execution time equals the timeslice,
|
||||||
@@ -167,7 +167,7 @@ entire timeslice.
|
|||||||
The final mechanism for altering the RTEMS scheduling
|
The final mechanism for altering the RTEMS scheduling
|
||||||
algorithm is called manual round-robin. Manual round-robin is
|
algorithm is called manual round-robin. Manual round-robin is
|
||||||
invoked by using the task_wake_after directive with a time
|
invoked by using the task_wake_after directive with a time
|
||||||
interval of @code{YIELD_PROCESSOR}. This allows a task to give up the
|
interval of @code{@value{RPREFIX}YIELD_PROCESSOR}. This allows a task to give up the
|
||||||
processor and be immediately returned to the ready chain at the
|
processor and be immediately returned to the ready chain at the
|
||||||
end of its priority group. If no other tasks of the same
|
end of its priority group. If no other tasks of the same
|
||||||
priority are ready to run, then the task does not lose control
|
priority are ready to run, then the task does not lose control
|
||||||
@@ -195,12 +195,12 @@ saved or restored for a context switch is located either in the
|
|||||||
TCB or on the task's stacks.
|
TCB or on the task's stacks.
|
||||||
|
|
||||||
Tasks that utilize a numeric coprocessor and are
|
Tasks that utilize a numeric coprocessor and are
|
||||||
created with the @code{FLOATING_POINT} attribute require additional
|
created with the @code{@value{RPREFIX}FLOATING_POINT} attribute require additional
|
||||||
operations during a context switch. These additional operations
|
operations during a context switch. These additional operations
|
||||||
are necessary to save and restore the floating point context of
|
are necessary to save and restore the floating point context of
|
||||||
@code{FLOATING_POINT} tasks. To avoid unnecessary save and restore
|
@code{@value{RPREFIX}FLOATING_POINT} tasks. To avoid unnecessary save and restore
|
||||||
operations, the state of the numeric coprocessor is only saved
|
operations, the state of the numeric coprocessor is only saved
|
||||||
when a @code{FLOATING_POINT} task is dispatched and that task was not
|
when a @code{@value{RPREFIX}FLOATING_POINT} task is dispatched and that task was not
|
||||||
the last task to utilize the coprocessor.
|
the last task to utilize the coprocessor.
|
||||||
|
|
||||||
@ifinfo
|
@ifinfo
|
||||||
|
|||||||
@@ -30,11 +30,11 @@ exclusion capabilities. The directives provided by the
|
|||||||
semaphore manager are:
|
semaphore manager are:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{semaphore_create} - Create a semaphore
|
@item @code{@value{DIRPREFIX}semaphore_create} - Create a semaphore
|
||||||
@item @code{semaphore_ident} - Get ID of a semaphore
|
@item @code{@value{DIRPREFIX}semaphore_ident} - Get ID of a semaphore
|
||||||
@item @code{semaphore_delete} - Delete a semaphore
|
@item @code{@value{DIRPREFIX}semaphore_delete} - Delete a semaphore
|
||||||
@item @code{semaphore_obtain} - Acquire a semaphore
|
@item @code{@value{DIRPREFIX}semaphore_obtain} - Acquire a semaphore
|
||||||
@item @code{semaphore_release} - Release a semaphore
|
@item @code{@value{DIRPREFIX}semaphore_release} - Release a semaphore
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
@ifinfo
|
@ifinfo
|
||||||
@@ -230,17 +230,17 @@ are equivalent as long as each attribute appears exactly once in
|
|||||||
the component list. An attribute listed as a default is not
|
the component list. An attribute listed as a default is not
|
||||||
required to appear in the attribute list, although it is a good
|
required to appear in the attribute list, although it is a good
|
||||||
programming practice to specify default attributes. If all
|
programming practice to specify default attributes. If all
|
||||||
defaults are desired, the attribute @code{DEFAULT_ATTRIBUTES} should be
|
defaults are desired, the attribute @code{@value{RPREFIX}DEFAULT_ATTRIBUTES} should be
|
||||||
specified on this call.
|
specified on this call.
|
||||||
|
|
||||||
This example demonstrates the attribute_set parameter
|
This example demonstrates the attribute_set parameter
|
||||||
needed to create a local semaphore with the task priority
|
needed to create a local semaphore with the task priority
|
||||||
waiting queue discipline. The attribute_set parameter passed to
|
waiting queue discipline. The attribute_set parameter passed to
|
||||||
the semaphore_create directive could be either
|
the semaphore_create directive could be either
|
||||||
@code{PRIORITY} or
|
@code{@value{RPREFIX}PRIORITY} or
|
||||||
@code{@value{RPREFIX}LOCAL @value{OR} @value{RPREFIX}PRIORITY}.
|
@code{@value{RPREFIX}LOCAL @value{OR} @value{RPREFIX}PRIORITY}.
|
||||||
The attribute_set parameter can be set to @code{PRIORITY}
|
The attribute_set parameter can be set to @code{@value{RPREFIX}PRIORITY}
|
||||||
because @code{LOCAL} is the default for all created tasks. If a
|
because @code{@value{RPREFIX}LOCAL} is the default for all created tasks. If a
|
||||||
similar semaphore were to be known globally, then the
|
similar semaphore were to be known globally, then the
|
||||||
attribute_set parameter would be
|
attribute_set parameter would be
|
||||||
@code{@value{RPREFIX}GLOBAL @value{OR} @value{RPREFIX}PRIORITY}.
|
@code{@value{RPREFIX}GLOBAL @value{OR} @value{RPREFIX}PRIORITY}.
|
||||||
@@ -255,8 +255,8 @@ desired option components. The set of valid options for the
|
|||||||
semaphore_obtain directive are listed in the following table:
|
semaphore_obtain directive are listed in the following table:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{WAIT} - task will wait for semaphore (default)
|
@item @code{@value{RPREFIX}WAIT} - task will wait for semaphore (default)
|
||||||
@item @code{NO_WAIT} - task should not wait
|
@item @code{@value{RPREFIX}NO_WAIT} - task should not wait
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
Option values are specifically designed to be
|
Option values are specifically designed to be
|
||||||
@@ -265,12 +265,12 @@ are equivalent as long as each attribute appears exactly once in
|
|||||||
the component list. An option listed as a default is not
|
the component list. An option listed as a default is not
|
||||||
required to appear in the list, although it is a good
|
required to appear in the list, although it is a good
|
||||||
programming practice to specify default options. If all
|
programming practice to specify default options. If all
|
||||||
defaults are desired, the option @code{DEFAULT_OPTIONS} should be
|
defaults are desired, the option @code{@value{RPREFIX}DEFAULT_OPTIONS} should be
|
||||||
specified on this call.
|
specified on this call.
|
||||||
|
|
||||||
This example demonstrates the option parameter needed
|
This example demonstrates the option parameter needed
|
||||||
to poll for a semaphore. The option parameter passed to the
|
to poll for a semaphore. The option parameter passed to the
|
||||||
semaphore_obtain directive should be @code{NO_WAIT}.
|
semaphore_obtain directive should be @code{@value{RPREFIX}NO_WAIT}.
|
||||||
|
|
||||||
@ifinfo
|
@ifinfo
|
||||||
@node Semaphore Manager Operations, Creating a Semaphore, Building a SEMAPHORE_OBTAIN Option Set, Semaphore Manager
|
@node Semaphore Manager Operations, Creating a Semaphore, Building a SEMAPHORE_OBTAIN Option Set, Semaphore Manager
|
||||||
@@ -347,7 +347,7 @@ one of the following situations applies:
|
|||||||
@item By default, the calling task will wait forever to
|
@item By default, the calling task will wait forever to
|
||||||
acquire the semaphore.
|
acquire the semaphore.
|
||||||
|
|
||||||
@item Specifying @code{NO_WAIT} forces an immediate return with an
|
@item Specifying @code{@value{RPREFIX}NO_WAIT} forces an immediate return with an
|
||||||
error status code.
|
error status code.
|
||||||
|
|
||||||
@item Specifying a timeout limits the interval the task will
|
@item Specifying a timeout limits the interval the task will
|
||||||
@@ -456,13 +456,13 @@ procedure Semaphore_Create (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - semaphore created successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - semaphore created successfully@*
|
||||||
@code{INVALID_NAME} - invalid task name@*
|
@code{@value{RPREFIX}INVALID_NAME} - invalid task name@*
|
||||||
@code{TOO_MANY} - too many semaphores created@*
|
@code{@value{RPREFIX}TOO_MANY} - too many semaphores created@*
|
||||||
@code{NOT_DEFINED} - invalid attribute set@*
|
@code{@value{RPREFIX}NOT_DEFINED} - invalid attribute set@*
|
||||||
@code{INVALID_NUMBER} - invalid starting count for binary semaphore@*
|
@code{@value{RPREFIX}INVALID_NUMBER} - invalid starting count for binary semaphore@*
|
||||||
@code{MP_NOT_CONFIGURED} - multiprocessing not configured@*
|
@code{@value{RPREFIX}MP_NOT_CONFIGURED} - multiprocessing not configured@*
|
||||||
@code{TOO_MANY} - too many global objects
|
@code{@value{RPREFIX}TOO_MANY} - too many global objects
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -545,9 +545,9 @@ procedure Semaphore_Ident (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - semaphore identified successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - semaphore identified successfully@*
|
||||||
@code{INVALID_NAME} - semaphore name not found@*
|
@code{@value{RPREFIX}INVALID_NAME} - semaphore name not found@*
|
||||||
@code{INVALID_NODE} - invalid node id
|
@code{@value{RPREFIX}INVALID_NODE} - invalid node id
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -563,7 +563,7 @@ by other semaphore related directives to access the semaphore.
|
|||||||
This directive will not cause the running task to be
|
This directive will not cause the running task to be
|
||||||
preempted.
|
preempted.
|
||||||
|
|
||||||
If node is @code{SEARCH_ALL_NODES}, all nodes are searched
|
If node is @code{@value{RPREFIX}SEARCH_ALL_NODES}, all nodes are searched
|
||||||
with the local node being searched first. All other nodes are
|
with the local node being searched first. All other nodes are
|
||||||
searched with the lowest numbered node searched first.
|
searched with the lowest numbered node searched first.
|
||||||
|
|
||||||
@@ -601,10 +601,10 @@ procedure Semaphore_Delete (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - semaphore deleted successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - semaphore deleted successfully@*
|
||||||
@code{INVALID_ID} - invalid semaphore id@*
|
@code{@value{RPREFIX}INVALID_ID} - invalid semaphore id@*
|
||||||
@code{ILLEGAL_ON_REMOTE_OBJECT} - cannot delete remote semaphore@*
|
@code{@value{RPREFIX}ILLEGAL_ON_REMOTE_OBJECT} - cannot delete remote semaphore@*
|
||||||
@code{RESOURCE_IN_USE} - binary semaphore is in use
|
@code{@value{RPREFIX}RESOURCE_IN_USE} - binary semaphore is in use
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -666,20 +666,20 @@ procedure Semaphore_Obtain (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - semaphore obtained successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - semaphore obtained successfully@*
|
||||||
@code{UNSATISFIED} - semaphore not available@*
|
@code{@value{RPREFIX}UNSATISFIED} - semaphore not available@*
|
||||||
@code{TIMEOUT} - timed out waiting for semaphore@*
|
@code{@value{RPREFIX}TIMEOUT} - timed out waiting for semaphore@*
|
||||||
@code{OBJECT_WAS_DELETED} - semaphore deleted while waiting@*
|
@code{@value{RPREFIX}OBJECT_WAS_DELETED} - semaphore deleted while waiting@*
|
||||||
@code{INVALID_ID} - invalid semaphore id
|
@code{@value{RPREFIX}INVALID_ID} - invalid semaphore id
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
This directive acquires the semaphore specified by
|
This directive acquires the semaphore specified by
|
||||||
id. The @code{WAIT} and @code{NO_WAIT} components of the options parameter
|
id. The @code{@value{RPREFIX}WAIT} and @code{@value{RPREFIX}NO_WAIT} components of the options parameter
|
||||||
indicate whether the calling task wants to wait for the
|
indicate whether the calling task wants to wait for the
|
||||||
semaphore to become available or return immediately if the
|
semaphore to become available or return immediately if the
|
||||||
semaphore is not currently available. With either @code{WAIT} or
|
semaphore is not currently available. With either @code{@value{RPREFIX}WAIT} or
|
||||||
@code{NO_WAIT}, if the current semaphore count is positive, then it is
|
@code{@value{RPREFIX}NO_WAIT}, if the current semaphore count is positive, then it is
|
||||||
decremented by one and the semaphore is successfully acquired by
|
decremented by one and the semaphore is successfully acquired by
|
||||||
returning immediately with a successful return code.
|
returning immediately with a successful return code.
|
||||||
|
|
||||||
@@ -690,23 +690,23 @@ If the calling task chooses to wait for a semaphore and the
|
|||||||
current semaphore count is zero or negative, then it is
|
current semaphore count is zero or negative, then it is
|
||||||
decremented by one and the calling task is placed on the
|
decremented by one and the calling task is placed on the
|
||||||
semaphore's wait queue and blocked. If the semaphore was
|
semaphore's wait queue and blocked. If the semaphore was
|
||||||
created with the @code{PRIORITY} attribute, then the calling task is
|
created with the @code{@value{RPREFIX}PRIORITY} attribute, then the calling task is
|
||||||
inserted into the queue according to its priority. However, if
|
inserted into the queue according to its priority. However, if
|
||||||
the semaphore was created with the @code{FIFO} attribute, then the
|
the semaphore was created with the @code{@value{RPREFIX}FIFO} attribute, then the
|
||||||
calling task is placed at the rear of the wait queue. If the
|
calling task is placed at the rear of the wait queue. If the
|
||||||
binary semaphore was created with the @code{INHERIT_PRIORITY}
|
binary semaphore was created with the @code{@value{RPREFIX}INHERIT_PRIORITY}
|
||||||
attribute, then the priority of the task currently holding the
|
attribute, then the priority of the task currently holding the
|
||||||
binary semaphore is guaranteed to be greater than or equal to
|
binary semaphore is guaranteed to be greater than or equal to
|
||||||
that of the blocking task. If the binary semaphore was created
|
that of the blocking task. If the binary semaphore was created
|
||||||
with the @code{PRIORITY_CEILING} attribute, a task successfully obtains
|
with the @code{@value{RPREFIX}PRIORITY_CEILING} attribute, a task successfully obtains
|
||||||
the semaphore, and the priority of that task is greater than the
|
the semaphore, and the priority of that task is greater than the
|
||||||
ceiling priority for this semaphore, then the priority of the
|
ceiling priority for this semaphore, then the priority of the
|
||||||
task obtaining the semaphore is elevated to that of the ceiling.
|
task obtaining the semaphore is elevated to that of the ceiling.
|
||||||
|
|
||||||
The timeout parameter specifies the maximum interval
|
The timeout parameter specifies the maximum interval
|
||||||
the calling task is willing to be blocked waiting for the
|
the calling task is willing to be blocked waiting for the
|
||||||
semaphore. If it is set to @code{NO_TIMEOUT}, then the calling task
|
semaphore. If it is set to @code{@value{RPREFIX}NO_TIMEOUT}, then the calling task
|
||||||
will wait forever. If the semaphore is available or the @code{NO_WAIT}
|
will wait forever. If the semaphore is available or the @code{@value{RPREFIX}NO_WAIT}
|
||||||
option component is set, then timeout is ignored.
|
option component is set, then timeout is ignored.
|
||||||
|
|
||||||
@subheading NOTES:
|
@subheading NOTES:
|
||||||
@@ -714,14 +714,14 @@ The following semaphore acquisition option constants
|
|||||||
are defined by RTEMS:
|
are defined by RTEMS:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{WAIT} - task will wait for semaphore (default)
|
@item @code{@value{RPREFIX}WAIT} - task will wait for semaphore (default)
|
||||||
@item @code{NO_WAIT} - task should not wait
|
@item @code{@value{RPREFIX}NO_WAIT} - task should not wait
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
Attempting to obtain a global semaphore which does not reside on
|
Attempting to obtain a global semaphore which does not reside on
|
||||||
the local node will generate a request to the remote node to
|
the local node will generate a request to the remote node to
|
||||||
access the semaphore. If the semaphore is not available and
|
access the semaphore. If the semaphore is not available and
|
||||||
@code{NO_WAIT} was not specified, then the task must be blocked until
|
@code{@value{RPREFIX}NO_WAIT} was not specified, then the task must be blocked until
|
||||||
the semaphore is released. A proxy is allocated on the remote
|
the semaphore is released. A proxy is allocated on the remote
|
||||||
node to represent the task until the semaphore is released.
|
node to represent the task until the semaphore is released.
|
||||||
|
|
||||||
@@ -754,9 +754,9 @@ procedure Semaphore_Release (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - semaphore released successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - semaphore released successfully@*
|
||||||
@code{INVALID_ID} - invalid semaphore id@*
|
@code{@value{RPREFIX}INVALID_ID} - invalid semaphore id@*
|
||||||
@code{NOT_OWNER_OF_RESOURCE} - calling task does not own semaphore
|
@code{@value{RPREFIX}NOT_OWNER_OF_RESOURCE} - calling task does not own semaphore
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
|
|||||||
@@ -29,8 +29,8 @@ for asynchronous communication. The directives provided by the
|
|||||||
signal manager are:
|
signal manager are:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{signal_catch} - Establish an ASR
|
@item @code{@value{DIRPREFIX}signal_catch} - Establish an ASR
|
||||||
@item @code{signal_send} - Send signal set to a task
|
@item @code{@value{DIRPREFIX}signal_send} - Send signal set to a task
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
@ifinfo
|
@ifinfo
|
||||||
@@ -100,8 +100,8 @@ result, does not have a task mode.
|
|||||||
@subsection Building a Signal Set
|
@subsection Building a Signal Set
|
||||||
|
|
||||||
A signal set is built by a bitwise OR of the desired
|
A signal set is built by a bitwise OR of the desired
|
||||||
signals. The set of valid signals is @code{SIGNAL_0} through
|
signals. The set of valid signals is @code{@value{RPREFIX}SIGNAL_0} through
|
||||||
@code{SIGNAL_31}. If a signal is not explicitly specified in the
|
@code{@value{RPREFIX}SIGNAL_31}. If a signal is not explicitly specified in the
|
||||||
signal set, then it is not present. Signal values are
|
signal set, then it is not present. Signal values are
|
||||||
specifically designed to be mutually exclusive, therefore
|
specifically designed to be mutually exclusive, therefore
|
||||||
bitwise OR and addition operations are equivalent as long as
|
bitwise OR and addition operations are equivalent as long as
|
||||||
@@ -109,7 +109,7 @@ each signal appears exactly once in the component list.
|
|||||||
|
|
||||||
This example demonstrates the signal parameter used
|
This example demonstrates the signal parameter used
|
||||||
when sending the signal set consisting of
|
when sending the signal set consisting of
|
||||||
@code{SIGNAL_6}, @code{SIGNAL_15}, and @code{SIGNAL_31}.
|
@code{@value{RPREFIX}SIGNAL_6}, @code{@value{RPREFIX}SIGNAL_15}, and @code{@value{RPREFIX}SIGNAL_31}.
|
||||||
The signal parameter provided to the signal_send directive should be
|
The signal parameter provided to the signal_send directive should be
|
||||||
@code{@value{RPREFIX}SIGNAL_6 @value{OR}
|
@code{@value{RPREFIX}SIGNAL_6 @value{OR}
|
||||||
@value{RPREFIX}SIGNAL_15 @value{OR} @value{RPREFIX}SIGNAL_31}.
|
@value{RPREFIX}SIGNAL_15 @value{OR} @value{RPREFIX}SIGNAL_31}.
|
||||||
@@ -126,29 +126,29 @@ directives. A complete list of mode options is provided in the
|
|||||||
following table:
|
following table:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{PREEMPT} is masked by
|
@item @code{@value{RPREFIX}PREEMPT} is masked by
|
||||||
@code{PREEMPT_MASK} and enables preemption
|
@code{@value{RPREFIX}PREEMPT_MASK} and enables preemption
|
||||||
|
|
||||||
@item @code{NO_PREEMPT} is masked by
|
@item @code{@value{RPREFIX}NO_PREEMPT} is masked by
|
||||||
@code{PREEMPT_MASK} and disables preemption
|
@code{@value{RPREFIX}PREEMPT_MASK} and disables preemption
|
||||||
|
|
||||||
@item @code{NO_TIMESLICE} is masked by
|
@item @code{@value{RPREFIX}NO_TIMESLICE} is masked by
|
||||||
@code{TIMESLICE_MASK} and disables timeslicing
|
@code{@value{RPREFIX}TIMESLICE_MASK} and disables timeslicing
|
||||||
|
|
||||||
@item @code{TIMESLICE} is masked by
|
@item @code{@value{RPREFIX}TIMESLICE} is masked by
|
||||||
@code{TIMESLICE_MASK} and enables timeslicing
|
@code{@value{RPREFIX}TIMESLICE_MASK} and enables timeslicing
|
||||||
|
|
||||||
@item @code{ASR} is masked by
|
@item @code{@value{RPREFIX}ASR} is masked by
|
||||||
@code{ASR_MASK} and enables ASR processing
|
@code{@value{RPREFIX}ASR_MASK} and enables ASR processing
|
||||||
|
|
||||||
@item @code{NO_ASR} is masked by
|
@item @code{@value{RPREFIX}NO_ASR} is masked by
|
||||||
@code{ASR_MASK} and disables ASR processing
|
@code{@value{RPREFIX}ASR_MASK} and disables ASR processing
|
||||||
|
|
||||||
@item @code{@value{RPREFIX}INTERRUPT_LEVEL(0)} is masked by
|
@item @code{@value{RPREFIX}INTERRUPT_LEVEL(0)} is masked by
|
||||||
@code{INTERRUPT_MASK} and enables all interrupts
|
@code{@value{RPREFIX}INTERRUPT_MASK} and enables all interrupts
|
||||||
|
|
||||||
@item @code{@value{RPREFIX}INTERRUPT_LEVEL}(n)} is masked by
|
@item @code{@value{RPREFIX}INTERRUPT_LEVEL(n)} is masked by
|
||||||
@code{INTERRUPT_MASK} and sets interrupts level n
|
@code{@value{RPREFIX}INTERRUPT_MASK} and sets interrupts level n
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
Mode values are specifically designed to be mutually
|
Mode values are specifically designed to be mutually
|
||||||
@@ -318,7 +318,7 @@ procedure Signal_Catch (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - always successful
|
@code{@value{RPREFIX}SUCCESSFUL} - always successful
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -339,29 +339,29 @@ preempted.
|
|||||||
The following task mode constants are defined by RTEMS:
|
The following task mode constants are defined by RTEMS:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{PREEMPT} is masked by
|
@item @code{@value{RPREFIX}PREEMPT} is masked by
|
||||||
@code{PREEMPT_MASK} and enables preemption
|
@code{@value{RPREFIX}PREEMPT_MASK} and enables preemption
|
||||||
|
|
||||||
@item @code{NO_PREEMPT} is masked by
|
@item @code{@value{RPREFIX}NO_PREEMPT} is masked by
|
||||||
@code{PREEMPT_MASK} and disables preemption
|
@code{@value{RPREFIX}PREEMPT_MASK} and disables preemption
|
||||||
|
|
||||||
@item @code{NO_TIMESLICE} is masked by
|
@item @code{@value{RPREFIX}NO_TIMESLICE} is masked by
|
||||||
@code{TIMESLICE_MASK} and disables timeslicing
|
@code{@value{RPREFIX}TIMESLICE_MASK} and disables timeslicing
|
||||||
|
|
||||||
@item @code{TIMESLICE} is masked by
|
@item @code{@value{RPREFIX}TIMESLICE} is masked by
|
||||||
@code{TIMESLICE_MASK} and enables timeslicing
|
@code{@value{RPREFIX}TIMESLICE_MASK} and enables timeslicing
|
||||||
|
|
||||||
@item @code{ASR} is masked by
|
@item @code{@value{RPREFIX}ASR} is masked by
|
||||||
@code{ASR_MASK} and enables ASR processing
|
@code{@value{RPREFIX}ASR_MASK} and enables ASR processing
|
||||||
|
|
||||||
@item @code{NO_ASR} is masked by
|
@item @code{@value{RPREFIX}NO_ASR} is masked by
|
||||||
@code{ASR_MASK} and disables ASR processing
|
@code{@value{RPREFIX}ASR_MASK} and disables ASR processing
|
||||||
|
|
||||||
@item @code{@value{RPREFIX}INTERRUPT_LEVEL(0)} is masked by
|
@item @code{@value{RPREFIX}INTERRUPT_LEVEL(0)} is masked by
|
||||||
@code{INTERRUPT_MASK} and enables all interrupts
|
@code{@value{RPREFIX}INTERRUPT_MASK} and enables all interrupts
|
||||||
|
|
||||||
@item @code{@value{RPREFIX}INTERRUPT_LEVEL}(n)} is masked by
|
@item @code{@value{RPREFIX}INTERRUPT_LEVEL(n)} is masked by
|
||||||
@code{INTERRUPT_MASK} and sets interrupts level n
|
@code{@value{RPREFIX}INTERRUPT_MASK} and sets interrupts level n
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
@page
|
@page
|
||||||
@@ -392,9 +392,9 @@ procedure Signal_Send (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - signal sent successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - signal sent successfully@*
|
||||||
@code{INVALID_ID} - task id invalid@*
|
@code{@value{RPREFIX}INVALID_ID} - task id invalid@*
|
||||||
@code{NOT_DEFINED} - ASR invalid
|
@code{@value{RPREFIX}NOT_DEFINED} - ASR invalid
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
|
|||||||
302
doc/user/task.t
302
doc/user/task.t
@@ -31,19 +31,19 @@ create, delete, and administer tasks. The directives provided
|
|||||||
by the task manager are:
|
by the task manager are:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{task_create} - Create a task
|
@item @code{@value{DIRPREFIX}task_create} - Create a task
|
||||||
@item @code{task_ident} - Get ID of a task
|
@item @code{@value{DIRPREFIX}task_ident} - Get ID of a task
|
||||||
@item @code{task_start} - Start a task
|
@item @code{@value{DIRPREFIX}task_start} - Start a task
|
||||||
@item @code{task_restart} - Restart a task
|
@item @code{@value{DIRPREFIX}task_restart} - Restart a task
|
||||||
@item @code{task_delete} - Delete a task
|
@item @code{@value{DIRPREFIX}task_delete} - Delete a task
|
||||||
@item @code{task_suspend} - Suspend a task
|
@item @code{@value{DIRPREFIX}task_suspend} - Suspend a task
|
||||||
@item @code{task_resume} - Resume a task
|
@item @code{@value{DIRPREFIX}task_resume} - Resume a task
|
||||||
@item @code{task_set_priority} - Set task priority
|
@item @code{@value{DIRPREFIX}task_set_priority} - Set task priority
|
||||||
@item @code{task_mode} - Change current task's mode
|
@item @code{@value{DIRPREFIX}task_mode} - Change current task's mode
|
||||||
@item @code{task_get_note} - Get task notepad entry
|
@item @code{@value{DIRPREFIX}task_get_note} - Get task notepad entry
|
||||||
@item @code{task_set_note} - Set task notepad entry
|
@item @code{@value{DIRPREFIX}task_set_note} - Set task notepad entry
|
||||||
@item @code{task_wake_after} - Wake up after interval
|
@item @code{@value{DIRPREFIX}task_wake_after} - Wake up after interval
|
||||||
@item @code{task_wake_when} - Wake up when specified
|
@item @code{@value{DIRPREFIX}task_wake_when} - Wake up when specified
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
@ifinfo
|
@ifinfo
|
||||||
@@ -195,46 +195,46 @@ execution environment of the task.
|
|||||||
|
|
||||||
The preemption component allows a task to determine when control
|
The preemption component allows a task to determine when control
|
||||||
of the processor is relinquished. If preemption is disabled
|
of the processor is relinquished. If preemption is disabled
|
||||||
(NO_PREEMPT), the task will retain control of the processor as
|
(@code{@value{RPREFIX}NO_PREEMPT}), the task will retain control of the processor as
|
||||||
long as it is in the executing state -- even if a higher
|
long as it is in the executing state -- even if a higher
|
||||||
priority task is made ready. If preemption is enabled (PREEMPT)
|
priority task is made ready. If preemption is enabled (@code{@value{RPREFIX}PREEMPT})
|
||||||
and a higher priority task is made ready, then the processor
|
and a higher priority task is made ready, then the processor
|
||||||
will be taken away from the current task immediately and given
|
will be taken away from the current task immediately and given
|
||||||
to the higher priority task.
|
to the higher priority task.
|
||||||
|
|
||||||
The timeslicing component is used by the RTEMS scheduler to
|
The timeslicing component is used by the RTEMS scheduler to
|
||||||
determine how the processor is allocated to tasks of equal
|
determine how the processor is allocated to tasks of equal
|
||||||
priority. If timeslicing is enabled (TIMESLICE), then RTEMS
|
priority. If timeslicing is enabled (@code{@value{RPREFIX}TIMESLICE}), then RTEMS
|
||||||
will limit the amount of time the task can execute before the
|
will limit the amount of time the task can execute before the
|
||||||
processor is allocated to another ready task of equal priority.
|
processor is allocated to another ready task of equal priority.
|
||||||
The length of the timeslice is application dependent and
|
The length of the timeslice is application dependent and
|
||||||
specified in the Configuration Table. If timeslicing is
|
specified in the Configuration Table. If timeslicing is
|
||||||
disabled (NO_TIMESLICE), then the task will be allowed to
|
disabled (@code{@value{RPREFIX}NO_TIMESLICE}), then the task will be allowed to
|
||||||
execute until a task of higher priority is made ready. If
|
execute until a task of higher priority is made ready. If
|
||||||
NO_PREEMPT is selected, then the timeslicing component is
|
@code{@value{RPREFIX}NO_PREEMPT} is selected, then the timeslicing component is
|
||||||
ignored by the scheduler.
|
ignored by the scheduler.
|
||||||
|
|
||||||
The asynchronous signal processing component is used to
|
The asynchronous signal processing component is used to
|
||||||
determine when received signals are to be processed by the task.
|
determine when received signals are to be processed by the task.
|
||||||
If signal processing is enabled (ASR), then signals sent to the
|
If signal processing is enabled (@code{@value{RPREFIX}ASR}), then signals sent to the
|
||||||
task will be processed the next time the task executes. If
|
task will be processed the next time the task executes. If
|
||||||
signal processing is disabled (NO_ASR), then all signals
|
signal processing is disabled (@code{@value{RPREFIX}NO_ASR}), then all signals
|
||||||
received by the task will remain posted until signal processing
|
received by the task will remain posted until signal processing
|
||||||
is enabled. This component affects only tasks which have
|
is enabled. This component affects only tasks which have
|
||||||
established a routine to process asynchronous signals.
|
established a routine to process asynchronous signals.
|
||||||
|
|
||||||
The interrupt level component is used to determine which
|
The interrupt level component is used to determine which
|
||||||
interrupts will be enabled when the task is executing.
|
interrupts will be enabled when the task is executing.
|
||||||
INTERRUPT_LEVEL(n) specifies that the task will execute at
|
@code{@value{RPREFIX}INTERRUPT_LEVEL(n)}
|
||||||
interrupt level n.
|
specifies that the task will execute at interrupt level n.
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{PREEMPT} - enable preemption (default)
|
@item @code{@value{RPREFIX}PREEMPT} - enable preemption (default)
|
||||||
@item @code{NO_PREEMPT} - disable preemption
|
@item @code{@value{RPREFIX}NO_PREEMPT} - disable preemption
|
||||||
@item @code{NO_TIMESLICE} - disable timeslicing (default)
|
@item @code{@value{RPREFIX}NO_TIMESLICE} - disable timeslicing (default)
|
||||||
@item @code{TIMESLICE} - enable timeslicing
|
@item @code{@value{RPREFIX}TIMESLICE} - enable timeslicing
|
||||||
@item @code{ASR} - enable ASR processing (default)
|
@item @code{@value{RPREFIX}ASR} - enable ASR processing (default)
|
||||||
@item @code{NO_ASR} - disable ASR processing
|
@item @code{@value{RPREFIX}NO_ASR} - disable ASR processing
|
||||||
@item @code{@value{RPREFIX}INTERRUPT_LEVEL(0)} - enable all interrupts (default)
|
@item @code{@value{RPREFIX}INTERRUPT_LEVEL(0)} - enable all interrupts (default)
|
||||||
@item @code{@value{RPREFIX}INTERRUPT_LEVEL(n)} - execute at interrupt level n
|
@item @code{@value{RPREFIX}INTERRUPT_LEVEL(n)} - execute at interrupt level n
|
||||||
@end itemize
|
@end itemize
|
||||||
@@ -274,12 +274,12 @@ single argument as an index into an array of parameter blocks.
|
|||||||
@end ifinfo
|
@end ifinfo
|
||||||
@subsection Floating Point Considerations
|
@subsection Floating Point Considerations
|
||||||
|
|
||||||
Creating a task with the @code{FLOATING_POINT} flag results in
|
Creating a task with the @code{@value{RPREFIX}FLOATING_POINT} flag results in
|
||||||
additional memory being allocated for the TCB to store the state
|
additional memory being allocated for the TCB to store the state
|
||||||
of the numeric coprocessor during task switches. This
|
of the numeric coprocessor during task switches. This
|
||||||
additional memory is @b{NOT} allocated for @code{NO_FLOATING_POINT} tasks.
|
additional memory is @b{NOT} allocated for @code{@value{RPREFIX}NO_FLOATING_POINT} tasks.
|
||||||
Saving and restoring the context of a @code{FLOATING_POINT} task takes
|
Saving and restoring the context of a @code{@value{RPREFIX}FLOATING_POINT} task takes
|
||||||
longer than that of a @code{NO_FLOATING_POINT} task because of the
|
longer than that of a @code{@value{RPREFIX}NO_FLOATING_POINT} task because of the
|
||||||
relatively large amount of time required for the numeric
|
relatively large amount of time required for the numeric
|
||||||
coprocessor to save or restore its computational state.
|
coprocessor to save or restore its computational state.
|
||||||
|
|
||||||
@@ -287,41 +287,41 @@ Since RTEMS was designed specifically for embedded military
|
|||||||
applications which are floating point intensive, the executive
|
applications which are floating point intensive, the executive
|
||||||
is optimized to avoid unnecessarily saving and restoring the
|
is optimized to avoid unnecessarily saving and restoring the
|
||||||
state of the numeric coprocessor. The state of the numeric
|
state of the numeric coprocessor. The state of the numeric
|
||||||
coprocessor is only saved when a @code{FLOATING_POINT} task is
|
coprocessor is only saved when a @code{@value{RPREFIX}FLOATING_POINT} task is
|
||||||
dispatched and that task was not the last task to utilize the
|
dispatched and that task was not the last task to utilize the
|
||||||
coprocessor. In a system with only one @code{FLOATING_POINT} task, the
|
coprocessor. In a system with only one @code{@value{RPREFIX}FLOATING_POINT} task, the
|
||||||
state of the numeric coprocessor will never be saved or
|
state of the numeric coprocessor will never be saved or
|
||||||
restored.
|
restored.
|
||||||
|
|
||||||
Although the overhead imposed by @code{FLOATING_POINT} tasks is
|
Although the overhead imposed by @code{@value{RPREFIX}FLOATING_POINT} tasks is
|
||||||
minimal, some applications may wish to completely avoid the
|
minimal, some applications may wish to completely avoid the
|
||||||
overhead associated with @code{FLOATING_POINT} tasks and still utilize
|
overhead associated with @code{@value{RPREFIX}FLOATING_POINT} tasks and still utilize
|
||||||
a numeric coprocessor. By preventing a task from being
|
a numeric coprocessor. By preventing a task from being
|
||||||
preempted while performing a sequence of floating point
|
preempted while performing a sequence of floating point
|
||||||
operations, a @code{NO_FLOATING_POINT} task can utilize the numeric
|
operations, a @code{@value{RPREFIX}NO_FLOATING_POINT} task can utilize the numeric
|
||||||
coprocessor without incurring the overhead of a @code{FLOATING_POINT}
|
coprocessor without incurring the overhead of a @code{@value{RPREFIX}FLOATING_POINT}
|
||||||
context switch. This approach also avoids the allocation of a
|
context switch. This approach also avoids the allocation of a
|
||||||
floating point context area. However, if this approach is taken
|
floating point context area. However, if this approach is taken
|
||||||
by the application designer, NO tasks should be created as
|
by the application designer, NO tasks should be created as
|
||||||
@code{FLOATING_POINT} tasks. Otherwise, the floating point context
|
@code{@value{RPREFIX}FLOATING_POINT} tasks. Otherwise, the floating point context
|
||||||
will not be correctly maintained because RTEMS assumes that the
|
will not be correctly maintained because RTEMS assumes that the
|
||||||
state of the numeric coprocessor will not be altered by
|
state of the numeric coprocessor will not be altered by
|
||||||
@code{NO_FLOATING_POINT} tasks.
|
@code{@value{RPREFIX}NO_FLOATING_POINT} tasks.
|
||||||
|
|
||||||
If the supported processor type does not have hardware floating
|
If the supported processor type does not have hardware floating
|
||||||
capabilities or a standard numeric coprocessor, RTEMS will not
|
capabilities or a standard numeric coprocessor, RTEMS will not
|
||||||
provide built-in support for hardware floating point on that
|
provide built-in support for hardware floating point on that
|
||||||
processor. In this case, all tasks are considered
|
processor. In this case, all tasks are considered
|
||||||
@code{NO_FLOATING_POINT} whether created as @code{FLOATING_POINT} or
|
@code{@value{RPREFIX}NO_FLOATING_POINT} whether created as @code{@value{RPREFIX}FLOATING_POINT} or
|
||||||
@code{NO_FLOATING_POINT} tasks. A floating point emulation software
|
@code{@value{RPREFIX}NO_FLOATING_POINT} tasks. A floating point emulation software
|
||||||
library must be utilized for floating point operations.
|
library must be utilized for floating point operations.
|
||||||
|
|
||||||
On some processors, it is possible to disable the floating point
|
On some processors, it is possible to disable the floating point
|
||||||
unit dynamically. If this capability is supported by the target
|
unit dynamically. If this capability is supported by the target
|
||||||
processor, then RTEMS will utilize this capability to enable the
|
processor, then RTEMS will utilize this capability to enable the
|
||||||
floating point unit only for tasks which are created with the
|
floating point unit only for tasks which are created with the
|
||||||
@code{FLOATING_POINT} attribute. The consequence of a
|
@code{@value{RPREFIX}FLOATING_POINT} attribute. The consequence of a
|
||||||
@code{NO_FLOATING_POINT} task attempting to access the floating point
|
@code{@value{RPREFIX}NO_FLOATING_POINT} task attempting to access the floating point
|
||||||
unit is CPU dependent but will i general result in an exception
|
unit is CPU dependent but will i general result in an exception
|
||||||
condition.
|
condition.
|
||||||
|
|
||||||
@@ -335,10 +335,10 @@ desired components. The set of valid task attribute components
|
|||||||
is listed below:
|
is listed below:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{NO_FLOATING_POINT} - does not use coprocessor (default)
|
@item @code{@value{RPREFIX}NO_FLOATING_POINT} - does not use coprocessor (default)
|
||||||
@item @code{FLOATING_POINT} - uses numeric coprocessor
|
@item @code{@value{RPREFIX}FLOATING_POINT} - uses numeric coprocessor
|
||||||
@item @code{LOCAL} - local task (default)
|
@item @code{@value{RPREFIX}LOCAL} - local task (default)
|
||||||
@item @code{GLOBAL} - global task
|
@item @code{@value{RPREFIX}GLOBAL} - global task
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
Attribute values are specifically designed to be mutually
|
Attribute values are specifically designed to be mutually
|
||||||
@@ -347,14 +347,14 @@ equivalent as long as each attribute appears exactly once in the
|
|||||||
component list. A component listed as a default is not required
|
component list. A component listed as a default is not required
|
||||||
to appear in the component list, although it is a good
|
to appear in the component list, although it is a good
|
||||||
programming practice to specify default components. If all
|
programming practice to specify default components. If all
|
||||||
defaults are desired, then @code{DEFAULT_ATTRIBUTES} should be used.
|
defaults are desired, then @code{@value{RPREFIX}DEFAULT_ATTRIBUTES} should be used.
|
||||||
|
|
||||||
This example demonstrates the attribute_set parameter needed to
|
This example demonstrates the attribute_set parameter needed to
|
||||||
create a local task which utilizes the numeric coprocessor. The
|
create a local task which utilizes the numeric coprocessor. The
|
||||||
attribute_set parameter could be @code{FLOATING_POINT} or
|
attribute_set parameter could be @code{@value{RPREFIX}FLOATING_POINT} or
|
||||||
@code{@value{RPREFIX}LOCAL @value{OR} @value{RPREFIX}FLOATING_POINT}.
|
@code{@value{RPREFIX}LOCAL @value{OR} @value{RPREFIX}FLOATING_POINT}.
|
||||||
The attribute_set parameter can be set to
|
The attribute_set parameter can be set to
|
||||||
@code{FLOATING_POINT} because @code{LOCAL} is the default for all created
|
@code{@value{RPREFIX}FLOATING_POINT} because @code{@value{RPREFIX}LOCAL} is the default for all created
|
||||||
tasks. If the task were global and used the numeric
|
tasks. If the task were global and used the numeric
|
||||||
coprocessor, then the attribute_set parameter would be
|
coprocessor, then the attribute_set parameter would be
|
||||||
@code{@value{RPREFIX}GLOBAL @value{OR} @value{RPREFIX}FLOATING_POINT}.
|
@code{@value{RPREFIX}GLOBAL @value{OR} @value{RPREFIX}FLOATING_POINT}.
|
||||||
@@ -371,29 +371,29 @@ listed below:
|
|||||||
|
|
||||||
@ifset use-ascii
|
@ifset use-ascii
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{PREEMPT} is masked by
|
@item @code{@value{RPREFIX}PREEMPT} is masked by
|
||||||
@code{PREEMPT_MASK} and enables preemption
|
@code{@value{RPREFIX}PREEMPT_MASK} and enables preemption
|
||||||
|
|
||||||
@item @code{NO_PREEMPT} is masked by
|
@item @code{@value{RPREFIX}NO_PREEMPT} is masked by
|
||||||
@code{PREEMPT_MASK} and disables preemption
|
@code{@value{RPREFIX}PREEMPT_MASK} and disables preemption
|
||||||
|
|
||||||
@item @code{NO_TIMESLICE} is masked by
|
@item @code{@value{RPREFIX}NO_TIMESLICE} is masked by
|
||||||
@code{TIMESLICE_MASK} and disables timeslicing
|
@code{@value{RPREFIX}TIMESLICE_MASK} and disables timeslicing
|
||||||
|
|
||||||
@item @code{TIMESLICE} is masked by
|
@item @code{@value{RPREFIX}TIMESLICE} is masked by
|
||||||
@code{TIMESLICE_MASK} and enables timeslicing
|
@code{@value{RPREFIX}TIMESLICE_MASK} and enables timeslicing
|
||||||
|
|
||||||
@item @code{ASR} is masked by
|
@item @code{@value{RPREFIX}ASR} is masked by
|
||||||
@code{ASR_MASK} and enables ASR processing
|
@code{@value{RPREFIX}ASR_MASK} and enables ASR processing
|
||||||
|
|
||||||
@item @code{NO_ASR} is masked by
|
@item @code{@value{RPREFIX}NO_ASR} is masked by
|
||||||
@code{ASR_MASK} and disables ASR processing
|
@code{@value{RPREFIX}ASR_MASK} and disables ASR processing
|
||||||
|
|
||||||
@item @code{@value{RPREFIX}INTERRUPT_LEVEL(0)} is masked by
|
@item @code{@value{RPREFIX}INTERRUPT_LEVEL(0)} is masked by
|
||||||
@code{INTERRUPT_MASK} and enables all interrupts
|
@code{@value{RPREFIX}INTERRUPT_MASK} and enables all interrupts
|
||||||
|
|
||||||
@item @code{@value{RPREFIX}INTERRUPT_LEVEL}(n)} is masked by
|
@item @code{@value{RPREFIX}INTERRUPT_LEVEL(n)} is masked by
|
||||||
@code{INTERRUPT_MASK} and sets interrupts level n
|
@code{@value{RPREFIX}INTERRUPT_MASK} and sets interrupts level n
|
||||||
@end itemize
|
@end itemize
|
||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@@ -401,29 +401,29 @@ listed below:
|
|||||||
@sp 1
|
@sp 1
|
||||||
@c this is temporary
|
@c this is temporary
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{PREEMPT} is masked by
|
@item @code{@value{RPREFIX}PREEMPT} is masked by
|
||||||
@code{PREEMPT_MASK} and enables preemption
|
@code{@value{RPREFIX}PREEMPT_MASK} and enables preemption
|
||||||
|
|
||||||
@item @code{NO_PREEMPT} is masked by
|
@item @code{@value{RPREFIX}NO_PREEMPT} is masked by
|
||||||
@code{PREEMPT_MASK} and disables preemption
|
@code{@value{RPREFIX}PREEMPT_MASK} and disables preemption
|
||||||
|
|
||||||
@item @code{NO_TIMESLICE} is masked by
|
@item @code{@value{RPREFIX}NO_TIMESLICE} is masked by
|
||||||
@code{TIMESLICE_MASK} and disables timeslicing
|
@code{@value{RPREFIX}TIMESLICE_MASK} and disables timeslicing
|
||||||
|
|
||||||
@item @code{TIMESLICE} is masked by
|
@item @code{@value{RPREFIX}TIMESLICE} is masked by
|
||||||
@code{TIMESLICE_MASK} and enables timeslicing
|
@code{@value{RPREFIX}TIMESLICE_MASK} and enables timeslicing
|
||||||
|
|
||||||
@item @code{ASR} is masked by
|
@item @code{@value{RPREFIX}ASR} is masked by
|
||||||
@code{ASR_MASK} and enables ASR processing
|
@code{@value{RPREFIX}ASR_MASK} and enables ASR processing
|
||||||
|
|
||||||
@item @code{NO_ASR} is masked by
|
@item @code{@value{RPREFIX}NO_ASR} is masked by
|
||||||
@code{ASR_MASK} and disables ASR processing
|
@code{@value{RPREFIX}ASR_MASK} and disables ASR processing
|
||||||
|
|
||||||
@item @code{@value{RPREFIX}INTERRUPT_LEVEL(0)} is masked by
|
@item @code{@value{RPREFIX}INTERRUPT_LEVEL(0)} is masked by
|
||||||
@code{INTERRUPT_MASK} and enables all interrupts
|
@code{@value{RPREFIX}INTERRUPT_MASK} and enables all interrupts
|
||||||
|
|
||||||
@item @code{@value{RPREFIX}INTERRUPT_LEVEL}(n)} is masked by
|
@item @code{@value{RPREFIX}INTERRUPT_LEVEL(n)} is masked by
|
||||||
@code{INTERRUPT_MASK} and sets interrupts level n
|
@code{@value{RPREFIX}INTERRUPT_MASK} and sets interrupts level n
|
||||||
|
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
@@ -476,7 +476,7 @@ long as each mode appears exactly once in the component list. A
|
|||||||
mode component listed as a default is not required to appear in
|
mode component listed as a default is not required to appear in
|
||||||
the mode component list, although it is a good programming
|
the mode component list, although it is a good programming
|
||||||
practice to specify default components. If all defaults are
|
practice to specify default components. If all defaults are
|
||||||
desired, the mode @code{DEFAULT_MODES} and the mask @code{ALL_MODE_MASKS}
|
desired, the mode @code{@value{RPREFIX}DEFAULT_MODES} and the mask @code{@value{RPREFIX}ALL_MODE_MASKS}
|
||||||
should be used.
|
should be used.
|
||||||
|
|
||||||
The following example demonstrates the mode and mask parameters
|
The following example demonstrates the mode and mask parameters
|
||||||
@@ -598,7 +598,7 @@ The task_wake_after directive creates a sleep timer which allows
|
|||||||
a task to go to sleep for a specified interval. The task is
|
a task to go to sleep for a specified interval. The task is
|
||||||
blocked until the delay interval has elapsed, at which time the
|
blocked until the delay interval has elapsed, at which time the
|
||||||
task is unblocked. A task calling the task_wake_after directive
|
task is unblocked. A task calling the task_wake_after directive
|
||||||
with a delay interval of @code{YIELD_PROCESSOR} ticks will yield the
|
with a delay interval of @code{@value{RPREFIX}YIELD_PROCESSOR} ticks will yield the
|
||||||
processor to any other ready task of equal or greater priority
|
processor to any other ready task of equal or greater priority
|
||||||
and remain ready to execute.
|
and remain ready to execute.
|
||||||
|
|
||||||
@@ -744,23 +744,23 @@ procedure Task_Create (
|
|||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{@value{RPREFIX}SUCCESSFUL} - task created successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - task created successfully@*
|
||||||
@code{INVALID_NAME} - invalid task name@*
|
@code{@value{RPREFIX}INVALID_NAME} - invalid task name@*
|
||||||
@code{INVALID_SIZE} - stack too small@*
|
@code{@value{RPREFIX}INVALID_SIZE} - stack too small@*
|
||||||
@code{INVALID_PRIORITY} - invalid task priority@*
|
@code{@value{RPREFIX}INVALID_PRIORITY} - invalid task priority@*
|
||||||
@code{MP_NOT_CONFIGURED} - multiprocessing not configured@*
|
@code{@value{RPREFIX}MP_NOT_CONFIGURED} - multiprocessing not configured@*
|
||||||
@code{TOO_MANY} - too many tasks created@*
|
@code{@value{RPREFIX}TOO_MANY} - too many tasks created@*
|
||||||
@code{UNSATISFIED} - not enough memory for stack/FP context@*
|
@code{@value{RPREFIX}UNSATISFIED} - not enough memory for stack/FP context@*
|
||||||
@code{TOO_MANY} - too many global objects
|
@code{@value{RPREFIX}TOO_MANY} - too many global objects
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
This directive creates a task which resides on the local node.
|
This directive creates a task which resides on the local node.
|
||||||
It allocates and initializes a TCB, a stack, and an optional
|
It allocates and initializes a TCB, a stack, and an optional
|
||||||
floating point context area. The mode parameter contains values
|
floating point context area. The mode parameter contains values
|
||||||
which sets the task's initial execution mode. The
|
which sets the task's initial execution mode. The
|
||||||
@code{FLOATING_POINT} attribute should be specified if the created task
|
@code{@value{RPREFIX}FLOATING_POINT} attribute should be specified if the created task
|
||||||
is to use a numeric coprocessor. For performance reasons, it is
|
is to use a numeric coprocessor. For performance reasons, it is
|
||||||
recommended that tasks not using the numeric coprocessor should
|
recommended that tasks not using the numeric coprocessor should
|
||||||
specify the @code{NO_FLOATING_POINT} attribute. If the GLOBAL
|
specify the @code{@value{RPREFIX}NO_FLOATING_POINT} attribute. If the GLOBAL
|
||||||
attribute is specified, the task can be accessed from remote
|
attribute is specified, the task can be accessed from remote
|
||||||
nodes. The task id, returned in id, is used in other task
|
nodes. The task id, returned in id, is used in other task
|
||||||
related directives to access the task. When created, a task is
|
related directives to access the task. When created, a task is
|
||||||
@@ -776,8 +776,8 @@ RTEMS supports a maximum of 256 interrupt levels which are
|
|||||||
mapped onto the interrupt levels actually supported by the
|
mapped onto the interrupt levels actually supported by the
|
||||||
target processor.
|
target processor.
|
||||||
|
|
||||||
The requested stack size should be at least @code{MINIMUM_STACK_SIZE}
|
The requested stack size should be at least @code{@value{RPREFIX}MINIMUM_STACK_SIZE}
|
||||||
bytes. The value of @code{MINIMUM_STACK_SIZE} is processor dependent.
|
bytes. The value of @code{@value{RPREFIX}MINIMUM_STACK_SIZE} is processor dependent.
|
||||||
Application developers should consider the stack usage of the
|
Application developers should consider the stack usage of the
|
||||||
device drivers when calculating the stack size required for
|
device drivers when calculating the stack size required for
|
||||||
tasks which utilize the driver.
|
tasks which utilize the driver.
|
||||||
@@ -785,21 +785,21 @@ tasks which utilize the driver.
|
|||||||
The following task attribute constants are defined by RTEMS:
|
The following task attribute constants are defined by RTEMS:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{NO_FLOATING_POINT} - does not use coprocessor (default)
|
@item @code{@value{RPREFIX}NO_FLOATING_POINT} - does not use coprocessor (default)
|
||||||
@item @code{FLOATING_POINT} - uses numeric coprocessor
|
@item @code{@value{RPREFIX}FLOATING_POINT} - uses numeric coprocessor
|
||||||
@item @code{LOCAL} - local task (default)
|
@item @code{@value{RPREFIX}LOCAL} - local task (default)
|
||||||
@item @code{GLOBAL} - global task
|
@item @code{@value{RPREFIX}GLOBAL} - global task
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
The following task mode constants are defined by RTEMS:
|
The following task mode constants are defined by RTEMS:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{PREEMPT} - enable preemption (default)
|
@item @code{@value{RPREFIX}PREEMPT} - enable preemption (default)
|
||||||
@item @code{NO_PREEMPT} - disable preemption
|
@item @code{@value{RPREFIX}NO_PREEMPT} - disable preemption
|
||||||
@item @code{NO_TIMESLICE} - disable timeslicing (default)
|
@item @code{@value{RPREFIX}NO_TIMESLICE} - disable timeslicing (default)
|
||||||
@item @code{TIMESLICE} - enable timeslicing
|
@item @code{@value{RPREFIX}TIMESLICE} - enable timeslicing
|
||||||
@item @code{ASR} - enable ASR processing (default)
|
@item @code{@value{RPREFIX}ASR} - enable ASR processing (default)
|
||||||
@item @code{NO_ASR} - disable ASR processing
|
@item @code{@value{RPREFIX}NO_ASR} - disable ASR processing
|
||||||
@item @code{@value{RPREFIX}INTERRUPT_LEVEL(0)} - enable all interrupts (default)
|
@item @code{@value{RPREFIX}INTERRUPT_LEVEL(0)} - enable all interrupts (default)
|
||||||
@item @code{@value{RPREFIX}INTERRUPT_LEVEL(n)} - execute at interrupt level n
|
@item @code{@value{RPREFIX}INTERRUPT_LEVEL(n)} - execute at interrupt level n
|
||||||
@end itemize
|
@end itemize
|
||||||
@@ -845,14 +845,14 @@ procedure Task_Ident (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - task identified successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - task identified successfully@*
|
||||||
@code{INVALID_NAME} - invalid task name@*
|
@code{@value{RPREFIX}INVALID_NAME} - invalid task name@*
|
||||||
@code{INVALID_NODE} - invalid node id
|
@code{@value{RPREFIX}INVALID_NODE} - invalid node id
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
This directive obtains the task id associated with the task name
|
This directive obtains the task id associated with the task name
|
||||||
specified in name. A task may obtain its own id by specifying
|
specified in name. A task may obtain its own id by specifying
|
||||||
@code{SELF} or its own task name in name. If the task name is not
|
@code{@value{RPREFIX}SELF} or its own task name in name. If the task name is not
|
||||||
unique, then the task id returned will match one of the tasks
|
unique, then the task id returned will match one of the tasks
|
||||||
with that name. However, this task id is not guaranteed to
|
with that name. However, this task id is not guaranteed to
|
||||||
correspond to the desired task. The task id, returned in id, is
|
correspond to the desired task. The task id, returned in id, is
|
||||||
@@ -861,7 +861,7 @@ used in other task related directives to access the task.
|
|||||||
@subheading NOTES:
|
@subheading NOTES:
|
||||||
This directive will not cause the running task to be preempted.
|
This directive will not cause the running task to be preempted.
|
||||||
|
|
||||||
If node is @code{SEARCH_ALL_NODES}, all nodes are searched with the
|
If node is @code{@value{RPREFIX}SEARCH_ALL_NODES}, all nodes are searched with the
|
||||||
local node being searched first. All other nodes are searched
|
local node being searched first. All other nodes are searched
|
||||||
with the lowest numbered node searched first.
|
with the lowest numbered node searched first.
|
||||||
|
|
||||||
@@ -902,11 +902,11 @@ procedure Task_Start (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - ask started successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - ask started successfully@*
|
||||||
@code{INVALID_ADDRESS} - invalid task entry point@*
|
@code{@value{RPREFIX}INVALID_ADDRESS} - invalid task entry point@*
|
||||||
@code{INVALID_ID} - invalid task id@*
|
@code{@value{RPREFIX}INVALID_ID} - invalid task id@*
|
||||||
@code{INCORRECT_STATE} - task not in the dormant state@*
|
@code{@value{RPREFIX}INCORRECT_STATE} - task not in the dormant state@*
|
||||||
@code{ILLEGAL_ON_REMOTE_OBJECT} - cannot start remote task
|
@code{@value{RPREFIX}ILLEGAL_ON_REMOTE_OBJECT} - cannot start remote task
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
This directive readies the task, specified by tid, for execution
|
This directive readies the task, specified by tid, for execution
|
||||||
@@ -952,10 +952,10 @@ procedure Task_Restart (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - task restarted successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - task restarted successfully@*
|
||||||
@code{INVALID_ID} - task id invalid@*
|
@code{@value{RPREFIX}INVALID_ID} - task id invalid@*
|
||||||
@code{INCORRECT_STATE} - task never started@*
|
@code{@value{RPREFIX}INCORRECT_STATE} - task never started@*
|
||||||
@code{ILLEGAL_ON_REMOTE_OBJECT} - cannot restart remote task
|
@code{@value{RPREFIX}ILLEGAL_ON_REMOTE_OBJECT} - cannot restart remote task
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
This directive resets the task specified by id to begin
|
This directive resets the task specified by id to begin
|
||||||
@@ -976,7 +976,7 @@ task, and allowing that task to release resources back to RTEMS
|
|||||||
and then delete itself.
|
and then delete itself.
|
||||||
|
|
||||||
@subheading NOTES:
|
@subheading NOTES:
|
||||||
If id is @code{SELF}, the calling task will be restarted and will not
|
If id is @code{@value{RPREFIX}SELF}, the calling task will be restarted and will not
|
||||||
return from this directive.
|
return from this directive.
|
||||||
|
|
||||||
The calling task will be preempted if its preemption mode is
|
The calling task will be preempted if its preemption mode is
|
||||||
@@ -1011,15 +1011,15 @@ procedure Task_Delete (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - task restarted successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - task restarted successfully@*
|
||||||
@code{INVALID_ID} - task id invalid@*
|
@code{@value{RPREFIX}INVALID_ID} - task id invalid@*
|
||||||
@code{ILLEGAL_ON_REMOTE_OBJECT} - cannot restart remote task
|
@code{@value{RPREFIX}ILLEGAL_ON_REMOTE_OBJECT} - cannot restart remote task
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
This directive deletes a task, either the calling task or
|
This directive deletes a task, either the calling task or
|
||||||
another task, as specified by id. RTEMS stops the execution of
|
another task, as specified by id. RTEMS stops the execution of
|
||||||
the task and reclaims the stack memory, any allocated delay or
|
the task and reclaims the stack memory, any allocated delay or
|
||||||
timeout timers, the TCB, and, if the task is @code{FLOATING_POINT}, its
|
timeout timers, the TCB, and, if the task is @code{@value{RPREFIX}FLOATING_POINT}, its
|
||||||
floating point context area. RTEMS does not reclaim the
|
floating point context area. RTEMS does not reclaim the
|
||||||
following resources: region segments, partition buffers,
|
following resources: region segments, partition buffers,
|
||||||
semaphores, timers, or rate monotonic periods.
|
semaphores, timers, or rate monotonic periods.
|
||||||
@@ -1034,7 +1034,7 @@ resources before deletion. A task can be directed to release
|
|||||||
its resources and delete itself by restarting it with a special
|
its resources and delete itself by restarting it with a special
|
||||||
argument or by sending it a message, an event, or a signal.
|
argument or by sending it a message, an event, or a signal.
|
||||||
|
|
||||||
Deletion of the current task (@code{SELF}) will force RTEMS to select
|
Deletion of the current task (@code{@value{RPREFIX}SELF}) will force RTEMS to select
|
||||||
another task to execute.
|
another task to execute.
|
||||||
|
|
||||||
When a global task is deleted, the task id must be transmitted
|
When a global task is deleted, the task id must be transmitted
|
||||||
@@ -1070,9 +1070,9 @@ procedure Task_Suspend (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - task restarted successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - task restarted successfully@*
|
||||||
@code{INVALID_ID} - task id invalid@*
|
@code{@value{RPREFIX}INVALID_ID} - task id invalid@*
|
||||||
@code{ALREADY_SUSPENDED} - task already suspended
|
@code{@value{RPREFIX}ALREADY_SUSPENDED} - task already suspended
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
This directive suspends the task specified by id from further
|
This directive suspends the task specified by id from further
|
||||||
@@ -1083,7 +1083,7 @@ the task_resume directive for this task and any blocked state
|
|||||||
has been removed.
|
has been removed.
|
||||||
|
|
||||||
@subheading NOTES:
|
@subheading NOTES:
|
||||||
The requesting task can suspend itself by specifying @code{SELF} as id.
|
The requesting task can suspend itself by specifying @code{@value{RPREFIX}SELF} as id.
|
||||||
In this case, the task will be suspended and a successful
|
In this case, the task will be suspended and a successful
|
||||||
return code will be returned when the task is resumed.
|
return code will be returned when the task is resumed.
|
||||||
|
|
||||||
@@ -1120,9 +1120,9 @@ procedure Task_Resume (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - task restarted successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - task restarted successfully@*
|
||||||
@code{INVALID_ID} - task id invalid@*
|
@code{@value{RPREFIX}INVALID_ID} - task id invalid@*
|
||||||
@code{INCORRECT_STATE} - task not suspended
|
@code{@value{RPREFIX}INCORRECT_STATE} - task not suspended
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
This directive removes the task specified by id from the
|
This directive removes the task specified by id from the
|
||||||
@@ -1172,13 +1172,13 @@ procedure Task_Set_Priority (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - task priority set successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - task priority set successfully@*
|
||||||
@code{INVALID_ID} - invalid task id@*
|
@code{@value{RPREFIX}INVALID_ID} - invalid task id@*
|
||||||
@code{INVALID_PRIORITY} - invalid task priority
|
@code{@value{RPREFIX}INVALID_PRIORITY} - invalid task priority
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
This directive manipulates the priority of the task specified by
|
This directive manipulates the priority of the task specified by
|
||||||
id. An id of @code{SELF} is used to indicate the calling task. When
|
id. An id of @code{@value{RPREFIX}SELF} is used to indicate the calling task. When
|
||||||
new_priority is not equal to CURRENT_PRIORITY, the specified
|
new_priority is not equal to CURRENT_PRIORITY, the specified
|
||||||
task's previous priority is returned in old_priority. When
|
task's previous priority is returned in old_priority. When
|
||||||
new_priority is CURRENT_PRIORITY, the specified task's current
|
new_priority is CURRENT_PRIORITY, the specified task's current
|
||||||
@@ -1234,7 +1234,7 @@ procedure Task_Delete (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - task mode set successfully
|
@code{@value{RPREFIX}SUCCESSFUL} - task mode set successfully
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
This directive manipulates the execution mode of the calling
|
This directive manipulates the execution mode of the calling
|
||||||
@@ -1252,7 +1252,7 @@ a higher priority task is ready to run.
|
|||||||
Enabling timeslicing has no effect if preemption is enabled.
|
Enabling timeslicing has no effect if preemption is enabled.
|
||||||
|
|
||||||
A task can obtain its current execution mode, without modifying
|
A task can obtain its current execution mode, without modifying
|
||||||
it, by calling this directive with a mask value of @code{CURRENT_MODE}.
|
it, by calling this directive with a mask value of @code{@value{RPREFIX}CURRENT_MODE}.
|
||||||
|
|
||||||
To temporarily disable the processing of a valid ASR, a task
|
To temporarily disable the processing of a valid ASR, a task
|
||||||
should call this directive with the NO_ASR indicator specified
|
should call this directive with the NO_ASR indicator specified
|
||||||
@@ -1360,9 +1360,9 @@ procedure Task_Get_Note (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - note obtained successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - note obtained successfully@*
|
||||||
@code{INVALID_ID} - invalid task id@*
|
@code{@value{RPREFIX}INVALID_ID} - invalid task id@*
|
||||||
@code{INVALID_NUMBER} - invalid notepad location
|
@code{@value{RPREFIX}INVALID_NUMBER} - invalid notepad location
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
This directive returns the note contained in the notepad
|
This directive returns the note contained in the notepad
|
||||||
@@ -1371,14 +1371,14 @@ location of the task specified by id.
|
|||||||
@subheading NOTES:
|
@subheading NOTES:
|
||||||
This directive will not cause the running task to be preempted.
|
This directive will not cause the running task to be preempted.
|
||||||
|
|
||||||
If id is set to @code{SELF}, the calling task accesses its own notepad.
|
If id is set to @code{@value{RPREFIX}SELF}, the calling task accesses its own notepad.
|
||||||
|
|
||||||
@c This version of the paragraph avoids the overfull hbox error.
|
@c This version of the paragraph avoids the overfull hbox error.
|
||||||
@c The constants NOTEPAD_0 through NOTEPAD_15 can be used to access the
|
@c The constants NOTEPAD_0 through NOTEPAD_15 can be used to access the
|
||||||
@c sixteen notepad locations.
|
@c sixteen notepad locations.
|
||||||
|
|
||||||
The sixteen notepad locations can be accessed using the constants
|
The sixteen notepad locations can be accessed using the constants
|
||||||
@code{NOTEPAD_0} through @code{NOTEPAD_15}.
|
@code{@value{RPREFIX}NOTEPAD_0} through @code{@value{RPREFIX}NOTEPAD_15}.
|
||||||
|
|
||||||
Getting a note of a global task which does not reside on the
|
Getting a note of a global task which does not reside on the
|
||||||
local node will generate a request to the remote node to obtain
|
local node will generate a request to the remote node to obtain
|
||||||
@@ -1414,16 +1414,16 @@ procedure Task_Set_Note (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - task's note set successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - task's note set successfully@*
|
||||||
@code{INVALID_ID} - invalid task id@*
|
@code{@value{RPREFIX}INVALID_ID} - invalid task id@*
|
||||||
@code{INVALID_NUMBER} - invalid notepad location
|
@code{@value{RPREFIX}INVALID_NUMBER} - invalid notepad location
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
This directive sets the notepad entry for the task specified by
|
This directive sets the notepad entry for the task specified by
|
||||||
id to the value note.
|
id to the value note.
|
||||||
|
|
||||||
@subheading NOTES:
|
@subheading NOTES:
|
||||||
If id is set to @code{SELF}, the calling task accesses its own notepad
|
If id is set to @code{@value{RPREFIX}SELF}, the calling task accesses its own notepad
|
||||||
locations.
|
locations.
|
||||||
|
|
||||||
This directive will not cause the running task to be preempted.
|
This directive will not cause the running task to be preempted.
|
||||||
@@ -1433,7 +1433,7 @@ This directive will not cause the running task to be preempted.
|
|||||||
@c sixteen notepad locations.
|
@c sixteen notepad locations.
|
||||||
|
|
||||||
The sixteen notepad locations can be accessed using the constants
|
The sixteen notepad locations can be accessed using the constants
|
||||||
@code{NOTEPAD_0} through @code{NOTEPAD_15}.
|
@code{@value{RPREFIX}NOTEPAD_0} through @code{@value{RPREFIX}NOTEPAD_15}.
|
||||||
|
|
||||||
Setting a notepad location of a global task which does not
|
Setting a notepad location of a global task which does not
|
||||||
reside on the local node will generate a request to the remote
|
reside on the local node will generate a request to the remote
|
||||||
@@ -1465,7 +1465,7 @@ procedure Task_Wake_After (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - always successful
|
@code{@value{RPREFIX}SUCCESSFUL} - always successful
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
This directive blocks the calling task for the specified number
|
This directive blocks the calling task for the specified number
|
||||||
@@ -1478,7 +1478,7 @@ Setting the system date and time with the clock_set directive
|
|||||||
has no effect on a task_wake_after blocked task.
|
has no effect on a task_wake_after blocked task.
|
||||||
|
|
||||||
A task may give up the processor and remain in the ready state
|
A task may give up the processor and remain in the ready state
|
||||||
by specifying a value of @code{YIELD_PROCESSOR} in ticks.
|
by specifying a value of @code{@value{RPREFIX}YIELD_PROCESSOR} in ticks.
|
||||||
|
|
||||||
The maximum timer interval that can be specified is the maximum
|
The maximum timer interval that can be specified is the maximum
|
||||||
value which can be represented by the rtems_unsigned32 type.
|
value which can be represented by the rtems_unsigned32 type.
|
||||||
@@ -1512,9 +1512,9 @@ procedure Task_Wake_When (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - awakened at date/time successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - awakened at date/time successfully@*
|
||||||
@code{INVALID_TIME_OF_DAY} - invalid time buffer@*
|
@code{INVALID_TIME_OF_DAY} - invalid time buffer@*
|
||||||
@code{NOT_DEFINED} - system date and time is not set
|
@code{@value{RPREFIX}NOT_DEFINED} - system date and time is not set
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
This directive blocks a task until the date and time specified
|
This directive blocks a task until the date and time specified
|
||||||
|
|||||||
@@ -28,13 +28,13 @@ The timer manager provides support for timer
|
|||||||
facilities. The directives provided by the timer manager are:
|
facilities. The directives provided by the timer manager are:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{timer_create} - Create a timer
|
@item @code{@value{DIRPREFIX}timer_create} - Create a timer
|
||||||
@item @code{timer_ident} - Get ID of a timer
|
@item @code{@value{DIRPREFIX}timer_ident} - Get ID of a timer
|
||||||
@item @code{timer_cancel} - Cancel a timer
|
@item @code{@value{DIRPREFIX}timer_cancel} - Cancel a timer
|
||||||
@item @code{timer_delete} - Delete a timer
|
@item @code{@value{DIRPREFIX}timer_delete} - Delete a timer
|
||||||
@item @code{timer_fire_after} - Fire timer after interval
|
@item @code{@value{DIRPREFIX}timer_fire_after} - Fire timer after interval
|
||||||
@item @code{timer_fire_when} - Fire timer when specified
|
@item @code{@value{DIRPREFIX}timer_fire_when} - Fire timer when specified
|
||||||
@item @code{timer_reset} - Reset an interval timer
|
@item @code{@value{DIRPREFIX}timer_reset} - Reset an interval timer
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
|
|
||||||
@@ -258,9 +258,9 @@ procedure Timer_Create (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - timer created successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - timer created successfully@*
|
||||||
@code{INVALID_NAME} - invalid timer name@*
|
@code{@value{RPREFIX}INVALID_NAME} - invalid timer name@*
|
||||||
@code{TOO_MANY} - too many timers created
|
@code{@value{RPREFIX}TOO_MANY} - too many timers created
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -303,8 +303,8 @@ procedure Timer_Ident (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - timer identified successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - timer identified successfully@*
|
||||||
@code{INVALID_NAME} - timer name not found
|
@code{@value{RPREFIX}INVALID_NAME} - timer name not found
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -346,8 +346,8 @@ procedure Timer_Cancel (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - timer canceled successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - timer canceled successfully@*
|
||||||
@code{INVALID_ID} - invalid timer id
|
@code{@value{RPREFIX}INVALID_ID} - invalid timer id
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -385,8 +385,8 @@ procedure Timer_Delete (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - timer deleted successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - timer deleted successfully@*
|
||||||
@code{INVALID_ID} - invalid timer id
|
@code{@value{RPREFIX}INVALID_ID} - invalid timer id
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -434,9 +434,9 @@ procedure Timer_Fire_After (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - timer initiated successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - timer initiated successfully@*
|
||||||
@code{INVALID_ID} - invalid timer id@*
|
@code{@value{RPREFIX}INVALID_ID} - invalid timer id@*
|
||||||
@code{INVALID_NUMBER} - invalid interval
|
@code{@value{RPREFIX}INVALID_NUMBER} - invalid interval
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -484,10 +484,10 @@ procedure Timer_Fire_When (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - timer initiated successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - timer initiated successfully@*
|
||||||
@code{INVALID_ID} - invalid timer id@*
|
@code{@value{RPREFIX}INVALID_ID} - invalid timer id@*
|
||||||
@code{NOT_DEFINED} - system date and time is not set@*
|
@code{@value{RPREFIX}NOT_DEFINED} - system date and time is not set@*
|
||||||
@code{INVALID_CLOCK} - invalid time of day
|
@code{@value{RPREFIX}INVALID_CLOCK} - invalid time of day
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -529,9 +529,9 @@ procedure Timer_Reset (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - timer reset successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - timer reset successfully@*
|
||||||
@code{INVALID_ID} - invalid timer id@*
|
@code{@value{RPREFIX}INVALID_ID} - invalid timer id@*
|
||||||
@code{NOT_DEFINED} - attempted to reset a when or newly created timer
|
@code{@value{RPREFIX}NOT_DEFINED} - attempted to reset a when or newly created timer
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
|
|||||||
@@ -31,9 +31,9 @@ system events. The directives provided by the user extensions
|
|||||||
manager are:
|
manager are:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @code{extension_create} - Create an extension set
|
@item @code{@value{DIRPREFIX}extension_create} - Create an extension set
|
||||||
@item @code{extension_ident} - Get ID of an extension set
|
@item @code{@value{DIRPREFIX}extension_ident} - Get ID of an extension set
|
||||||
@item @code{extension_delete} - Delete an extension set
|
@item @code{@value{DIRPREFIX}extension_delete} - Delete an extension set
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
@ifinfo
|
@ifinfo
|
||||||
@@ -498,7 +498,7 @@ recover, then a fatal error may be reported. If the user does
|
|||||||
not provide a TASK_EXITTED extension or the provided handler
|
not provide a TASK_EXITTED extension or the provided handler
|
||||||
returns control to RTEMS, then the RTEMS default handler will be
|
returns control to RTEMS, then the RTEMS default handler will be
|
||||||
used. This default handler invokes the directive
|
used. This default handler invokes the directive
|
||||||
fatal_error_occurred with the @code{TASK_EXITTED} directive status.
|
fatal_error_occurred with the @code{@value{RPREFIX}TASK_EXITTED} directive status.
|
||||||
|
|
||||||
@lowersections
|
@lowersections
|
||||||
|
|
||||||
@@ -688,9 +688,9 @@ procedure Extension_Create (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - extension set created successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - extension set created successfully@*
|
||||||
@code{INVALID_NAME} - invalid extension set name@*
|
@code{@value{RPREFIX}INVALID_NAME} - invalid extension set name@*
|
||||||
@code{TOO_MANY} - too many extension sets created
|
@code{@value{RPREFIX}TOO_MANY} - too many extension sets created
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -734,8 +734,8 @@ procedure Extension_Ident (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - extension set identified successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - extension set identified successfully@*
|
||||||
@code{INVALID_NAME} - extension set name not found
|
@code{@value{RPREFIX}INVALID_NAME} - extension set name not found
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
@@ -778,8 +778,8 @@ procedure Extension_Delete (
|
|||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@subheading DIRECTIVE STATUS CODES:
|
@subheading DIRECTIVE STATUS CODES:
|
||||||
@code{SUCCESSFUL} - extension set deleted successfully@*
|
@code{@value{RPREFIX}SUCCESSFUL} - extension set deleted successfully@*
|
||||||
@code{INVALID_ID} - invalid extension set id
|
@code{@value{RPREFIX}INVALID_ID} - invalid extension set id
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
@subheading DESCRIPTION:
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user