L4Re Operating System Framework
Interface and Usage Documentation
Loading...
Searching...
No Matches
__vcpu-arch.h
Go to the documentation of this file.
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 */
23#pragma once
24
25#include <l4/sys/types.h>
26
27enum
28{
36
37 L4_VCPU_STATE_SIZE = 0x200,
38 L4_VCPU_STATE_EXT_SIZE = L4_PAGESIZE,
39};
40
50
54typedef struct l4_vcpu_arch_state_t
55{
56 l4_umword_t host_fs_base;
57 l4_umword_t host_gs_base;
58 l4_uint16_t host_ds, host_es, host_fs, host_gs;
59
60 l4_uint16_t const user_ds32;
61 l4_uint16_t const user_cs64;
62 l4_uint16_t const user_cs32;
64
65
70typedef struct l4_vcpu_regs_t
71{
98 l4_umword_t fs_base;
99 l4_umword_t gs_base;
100 l4_uint16_t ds, es, fs, gs;
101
103
108typedef struct l4_vcpu_ipc_regs_t
109{
110 l4_umword_t _res[1];
111 l4_umword_t label;
112 l4_umword_t _res2[5];
113 l4_msgtag_t tag;
@ L4_VCPU_STATE_VERSION
Architecture-specific version ID.
Definition __vcpu-arch.h:35
struct l4_vcpu_arch_state_t l4_vcpu_arch_state_t
Architecture-specific vCPU state.
unsigned long l4_umword_t
Unsigned machine word.
Definition l4int.h:51
unsigned short int l4_uint16_t
Unsigned 16bit value.
Definition l4int.h:38
#define L4_PAGESIZE
Minimal page size (in bytes).
Definition consts.h:380
struct l4_vcpu_ipc_regs_t l4_vcpu_ipc_regs_t
vCPU message registers.
L4_vcpu_state_offset
Offsets for vCPU state layouts.
Definition __vcpu-arch.h:47
struct l4_vcpu_regs_t l4_vcpu_regs_t
vCPU registers.
@ L4_VCPU_OFFSET_EXT_INFOS
Offset where extended infos begin.
Definition __vcpu-arch.h:48
@ L4_VCPU_OFFSET_EXT_STATE
Offset where extended state begins.
Definition __vcpu-arch.h:47
Common L4 ABI Data Types.
Message tag data structure.
Definition types.h:164
Architecture-specific vCPU state.
Definition __vcpu-arch.h:86
vCPU message registers.
Definition __vcpu-arch.h:95
vCPU registers.
Definition __vcpu-arch.h:67
l4_umword_t sp
stack pointer
Definition __vcpu-arch.h:73
l4_umword_t r14
r14 register
Definition __vcpu-arch.h:73
l4_umword_t err
error code
Definition __vcpu-arch.h:69
l4_umword_t ss
ss register
Definition __vcpu-arch.h:97
l4_umword_t r9
r9 register
Definition __vcpu-arch.h:78
l4_umword_t pfa
page fault address
Definition __vcpu-arch.h:68
l4_umword_t r11
r11 register
Definition __vcpu-arch.h:76
l4_umword_t r13
r13 register
Definition __vcpu-arch.h:74
l4_umword_t bp
rbp register
Definition __vcpu-arch.h:83
l4_umword_t di
rdi register
Definition __vcpu-arch.h:81
l4_umword_t r12
r12 register
Definition __vcpu-arch.h:75
l4_umword_t cx
rcx register
Definition __vcpu-arch.h:87
l4_umword_t r15
r15 register
Definition __vcpu-arch.h:72
l4_umword_t r10
r10 register
Definition __vcpu-arch.h:77
l4_umword_t bx
rbx register
Definition __vcpu-arch.h:85
l4_umword_t cs
dummy
Definition __vcpu-arch.h:94
l4_umword_t r8
r8 register
Definition __vcpu-arch.h:79
l4_umword_t trapno
trap number
Definition __vcpu-arch.h:90
l4_umword_t ax
rax register
Definition __vcpu-arch.h:88
l4_umword_t flags
eflags
Definition __vcpu-arch.h:77
l4_umword_t si
rsi register
Definition __vcpu-arch.h:82
l4_umword_t ip
instruction pointer
Definition __vcpu-arch.h:76
l4_umword_t dx
rdx register
Definition __vcpu-arch.h:86