Skip to content

Commit

Permalink
add msrs
Browse files Browse the repository at this point in the history
Signed-off-by: Muminul Islam <[email protected]>
  • Loading branch information
russell-islam committed Feb 10, 2025
1 parent 69e0bbd commit 55ee5da
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 1 deletion.
7 changes: 7 additions & 0 deletions mshv-bindings/src/x86_64/bindings.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3501,6 +3501,13 @@ pub const hv_register_name_HV_X64_REGISTER_SGX_LAUNCH_CONTROL3: hv_register_name
pub const hv_register_name_HV_X64_REGISTER_SPEC_CTRL: hv_register_name = 524420;
pub const hv_register_name_HV_X64_REGISTER_PRED_CMD: hv_register_name = 524421;
pub const hv_register_name_HV_X64_REGISTER_VIRT_SPEC_CTRL: hv_register_name = 524422;
pub const hv_register_name_HV_X64_REGISTER_U_CET: hv_register_name = 524428;
pub const hv_register_name_HV_X64_REGISTER_S_CET: hv_register_name = 524429;
pub const hv_register_name_HV_X64_REGISTER_SSP: hv_register_name = 524430;
pub const hv_register_name_HV_X64_REGISTER_PL0_SSP: hv_register_name = 524431;
pub const hv_register_name_HV_X64_REGISTER_PL1_SSP: hv_register_name = 524432;
pub const hv_register_name_HV_X64_REGISTER_PL2_SSP: hv_register_name = 524433;
pub const hv_register_name_HV_X64_REGISTER_PL3_SSP: hv_register_name = 524434;
pub const hv_register_name_HV_X64_REGISTER_TSC_ADJUST: hv_register_name = 524438;
pub const hv_register_name_HV_X64_REGISTER_MSR_IA32_MISC_ENABLE: hv_register_name = 524448;
pub const hv_register_name_HV_X64_REGISTER_IA32_FEATURE_CONTROL: hv_register_name = 524449;
Expand Down
13 changes: 13 additions & 0 deletions mshv-bindings/src/x86_64/regs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -271,6 +271,12 @@ pub const IA32_MSR_SPEC_CTRL: u32 = 0x00000048;
pub const IA32_MSR_TSC_ADJUST: u32 = 0x0000003b;

pub const IA32_MSR_MISC_ENABLE: u32 = 0x000001a0;
pub const MSR_IA32_U_CET: u32 = 0x000006a0; /* user mode cet */
pub const MSR_IA32_S_CET: u32 = 0x000006a2; /* kernel mode cet */
pub const MSR_IA32_PL0_SSP: u32 = 0x000006a4; /* ring-0 shadow stack pointer */
pub const MSR_IA32_PL1_SSP: u32 = 0x000006a5; /* ring-1 shadow stack pointer */
pub const MSR_IA32_PL2_SSP: u32 = 0x000006a6; /* ring-2 shadow stack pointer */
pub const MSR_IA32_PL3_SSP: u32 = 0x000006a7; /* ring-3 shadow stack pointer */

pub fn msr_to_hv_reg_name(msr: u32) -> Result<::std::os::raw::c_uint, &'static str> {
match msr {
Expand Down Expand Up @@ -347,6 +353,13 @@ pub fn msr_to_hv_reg_name(msr: u32) -> Result<::std::os::raw::c_uint, &'static s
HV_X64_MSR_SIMP => Ok(hv_register_name_HV_REGISTER_SIMP),
HV_X64_MSR_REFERENCE_TSC => Ok(hv_register_name_HV_REGISTER_REFERENCE_TSC),
HV_X64_MSR_EOM => Ok(hv_register_name_HV_REGISTER_EOM),
MSR_IA32_U_CET => Ok(hv_register_name_HV_X64_REGISTER_U_CET),
MSR_IA32_S_CET => Ok(hv_register_name_HV_X64_REGISTER_S_CET),
MSR_IA32_PL0_SSP => Ok(hv_register_name_HV_X64_REGISTER_PL0_SSP),
MSR_IA32_PL1_SSP => Ok(hv_register_name_HV_X64_REGISTER_PL1_SSP),
MSR_IA32_PL2_SSP => Ok(hv_register_name_HV_X64_REGISTER_PL2_SSP),
MSR_IA32_PL3_SSP => Ok(hv_register_name_HV_X64_REGISTER_PL3_SSP),

_ => Err("Not a supported hv_register_name msr"),
}
}
Expand Down
7 changes: 6 additions & 1 deletion mshv-ioctls/src/ioctls/system.rs
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,11 @@ impl Mshv {
HV_X64_MSR_SIMP,
HV_X64_MSR_REFERENCE_TSC,
HV_X64_MSR_EOM,
MSR_IA32_U_CET,
MSR_IA32_PL0_SSP,
MSR_IA32_PL1_SSP,
MSR_IA32_PL2_SSP,
MSR_IA32_PL3_SSP,
])
.unwrap())
}
Expand Down Expand Up @@ -266,7 +271,7 @@ mod tests {
fn test_get_msr_index_list() {
let hv = Mshv::new().unwrap();
let msr_list = hv.get_msr_index_list().unwrap();
assert!(msr_list.as_fam_struct_ref().nmsrs == 64);
assert!(msr_list.as_fam_struct_ref().nmsrs == 69);

let mut found = false;
for index in msr_list.as_slice() {
Expand Down

0 comments on commit 55ee5da

Please sign in to comment.