summaryrefslogtreecommitdiffstats
path: root/cpukit/itron/include/itronsys/mbox.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--cpukit/itron/include/itronsys/mbox.h131
1 files changed, 131 insertions, 0 deletions
diff --git a/cpukit/itron/include/itronsys/mbox.h b/cpukit/itron/include/itronsys/mbox.h
new file mode 100644
index 0000000000..ef0581d02e
--- /dev/null
+++ b/cpukit/itron/include/itronsys/mbox.h
@@ -0,0 +1,131 @@
+/*
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.OARcorp.com/rtems/license.html.
+ *
+ * $Id$
+ */
+
+#ifndef __ITRON_MBOX_h_
+#define __ITRON_MBOX_h_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Create Mailbox (cre_mbx) Structure
+ */
+
+typedef struct t_cmbx {
+ VP exinf; /* extended information */
+ ATR mbxatr; /* mailbox attributes */
+ /* Following is implementation-dependent function */
+ INT bufcnt; /* ring buffer size */
+ /* additional information may be included depending on the implementation */
+} T_CMBX;
+
+/*
+ * mbxatr
+ */
+
+#define TA_TFIFO 0x00 /* waiting tasks are handled by FIFO */
+#define TA_TPRI 0x01 /* waiting tasks are handled by priority */
+#define TA_MFIFO 0x00 /* messages are handled by FIFO */
+#define TA_MPRI 0x02 /* messages are handled by priority */
+
+typedef struct t_msg {
+ /*
+ * A region (header) reserved by the OS may be included first
+ * depending on the implementation.
+ */
+ /* VB msgcont[]; XXX */
+ unsigned8 msgcont[1];
+} T_MSG;
+
+/*
+ * Reference Mailbox (ref_mbx) Structure
+ */
+
+typedef struct t_rmbx {
+ VP exinf; /* extended information */
+ BOOL_ID wtsk; /* indicates whether or not there is a waiting task */
+ T_MSG *pk_msg; /* message to be sent next */
+ /* additional information may be included depending on the implementation */
+} T_RMBX;
+
+/*
+ * Mailbox Functions
+ */
+
+/*
+ * cre_mbx - Create Mailbox
+ */
+
+ER cre_mbx(
+ ID mbxid,
+ T_CMBX* pk_cmbx
+);
+
+/*
+ * del_mbx - Delete Mailbox
+ */
+
+ER del_mbx(
+ ID mbxid
+);
+
+/*
+ * snd_msg - Send Message to Mailbox
+ */
+
+ER snd_msg(
+ ID mbxid,
+ T_MSG *pk_msg
+);
+
+/*
+ * rcv_msg - Receive Message from Mailbox
+ */
+
+ER rcv_msg(
+ T_MSG **ppk_msg,
+ ID mbxid
+);
+
+/*
+ * prcv_msg - Poll and Receive Message from Mailbox
+ */
+
+ER prcv_msg(
+ T_MSG **ppk_msg,
+ ID mbxid
+);
+
+/*
+ * trcv_msg - Receive Message from Mailbox with Timeout
+ */
+
+ER trcv_msg(
+ T_MSG **ppk_msg,
+ ID mbxid,
+ TMO tmout
+);
+
+/*
+ * ref_mbx - Reference Mailbox Status
+ */
+
+ER ref_mbx(
+ T_RMBX *pk_rmbx,
+ ID mbxid
+);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+/* end of include file */
+