xref: /cloud-hypervisor/hypervisor/src/mshv/snp_constants.rs (revision 68468b8519fe25ad68e6a1fffb86aa534c8f8a72)
1 // SPDX-License-Identifier: Apache-2.0 OR BSD-3-Clause
2 //
3 // Copyright © 2020, Microsoft Corporation
4 //
5 
6 // Reference: https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/specifications/56860.pdf
7 // Chapter 10
8 pub const SIG_R_COMPONENT_SIZE_IN_BYTES: usize = 72;
9 pub const SIG_R_AND_S_COMPONENT_SIZE_IN_BYTES: usize = 144;
10 pub const ECDSA_CURVE_ID_SIZE_IN_BYTES: usize = 4;
11 pub const ECDSA_SIG_X_COMPONENT_SIZE_IN_BYTES: usize = 72;
12 pub const ECDSA_SIG_Y_COMPONENT_SIZE_IN_BYTES: usize = 72;
13 pub const ECDSA_SIG_X_COMPONENT_START: usize = ECDSA_CURVE_ID_SIZE_IN_BYTES;
14 pub const ECDSA_SIG_X_COMPONENT_END: usize =
15     ECDSA_SIG_X_COMPONENT_START + ECDSA_SIG_X_COMPONENT_SIZE_IN_BYTES;
16 pub const ECDSA_SIG_Y_COMPONENT_START: usize = ECDSA_SIG_X_COMPONENT_END;
17 pub const ECDSA_SIG_Y_COMPONENT_END: usize =
18     ECDSA_SIG_X_COMPONENT_END + ECDSA_SIG_Y_COMPONENT_SIZE_IN_BYTES;
19 
20 // These constants are derived from GHCB spec Sect. 2.6 Table 3 GHCB Layout
21 // Link: https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/specifications/56421.pdf
22 pub const GHCB_RAX_OFFSET: u64 = 0x01F8;
23 pub const GHCB_RBX_OFFSET: u64 = 0x0318;
24 pub const GHCB_SW_EXITINFO1_OFFSET: u64 = 0x398;
25 pub const GHCB_SW_EXITINFO2_OFFSET: u64 = 0x3A0;
26