L4Re - L4 Runtime Environment
Main Page
Related Pages
Modules
Namespaces
Data Structures
Examples
All
Data Structures
Namespaces
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Groups
Pages
vcpu.h
1
/*
2
* (c) 2009 Adam Lackorzynski <adam@os.inf.tu-dresden.de>,
3
* Alexander Warg <warg@os.inf.tu-dresden.de>
4
* economic rights: Technische Universität Dresden (Germany)
5
*
6
* This file is part of TUD:OS and distributed under the terms of the
7
* GNU General Public License 2.
8
* Please see the COPYING-GPL-2 file for details.
9
*
10
* As a special exception, you may use this file as part of a free software
11
* library without restriction. Specifically, if other files instantiate
12
* templates or use macros or inline functions from this file, or you compile
13
* this file and link it with other files to produce an executable, this
14
* file does not by itself cause the resulting executable to be covered by
15
* the GNU General Public License. This exception does not however
16
* invalidate any other reasons why the executable file might be covered by
17
* the GNU General Public License.
18
*/
19
#pragma once
20
21
#include <l4/sys/types.h>
22
#include <l4/sys/__vcpu-arch.h>
23
34
typedef
struct
l4_vcpu_state_t
35
{
36
l4_vcpu_regs_t
r
;
37
l4_vcpu_ipc_regs_t
i
;
38
39
l4_uint16_t
state
;
40
l4_uint16_t
saved_state
;
41
l4_uint16_t
sticky_flags
;
42
l4_uint16_t
_reserved;
43
44
l4_cap_idx_t
user_task
;
45
46
l4_umword_t
entry_sp
;
47
l4_umword_t
entry_ip
;
48
l4_umword_t
reserved_sp;
49
}
l4_vcpu_state_t
;
50
55
enum
L4_vcpu_state_flags
56
{
57
L4_VCPU_F_IRQ
= 0x01,
58
L4_VCPU_F_PAGE_FAULTS
= 0x02,
59
L4_VCPU_F_EXCEPTIONS
= 0x04,
60
L4_VCPU_F_DEBUG_EXC
= 0x08,
61
L4_VCPU_F_USER_MODE
= 0x20,
62
L4_VCPU_F_FPU_ENABLED
= 0x80,
63
};
64
69
enum
L4_vcpu_sticky_flags
70
{
71
L4_VCPU_SF_IRQ_PENDING
= 0x01,
72
};
73
78
enum
L4_vcpu_state_offset
79
{
80
L4_VCPU_OFFSET_EXT_STATE
= 0x400,
81
L4_VCPU_OFFSET_EXT_INFOS
= 0x200,
82
};
L4Re - L4 Runtime Environment