mirror of
https://github.com/asterinas/asterinas.git
synced 2025-06-24 09:53:24 +00:00
Remove read*_to_end
methods
This commit is contained in:
committed by
Tate, Hongliang Tian
parent
1c881d30f6
commit
81b79dacc6
@ -47,14 +47,6 @@ impl InodeHandle<Rights> {
|
||||
Ok(InodeHandle(self.0.clone(), R1::new()))
|
||||
}
|
||||
|
||||
pub fn read_to_end(&self, buf: &mut Vec<u8>) -> Result<usize> {
|
||||
if !self.1.contains(Rights::READ) {
|
||||
return_errno_with_message!(Errno::EBADF, "file is not readable");
|
||||
}
|
||||
|
||||
self.0.read_to_end(buf)
|
||||
}
|
||||
|
||||
pub fn readdir(&self, visitor: &mut dyn DirentVisitor) -> Result<usize> {
|
||||
if !self.1.contains(Rights::READ) {
|
||||
return_errno_with_message!(Errno::EBADF, "file is not readable");
|
||||
|
@ -113,19 +113,6 @@ impl InodeHandle_ {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn read_to_end(&self, buf: &mut Vec<u8>) -> Result<usize> {
|
||||
if self.file_io.is_some() {
|
||||
return_errno_with_message!(Errno::EINVAL, "file io does not support read to end");
|
||||
}
|
||||
|
||||
let len = if self.status_flags().contains(StatusFlags::O_DIRECT) {
|
||||
self.dentry.inode().read_direct_to_end(buf)?
|
||||
} else {
|
||||
self.dentry.inode().read_to_end(buf)?
|
||||
};
|
||||
Ok(len)
|
||||
}
|
||||
|
||||
pub fn seek(&self, pos: SeekFrom) -> Result<usize> {
|
||||
let mut offset = self.offset.lock();
|
||||
let new_offset: isize = match pos {
|
||||
|
@ -12,11 +12,6 @@ impl<R: TRights> InodeHandle<TRightSet<R>> {
|
||||
self.0.read(writer)
|
||||
}
|
||||
|
||||
#[require(R > Read)]
|
||||
pub fn read_to_end(&self, buf: &mut Vec<u8>) -> Result<usize> {
|
||||
self.0.read_to_end(buf)
|
||||
}
|
||||
|
||||
#[require(R > Write)]
|
||||
pub fn write(&self, reader: &mut VmReader) -> Result<usize> {
|
||||
self.0.write(reader)
|
||||
|
@ -569,34 +569,6 @@ impl dyn Inode {
|
||||
(self as &dyn Any).downcast_ref::<T>()
|
||||
}
|
||||
|
||||
pub fn read_to_end(&self, buf: &mut Vec<u8>) -> Result<usize> {
|
||||
if !self.type_().support_read() {
|
||||
return_errno!(Errno::EISDIR);
|
||||
}
|
||||
|
||||
let file_size = self.size();
|
||||
if buf.len() < file_size {
|
||||
buf.resize(file_size, 0);
|
||||
}
|
||||
|
||||
let mut writer = VmWriter::from(&mut buf[..file_size]).to_fallible();
|
||||
self.read_at(0, &mut writer)
|
||||
}
|
||||
|
||||
pub fn read_direct_to_end(&self, buf: &mut Vec<u8>) -> Result<usize> {
|
||||
if !self.type_().support_read() {
|
||||
return_errno!(Errno::EISDIR);
|
||||
}
|
||||
|
||||
let file_size = self.size();
|
||||
if buf.len() < file_size {
|
||||
buf.resize(file_size, 0);
|
||||
}
|
||||
|
||||
let mut writer = VmWriter::from(&mut buf[..file_size]).to_fallible();
|
||||
self.read_direct_at(0, &mut writer)
|
||||
}
|
||||
|
||||
pub fn writer(&self, from_offset: usize) -> InodeWriter {
|
||||
InodeWriter {
|
||||
inner: self,
|
||||
|
Reference in New Issue
Block a user