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 : Dataspace { };
  23  
  24     typedef Capability<Io_mem_dataspace> Io_mem_dataspace_capability;
  25  
  26     struct Io_mem_session : Session
  27     {
  28        static const char *service_name() { return "IO_MEM"; }
  29  
  30        virtual ~Io_mem_session() { }
  31  
  32        /**
  33         * Request dataspace containing the IO_MEM session data
  34         *
  35         * \return  capability to IO_MEM dataspace
  36         *          (may be invalid)
  37         */

  38        virtual Io_mem_dataspace_capability dataspace() = 0;

  39  
  40  
  41        /*********************
  42         ** RPC declaration **
  43         *********************/

  44  
  45        GENODE_RPC(Rpc_dataspace, Io_mem_dataspace_capability, dataspace);
  46  
  47        GENODE_RPC_INTERFACE(Rpc_dataspace);
  48     }
;

  49  }

  50  
  51  #endif /* _INCLUDE__IO_MEM_SESSION__IO_MEM_SESSION_H_ */