L4Re – L4 Runtime Environment
__vm-arm.h
Go to the documentation of this file.
1 // vi:set ft=cpp: -*- Mode: C++ -*-
6 /*
7  * (c) 2018 Adam Lackorzynski <adam@l4re.org>
8  *
9  * This file is part of TUD:OS and distributed under the terms of the
10  * GNU General Public License 2.
11  * Please see the COPYING-GPL-2 file for details.
12  *
13  * As a special exception, you may use this file as part of a free software
14  * library without restriction. Specifically, if other files instantiate
15  * templates or use macros or inline functions from this file, or you compile
16  * this file and link it with other files to produce an executable, this
17  * file does not by itself cause the resulting executable to be covered by
18  * the GNU General Public License. This exception does not however
19  * invalidate any other reasons why the executable file might be covered by
20  * the GNU General Public License.
21  */
22 #pragma once
23 
24 #include <l4/sys/task>
25 
26 namespace L4 {
27 
36 class Vm : public Kobject_t<Vm, Task, L4_PROTO_VM>
37 {
38 public:
39  /*
40  * Map the GIC's virtual GICC page to the task.
41  *
42  * \param vgicc_fpage Flexpage that describes an area in the address space
43  * of the destination task to map the vGICC page to.
44  * \utcb{utcb}
45  *
46  * \return Syscall return tag.
47  */
48  l4_msgtag_t vgicc_map(l4_fpage_t const vgicc_fpage,
49  l4_utcb_t *utcb = l4_utcb()) noexcept
50  { return l4_task_vgicc_map_u(cap(), vgicc_fpage, utcb); }
51 
52 protected:
53  Vm();
54 
55 private:
56  Vm(Vm const &);
57  void operator = (Vm const &);
58 };
59 
60 }
Helper class to create an L4Re interface class that is derived from a single base class.
Definition: __typeinfo.h:760
l4_cap_idx_t cap() const noexcept
Return capability selector.
Definition: kobject:79
Virtual machine host address space.
Definition: __vm-arm.h:37
struct l4_utcb_t l4_utcb_t
Opaque type for the UTCB.
Definition: utcb.h:67
l4_utcb_t * l4_utcb(void) L4_NOTHROW L4_PURE
Get the UTCB address.
Definition: utcb.h:340
L4 low-level kernel interface.
Message tag data structure.
Definition: types.h:160
Common task related definitions.
L4 flexpage type.
Definition: __l4_fpage.h:83