/* * \brief Client-side PD session interface * \author Norman Feske * \date 2012-08-15 */ /* * Copyright (C) 2012-2013 Genode Labs GmbH * * This file is part of the Genode OS framework, which is distributed * under the terms of the GNU General Public License version 2. */ #ifndef _INCLUDE__LINUX_PD_SESSION__CLIENT_H_ #define _INCLUDE__LINUX_PD_SESSION__CLIENT_H_ #include #include namespace Genode { struct Linux_pd_session_client; } struct Genode::Linux_pd_session_client : Rpc_client { explicit Linux_pd_session_client(Capability session) : Rpc_client(session) { } int bind_thread(Thread_capability thread) override { return call(thread); } int assign_parent(Capability parent) override { return call(parent); } bool assign_pci(addr_t pci_config_memory_address, uint16_t bdf) override { return call(pci_config_memory_address, bdf); } Signal_source_capability alloc_signal_source() override { return call(); } void free_signal_source(Signal_source_capability cap) override { call(cap); } Signal_context_capability alloc_context(Signal_source_capability source, unsigned long imprint) override { return call(source, imprint); } void free_context(Signal_context_capability cap) override { call(cap); } void submit(Signal_context_capability receiver, unsigned cnt = 1) override { call(receiver, cnt); } /***************************** * Linux-specific extension ** *****************************/ void start(Capability binary) { call(binary); } }; #endif /* _INCLUDE__LINUX_PD_SESSION__CLIENT_H_ */