Change the default fmap2 impl to use fmap.
This commit is contained in:
@@ -12,6 +12,7 @@ sed 's/trait Scheme/trait SchemeBlock/' scheme.rs \
|
||||
| sed 's/fn handle(\&self, packet: \&mut Packet)/fn handle(\&self, packet: \&Packet) -> Option<usize>/' \
|
||||
| sed 's/packet.a = Error::mux(res);/res.transpose().map(Error::mux)/' \
|
||||
| sed 's/\.map(|f| f\.bits())/\.map(|f| f.map(|f| f.bits()))/' \
|
||||
| sed 's/\.map(|o| o as usize)/.map(|o| o.map(|o| o as usize))/' \
|
||||
| sed 's/Result<\([^>]\+\)>/Result<Option<\1>>/g' \
|
||||
> scheme_block.rs
|
||||
|
||||
|
||||
@@ -123,19 +123,18 @@ pub trait Scheme {
|
||||
|
||||
#[allow(unused_variables)]
|
||||
fn fmap(&self, id: usize, map: &Map) -> Result<usize> {
|
||||
if map.flags.contains(MapFlags::MAP_FIXED) {
|
||||
return Err(Error::new(EINVAL));
|
||||
}
|
||||
self.fmap2(id, &Map2 {
|
||||
offset: map.offset,
|
||||
size: map.size,
|
||||
flags: map.flags,
|
||||
address: 0,
|
||||
})
|
||||
Err(Error::new(EBADF))
|
||||
}
|
||||
#[allow(unused_variables)]
|
||||
fn fmap2(&self, id: usize, map: &Map2) -> Result<usize> {
|
||||
Err(Error::new(EBADF))
|
||||
if map.flags.contains(MapFlags::MAP_FIXED) {
|
||||
return Err(Error::new(EINVAL));
|
||||
}
|
||||
self.fmap(id, &Map {
|
||||
offset: map.offset,
|
||||
size: map.size,
|
||||
flags: map.flags,
|
||||
})
|
||||
}
|
||||
|
||||
#[allow(unused_variables)]
|
||||
|
||||
@@ -16,7 +16,7 @@ pub trait SchemeBlock {
|
||||
SYS_DUP => self.dup(packet.b, unsafe { slice::from_raw_parts(packet.c as *const u8, packet.d) }),
|
||||
SYS_READ => self.read(packet.b, unsafe { slice::from_raw_parts_mut(packet.c as *mut u8, packet.d) }),
|
||||
SYS_WRITE => self.write(packet.b, unsafe { slice::from_raw_parts(packet.c as *const u8, packet.d) }),
|
||||
SYS_LSEEK => self.seek(packet.b, packet.c as isize, packet.d).map(|o| o as usize),
|
||||
SYS_LSEEK => self.seek(packet.b, packet.c as isize, packet.d).map(|o| o.map(|o| o as usize)),
|
||||
SYS_FCHMOD => self.fchmod(packet.b, packet.c as u16),
|
||||
SYS_FCHOWN => self.fchown(packet.b, packet.c as u32, packet.d as u32),
|
||||
SYS_FCNTL => self.fcntl(packet.b, packet.c, packet.d),
|
||||
@@ -123,19 +123,18 @@ pub trait SchemeBlock {
|
||||
|
||||
#[allow(unused_variables)]
|
||||
fn fmap(&self, id: usize, map: &Map) -> Result<Option<usize>> {
|
||||
if map.flags.contains(MapFlags::MAP_FIXED) {
|
||||
return Err(Error::new(EINVAL));
|
||||
}
|
||||
self.fmap2(id, &Map2 {
|
||||
offset: map.offset,
|
||||
size: map.size,
|
||||
flags: map.flags,
|
||||
address: 0,
|
||||
})
|
||||
Err(Error::new(EBADF))
|
||||
}
|
||||
#[allow(unused_variables)]
|
||||
fn fmap2(&self, id: usize, map: &Map2) -> Result<Option<usize>> {
|
||||
Err(Error::new(EBADF))
|
||||
if map.flags.contains(MapFlags::MAP_FIXED) {
|
||||
return Err(Error::new(EINVAL));
|
||||
}
|
||||
self.fmap(id, &Map {
|
||||
offset: map.offset,
|
||||
size: map.size,
|
||||
flags: map.flags,
|
||||
})
|
||||
}
|
||||
|
||||
#[allow(unused_variables)]
|
||||
|
||||
@@ -16,7 +16,7 @@ pub trait SchemeBlockMut {
|
||||
SYS_DUP => self.dup(packet.b, unsafe { slice::from_raw_parts(packet.c as *const u8, packet.d) }),
|
||||
SYS_READ => self.read(packet.b, unsafe { slice::from_raw_parts_mut(packet.c as *mut u8, packet.d) }),
|
||||
SYS_WRITE => self.write(packet.b, unsafe { slice::from_raw_parts(packet.c as *const u8, packet.d) }),
|
||||
SYS_LSEEK => self.seek(packet.b, packet.c as isize, packet.d).map(|o| o as usize),
|
||||
SYS_LSEEK => self.seek(packet.b, packet.c as isize, packet.d).map(|o| o.map(|o| o as usize)),
|
||||
SYS_FCHMOD => self.fchmod(packet.b, packet.c as u16),
|
||||
SYS_FCHOWN => self.fchown(packet.b, packet.c as u32, packet.d as u32),
|
||||
SYS_FCNTL => self.fcntl(packet.b, packet.c, packet.d),
|
||||
@@ -123,19 +123,18 @@ pub trait SchemeBlockMut {
|
||||
|
||||
#[allow(unused_variables)]
|
||||
fn fmap(&mut self, id: usize, map: &Map) -> Result<Option<usize>> {
|
||||
if map.flags.contains(MapFlags::MAP_FIXED) {
|
||||
return Err(Error::new(EINVAL));
|
||||
}
|
||||
self.fmap2(id, &Map2 {
|
||||
offset: map.offset,
|
||||
size: map.size,
|
||||
flags: map.flags,
|
||||
address: 0,
|
||||
})
|
||||
Err(Error::new(EBADF))
|
||||
}
|
||||
#[allow(unused_variables)]
|
||||
fn fmap2(&mut self, id: usize, map: &Map2) -> Result<Option<usize>> {
|
||||
Err(Error::new(EBADF))
|
||||
if map.flags.contains(MapFlags::MAP_FIXED) {
|
||||
return Err(Error::new(EINVAL));
|
||||
}
|
||||
self.fmap(id, &Map {
|
||||
offset: map.offset,
|
||||
size: map.size,
|
||||
flags: map.flags,
|
||||
})
|
||||
}
|
||||
|
||||
#[allow(unused_variables)]
|
||||
|
||||
@@ -123,19 +123,18 @@ pub trait SchemeMut {
|
||||
|
||||
#[allow(unused_variables)]
|
||||
fn fmap(&mut self, id: usize, map: &Map) -> Result<usize> {
|
||||
if map.flags.contains(MapFlags::MAP_FIXED) {
|
||||
return Err(Error::new(EINVAL));
|
||||
}
|
||||
self.fmap2(id, &Map2 {
|
||||
offset: map.offset,
|
||||
size: map.size,
|
||||
flags: map.flags,
|
||||
address: 0,
|
||||
})
|
||||
Err(Error::new(EBADF))
|
||||
}
|
||||
#[allow(unused_variables)]
|
||||
fn fmap2(&mut self, id: usize, map: &Map2) -> Result<usize> {
|
||||
Err(Error::new(EBADF))
|
||||
if map.flags.contains(MapFlags::MAP_FIXED) {
|
||||
return Err(Error::new(EINVAL));
|
||||
}
|
||||
self.fmap(id, &Map {
|
||||
offset: map.offset,
|
||||
size: map.size,
|
||||
flags: map.flags,
|
||||
})
|
||||
}
|
||||
|
||||
#[allow(unused_variables)]
|
||||
|
||||
Reference in New Issue
Block a user