1 /*
2 * \brief I/O-memory session interface
3 * \author Christian Helmuth
4 * \date 2006-08-01
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__IO_MEM_SESSION__IO_MEM_SESSION_H_
15 #define _INCLUDE__IO_MEM_SESSION__IO_MEM_SESSION_H_
16
17 #include <dataspace/capability.h>
18 #include <session/session.h>
19
20 namespace Genode {
21
22 struct Io_mem_dataspace;
23 struct Io_mem_session;
24
25 typedef Capability<Io_mem_dataspace> Io_mem_dataspace_capability;
26 }
27
28
29 struct Genode::Io_mem_dataspace : Dataspace { };
30
31
32 struct Genode::Io_mem_session : Session
33 {
34 static const char *service_name() { return "IO_MEM"; }
35
36 virtual ~Io_mem_session() { }
37
38 /**
39 * Request dataspace containing the IO_MEM session data
40 *
41 * \return capability to IO_MEM dataspace
42 * (may be invalid)
43 */
44 virtual Io_mem_dataspace_capability dataspace() = 0;
45
46
47 /*********************
48 ** RPC declaration **
49 *********************/
50
51 GENODE_RPC(Rpc_dataspace, Io_mem_dataspace_capability, dataspace);
52 GENODE_RPC_INTERFACE(Rpc_dataspace);
53 };
54
55 #endif /* _INCLUDE__IO_MEM_SESSION__IO_MEM_SESSION_H_ */