2
0
mirror of https://github.com/checkpoint-restore/criu synced 2025-08-22 01:51:51 +00:00
criu/images/core-aarch64.proto
AV 1cf8040173 arm64: C/R PAC keys
PAC stands for Pointer Authentication Code. Each process has 5 PAC keys
and a mask of enabled keys. All this properties have to be C/R-ed.

As they are per-process protperties, we can save/restore them just for
one thread.

Signed-off-by: Andrei Vagin <avagin@google.com>
2025-03-15 11:59:19 +00:00

49 lines
1.2 KiB
Protocol Buffer

// SPDX-License-Identifier: MIT
syntax = "proto2";
import "opts.proto";
message user_aarch64_regs_entry {
repeated uint64 regs = 1;
required uint64 sp = 2;
required uint64 pc = 3;
required uint64 pstate = 4;
}
message user_aarch64_fpsimd_context_entry {
repeated uint64 vregs = 1;
required uint32 fpsr = 2;
required uint32 fpcr = 3;
}
message pac_address_keys {
required uint64 apiakey_lo = 1;
required uint64 apiakey_hi = 2;
required uint64 apibkey_lo = 3;
required uint64 apibkey_hi = 4;
required uint64 apdakey_lo = 5;
required uint64 apdakey_hi = 6;
required uint64 apdbkey_lo = 7;
required uint64 apdbkey_hi = 8;
required uint64 pac_enabled_key = 9;
}
message pac_generic_keys {
required uint64 apgakey_lo = 1;
required uint64 apgakey_hi = 2;
}
message pac_keys {
optional pac_address_keys pac_address_keys = 6;
optional pac_generic_keys pac_generic_keys = 7;
}
message thread_info_aarch64 {
required uint64 clear_tid_addr = 1[(criu).hex = true];
required uint64 tls = 2;
required user_aarch64_regs_entry gpregs = 3[(criu).hex = true];
required user_aarch64_fpsimd_context_entry fpsimd = 4;
optional pac_keys pac_keys = 5;
}