Skip to content

Commit bbedcab

Browse files
committed
Fix some referencing of regs
Signed-off-by: Ludvig Liljenberg <[email protected]>
1 parent bb654aa commit bbedcab

File tree

5 files changed

+48
-54
lines changed

5 files changed

+48
-54
lines changed

src/hyperlight_host/src/hypervisor/kvm.rs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -93,29 +93,27 @@ impl KvmVm {
9393

9494
impl Vm for KvmVm {
9595
fn get_regs(&self) -> Result<CommonRegisters> {
96-
let kvm_regs = self.vcpu_fd.get_regs()?;
97-
Ok(kvm_regs.into())
96+
Ok((&self.vcpu_fd.get_regs()?).into())
9897
}
9998

10099
fn set_regs(&self, regs: &CommonRegisters) -> Result<()> {
101-
let kvm_regs = (*regs).into();
102-
Ok(self.vcpu_fd.set_regs(&kvm_regs)?)
100+
Ok(self.vcpu_fd.set_regs(&regs.into())?)
103101
}
104102

105103
fn get_sregs(&self) -> Result<CommonSpecialRegisters> {
106-
Ok(self.vcpu_fd.get_sregs()?.into())
104+
Ok((&self.vcpu_fd.get_sregs()?).into())
107105
}
108106

109107
fn set_sregs(&self, sregs: &CommonSpecialRegisters) -> Result<()> {
110-
Ok(self.vcpu_fd.set_sregs(&(*sregs).into())?)
108+
Ok(self.vcpu_fd.set_sregs(&sregs.into())?)
111109
}
112110

113111
fn get_fpu(&self) -> Result<CommonFpu> {
114-
Ok(self.vcpu_fd.get_fpu()?.into())
112+
Ok((&self.vcpu_fd.get_fpu()?).into())
115113
}
116114

117115
fn set_fpu(&self, fpu: &CommonFpu) -> Result<()> {
118-
Ok(self.vcpu_fd.set_fpu(&(*fpu).into())?)
116+
Ok(self.vcpu_fd.set_fpu(&fpu.into())?)
119117
}
120118

121119
unsafe fn map_memory(&mut self, regions: &[MemoryRegion]) -> Result<()> {

src/hyperlight_host/src/hypervisor/mshv.rs

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -129,32 +129,28 @@ impl MshvVm {
129129

130130
impl Vm for MshvVm {
131131
fn get_regs(&self) -> Result<CommonRegisters> {
132-
let mshv_regs = self.vcpu_fd.get_regs()?;
133-
Ok(mshv_regs.into())
132+
Ok((&self.vcpu_fd.get_regs()?).into())
134133
}
135134

136135
fn set_regs(&self, regs: &CommonRegisters) -> Result<()> {
137-
let mshv_regs = (*regs).into();
138-
Ok(self.vcpu_fd.set_regs(&mshv_regs)?)
136+
Ok(self.vcpu_fd.set_regs(&regs.into())?)
139137
}
140138

141139
fn get_sregs(&self) -> Result<CommonSpecialRegisters> {
142-
let mshv_sregs = self.vcpu_fd.get_sregs()?;
143-
Ok(mshv_sregs.into())
140+
Ok((&self.vcpu_fd.get_sregs()?).into())
144141
}
145142

146143
fn set_sregs(&self, sregs: &CommonSpecialRegisters) -> Result<()> {
147-
let mshv_sregs = (*sregs).into();
148-
self.vcpu_fd.set_sregs(&mshv_sregs)?;
144+
self.vcpu_fd.set_sregs(&sregs.into())?;
149145
Ok(())
150146
}
151147

152148
fn get_fpu(&self) -> Result<CommonFpu> {
153-
Ok(self.vcpu_fd.get_fpu()?.into())
149+
Ok((&self.vcpu_fd.get_fpu()?).into())
154150
}
155151

156152
fn set_fpu(&self, fpu: &CommonFpu) -> Result<()> {
157-
self.vcpu_fd.set_fpu(&(*fpu).into())?;
153+
self.vcpu_fd.set_fpu(&fpu.into())?;
158154
Ok(())
159155
}
160156

src/hyperlight_host/src/hypervisor/regs/fpu.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ pub(crate) struct CommonFpu {
5454
}
5555

5656
#[cfg(kvm)]
57-
impl From<CommonFpu> for kvm_fpu {
58-
fn from(common_fpu: CommonFpu) -> Self {
57+
impl From<&CommonFpu> for kvm_fpu {
58+
fn from(common_fpu: &CommonFpu) -> Self {
5959
kvm_fpu {
6060
fpr: common_fpu.fpr,
6161
fcw: common_fpu.fcw,
@@ -73,8 +73,8 @@ impl From<CommonFpu> for kvm_fpu {
7373
}
7474

7575
#[cfg(mshv)]
76-
impl From<CommonFpu> for FloatingPointUnit {
77-
fn from(common_fpu: CommonFpu) -> FloatingPointUnit {
76+
impl From<&CommonFpu> for FloatingPointUnit {
77+
fn from(common_fpu: &CommonFpu) -> FloatingPointUnit {
7878
FloatingPointUnit {
7979
fpr: common_fpu.fpr,
8080
fcw: common_fpu.fcw,
@@ -92,8 +92,8 @@ impl From<CommonFpu> for FloatingPointUnit {
9292
}
9393

9494
#[cfg(kvm)]
95-
impl From<kvm_fpu> for CommonFpu {
96-
fn from(kvm_fpu: kvm_fpu) -> Self {
95+
impl From<&kvm_fpu> for CommonFpu {
96+
fn from(kvm_fpu: &kvm_fpu) -> Self {
9797
Self {
9898
fpr: kvm_fpu.fpr,
9999
fcw: kvm_fpu.fcw,
@@ -111,8 +111,8 @@ impl From<kvm_fpu> for CommonFpu {
111111
}
112112

113113
#[cfg(mshv)]
114-
impl From<FloatingPointUnit> for CommonFpu {
115-
fn from(mshv_fpu: FloatingPointUnit) -> Self {
114+
impl From<&FloatingPointUnit> for CommonFpu {
115+
fn from(mshv_fpu: &FloatingPointUnit) -> Self {
116116
Self {
117117
fpr: mshv_fpu.fpr,
118118
fcw: mshv_fpu.fcw,
@@ -386,8 +386,8 @@ mod tests {
386386
use kvm_bindings::kvm_fpu;
387387

388388
let original = sample_common_fpu();
389-
let kvm: kvm_fpu = original.into();
390-
let round_tripped = CommonFpu::from(kvm);
389+
let kvm: kvm_fpu = (&original).into();
390+
let round_tripped = CommonFpu::from(&kvm);
391391

392392
assert_eq!(original, round_tripped);
393393
}
@@ -398,8 +398,8 @@ mod tests {
398398
use mshv_bindings::FloatingPointUnit;
399399

400400
let original = sample_common_fpu();
401-
let mshv: FloatingPointUnit = original.into();
402-
let round_tripped = CommonFpu::from(mshv);
401+
let mshv: FloatingPointUnit = (&original).into();
402+
let round_tripped = CommonFpu::from(&mshv);
403403

404404
assert_eq!(original, round_tripped);
405405
}

src/hyperlight_host/src/hypervisor/regs/special_regs.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ pub(crate) struct CommonSpecialRegisters {
4444
}
4545

4646
#[cfg(mshv)]
47-
impl From<SpecialRegisters> for CommonSpecialRegisters {
48-
fn from(value: SpecialRegisters) -> Self {
47+
impl From<&SpecialRegisters> for CommonSpecialRegisters {
48+
fn from(value: &SpecialRegisters) -> Self {
4949
CommonSpecialRegisters {
5050
cs: value.cs.into(),
5151
ds: value.ds.into(),
@@ -70,8 +70,8 @@ impl From<SpecialRegisters> for CommonSpecialRegisters {
7070
}
7171

7272
#[cfg(mshv)]
73-
impl From<CommonSpecialRegisters> for SpecialRegisters {
74-
fn from(other: CommonSpecialRegisters) -> Self {
73+
impl From<&CommonSpecialRegisters> for SpecialRegisters {
74+
fn from(other: &CommonSpecialRegisters) -> Self {
7575
SpecialRegisters {
7676
cs: other.cs.into(),
7777
ds: other.ds.into(),
@@ -96,8 +96,8 @@ impl From<CommonSpecialRegisters> for SpecialRegisters {
9696
}
9797

9898
#[cfg(kvm)]
99-
impl From<kvm_sregs> for CommonSpecialRegisters {
100-
fn from(kvm_sregs: kvm_sregs) -> Self {
99+
impl From<&kvm_sregs> for CommonSpecialRegisters {
100+
fn from(kvm_sregs: &kvm_sregs) -> Self {
101101
CommonSpecialRegisters {
102102
cs: kvm_sregs.cs.into(),
103103
ds: kvm_sregs.ds.into(),
@@ -122,8 +122,8 @@ impl From<kvm_sregs> for CommonSpecialRegisters {
122122
}
123123

124124
#[cfg(kvm)]
125-
impl From<CommonSpecialRegisters> for kvm_sregs {
126-
fn from(common_sregs: CommonSpecialRegisters) -> Self {
125+
impl From<&CommonSpecialRegisters> for kvm_sregs {
126+
fn from(common_sregs: &CommonSpecialRegisters) -> Self {
127127
kvm_sregs {
128128
cs: common_sregs.cs.into(),
129129
ds: common_sregs.ds.into(),
@@ -565,8 +565,8 @@ mod tests {
565565
#[test]
566566
fn round_trip_kvm_sregs() {
567567
let original = sample_common_special_registers();
568-
let kvm_sregs: kvm_sregs = original.into();
569-
let roundtrip = CommonSpecialRegisters::from(kvm_sregs);
568+
let kvm_sregs: kvm_sregs = (&original).into();
569+
let roundtrip = CommonSpecialRegisters::from(&kvm_sregs);
570570

571571
assert_eq!(original, roundtrip);
572572
}
@@ -575,8 +575,8 @@ mod tests {
575575
#[test]
576576
fn round_trip_mshv_sregs() {
577577
let original = sample_common_special_registers();
578-
let mshv_sregs: SpecialRegisters = original.into();
579-
let roundtrip = CommonSpecialRegisters::from(mshv_sregs);
578+
let mshv_sregs: SpecialRegisters = (&original).into();
579+
let roundtrip = CommonSpecialRegisters::from(&mshv_sregs);
580580

581581
assert_eq!(original, roundtrip);
582582
}

src/hyperlight_host/src/hypervisor/regs/standard_regs.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ pub(crate) struct CommonRegisters {
3737

3838
// --- KVM ---
3939
#[cfg(kvm)]
40-
impl From<kvm_regs> for CommonRegisters {
41-
fn from(kvm_regs: kvm_regs) -> Self {
40+
impl From<&kvm_regs> for CommonRegisters {
41+
fn from(kvm_regs: &kvm_regs) -> Self {
4242
CommonRegisters {
4343
rax: kvm_regs.rax,
4444
rbx: kvm_regs.rbx,
@@ -63,8 +63,8 @@ impl From<kvm_regs> for CommonRegisters {
6363
}
6464

6565
#[cfg(kvm)]
66-
impl From<CommonRegisters> for kvm_regs {
67-
fn from(regs: CommonRegisters) -> Self {
66+
impl From<&CommonRegisters> for kvm_regs {
67+
fn from(regs: &CommonRegisters) -> Self {
6868
kvm_regs {
6969
rax: regs.rax,
7070
rbx: regs.rbx,
@@ -91,8 +91,8 @@ impl From<CommonRegisters> for kvm_regs {
9191
// --- MSHV ---
9292

9393
#[cfg(mshv)]
94-
impl From<StandardRegisters> for CommonRegisters {
95-
fn from(mshv_regs: StandardRegisters) -> Self {
94+
impl From<&StandardRegisters> for CommonRegisters {
95+
fn from(mshv_regs: &StandardRegisters) -> Self {
9696
CommonRegisters {
9797
rax: mshv_regs.rax,
9898
rbx: mshv_regs.rbx,
@@ -117,8 +117,8 @@ impl From<StandardRegisters> for CommonRegisters {
117117
}
118118

119119
#[cfg(mshv)]
120-
impl From<CommonRegisters> for StandardRegisters {
121-
fn from(regs: CommonRegisters) -> Self {
120+
impl From<&CommonRegisters> for StandardRegisters {
121+
fn from(regs: &CommonRegisters) -> Self {
122122
StandardRegisters {
123123
rax: regs.rax,
124124
rbx: regs.rbx,
@@ -304,17 +304,17 @@ mod tests {
304304
#[test]
305305
fn round_trip_kvm_regs() {
306306
let original = common_regs();
307-
let kvm_regs: kvm_regs = original.into();
308-
let converted: CommonRegisters = kvm_regs.into();
307+
let kvm_regs: kvm_regs = (&original).into();
308+
let converted: CommonRegisters = (&kvm_regs).into();
309309
assert_eq!(original, converted);
310310
}
311311

312312
#[cfg(mshv)]
313313
#[test]
314314
fn round_trip_mshv_regs() {
315315
let original = common_regs();
316-
let mshv_regs: StandardRegisters = original.into();
317-
let converted: CommonRegisters = mshv_regs.into();
316+
let mshv_regs: StandardRegisters = (&original).into();
317+
let converted: CommonRegisters = (&mshv_regs).into();
318318
assert_eq!(original, converted);
319319
}
320320

0 commit comments

Comments
 (0)