From 352c9b2035e32e56f10f261d94955d97f4ab0f1c Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Tue, 9 Nov 1999 22:07:23 +0000 Subject: This patch adds the basic framework for the ITRON 3.0 API implementation for RTEMS. --- cpukit/itron/include/itronsys/mbox.h | 131 +++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 cpukit/itron/include/itronsys/mbox.h (limited to 'cpukit/itron/include/itronsys/mbox.h') 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 */ + -- cgit v1.2.3