Very Simple Kernel 0.1.0
Loading...
Searching...
No Matches
vsk_Message.h
Go to the documentation of this file.
1/**
2 * @file
3 */
4#ifndef VSK_MESSAGE_H
5#define VSK_MESSAGE_H
6/**
7 * @ingroup vsk
8 * @defgroup vsk_Message vsk_Message
9 * @{
10 */
11
12/**
13 * @brief Message
14 */
16
17#include "ctb_DNode.h"
18
19/**
20 * @brief Message handler
21 */
22typedef void (*vsk_Message_Handler_t)(void * const obj);
23
24/**
25 * @brief Message
26 */
28 ctb_DNode_t node; /**< Node to allow message to be enqueued */
29 vsk_Message_Handler_t handler; /**< Handler to be called when message is dispatched */
30 void * obj; /**< Object to be passed to the handler */
31};
32
33/**
34 * @brief Initializes a message
35 *
36 * @param self Message reference
37 * @param handler Message handler
38 * @param obj Object reference to pass to the handler
39 * @return Initialized message reference
40 */
42 vsk_Message_t * const self,
43 vsk_Message_Handler_t const handler,
44 void * const obj
45);
46
47/**
48 * @brief Dispatches a message
49 *
50 * @param self Message reference
51 */
52void vsk_Message_dispatch(vsk_Message_t * const self);
53
54/** @} */
55#endif // VSK_MESSAGE_H
vsk_Message_t * vsk_Message_init(vsk_Message_t *const self, vsk_Message_Handler_t const handler, void *const obj)
Initializes a message.
Definition vsk_Message.c:3
void(* vsk_Message_Handler_t)(void *const obj)
Message handler.
Definition vsk_Message.h:22
void vsk_Message_dispatch(vsk_Message_t *const self)
Dispatches a message.
Definition vsk_Message.c:13
Message.
Definition vsk_Message.h:27
vsk_Message_Handler_t handler
Definition vsk_Message.h:29
void * obj
Definition vsk_Message.h:30
ctb_DNode_t node
Definition vsk_Message.h:28