genode/repos/base-hw/include/vm_session/client.h
Stefan Kalkowski 7582396e9c hw_arndale: enable ARM virtualization extensions
* enables world-switch using ARM virtualization extensions
* split TrustZone and virtualization extensions hardly from platforms,
  where it is not used
* extend 'Vm_session' interface to enable configuration of guest-physical memory
* introduce VM destruction syscall
* add virtual machine monitor for hw_arndale that emulates a simplified version
  of ARM's Versatile Express Cortex A15 board for a Linux guest OS

Fixes #1405
2015-02-27 11:48:05 +01:00

60 lines
1.3 KiB
C++

/*
* \brief Client-side VM session interface
* \author Stefan Kalkowski
* \date 2012-10-02
*/
/*
* 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__VM_SESSION__CLIENT_H_
#define _INCLUDE__VM_SESSION__CLIENT_H_
/* Genode includes */
#include <vm_session/capability.h>
#include <base/rpc_client.h>
namespace Genode
{
/**
* Client-side VM session interface
*/
struct Vm_session_client : Rpc_client<Vm_session>
{
/**
* Constructor
*/
explicit Vm_session_client(Vm_session_capability session)
: Rpc_client<Vm_session>(session) { }
/**************************
** Vm_session interface **
**************************/
Dataspace_capability cpu_state() {
return call<Rpc_cpu_state>(); }
void exception_handler(Signal_context_capability handler) {
call<Rpc_exception_handler>(handler); }
void run() { call<Rpc_run>(); }
void pause() { call<Rpc_pause>(); }
void attach(Dataspace_capability ds,addr_t vm_addr) {
call<Rpc_attach>(ds, vm_addr); }
void detach(addr_t vm_addr, size_t size) {
call<Rpc_detach>(vm_addr, size); }
void attach_pic(addr_t vm_addr) {
call<Rpc_attach_pic>(vm_addr); }
};
}
#endif /* _INCLUDE__VM_SESSION__CLIENT_H_ */