Signed-off-by: Sage Weil <sage@redhat.com>
return 0;
}
+void buffer::list::prepare_iov(std::vector<iovec> *piov) const
+{
+ piov->resize(_buffers.size());
+ unsigned n = 0;
+ for (std::list<buffer::ptr>::const_iterator p = _buffers.begin();
+ p != _buffers.end();
+ ++p, ++n) {
+ (*piov)[n].iov_base = (void *)p->c_str();
+ (*piov)[n].iov_len = p->length();
+ }
+}
+
int buffer::list::write_fd_zero_copy(int fd) const
{
if (!can_zero_copy())
#endif
#include <stdio.h>
+#include <sys/uio.h>
#if defined(__linux__) // For malloc(2).
#include <malloc.h>
#include <iosfwd>
#include <iomanip>
#include <list>
+#include <vector>
#include <string>
#include <exception>
int write_file(const char *fn, int mode=0644);
int write_fd(int fd) const;
int write_fd_zero_copy(int fd) const;
+ void prepare_iov(std::vector<iovec> *piov) const;
uint32_t crc32c(uint32_t crc) const;
void invalidate_crc();
};