***/
static inline void
-isc_buffer_allocate(isc_mem_t *mctx, isc_buffer_t **dynbuffer,
- unsigned int length);
+isc_buffer_allocate(isc_mem_t *mctx, isc_buffer_t **restrict dynbuffer,
+ const unsigned int length);
/*!<
* \brief Allocate a dynamic linkable buffer which has "length" bytes in the
* data region.
*/
static inline void
-isc_buffer_setmctx(isc_buffer_t *b, isc_mem_t *mctx);
+isc_buffer_setmctx(isc_buffer_t *restrict b, isc_mem_t *mctx);
static inline void
-isc_buffer_clearmctx(isc_buffer_t *b);
+isc_buffer_clearmctx(isc_buffer_t *restrict b);
/*!<
* \brief Sets/Clears the internal memory context, so isc_buffer_reserve() can
* be used on previously 'static' buffer.
*/
static inline isc_result_t
-isc_buffer_reserve(isc_buffer_t *dynbuffer, unsigned int size);
+isc_buffer_reserve(isc_buffer_t *restrict dynbuffer, const unsigned int size);
/*!<
* \brief Make "size" bytes of space available in the buffer. The buffer
* pointer may move when you call this function.
*/
static inline void
-isc_buffer_free(isc_buffer_t **dynbuffer);
+isc_buffer_free(isc_buffer_t **restrict dynbuffer);
/*!<
* \brief Release resources allocated for a dynamic buffer.
*
*/
static inline void
-isc_buffer_initnull(isc_buffer_t *b);
+isc_buffer_initnull(isc_buffer_t *restrict b);
static inline void
-isc_buffer_reinit(isc_buffer_t *b, void *base, unsigned int length);
+isc_buffer_reinit(isc_buffer_t *restrict b, void *base,
+ const unsigned int length);
/*!<
* \brief Make 'b' refer to the 'length'-byte region starting at base.
* Any existing data will be copied.
*/
static inline void
-isc_buffer_trycompact(isc_buffer_t *b);
+isc_buffer_trycompact(isc_buffer_t *restrict b);
static inline void
-isc_buffer_compact(isc_buffer_t *b);
+isc_buffer_compact(isc_buffer_t *restrict b);
/*!<
* \brief Compact the used region by moving the remaining region so it occurs
* at the start of the buffer. The used region is shrunk by the size of
*/
static inline isc_result_t
-isc_buffer_peekuint8(const isc_buffer_t *b, uint8_t *valp);
+isc_buffer_peekuint8(const isc_buffer_t *restrict b, uint8_t *valp);
static inline uint8_t
-isc_buffer_getuint8(isc_buffer_t *b);
+isc_buffer_getuint8(isc_buffer_t *restrict b);
static inline void
-isc_buffer_putuint8(isc_buffer_t *b, uint8_t val);
+isc_buffer_putuint8(isc_buffer_t *restrict b, const uint8_t val);
/*!<
* \brief Peek/Read/Write an unsigned 8-bit integer from/to 'b'.
*
*/
static inline isc_result_t
-isc_buffer_peekuint16(const isc_buffer_t *b, uint16_t *valp);
+isc_buffer_peekuint16(const isc_buffer_t *restrict b, uint16_t *valp);
static inline uint16_t
-isc_buffer_getuint16(isc_buffer_t *b);
+isc_buffer_getuint16(isc_buffer_t *restrict b);
static inline void
-isc_buffer_putuint16(isc_buffer_t *b, uint16_t val);
+isc_buffer_putuint16(isc_buffer_t *restrict b, const uint16_t val);
/*!<
* \brief Peek/Read/Write an unsigned 16-bit integer in network byte order
* from/to 'b', convert it to/from host byte order..
*/
static inline isc_result_t
-isc_buffer_peekuint32(const isc_buffer_t *b, uint32_t *valp);
+isc_buffer_peekuint32(const isc_buffer_t *restrict b, uint32_t *restrict valp);
static inline uint32_t
-isc_buffer_getuint32(isc_buffer_t *b);
+isc_buffer_getuint32(isc_buffer_t *restrict b);
static inline void
-isc_buffer_putuint32(isc_buffer_t *b, uint32_t val);
+isc_buffer_putuint32(isc_buffer_t *restrict b, uint32_t const val);
/*!<
* \brief Peek/Read/Write an unsigned 32-bit integer in network byte order
* from/to 'b', convert it to/from host byte order.
*/
static inline isc_result_t
-isc_buffer_peekuint48(const isc_buffer_t *b, uint64_t *valp);
+isc_buffer_peekuint48(const isc_buffer_t *restrict b, uint64_t *valp);
static inline uint64_t
-isc_buffer_getuint48(isc_buffer_t *b);
+isc_buffer_getuint48(isc_buffer_t *restrict b);
static inline void
-isc_buffer_putuint48(isc_buffer_t *b, uint64_t val);
+isc_buffer_putuint48(isc_buffer_t *restrict b, const uint64_t val);
/*!<
* \brief Peek/Read/Write an unsigned 48-bit integer in network byte order
* from/to 'b', convert it to/from host byte order.
*/
static inline void
-isc_buffer_putmem(isc_buffer_t *b, const unsigned char *base,
- unsigned int length);
+isc_buffer_putmem(isc_buffer_t *restrict b, const unsigned char *restrict base,
+ const unsigned int length);
/*!<
* \brief Copy 'length' bytes of memory at 'base' into 'b'.
*
*/
static inline isc_result_t
-isc_buffer_copyregion(isc_buffer_t *b, const isc_region_t *r);
+isc_buffer_copyregion(isc_buffer_t *restrict b, const isc_region_t *restrict r);
/*!<
* \brief Copy the contents of 'r' into 'b'.
*
*/
static inline isc_result_t
-isc_buffer_dup(isc_mem_t *mctx, isc_buffer_t **dstp, const isc_buffer_t *src);
+isc_buffer_dup(isc_mem_t *mctx, isc_buffer_t **restrict dstp,
+ const isc_buffer_t *restrict src);
/*!<
* \brief Allocate 'dst' and copy used contents of 'src' into it.
*
*/
static inline isc_result_t
-isc_buffer_printf(isc_buffer_t *b, const char *format, ...)
+isc_buffer_printf(isc_buffer_t *restrict b, const char *restrict format, ...)
ISC_FORMAT_PRINTF(2, 3);
/*!<
* \brief Append a formatted string to the used region of 'b'.
*\li 'base' is a pointer to a sequence of 'length' bytes.
*/
static inline void
-isc_buffer_init(isc_buffer_t *b, void *base, unsigned int length) {
+isc_buffer_init(isc_buffer_t *restrict b, void *base,
+ const unsigned int length) {
REQUIRE(b != NULL);
*b = (isc_buffer_t){
* This can later be grown as needed and swapped in place.
*/
static inline void
-isc_buffer_initnull(isc_buffer_t *b) {
+isc_buffer_initnull(isc_buffer_t *restrict b) {
*b = (isc_buffer_t){
.link = ISC_LINK_INITIALIZER,
.magic = ISC_BUFFER_MAGIC,
* it will cause an assertion failure.
*/
static inline void
-isc_buffer_invalidate(isc_buffer_t *b) {
+isc_buffer_invalidate(isc_buffer_t *restrict b) {
REQUIRE(ISC_BUFFER_VALID(b));
REQUIRE(!ISC_LINK_LINKED(b, link));
REQUIRE(b->mctx == NULL);
*\li 'r' points to a region structure.
*/
static inline void
-isc_buffer_region(isc_buffer_t *b, isc_region_t *r) {
+isc_buffer_region(isc_buffer_t *restrict b, isc_region_t *restrict r) {
REQUIRE(ISC_BUFFER_VALID(b));
REQUIRE(r != NULL);
*\li 'r' points to a region structure.
*/
static inline void
-isc_buffer_usedregion(const isc_buffer_t *b, isc_region_t *r) {
+isc_buffer_usedregion(const isc_buffer_t *restrict b,
+ isc_region_t *restrict r) {
REQUIRE(ISC_BUFFER_VALID(b));
REQUIRE(r != NULL);
*\li 'r' points to a region structure.
*/
static inline void
-isc_buffer_availableregion(isc_buffer_t *b, isc_region_t *r) {
+isc_buffer_availableregion(isc_buffer_t *restrict b, isc_region_t *restrict r) {
REQUIRE(ISC_BUFFER_VALID(b));
REQUIRE(r != NULL);
*\li used + n <= length
*/
static inline void
-isc_buffer_add(isc_buffer_t *b, unsigned int n) {
+isc_buffer_add(isc_buffer_t *restrict b, const unsigned int n) {
REQUIRE(ISC_BUFFER_VALID(b));
REQUIRE(b->used + n <= b->length);
*\li used >= n
*/
static inline void
-isc_buffer_subtract(isc_buffer_t *b, unsigned int n) {
+isc_buffer_subtract(isc_buffer_t *restrict b, const unsigned int n) {
REQUIRE(ISC_BUFFER_VALID(b));
REQUIRE(b->used >= n);
*\li used = 0
*/
static inline void
-isc_buffer_clear(isc_buffer_t *b) {
+isc_buffer_clear(isc_buffer_t *restrict b) {
REQUIRE(ISC_BUFFER_VALID(b));
b->used = 0;
*\li 'r' points to a region structure.
*/
static inline void
-isc_buffer_consumedregion(isc_buffer_t *b, isc_region_t *r) {
+isc_buffer_consumedregion(isc_buffer_t *restrict b, isc_region_t *restrict r) {
REQUIRE(ISC_BUFFER_VALID(b));
REQUIRE(r != NULL);
*\li 'r' points to a region structure.
*/
static inline void
-isc_buffer_remainingregion(isc_buffer_t *b, isc_region_t *r) {
+isc_buffer_remainingregion(isc_buffer_t *restrict b, isc_region_t *restrict r) {
REQUIRE(ISC_BUFFER_VALID(b));
REQUIRE(r != NULL);
*\li 'r' points to a region structure.
*/
static inline void
-isc_buffer_activeregion(isc_buffer_t *b, isc_region_t *r) {
+isc_buffer_activeregion(isc_buffer_t *restrict b, isc_region_t *restrict r) {
REQUIRE(ISC_BUFFER_VALID(b));
REQUIRE(r != NULL);
*\li current + n <= used
*/
static inline void
-isc_buffer_setactive(isc_buffer_t *b, unsigned int n) {
+isc_buffer_setactive(isc_buffer_t *restrict b, const unsigned int n) {
REQUIRE(ISC_BUFFER_VALID(b));
REQUIRE(b->current + n <= b->used);
*\li current == 0
*/
static inline void
-isc_buffer_first(isc_buffer_t *b) {
+isc_buffer_first(isc_buffer_t *restrict b) {
REQUIRE(ISC_BUFFER_VALID(b));
b->current = 0;
*\li current + n <= used
*/
static inline void
-isc_buffer_forward(isc_buffer_t *b, unsigned int n) {
+isc_buffer_forward(isc_buffer_t *restrict b, const unsigned int n) {
REQUIRE(ISC_BUFFER_VALID(b));
REQUIRE(b->current + n <= b->used);
*\li n <= current
*/
static inline void
-isc_buffer_back(isc_buffer_t *b, unsigned int n) {
+isc_buffer_back(isc_buffer_t *restrict b, const unsigned int n) {
REQUIRE(ISC_BUFFER_VALID(b));
REQUIRE(n <= b->current);
}
static inline isc_result_t
-isc_buffer_peekuint8(const isc_buffer_t *b, uint8_t *valp) {
+isc_buffer_peekuint8(const isc_buffer_t *restrict b, uint8_t *valp) {
ISC_BUFFER_PEEK_CHECK(b, sizeof(*valp));
uint8_t *cp = isc_buffer_current(b);
}
static inline uint8_t
-isc_buffer_getuint8(isc_buffer_t *b) {
+isc_buffer_getuint8(isc_buffer_t *restrict b) {
uint8_t val = 0;
isc_result_t result = isc_buffer_peekuint8(b, &val);
ENSURE(result == ISC_R_SUCCESS);
}
static inline void
-isc_buffer_putuint8(isc_buffer_t *b, uint8_t val) {
+isc_buffer_putuint8(isc_buffer_t *restrict b, const uint8_t val) {
ISC_BUFFER_PUT_RESERVE(b, val);
uint8_t *cp = isc_buffer_used(b);
}
static inline isc_result_t
-isc_buffer_peekuint16(const isc_buffer_t *b, uint16_t *valp) {
+isc_buffer_peekuint16(const isc_buffer_t *restrict b, uint16_t *valp) {
ISC_BUFFER_PEEK_CHECK(b, sizeof(*valp));
uint8_t *cp = isc_buffer_current(b);
}
static inline uint16_t
-isc_buffer_getuint16(isc_buffer_t *b) {
+isc_buffer_getuint16(isc_buffer_t *restrict b) {
uint16_t val = 0;
isc_result_t result = isc_buffer_peekuint16(b, &val);
ENSURE(result == ISC_R_SUCCESS);
}
static inline void
-isc_buffer_putuint16(isc_buffer_t *b, uint16_t val) {
+isc_buffer_putuint16(isc_buffer_t *restrict b, const uint16_t val) {
ISC_BUFFER_PUT_RESERVE(b, val);
uint8_t *cp = isc_buffer_used(b);
}
static inline isc_result_t
-isc_buffer_peekuint32(const isc_buffer_t *b, uint32_t *valp) {
+isc_buffer_peekuint32(const isc_buffer_t *restrict b, uint32_t *valp) {
ISC_BUFFER_PEEK_CHECK(b, sizeof(*valp));
uint8_t *cp = isc_buffer_current(b);
}
uint32_t
-isc_buffer_getuint32(isc_buffer_t *b) {
+isc_buffer_getuint32(isc_buffer_t *restrict b) {
uint32_t val = 0;
isc_result_t result = isc_buffer_peekuint32(b, &val);
ENSURE(result == ISC_R_SUCCESS);
}
static inline void
-isc_buffer_putuint32(isc_buffer_t *b, uint32_t val) {
+isc_buffer_putuint32(isc_buffer_t *restrict b, const uint32_t val) {
ISC_BUFFER_PUT_RESERVE(b, val);
uint8_t *cp = isc_buffer_used(b);
}
static inline isc_result_t
-isc_buffer_peekuint48(const isc_buffer_t *b, uint64_t *valp) {
+isc_buffer_peekuint48(const isc_buffer_t *restrict b, uint64_t *valp) {
ISC_BUFFER_PEEK_CHECK(b, 6); /* 48-bits */
uint8_t *cp = isc_buffer_current(b);
}
static inline uint64_t
-isc_buffer_getuint48(isc_buffer_t *b) {
+isc_buffer_getuint48(isc_buffer_t *restrict b) {
uint64_t val = 0;
isc_result_t result = isc_buffer_peekuint48(b, &val);
ENSURE(result == ISC_R_SUCCESS);
}
static inline void
-isc_buffer_putuint48(isc_buffer_t *b, uint64_t val) {
+isc_buffer_putuint48(isc_buffer_t *restrict b, const uint64_t val) {
ISC_BUFFER_PUT_RESERVE(b, val);
uint8_t *cp = isc_buffer_used(b);
}
static inline void
-isc_buffer_putmem(isc_buffer_t *b, const unsigned char *base,
- unsigned int length) {
+isc_buffer_putmem(isc_buffer_t *restrict b, const unsigned char *restrict base,
+ const unsigned int length) {
REQUIRE(ISC_BUFFER_VALID(b));
if (b->mctx) {
*\li The used pointer in 'b' is advanced by strlen('source').
*/
static inline void
-isc_buffer_putstr(isc_buffer_t *b, const char *source) {
+isc_buffer_putstr(isc_buffer_t *restrict b, const char *restrict source) {
unsigned int length;
unsigned char *cp;
}
static inline void
-isc_buffer_reinit(isc_buffer_t *b, void *base, unsigned int length) {
+isc_buffer_reinit(isc_buffer_t *restrict b, void *base,
+ const unsigned int length) {
/*
* Re-initialize the buffer enough to reconfigure the base of the
* buffer. We will swap in the new buffer, after copying any
}
static inline void
-isc_buffer_trycompact(isc_buffer_t *b) {
+isc_buffer_trycompact(isc_buffer_t *restrict b) {
if (isc_buffer_consumedlength(b) >= isc_buffer_remaininglength(b)) {
isc_buffer_compact(b);
}
}
static inline void
-isc_buffer_compact(isc_buffer_t *b) {
+isc_buffer_compact(isc_buffer_t *restrict b) {
unsigned int length;
void *src;
}
static inline void
-isc_buffer_allocate(isc_mem_t *mctx, isc_buffer_t **dbufp,
- unsigned int length) {
+isc_buffer_allocate(isc_mem_t *mctx, isc_buffer_t **restrict dbufp,
+ const unsigned int length) {
REQUIRE(dbufp != NULL && *dbufp == NULL);
isc_buffer_t *dbuf = isc_mem_get(mctx, sizeof(*dbuf) + length);
}
static inline void
-isc_buffer_setmctx(isc_buffer_t *b, isc_mem_t *mctx) {
+isc_buffer_setmctx(isc_buffer_t *restrict b, isc_mem_t *mctx) {
REQUIRE(ISC_BUFFER_VALID(b));
b->mctx = mctx;
}
static inline void
-isc_buffer_clearmctx(isc_buffer_t *b) {
+isc_buffer_clearmctx(isc_buffer_t *restrict b) {
REQUIRE(ISC_BUFFER_VALID(b));
if (b->dynamic) {
}
static inline isc_result_t
-isc_buffer_reserve(isc_buffer_t *dbuf, unsigned int size) {
+isc_buffer_reserve(isc_buffer_t *restrict dbuf, const unsigned int size) {
REQUIRE(ISC_BUFFER_VALID(dbuf));
size_t len;
}
static inline void
-isc_buffer_free(isc_buffer_t **dbufp) {
+isc_buffer_free(isc_buffer_t **restrict dbufp) {
REQUIRE(dbufp != NULL && ISC_BUFFER_VALID(*dbufp));
REQUIRE((*dbufp)->mctx != NULL);
}
static inline isc_result_t
-isc_buffer_dup(isc_mem_t *mctx, isc_buffer_t **dstp, const isc_buffer_t *src) {
+isc_buffer_dup(isc_mem_t *mctx, isc_buffer_t **restrict dstp,
+ const isc_buffer_t *restrict src) {
isc_buffer_t *dst = NULL;
isc_region_t region;
isc_result_t result;
}
static inline isc_result_t
-isc_buffer_copyregion(isc_buffer_t *b, const isc_region_t *r) {
+isc_buffer_copyregion(isc_buffer_t *restrict b,
+ const isc_region_t *restrict r) {
isc_result_t result;
REQUIRE(ISC_BUFFER_VALID(b));
}
static inline isc_result_t
-isc_buffer_printf(isc_buffer_t *b, const char *format, ...) {
+isc_buffer_printf(isc_buffer_t *restrict b, const char *restrict format, ...) {
va_list ap;
int n;
isc_result_t result;