1/**
2 * \file
3 * \brief Client for interacting with the monitor
4 */
5
6/*
7 * Copyright (c) 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#include <barrelfish/barrelfish.h>
16#include <barrelfish/resource_ctrl.h>
17#include <barrelfish/curdispatcher_arch.h>
18#include <barrelfish/dispatcher_arch.h>
19#include <if/monitor_blocking_defs.h>
20
21errval_t rsrc_manifest(const char *manifest, rsrcid_t *id)
22{
23    struct monitor_blocking_binding *b = get_monitor_blocking_binding();
24    struct dispatcher_generic *d = get_dispatcher_generic(curdispatcher());
25    errval_t err, msgerr;
26
27    err = b->rpc_tx_vtbl.rsrc_manifest(b, d->dcb_cap, manifest, id, &msgerr);
28    assert(err_is_ok(err));
29
30    return msgerr;
31}
32
33errval_t rsrc_join(rsrcid_t id)
34{
35    struct monitor_blocking_binding *b = get_monitor_blocking_binding();
36    struct dispatcher_generic *d = get_dispatcher_generic(curdispatcher());
37    errval_t err, msgerr;
38
39    err = b->rpc_tx_vtbl.rsrc_join(b, id, d->dcb_cap, &msgerr);
40    assert(err_is_ok(err));
41
42    return msgerr;
43}
44
45errval_t rsrc_phase(rsrcid_t id, uint32_t phase)
46{
47    struct monitor_blocking_binding *b = get_monitor_blocking_binding();
48    return b->rpc_tx_vtbl.rsrc_phase(b, id, phase);
49}
50