diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1999-11-09 22:07:23 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1999-11-09 22:07:23 +0000 |
commit | 352c9b2035e32e56f10f261d94955d97f4ab0f1c (patch) | |
tree | f433e95ae0ab8d8854ea19b7f4bfab3ffb431726 /c/src/exec/itron/include/itronsys/mbox.h | |
parent | Fixed warning where initialized default POSIX API structure did (diff) | |
download | rtems-352c9b2035e32e56f10f261d94955d97f4ab0f1c.tar.bz2 |
This patch adds the basic framework for the ITRON 3.0 API implementation
for RTEMS.
Diffstat (limited to 'c/src/exec/itron/include/itronsys/mbox.h')
-rw-r--r-- | c/src/exec/itron/include/itronsys/mbox.h | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/c/src/exec/itron/include/itronsys/mbox.h b/c/src/exec/itron/include/itronsys/mbox.h new file mode 100644 index 0000000000..ef0581d02e --- /dev/null +++ b/c/src/exec/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 */ + |