2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-31 06:25:31 +00:00

Call the macros from within the compiled functions. This puts the implementation in one place (buffer.h) and the REQUIRE() checking in buffer.c

This commit is contained in:
Michael Graff
2000-04-27 02:12:10 +00:00
parent e1747e09e7
commit d8d845eb47
2 changed files with 21 additions and 76 deletions

View File

@@ -33,14 +33,7 @@ isc__buffer_init(isc_buffer_t *b, void *base, unsigned int length) {
REQUIRE(b != NULL);
b->magic = ISC_BUFFER_MAGIC;
b->base = base;
b->length = length;
b->used = 0;
b->current = 0;
b->active = 0;
b->mctx = NULL;
ISC_LINK_INIT(b, link);
ISC__BUFFER_INIT(b, base, length);
}
void
@@ -53,12 +46,7 @@ isc__buffer_invalidate(isc_buffer_t *b) {
REQUIRE(!ISC_LINK_LINKED(b, link));
REQUIRE(b->mctx == NULL);
b->magic = 0;
b->base = NULL;
b->length = 0;
b->used = 0;
b->current = 0;
b->active = 0;
ISC__BUFFER_INVALIDATE(b);
}
void
@@ -70,8 +58,7 @@ isc__buffer_region(isc_buffer_t *b, isc_region_t *r) {
REQUIRE(ISC_BUFFER_VALID(b));
REQUIRE(r != NULL);
r->base = b->base;
r->length = b->length;
ISC__BUFFER_REGION(b, r);
}
void
@@ -83,8 +70,7 @@ isc__buffer_usedregion(isc_buffer_t *b, isc_region_t *r) {
REQUIRE(ISC_BUFFER_VALID(b));
REQUIRE(r != NULL);
r->base = b->base;
r->length = b->used;
ISC__BUFFER_USEDREGION(b, r);
}
void
@@ -96,8 +82,7 @@ isc__buffer_availableregion(isc_buffer_t *b, isc_region_t *r) {
REQUIRE(ISC_BUFFER_VALID(b));
REQUIRE(r != NULL);
r->base = (unsigned char *)b->base + b->used;
r->length = b->length - b->used;
ISC__BUFFER_AVAILABLEREGION(b, r);
}
void
@@ -109,7 +94,7 @@ isc__buffer_add(isc_buffer_t *b, unsigned int n) {
REQUIRE(ISC_BUFFER_VALID(b));
REQUIRE(b->used + n <= b->length);
b->used += n;
ISC__BUFFER_ADD(b, n);
}
void
@@ -121,11 +106,7 @@ isc__buffer_subtract(isc_buffer_t *b, unsigned int n) {
REQUIRE(ISC_BUFFER_VALID(b));
REQUIRE(b->used >= n);
b->used -= n;
if (b->current > b->used)
b->current = b->used;
if (b->active > b->used)
b->active = b->used;
ISC__BUFFER_SUBTRACT(b, n);
}
void
@@ -136,9 +117,7 @@ isc__buffer_clear(isc_buffer_t *b) {
REQUIRE(ISC_BUFFER_VALID(b));
b->used = 0;
b->current = 0;
b->active = 0;
ISC__BUFFER_CLEAR(b);
}
void
@@ -150,8 +129,7 @@ isc__buffer_consumedregion(isc_buffer_t *b, isc_region_t *r) {
REQUIRE(ISC_BUFFER_VALID(b));
REQUIRE(r != NULL);
r->base = b->base;
r->length = b->current;
ISC__BUFFER_CONSUMEDREGION(b, r);
}
void
@@ -163,8 +141,7 @@ isc__buffer_remainingregion(isc_buffer_t *b, isc_region_t *r) {
REQUIRE(ISC_BUFFER_VALID(b));
REQUIRE(r != NULL);
r->base = (unsigned char *)b->base + b->current;
r->length = b->used - b->current;
ISC__BUFFER_REMAININGREGION(b, r);
}
void
@@ -176,28 +153,19 @@ isc__buffer_activeregion(isc_buffer_t *b, isc_region_t *r) {
REQUIRE(ISC_BUFFER_VALID(b));
REQUIRE(r != NULL);
if (b->current < b->active) {
r->base = (unsigned char *)b->base + b->current;
r->length = b->active - b->current;
} else {
r->base = NULL;
r->length = 0;
}
ISC__BUFFER_ACTIVEREGION(b, r);
}
void
isc__buffer_setactive(isc_buffer_t *b, unsigned int n) {
unsigned int active;
/*
* Sets the end of the active region 'n' bytes after current.
*/
REQUIRE(ISC_BUFFER_VALID(b));
active = b->current + n;
REQUIRE(active <= b->used);
REQUIRE(b->current + n <= b->used);
b->active = active;
ISC__BUFFER_SETACTIVE(b, n);
}
void
@@ -208,7 +176,7 @@ isc__buffer_first(isc_buffer_t *b) {
REQUIRE(ISC_BUFFER_VALID(b));
b->current = 0;
ISC__BUFFER_FIRST(b);
}
void
@@ -220,7 +188,7 @@ isc__buffer_forward(isc_buffer_t *b, unsigned int n) {
REQUIRE(ISC_BUFFER_VALID(b));
REQUIRE(b->current + n <= b->used);
b->current += n;
ISC__BUFFER_FORWARD(b, n);
}
void
@@ -232,7 +200,7 @@ isc__buffer_back(isc_buffer_t *b, unsigned int n) {
REQUIRE(ISC_BUFFER_VALID(b));
REQUIRE(n <= b->current);
b->current -= n;
ISC__BUFFER_BACK(b, n);
}
void
@@ -283,15 +251,10 @@ isc_buffer_getuint8(isc_buffer_t *b) {
void
isc__buffer_putuint8(isc_buffer_t *b, isc_uint8_t val)
{
unsigned char *cp;
REQUIRE(ISC_BUFFER_VALID(b));
REQUIRE(b->used + 1 <= b->length);
cp = b->base;
cp += b->used;
b->used += 1;
cp[0] = (val & 0x00ff);
ISC__BUFFER_PUTUINT8(b, val);
}
isc_uint16_t
@@ -319,16 +282,10 @@ isc_buffer_getuint16(isc_buffer_t *b) {
void
isc__buffer_putuint16(isc_buffer_t *b, isc_uint16_t val)
{
unsigned char *cp;
REQUIRE(ISC_BUFFER_VALID(b));
REQUIRE(b->used + 2 <= b->length);
cp = b->base;
cp += b->used;
b->used += 2;
cp[0] = (val & 0xff00) >> 8;
cp[1] = (val & 0x00ff);
ISC__BUFFER_PUTUINT16(b, val);
}
isc_uint32_t
@@ -358,30 +315,18 @@ isc_buffer_getuint32(isc_buffer_t *b) {
void
isc__buffer_putuint32(isc_buffer_t *b, isc_uint32_t val)
{
unsigned char *cp;
REQUIRE(ISC_BUFFER_VALID(b));
REQUIRE(b->used + 4 <= b->length);
cp = b->base;
cp += b->used;
b->used += 4;
cp[0] = (unsigned char)((val & 0xff000000) >> 24);
cp[1] = (unsigned char)((val & 0x00ff0000) >> 16);
cp[2] = (unsigned char)((val & 0x0000ff00) >> 8);
cp[3] = (unsigned char)(val & 0x000000ff);
ISC__BUFFER_PUTUINT32(b, val);
}
void
isc__buffer_putmem(isc_buffer_t *b, unsigned char *base, unsigned int length) {
unsigned char *cp;
REQUIRE(ISC_BUFFER_VALID(b));
REQUIRE(b->used + length <= b->length);
cp = (unsigned char *)b->base + b->used;
memcpy(cp, base, length);
b->used += length;
ISC__BUFFER_PUTMEM(b, base, length);
}
void