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_ */