summaryrefslogtreecommitdiffstats
path: root/doc/itron3.0/mailbox.t
diff options
context:
space:
mode:
Diffstat (limited to 'doc/itron3.0/mailbox.t')
-rw-r--r--doc/itron3.0/mailbox.t338
1 files changed, 338 insertions, 0 deletions
diff --git a/doc/itron3.0/mailbox.t b/doc/itron3.0/mailbox.t
new file mode 100644
index 0000000000..34746c743a
--- /dev/null
+++ b/doc/itron3.0/mailbox.t
@@ -0,0 +1,338 @@
+@c
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c This is the chapter from the RTEMS ITRON User's Guide that
+@c documents the services provided by the mailbox
+@c manager.
+@c
+@c $Id$
+@c
+
+
+@chapter Mailbox Manager
+
+@section Introduction
+
+The
+mailbox manager is basically a linked list, hidden by the super core message queue and consists of a control block, a private structure. The control block comprises of the create mailbox structure, the message structure and the reference mailbox structure.
+
+The services provided by the mailbox manager are:
+
+@itemize @bullet
+@item @code{cre_mbx} - Create Mailbox
+@item @code{del_mbx} - Delete Mailbox
+@item @code{snd_msg} - Send Message to Mailbox
+@item @code{rcv_msg} - Receive Message from Mailbox
+@item @code{prcv_msg} - Poll and Receive Message from Mailbox
+@item @code{trcv_msg} - Receive Message from Mailbox with Timeout
+@item @code{ref_mbx} - Reference Mailbox Status
+@end itemize
+
+
+@section Background
+
+@section Operations
+
+@section System Calls
+
+This section details the mailbox manager's services.
+A subsection is dedicated to each of this manager's services
+and describes the calling sequence, related constants, usage,
+and status codes.
+
+
+@c
+@c cre_mbx
+@c
+
+@page
+
+@subsection cre_mbx - Create Mailbox
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+ER cre_mbx(
+ ID mbxid,
+ T_CMBX *pk_cmbx
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+@code{E_OK} - Normal completion@*
+@code{E_NOMEM} - Insufficient memory@*
+@code{E_ID} - Invalid ID number@*
+@code{E_RSATR} - Reserved attribute@*
+@code{E_OBJ} - Invalid object state@*
+@code{E_OACV} - Object access violation@*
+@code{E_PAR} - Parameter error
+
+
+@subheading DESCRIPTION:
+
+Allocated a control area/buffer space for mailbox with some ID.
+
+@example
+ User area: +ve ids
+ System area: -ve ids
+@end example
+
+User may specify if its FIFO or priority level queue.
+Assumes shared memory b/w communicating processes.
+Initializes core message queue for this mbox.
+
+@subheading NOTES:
+
+NONE
+
+
+@c
+@c del_mbx
+@c
+
+@page
+
+@subsection del_mbx - Delete Mailbox
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+ER del_mbx(
+ ID mbxid
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+@code{E_OK} - Normal completion@*
+@code{E_ID} - Invalid ID number@*
+@code{E_NOEXS} - Object does not exist@*
+@code{E_OACV} - Object access violation
+
+@subheading DESCRIPTION:
+
+Specified by the ID, cleans up all data structures and control blocks.
+
+@subheading NOTES:
+
+NONE
+
+
+@c
+@c snd_msg
+@c
+
+@page
+
+@subsection snd_msg - Send Message to Mailbox
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+ER snd_msg(
+ ID mbxid,
+ T_MSG *pk_msg
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+@code{E_OK} - Normal completion@*
+@code{E_ID} - Invalid ID number@*
+@code{E_NOEXS} - Object does not exist@*
+@code{E_OACV} - Object access violation@*
+@code{E_QOVR} - Queueing or nesting overflow
+
+@subheading DESCRIPTION:
+
+Sends the address of message to mbox having a given id, any waiting tasks (blocked tasks) will be woken up. It supports non-blocking send.
+
+@subheading NOTES:
+
+NONE
+
+
+@c
+@c rcv_msg
+@c
+
+@page
+
+@subsection rcv_msg - Receive Message from Mailbox
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+ER rcv_msg(
+ T_MSG **ppk_msg,
+ ID mbxid
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+@code{E_OK} - Normal completion@*
+@code{E_ID} - Invalid ID number@*
+@code{E_NOEXS} - Object does not exist@*
+@code{E_OACV} - Object access violation@*
+@code{E_PAR} - Parameter error@*
+@code{E_DLT} - The object being waited for was deleted@*
+@code{E_RLWAI} - WAIT state was forcibly released@*
+@code{E_CTX} - Context error
+
+@subheading DESCRIPTION:
+
+If there is no message then receiver blocks, if not empty then it takes the first message of the queue.
+
+@subheading NOTES:
+
+NONE
+
+
+@c
+@c prcv_msg
+@c
+
+@page
+
+@subsection prcv_msg - Poll and Receive Message from Mailbox
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+ER prcv_msg(
+ T_MSG **ppk_msg,
+ ID mbxid
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+@code{E_OK} - Normal completion@*
+@code{E_ID} - Invalid ID number@*
+@code{E_NOEXS} - Object does not exist@*
+@code{E_OACV} - Object access violation@*
+@code{E_PAR} - Parameter error@*
+@code{E_DLT} - The object being waited for was deleted@*
+@code{E_RLWAI} - WAIT state was forcibly released@*
+@code{E_CTX} - Context error@*
+
+@subheading DESCRIPTION:
+
+Poll and receive message from mailbox.
+
+@subheading NOTES:
+
+NONE
+
+
+@c
+@c trcv_msg
+@c
+
+@page
+
+@subsection trcv_msg - Receive Message from Mailbox with Timeout
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+ER trcv_msg(
+ T_MSG **ppk_msg,
+ ID mbxid,
+ TMO tmout
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+@code{E_OK} - Normal completion@*
+@code{E_ID} - Invalid ID number@*
+@code{E_NOEXS} - Object does not exist@*
+@code{E_OACV} - Object access violation@*
+@code{E_PAR} - Parameter error@*
+@code{E_DLT} - The object being waited for was deleted@*
+@code{E_RLWAI} - WAIT state was forcibly released@*
+@code{E_CTX} - Context error
+
+@subheading DESCRIPTION:
+
+Blocking receive with a maximum timeout.
+
+@subheading NOTES:
+
+NONE
+
+
+@c
+@c ref_mbx
+@c
+
+@page
+
+@subsection ref_mbx - Reference Mailbox Status
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+ER ref_mbx(
+ T_RMBX *pk_rmbx,
+ ID mbxid
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+@code{E_OK} - Normal completion@*
+@code{E_ID} - Invalid ID number@*
+@code{E_NOEXS} - Object does not exist@*
+@code{E_OACV} - Object access violation@*
+@code{E_PAR} - Parameter error
+
+@subheading DESCRIPTION:
+
+Supports non-blocking receive. If there are no messages, it returns -1. Also returns id of the next process waiting on a message.
+
+@subheading NOTES:
+
+NONE
+
+