MCPcopy Create free account
hub / github.com/Starry-OS/StarryOS / write

Method write

api/src/io.rs:130–151  ·  view source on GitHub ↗
(&mut self, buf: &[u8])

Source from the content-addressed store, hash-verified

128
129impl Write for IoVectorBufIo {
130 fn write(&mut self, buf: &[u8]) -> AxResult<usize> {
131 let mut count = 0;
132 loop {
133 self.skip_empty()?;
134 if self.start >= self.inner.iovcnt {
135 break;
136 }
137 let iov = self.inner.iovs.wrapping_add(self.start).vm_read()?;
138 let len = (iov.iov_len as usize - self.offset).min(buf.len() - count);
139 if len == 0 {
140 break;
141 }
142 vm_write_slice(
143 iov.iov_base.wrapping_add(self.offset),
144 &buf[count..count + len],
145 )?;
146 self.offset += len;
147 self.inner.len -= len;
148 count += len;
149 }
150 Ok(count)
151 }
152
153 fn flush(&mut self) -> AxResult {
154 Ok(())

Callers 1

run_initprocFunction · 0.45

Calls 2

skip_emptyMethod · 0.80
lenMethod · 0.45

Tested by

no test coverage detected