1 /*
2 * \brief Dataspace interface
3 * \author Norman Feske
4 * \date 2006-07-05
5 */
6
7 /*
8 * Copyright (C) 2006-2013 Genode Labs GmbH
9 *
10 * This file is part of the Genode OS framework, which is distributed
11 * under the terms of the GNU General Public License version 2.
12 */
13
14 #ifndef _INCLUDE__DATASPACE__DATASPACE_H_
15 #define _INCLUDE__DATASPACE__DATASPACE_H_
16
17 #include <base/stdint.h>
18 #include <base/rpc.h>
19
20 namespace Genode { struct Dataspace; }
21
22
23 struct Genode::Dataspace
24 {
25 virtual ~Dataspace() { }
26
27 /**
28 * Request size of dataspace
29 */
30 virtual size_t size() = 0;
31
32 /**
33 * Request base address in physical address space
34 */
35 virtual addr_t phys_addr() = 0;
36
37 /**
38 * Return true if dataspace is writable
39 */
40 virtual bool writable() = 0;
41
42
43 /*********************
44 ** RPC declaration **
45 *********************/
46
47 GENODE_RPC(Rpc_size, size_t, size);
48 GENODE_RPC(Rpc_phys_addr, addr_t, phys_addr);
49 GENODE_RPC(Rpc_writable, bool, writable);
50
51 GENODE_RPC_INTERFACE(Rpc_size, Rpc_phys_addr, Rpc_writable);
52 };
53
54 #endif /* _INCLUDE__DATASPACE__DATASPACE_H_ */