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
|
// SPDX-License-Identifier: MIT
syntax = "proto2";
import "opts.proto";
message user_s390_regs_entry {
required uint64 psw_mask = 1;
required uint64 psw_addr = 2;
repeated uint64 gprs = 3;
repeated uint32 acrs = 4;
required uint64 orig_gpr2 = 5;
required uint32 system_call = 6;
}
message user_s390_vxrs_low_entry {
repeated uint64 regs = 1;
}
/*
* The vxrs_high registers have 128 bit:
*
* vxrs_high_0 = regs[0] << 64 | regs[1];
* vxrs_high_1 = regs[2] << 64 | regs[3];
*/
message user_s390_vxrs_high_entry {
repeated uint64 regs = 1;
}
message user_s390_fpregs_entry {
required uint32 fpc = 1;
repeated uint64 fprs = 2;
}
message user_s390_gs_cb_entry {
repeated uint64 regs = 1;
}
message user_s390_ri_entry {
required uint32 ri_on = 1;
repeated uint64 regs = 2;
}
message thread_info_s390 {
required uint64 clear_tid_addr = 1[(criu).hex = true];
required user_s390_regs_entry gpregs = 2[(criu).hex = true];
required user_s390_fpregs_entry fpregs = 3[(criu).hex = true];
optional user_s390_vxrs_low_entry vxrs_low = 4[(criu).hex = true];
optional user_s390_vxrs_high_entry vxrs_high = 5[(criu).hex = true];
optional user_s390_gs_cb_entry gs_cb = 6[(criu).hex = true];
optional user_s390_gs_cb_entry gs_bc = 7[(criu).hex = true];
optional user_s390_ri_entry ri_cb = 8[(criu).hex = true];
}
|