alnyan/yggdrasil: add flags to map_memory

This commit is contained in:
Mark Poliakov 2024-11-14 16:24:59 +02:00
parent e1a6fab885
commit 07ec0db970

View File

@ -1,10 +1,9 @@
#![unstable(feature = "yggdrasil_os", issue = "none")]
use super::fd::RawFd;
use crate::os::fd::{AsRawFd, OwnedFd};
use crate::sys::cvt_io;
use super::fd::RawFd;
#[unstable(feature = "yggdrasil_os", issue = "none")]
pub struct FileMapping<'a> {
data: &'a mut [u8],
@ -14,12 +13,17 @@ pub struct FileMapping<'a> {
#[unstable(feature = "yggdrasil_os", issue = "none")]
impl<'a> FileMapping<'a> {
pub fn new<F: Into<OwnedFd>>(f: F, offset: u64, len: usize) -> crate::io::Result<Self> {
use yggdrasil_rt::mem::MappingSource;
use yggdrasil_rt::mem::{MappingFlags, MappingSource};
let owned_fd = f.into();
let raw_fd = owned_fd.as_raw_fd();
let base = cvt_io(unsafe {
yggdrasil_rt::sys::map_memory(None, len, &MappingSource::File(raw_fd, offset))
yggdrasil_rt::sys::map_memory(
None,
len,
MappingFlags::WRITE,
&MappingSource::File(raw_fd, offset),
)
})?;
#[allow(fuzzy_provenance_casts)]