alnyan/yggdrasil: add flags to map_memory
This commit is contained in:
parent
e1a6fab885
commit
07ec0db970
@ -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)]
|
||||
|
Loading…
x
Reference in New Issue
Block a user