mirror of
https://github.com/genodelabs/genode.git
synced 2025-06-17 14:48:20 +00:00
committed by
Christian Helmuth
parent
56ed7addbc
commit
e8336acafc
@ -19,50 +19,50 @@
|
||||
#include <session/session.h>
|
||||
#include <base/signal.h>
|
||||
|
||||
namespace Input {
|
||||
|
||||
struct Session : Genode::Session
|
||||
{
|
||||
static const char *service_name() { return "Input"; }
|
||||
|
||||
virtual ~Session() { }
|
||||
|
||||
/**
|
||||
* Return capability to event buffer dataspace
|
||||
*/
|
||||
virtual Genode::Dataspace_capability dataspace() = 0;
|
||||
|
||||
/**
|
||||
* Request input state
|
||||
*
|
||||
* \return true if new events are available
|
||||
*/
|
||||
virtual bool is_pending() const = 0;
|
||||
|
||||
/**
|
||||
* Flush pending events to event buffer
|
||||
*
|
||||
* \return number of flushed events
|
||||
*/
|
||||
virtual int flush() = 0;
|
||||
|
||||
/**
|
||||
* Register signal handler to be notified on arrival of new input
|
||||
*/
|
||||
virtual void sigh(Genode::Signal_context_capability) = 0;
|
||||
namespace Input { struct Session; }
|
||||
|
||||
|
||||
/*********************
|
||||
** RPC declaration **
|
||||
*********************/
|
||||
struct Input::Session : Genode::Session
|
||||
{
|
||||
static const char *service_name() { return "Input"; }
|
||||
|
||||
GENODE_RPC(Rpc_dataspace, Genode::Dataspace_capability, dataspace);
|
||||
GENODE_RPC(Rpc_is_pending, bool, is_pending);
|
||||
GENODE_RPC(Rpc_flush, int, flush);
|
||||
GENODE_RPC(Rpc_sigh, void, sigh, Genode::Signal_context_capability);
|
||||
virtual ~Session() { }
|
||||
|
||||
GENODE_RPC_INTERFACE(Rpc_dataspace, Rpc_is_pending, Rpc_flush, Rpc_sigh);
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Return capability to event buffer dataspace
|
||||
*/
|
||||
virtual Genode::Dataspace_capability dataspace() = 0;
|
||||
|
||||
/**
|
||||
* Request input state
|
||||
*
|
||||
* \return true if new events are available
|
||||
*/
|
||||
virtual bool is_pending() const = 0;
|
||||
|
||||
/**
|
||||
* Flush pending events to event buffer
|
||||
*
|
||||
* \return number of flushed events
|
||||
*/
|
||||
virtual int flush() = 0;
|
||||
|
||||
/**
|
||||
* Register signal handler to be notified on arrival of new input
|
||||
*/
|
||||
virtual void sigh(Genode::Signal_context_capability) = 0;
|
||||
|
||||
|
||||
/*********************
|
||||
** RPC declaration **
|
||||
*********************/
|
||||
|
||||
GENODE_RPC(Rpc_dataspace, Genode::Dataspace_capability, dataspace);
|
||||
GENODE_RPC(Rpc_is_pending, bool, is_pending);
|
||||
GENODE_RPC(Rpc_flush, int, flush);
|
||||
GENODE_RPC(Rpc_sigh, void, sigh, Genode::Signal_context_capability);
|
||||
|
||||
GENODE_RPC_INTERFACE(Rpc_dataspace, Rpc_is_pending, Rpc_flush, Rpc_sigh);
|
||||
};
|
||||
|
||||
#endif /* _INCLUDE__INPUT_SESSION__INPUT_SESSION_H_ */
|
||||
|
Reference in New Issue
Block a user