genode/os/include/pci_session/client.h
2014-01-30 10:05:44 +01:00

53 lines
1.7 KiB
C++

/*
* \brief Client-side PCI-session interface
* \author Norman Feske
* \date 2008-01-28
*/
/*
* Copyright (C) 2008-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__PCI_SESSION__CLIENT_H_
#define _INCLUDE__PCI_SESSION__CLIENT_H_
#include <pci_session/capability.h>
#include <base/rpc_client.h>
namespace Pci {
struct Session_client : public Genode::Rpc_client<Session>
{
Session_client(Session_capability session)
: Genode::Rpc_client<Session>(session) { }
Device_capability first_device(unsigned device_class = 0,
unsigned class_mask = 0) {
return call<Rpc_first_device>(device_class, class_mask); }
Device_capability next_device(Device_capability prev_device,
unsigned device_class = 0,
unsigned class_mask = 0) {
return call<Rpc_next_device>(prev_device, device_class, class_mask); }
void release_device(Device_capability device) {
call<Rpc_release_device>(device); }
Genode::Io_mem_dataspace_capability config_extended(Device_capability device_cap) {
return call<Rpc_config_extended>(device_cap); }
Genode::Ram_dataspace_capability alloc_dma_buffer(Device_capability device_cap,
Genode::size_t size) {
return call<Rpc_alloc_dma_buffer>(device_cap, size); }
void free_dma_buffer(Device_capability device_cap,
Genode::Ram_dataspace_capability cap) {
call<Rpc_free_dma_buffer>(device_cap, cap); }
};
}
#endif /* _INCLUDE__PCI_SESSION__CLIENT_H_ */