Files
mango/include/kernel/iovec.h

32 lines
742 B
C
Raw Normal View History

2026-02-19 19:13:44 +00:00
#ifndef KERNEL_IOVEC_H_
#define KERNEL_IOVEC_H_
#include <mango/types.h>
#include <stddef.h>
struct iovec_iterator {
/* if this is set, we are iterating over a list of iovecs stored in
* userspace, and must go through this region to retrieve the data. */
struct vm_region *it_region;
2026-02-19 19:13:44 +00:00
const struct iovec *it_vecs;
size_t it_nr_vecs;
size_t it_vec_ptr;
virt_addr_t it_base;
size_t it_len;
};
extern void iovec_iterator_begin(
struct iovec_iterator *it,
const struct iovec *vecs,
size_t nr_vecs);
extern void iovec_iterator_begin_user(
struct iovec_iterator *it,
struct vm_region *address_space,
const struct iovec *vecs,
size_t nr_vecs);
2026-02-19 19:13:44 +00:00
extern void iovec_iterator_seek(struct iovec_iterator *it, size_t nr_bytes);
#endif