mirror of
https://github.com/asterinas/asterinas.git
synced 2025-06-25 02:13: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()))
|
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> {
|
pub fn readdir(&self, visitor: &mut dyn DirentVisitor) -> Result<usize> {
|
||||||
if !self.1.contains(Rights::READ) {
|
if !self.1.contains(Rights::READ) {
|
||||||
return_errno_with_message!(Errno::EBADF, "file is not readable");
|
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> {
|
pub fn seek(&self, pos: SeekFrom) -> Result<usize> {
|
||||||
let mut offset = self.offset.lock();
|
let mut offset = self.offset.lock();
|
||||||
let new_offset: isize = match pos {
|
let new_offset: isize = match pos {
|
||||||
|
@ -12,11 +12,6 @@ impl<R: TRights> InodeHandle<TRightSet<R>> {
|
|||||||
self.0.read(writer)
|
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)]
|
#[require(R > Write)]
|
||||||
pub fn write(&self, reader: &mut VmReader) -> Result<usize> {
|
pub fn write(&self, reader: &mut VmReader) -> Result<usize> {
|
||||||
self.0.write(reader)
|
self.0.write(reader)
|
||||||
|
@ -569,34 +569,6 @@ impl dyn Inode {
|
|||||||
(self as &dyn Any).downcast_ref::<T>()
|
(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 {
|
pub fn writer(&self, from_offset: usize) -> InodeWriter {
|
||||||
InodeWriter {
|
InodeWriter {
|
||||||
inner: self,
|
inner: self,
|
||||||
|
Reference in New Issue
Block a user