1// vi:set ft=cpp: -*- Mode: C++ -*- 2/** 3 * \file 4 * Virtualization interface 5 */ 6/* 7 * (c) 2008-2010 Adam Lackorzynski <adam@os.inf.tu-dresden.de>, 8 * Alexander Warg <warg@os.inf.tu-dresden.de> 9 * economic rights: Technische Universität Dresden (Germany) 10 * 11 * This file is part of TUD:OS and distributed under the terms of the 12 * GNU General Public License 2. 13 * Please see the COPYING-GPL-2 file for details. 14 * 15 * As a special exception, you may use this file as part of a free software 16 * library without restriction. Specifically, if other files instantiate 17 * templates or use macros or inline functions from this file, or you compile 18 * this file and link it with other files to produce an executable, this 19 * file does not by itself cause the resulting executable to be covered by 20 * the GNU General Public License. This exception does not however 21 * invalidate any other reasons why the executable file might be covered by 22 * the GNU General Public License. 23 */ 24 25#pragma once 26 27#include <l4/sys/vm.h> 28#include <l4/sys/task> 29 30namespace L4 { 31 32/** 33 * Virtual machine host address space. 34 * \ingroup l4_kernel_object_api 35 * 36 * L4::Vm is a specialisation of L4::Task, used for virtual machines. The 37 * microkernel employs an appropriate page-table format for hosting VMs, such 38 * as ePT on VT-x. On Arm, it offers a call to make the virtual GICC area 39 * available to the VM. 40 */ 41class Vm : public Kobject_t<Vm, Task, L4_PROTO_VM> 42{ 43protected: 44 Vm(); 45 46private: 47 Vm(Vm const &); 48 void operator = (Vm const &); 49}; 50 51}; 52