mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-10-27 12:48:22 +00:00
iovec: iovec_iterator_total_offset
This commit is contained in:
@@ -36,6 +36,9 @@ size_t iovec_iterator_skip(iovec_iterator_t *iovec_iterator, size_t skip_count);
|
||||
// sets the current offset of the iovec iterator to offset, returns the remaining number of bytes
|
||||
size_t iovec_iterator_set(iovec_iterator_t *iovec_iterator, size_t offset);
|
||||
|
||||
// returns the offset that the iovec_iterator is on
|
||||
size_t iovec_iterator_total_offset(iovec_iterator_t *iovec_iterator);
|
||||
|
||||
// copies byte_count bytes from the iovec_iterator into buffer
|
||||
// NOTE: the iovec can have userspace addresses. in this case, the copy can possibly fail with EFAULT
|
||||
int iovec_iterator_copy_to_buffer(iovec_iterator_t *iovec_iterator, void *buffer, size_t byte_count);
|
||||
|
||||
@@ -67,6 +67,10 @@ size_t iovec_iterator_set(iovec_iterator_t *iovec_iterator, size_t offset) {
|
||||
return iovec_iterator_skip(iovec_iterator, offset);
|
||||
}
|
||||
|
||||
size_t iovec_iterator_total_offset(iovec_iterator_t *iovec_iterator) {
|
||||
return iovec_iterator->total_offset;
|
||||
}
|
||||
|
||||
int iovec_iterator_copy_to_buffer(iovec_iterator_t *iovec_iterator, void *buffer, size_t byte_count) {
|
||||
size_t iterator_offset_save = iovec_iterator->total_offset;
|
||||
size_t remaining_total = min(byte_count, iovec_iterator->total_size - iovec_iterator->total_offset);
|
||||
|
||||
Reference in New Issue
Block a user