source: rtems/cpukit/itron/include/itronsys/mbox.h @ c4a3f1e

Last change on this file since c4a3f1e was c4a3f1e, checked in by Joel Sherrill <joel.sherrill@…>, on 09/04/03 at 18:46:52

2003-09-04 Joel Sherrill <joel@…>

  • include/itron.h, include/itronsys/eventflags.h, include/itronsys/fmempool.h, include/itronsys/intr.h, include/itronsys/mbox.h, include/itronsys/msgbuffer.h, include/itronsys/network.h, include/itronsys/port.h, include/itronsys/semaphore.h, include/itronsys/status.h, include/itronsys/sysmgmt.h, include/itronsys/task.h, include/itronsys/time.h, include/itronsys/types.h, include/itronsys/vmempool.h, include/rtems/itron/config.h, include/rtems/itron/eventflags.h, include/rtems/itron/fmempool.h, include/rtems/itron/intr.h, include/rtems/itron/itronapi.h, include/rtems/itron/mbox.h, include/rtems/itron/msgbuffer.h, include/rtems/itron/network.h, include/rtems/itron/object.h, include/rtems/itron/port.h, include/rtems/itron/semaphore.h, include/rtems/itron/sysmgmt.h, include/rtems/itron/task.h, include/rtems/itron/time.h, include/rtems/itron/vmempool.h, inline/rtems/itron/eventflags.inl, inline/rtems/itron/fmempool.inl, inline/rtems/itron/intr.inl, inline/rtems/itron/mbox.inl, inline/rtems/itron/msgbuffer.inl, inline/rtems/itron/network.inl, inline/rtems/itron/port.inl, inline/rtems/itron/semaphore.inl, inline/rtems/itron/sysmgmt.inl, inline/rtems/itron/task.inl, inline/rtems/itron/time.inl, inline/rtems/itron/vmempool.inl, macros/rtems/itron/eventflags.inl, macros/rtems/itron/fmempool.inl, macros/rtems/itron/intr.inl, macros/rtems/itron/mbox.inl, macros/rtems/itron/msgbuffer.inl, macros/rtems/itron/network.inl, macros/rtems/itron/port.inl, macros/rtems/itron/semaphore.inl, macros/rtems/itron/sysmgmt.inl, macros/rtems/itron/task.inl, macros/rtems/itron/time.inl, macros/rtems/itron/vmempool.inl, src/can_wup.c, src/chg_pri.c, src/cre_mbf.c, src/cre_mbx.c, src/cre_sem.c, src/cre_tsk.c, src/del_mbf.c, src/del_mbx.c, src/del_sem.c, src/del_tsk.c, src/dis_dsp.c, src/ena_dsp.c, src/eventflags.c, src/exd_tsk.c, src/ext_tsk.c, src/fmempool.c, src/frsm_tsk.c, src/get_tid.c, src/itronintr.c, src/itronsem.c, src/itrontime.c, src/mbox.c, src/mboxtranslatereturncode.c, src/msgbuffer.c, src/msgbuffertranslatereturncode.c, src/network.c, src/port.c, src/prcv_mbf.c, src/prcv_mbx.c, src/preq_sem.c, src/psnd_mbf.c, src/rcv_mbf.c, src/rcv_mbx.c, src/ref_mbf.c, src/ref_mbx.c, src/ref_sem.c, src/ref_tsk.c, src/rel_wai.c, src/rot_rdq.c, src/rsm_tsk.c, src/sig_sem.c, src/slp_tsk.c, src/snd_mbf.c, src/snd_mbx.c, src/sta_tsk.c, src/sus_tsk.c, src/sysmgmt.c, src/task.c, src/ter_tsk.c, src/trcv_mbf.c, src/trcv_mbx.c, src/tslp_tsk.c, src/tsnd_mbf.c, src/twai_sem.c, src/vmempool.c, src/wai_sem.c, src/wup_tsk.c: URL for license changed.
  • Property mode set to 100644
File size: 2.4 KB
Line 
1/*
2 *  COPYRIGHT (c) 1989-1999.
3 *  On-Line Applications Research Corporation (OAR).
4 *
5 *  The license and distribution terms for this file may be
6 *  found in the file LICENSE in this distribution or at
7 *  http://www.rtems.com/license/LICENSE.
8 *
9 *  $Id$
10 */
11
12#ifndef __ITRON_MBOX_h_
13#define __ITRON_MBOX_h_
14
15#ifdef __cplusplus
16extern "C" {
17#endif
18
19/*
20 *  Create Mailbox (cre_mbx) Structure
21 */
22
23typedef struct t_cmbx {
24  VP    exinf;    /* extended information */
25  ATR   mbxatr;   /* mailbox attributes */
26  /* Following is implementation-dependent function */
27  INT   bufcnt;   /* maximum number of messages to let pend */
28  /* additional information may be included depending on the implementation */
29} T_CMBX;
30
31/*
32 *  mbxatr
33 */
34
35#define TA_TFIFO   0x00   /* waiting tasks are handled by FIFO */
36#define TA_TPRI    0x01   /* waiting tasks are handled by priority */
37#define TA_MFIFO   0x00   /* messages are handled by FIFO */
38#define TA_MPRI    0x02   /* messages are handled by priority */
39
40typedef struct t_msg {
41  /*
42   *  A region (header) reserved by the OS may be included first
43   *  depending on the implementation.
44   *
45   *  NOTE: The first two fields are RTEMS specific.
46   */
47
48  INT       msgpri;   /* priority of each message */
49  /* VB   msgcont[];  XXX */
50  unsigned8 msgcont[1];
51} T_MSG;
52
53/*
54 *  Reference Mailbox (ref_mbx) Structure
55 */
56
57typedef struct t_rmbx {
58  VP        exinf;    /* extended information */
59  BOOL_ID   wtsk;     /* indicates whether or not there is a waiting task */
60  T_MSG    *pk_msg;   /* message to be sent next */
61  /* additional information may be included depending on the implementation */
62} T_RMBX;
63
64/*
65 *  Mailbox Functions
66 */
67
68/*
69 *  cre_mbx - Create Mailbox
70 */
71
72ER cre_mbx(
73  ID      mbxid,
74  T_CMBX *pk_cmbx
75);
76
77/*
78 *  del_mbx - Delete Mailbox
79 */
80
81ER del_mbx(
82  ID mbxid
83);
84
85/*
86 *  snd_msg - Send Message to Mailbox
87 */
88
89ER snd_msg(
90  ID     mbxid,
91  T_MSG *pk_msg
92);
93
94/*
95 *  rcv_msg - Receive Message from Mailbox
96 */
97
98ER rcv_msg(
99  T_MSG **ppk_msg,
100  ID      mbxid
101);
102
103/*
104 *  prcv_msg - Poll and Receive Message from Mailbox
105 */
106
107ER prcv_msg(
108  T_MSG **ppk_msg,
109  ID      mbxid
110);
111
112/*
113 *  trcv_msg - Receive Message from Mailbox with Timeout
114 */
115
116ER trcv_msg(
117  T_MSG **ppk_msg,
118  ID      mbxid,
119  TMO     tmout
120);
121
122/*
123 *  ref_mbx - Reference Mailbox Status
124 */
125
126ER ref_mbx(
127  T_RMBX *pk_rmbx,
128  ID      mbxid
129);
130
131
132#ifdef __cplusplus
133}
134#endif
135
136#endif
137/* end of include file */
138
Note: See TracBrowser for help on using the repository browser.