/* * \brief IPC interface between pci_drv and pci_device_pd * \author Alexander Boettcher * \date 2013-02-15 */ /* * Copyright (C) 2013-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 _PCI_DEVICE_PD_IPC_H_ #define _PCI_DEVICE_PD_IPC_H_ #include #include #include namespace Pci { struct Device_pd : Genode::Session { static const char *service_name() { return "PCI_DEV_PD"; } GENODE_RPC(Rpc_attach_dma_mem, void, attach_dma_mem, Genode::Ram_dataspace_capability); GENODE_RPC(Rpc_assign_pci, void, assign_pci, Genode::Io_mem_dataspace_capability); GENODE_RPC_INTERFACE(Rpc_attach_dma_mem, Rpc_assign_pci); }; struct Device_pd_client : Genode::Rpc_client { Device_pd_client(Capability cap) : Rpc_client(cap) { } void attach_dma_mem(Genode::Ram_dataspace_capability cap) { call(cap); } void assign_pci(Genode::Io_mem_dataspace_capability cap) { call(cap); } }; struct Device_pd_component : Genode::Rpc_object { void attach_dma_mem(Genode::Ram_dataspace_capability); void assign_pci(Genode::Io_mem_dataspace_capability); }; } #endif /* _PCI_DEVICE_PD_IPC_H_ */