diff options
| author | Patrick Williams <iawillia@us.ibm.com> | 2010-06-24 15:51:29 -0500 |
|---|---|---|
| committer | Patrick Williams <iawillia@us.ibm.com> | 2010-06-24 15:51:29 -0500 |
| commit | 8085c7634979f38c1b152d0a35b98c2447ce497a (patch) | |
| tree | 844b3527d7b1e8770540f77d1f95c59254aaca60 /src/include/kernel/msg.H | |
| parent | f760d7d1b0a7872228870b84ebfa85ab9999eb54 (diff) | |
| download | blackbird-hostboot-8085c7634979f38c1b152d0a35b98c2447ce497a.tar.gz blackbird-hostboot-8085c7634979f38c1b152d0a35b98c2447ce497a.zip | |
Add messaging
Diffstat (limited to 'src/include/kernel/msg.H')
| -rw-r--r-- | src/include/kernel/msg.H | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/include/kernel/msg.H b/src/include/kernel/msg.H new file mode 100644 index 000000000..7a32197f5 --- /dev/null +++ b/src/include/kernel/msg.H @@ -0,0 +1,28 @@ +#ifndef __KERNEL_MSG_H +#define __KERNEL_MSG_H + +#include <kernel/types.h> +#include <sys/msg.h> +#include <util/locked/list.H> +#include <util/locked/queue.H> + +struct MessagePending +{ + typedef msg_t* key_type; + key_type key; + task_t* task; + + MessagePending* prev; + MessagePending* next; +}; + +class MessageQueue +{ + public: + Spinlock lock; + Util::Locked::List<MessagePending, MessagePending::key_type> messages; + Util::Locked::List<MessagePending, MessagePending::key_type> responses; + Util::Locked::Queue<task_t> waiting; +}; + +#endif |

