debug: trace EINVAL in AddrSpace kwriteoff mmap handler

This commit is contained in:
2026-07-11 07:56:47 +03:00
parent 879b58be13
commit 3322970697
+18 -3
View File
@@ -1316,15 +1316,25 @@ impl ContextHandle {
op @ ADDRSPACE_OP_MMAP | op @ ADDRSPACE_OP_TRANSFER => {
let fd = next()??;
let offset = next()??;
let page_span = crate::syscall::validate_region(next()??, next()??)?;
let flags = MapFlags::from_bits(next()??).ok_or(Error::new(EINVAL))?;
let addr_raw = next()??;
let size_raw = next()??;
let flags_raw = next()??;
info!("AS:MMAP fd={} off={} addr={:#x} size={:#x} flags={:#x}", fd, offset, addr_raw, size_raw, flags_raw);
let page_span = crate::syscall::validate_region(addr_raw, size_raw)?;
let flags = match MapFlags::from_bits(flags_raw) {
Some(f) => f,
None => {
info!("AS:MMAP MapFlags::from_bits FAILED");
return Err(Error::new(EINVAL));
}
};
if fd == !0 {
if op == ADDRSPACE_OP_TRANSFER {
return Err(Error::new(EOPNOTSUPP));
}
return MemoryScheme::fmap_anonymous(
let res = MemoryScheme::fmap_anonymous(
&addrspace,
&Map {
offset,
@@ -1335,6 +1345,11 @@ impl ContextHandle {
false,
token,
);
match res {
Ok(a) => { info!("AS:MMAP fmap_anonymous ok addr={:#x}", a); }
Err(ref e) => { info!("AS:MMAP fmap_anonymous ERR errno={}", e.errno); }
};
return res;
} else {
let (scheme, number) = extract_scheme_number(fd, token)?;