blob: a3fa1759eefe5d79e75c2de3618e69df31106cfc (
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
|
syntax = "proto2";
import "opts.proto";
message user_x86_regs_entry {
required uint64 r15 = 1;
required uint64 r14 = 2;
required uint64 r13 = 3;
required uint64 r12 = 4;
required uint64 bp = 5;
required uint64 bx = 6;
required uint64 r11 = 7;
required uint64 r10 = 8;
required uint64 r9 = 9;
required uint64 r8 = 10;
required uint64 ax = 11;
required uint64 cx = 12;
required uint64 dx = 13;
required uint64 si = 14;
required uint64 di = 15;
required uint64 orig_ax = 16;
required uint64 ip = 17;
required uint64 cs = 18;
required uint64 flags = 19;
required uint64 sp = 20;
required uint64 ss = 21;
required uint64 fs_base = 22;
required uint64 gs_base = 23;
required uint64 ds = 24;
required uint64 es = 25;
required uint64 fs = 26;
required uint64 gs = 27;
}
message user_x86_xsave_entry {
required uint64 xstate_bv = 1;
repeated uint32 ymmh_space = 2;
}
message user_x86_fpregs_entry {
/* fxsave data */
required uint32 cwd = 1;
required uint32 swd = 2;
required uint32 twd = 3;
required uint32 fop = 4;
required uint64 rip = 5;
required uint64 rdp = 6;
required uint32 mxcsr = 7;
required uint32 mxcsr_mask = 8;
repeated uint32 st_space = 9;
repeated uint32 xmm_space = 10;
/* Unused, but present for backward compatibility */
repeated uint32 padding = 11;
/* xsave extension */
optional user_x86_xsave_entry xsave = 13;
}
message thread_info_x86 {
required uint64 clear_tid_addr = 1[(criu).hex = true];
required user_x86_regs_entry gpregs = 2[(criu).hex = true];
required user_x86_fpregs_entry fpregs = 3;
}
|