MCPcopy Create free account
hub / github.com/WasmEdge/WasmEdge / fdWrite

Method fdWrite

lib/host/wasi/inode-linux.cpp:590–607  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

588}
589
590WasiExpect<void> INode::fdWrite(Span<Span<const uint8_t>> IOVs,
591 __wasi_size_t &NWritten) const noexcept {
592 iovec SysIOVs[kIOVMax];
593 size_t SysIOVsSize = 0;
594 for (auto &IOV : IOVs) {
595 SysIOVs[SysIOVsSize].iov_base = const_cast<uint8_t *>(IOV.data());
596 SysIOVs[SysIOVsSize].iov_len = IOV.size();
597 ++SysIOVsSize;
598 }
599
600 if (auto Res = ::writev(Fd, SysIOVs, SysIOVsSize); unlikely(Res < 0)) {
601 return WasiUnexpect(fromErrNo(errno));
602 } else {
603 NWritten = EndianValue(static_cast<__wasi_size_t>(Res)).le();
604 }
605
606 return {};
607}
608
609WasiExpect<uint64_t> INode::getNativeHandler() const noexcept {
610 return static_cast<uint64_t>(Fd);

Callers

nothing calls this directly

Calls 7

unlikelyFunction · 0.85
WasiUnexpectFunction · 0.85
EndianValueClass · 0.85
leMethod · 0.80
fromErrNoFunction · 0.70
dataMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected