1 /*
2 * \brief Log text output session interface
3 * \author Norman Feske
4 * \date 2006-09-15
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__LOG_SESSION__LOG_SESSION_H_
15 #define _INCLUDE__LOG_SESSION__LOG_SESSION_H_
16
17 #include <base/capability.h>
18 #include <base/stdint.h>
19 #include <base/rpc_args.h>
20 #include <session/session.h>
21
22 namespace Genode {
23
24 struct Log_session : Session
25 {
26 static const char *service_name() { return "LOG"; }
27
28 virtual ~Log_session() { }
29
30 typedef Rpc_in_buffer<256> String;
31
32 /**
33 * Output null-terminated string
34 *
35 * \return number of written characters
36 */
37 virtual size_t write(String const &string) = 0;
38
39
40 /*********************
41 ** RPC declaration **
42 *********************/
43
44 GENODE_RPC(Rpc_write, size_t, write, String const &);
45 GENODE_RPC_INTERFACE(Rpc_write);
46 };
47 }
48
49 #endif /* _INCLUDE__LOG_SESSION__LOG_SESSION_H_ */