* -->
*
*
- * This module implements a common system for executing
- * a user defined action calling a hook function.
- *
- * \version $Id$
- *
- * \author Bernie Innocenti <bernie@codewiz.org>
+ * \defgroup kern_msg Message box IPC
+ * \ingroup kern
+ * \{
*
* \brief Simple inter-process messaging system
*
- * Handle queues of messages associated an action.
+ * This module implements a common system for executing
+ * a user defined action calling a hook function.
*
* A message port is an abstraction used to exchange information
* asynchronously between processes or other entities such as
* receiver wakes up, it usually invokes msg_get() to pick
* the next message from the port.
*
+ * \note
+ * When you put a message into a port, such message becomes
+ * unavailable until you retrieve it using msg_get(), eg.
+ * you must not delete it or put it into another port.
+ *
* Message ports can hold any number of pending messages,
* and receivers usually process them in FIFO order.
* Other scheduling policies are possible, but not implemented
* } TestMsg;
*
*
- * static cpu_stack_t sender_stack[CONFIG_KERN_MINSTACKSIZE / sizeof(cpu_stack_t)];
+ * PROC_DEFINE_STACK(sender_stack, KERN_MINSTACKSIZE);
*
* // A process that sends two messages and waits for replies.
* static void sender_proc(void)
* }
* }
* \endcode
+ *
+ * \author Bernie Innocenti <bernie@codewiz.org>
+ *
+ * $WIZ$ module_name = "msg"
+ * $WIZ$ module_depends = "event", "signal", "kernel"
*/
msg_put(msg->replyPort, msg);
}
+/** \} */ //defgroup kern_msg
+
int msg_testRun(void);
int msg_testSetup(void);
int msg_testTearDown(void);