mirror of
https://github.com/edera-dev/krata.git
synced 2025-08-03 13:11:31 +00:00
multiple fixes and cleanup
This commit is contained in:
@ -188,7 +188,7 @@ impl DomainControl<'_> {
|
||||
&self,
|
||||
domid: u32,
|
||||
vcpu: u32,
|
||||
context: Option<&VcpuGuestContext>,
|
||||
context: &VcpuGuestContext,
|
||||
) -> Result<(), XenCallError> {
|
||||
trace!(
|
||||
"domctl fd={} set_vcpu_context domid={} context={:?}",
|
||||
@ -196,7 +196,10 @@ impl DomainControl<'_> {
|
||||
domid,
|
||||
context,
|
||||
);
|
||||
let mut wrapper = context.map(|ctx| VcpuGuestContextAny { value: *ctx });
|
||||
|
||||
let mut value = VcpuGuestContextAny {
|
||||
value: *context,
|
||||
};
|
||||
let mut domctl = DomCtl {
|
||||
cmd: XEN_DOMCTL_SETVCPUCONTEXT,
|
||||
interface_version: XEN_DOMCTL_INTERFACE_VERSION,
|
||||
@ -204,11 +207,7 @@ impl DomainControl<'_> {
|
||||
value: DomCtlValue {
|
||||
vcpu_context: DomCtlVcpuContext {
|
||||
vcpu,
|
||||
ctx: if wrapper.is_some() {
|
||||
addr_of_mut!(wrapper) as c_ulong
|
||||
} else {
|
||||
0
|
||||
},
|
||||
ctx: addr_of_mut!(value) as c_ulong,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
@ -3,7 +3,7 @@ use crate::sys::{
|
||||
};
|
||||
use crate::{XenCall, XenCallError};
|
||||
|
||||
use log::{trace};
|
||||
use log::trace;
|
||||
use std::ffi::c_ulong;
|
||||
use std::os::fd::AsRawFd;
|
||||
use std::ptr::addr_of_mut;
|
||||
@ -52,11 +52,14 @@ impl MemoryControl<'_> {
|
||||
self.call.multicall(calls)?;
|
||||
let code = calls[0].result;
|
||||
if code > !0xfff {
|
||||
return Err(XenCallError::new("failed to populate physmap"));
|
||||
return Err(XenCallError::new(
|
||||
format!("failed to populate physmap: {:#x}", code).as_str(),
|
||||
));
|
||||
}
|
||||
if code as usize > extent_starts.len() {
|
||||
return Err(XenCallError::new("failed to populate physmap"));
|
||||
}
|
||||
Ok(extent_starts[0..code as usize].to_vec())
|
||||
let extents = extent_starts[0..code as usize].to_vec();
|
||||
Ok(extents)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user