summaryrefslogtreecommitdiff
path: root/src/arch/amd64/cpu/registers.h
blob: 59cd8b826334bb7ce0a38c4a2ebbfcdc26057541 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#pragma once

#include <stdint.h>

struct dr6 {
	uint64_t b0 : 1,
	         b1 : 1,
	         b2 : 1,
	         b3 : 1,
	         : 7,
	         bld : 1,
	         : 1,
	         bd : 1,
	         bs : 1,
	         bt : 1,
	         rtm : 1,
	         : 47;
};

struct dr7 {
	uint64_t l0 : 1,
	         g0 : 1,
	         l1 : 1,
	         g1 : 1,
	         l2 : 1,
	         g2 : 1,
	         l3 : 1,
	         g3 : 1,
	         : 8,
	         rw0 : 2,
	         len0 : 2,
	         rw1 : 2,
	         len1 : 2,
	         rw2 : 2,
	         len2 : 2,
	         rw3 : 2,
	         len3 : 2,
	         : 32;
};

struct rflags {
	uint64_t cf : 1,
	         : 1,
	         pf : 1,
	         : 1,
	         af : 1,
	         : 1,
	         zf : 1,
	         sf : 1,

	         tf : 1,
	         if_ : 1,
	         df : 1,
	         of : 1,
	         iopl : 2,
	         nt : 1,
	         md : 1,

	         rf : 1,
	         vm : 1,
	         ac : 1,
	         vif : 1,
	         vip : 1,
	         id : 1,
	         : 42;
};