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