| /* Copyright (c) 2016 Google Inc |
| * Barret Rhoden <brho@cs.berkeley.edu> |
| * See LICENSE for details. |
| * |
| * Various iovec utility functions. */ |
| |
| #pragma once |
| |
| #include <sys/uio.h> |
| #include <stdint.h> |
| #include <ros/common.h> |
| |
| void iov_strip_bytes(struct iovec *iov, int iovcnt, size_t amt); |
| void iov_drop_trailing_bytes(struct iovec *iov, int iovcnt, size_t amt); |
| void iov_trim_len_to(struct iovec *iov, int iovcnt, size_t new_len); |
| |
| bool iov_has_bytes(struct iovec *iov, int iovcnt, size_t amt); |
| size_t iov_get_len(struct iovec *iov, int iovcnt); |
| void iov_linearize(struct iovec *iov, int iovcnt, uint8_t *buf, size_t len); |
| |
| void iov_set_byte(struct iovec *iov, int iovcnt, size_t idx, uint8_t val); |
| uint8_t iov_get_byte(struct iovec *iov, int iovcnt, size_t idx); |
| void iov_memcpy_from(struct iovec *iov, int iovcnt, size_t idx, |
| void *to, size_t amt); |
| void iov_memcpy_to(struct iovec *iov, int iovcnt, size_t to, |
| void *from, size_t amt); |
| |
| uint16_t iov_get_be16(struct iovec *iov, int iovcnt, size_t idx); |
| uint16_t iov_get_be32(struct iovec *iov, int iovcnt, size_t idx); |
| void iov_put_be16(struct iovec *iov, int iovcnt, size_t idx, uint16_t val); |
| void iov_put_be32(struct iovec *iov, int iovcnt, size_t idx, uint32_t val); |