1/**
2 * \file
3 * \brief Queue for stack-ripped inter-monitor code
4 */
5
6/*
7 * Copyright (c) 2009, 2010, ETH Zurich.
8 * All rights reserved.
9 *
10 * This file is distributed under the terms in the attached LICENSE file.
11 * If you do not find this file, copies can be found by writing to:
12 * ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group.
13 */
14
15#ifndef MON_QUEUE_H
16#define MON_QUEUE_H
17
18#include <barrelfish/barrelfish.h>
19#include <if/monitor_defs.h>
20
21struct mon_msg_state;
22typedef void(*send_handler_fn)(struct monitor_binding*, struct mon_msg_state*);
23
24struct mon_msg_state {
25    coreid_t core_id;
26    uint64_t arch_id; // TODO: uint64?
27
28    send_handler_fn send;
29    struct mon_msg_state *next;
30};
31
32void enqueue_msg_state(struct monitor_binding *b, struct mon_msg_state* st);
33struct mon_msg_state* dequeue_msg_state(struct monitor_binding *b);
34
35#endif // MON_QUEUE_H
36