extern RT_TASK* rt_rpc
(RT_TASK* task, unsigned int to_do,
unsigned int * result);
SYNOPSIS
#include "rtl_sched.h"
DESCRIPTION
Makes a Remote Procedure Call, i.e. sends the message to_do
to the task task and blocks itself until a return
message result is received.
RETURN VALUE
On success, the pointer to the task that received message
is returned. On failure, a negative value is returned. Zero is returned
if the task is unblocked but no valid message has been sent (e.g. the task
task has been killed before receiving message)
ERRORS
task does not refer to a valid task
extern RT_TASK* rt_rpc_if
(RT_TASK* task, unsigned int to_do,
unsigned int* result);
SYNOPSIS
#include "rtl_sched.h"
DESCRIPTION
Makes a Remote Procedure Call, i.e. sends a message to_do
to the task task only if the latter is ready to receive: in this
case the sender task blocks itself until a return message result
is received, else returns immediately.
RETURN VALUE
On success, the pointer to the task that received message
is returned. On failure, a negative value is returned. Zero is returned
if the task is unblocked but no valid message has been sent (e.g. the task
task has been killed before receiving message)
ERRORS
task does not refer to a valid task
extern RT_TASK* rt_rpc_until
(RT_TASK* task, unsigned int to_do,
unsigned int* result, RTIME time);
SYNOPSIS
#include "rtl_sched.h"
DESCRIPTION
Makes a Remote Procedure Call, i.e. sends a message to_do
to the task task. If task is not ready to receive queues up in priority
order till a return message result is received or time is
reached, whichever happens first.
RETURN VALUE
On success, the pointer to the task that received message
is returned. On failure, a negative value is returned. Zero is returned
if the task is unblocked but no valid message has been sent (e.g. the task
task has been killed before receiving message)
ERRORS
task does not refer to a valid task
extern RT_TASK* rt_rpc_timed
( RT_TASK* task, unsigned int
to_do,
unsigned int* result, RTIME delay
);
SYNOPSIS
#include "rtl_sched.h"
DESCRIPTION
Makes a Remote Procedure Call, i.e. sends a message to_do
to the task task. If task is not ready to receive queues up in priority
order till a return message result is received or a period delay
is passed, whichever happens first.
RETURN VALUE
On success, the pointer to the task that received message
is returned. On failure, a negative value is returned. Zero is returned
if the task is unblocked but no valid message has been sent (e.g. the task
task has been killed before receiving message)
ERRORS
task does not refer to a valid task
extern int rt_isrpc
(RT_TASK* task);
SYNOPSIS
#include "rtl_sched.h"
DESCRIPTION
Used to ascertain if the sending task requires an rt_return.
RETURN VALUE
Returns 0 if task has made a rt_send
call, non zero if task has made an rt_rpc
call.
On failure, a negative value is returned.
ERRORS
task does not refer to a valid task
extern RT_TASK* rt_return
(RT_TASK* task, unsigned int result);
SYNOPSIS
#include "rtl_sched.h"
DESCRIPTION
Send the return message result to the task task
that made a rt_rpc.
RETURN VALUE
On success, the pointer to the task that received result
is returned. On failure, a negative value is returned. Zero is returned
if the task is unblocked but no valid message has been sent (e.g. the task
task has been killed before receiving result)
ERRORS
task does not refer to a valid task