void WS_Init(struct ws *ws, const char *id, void *space, unsigned len) { DSL(0x02, SLT_Debug, 0, "WS_Init(%p, \"%s\", %p, %u)", ws, id, space, len); assert(space != NULL); memset(ws, 0, sizeof *ws); ws->magic = WS_MAGIC; ws->s = space; assert(PAOK(space)); ws->e = ws->s + len; assert(PAOK(len)); ws->f = ws->s; ws->id = id; WS_Assert(ws); }
void WS_Assert(const struct ws *ws) { CHECK_OBJ_NOTNULL(ws, WS_MAGIC); DSL(0x02, SLT_Debug, 0, "WS(%p = (%s, %p %u %u %u)", ws, ws->id, ws->s, pdiff(ws->s, ws->f), ws->r == NULL ? 0 : pdiff(ws->f, ws->r), pdiff(ws->s, ws->e)); assert(ws->s != NULL); assert(PAOK(ws->s)); assert(ws->e != NULL); assert(PAOK(ws->e)); assert(ws->s < ws->e); assert(ws->f >= ws->s); assert(ws->f <= ws->e); assert(PAOK(ws->f)); if (ws->r) { assert(ws->r > ws->s); assert(ws->r <= ws->e); assert(PAOK(ws->r)); } }
void WS_Assert(const struct ws *ws) { CHECK_OBJ_NOTNULL(ws, WS_MAGIC); DSL(DBG_WORKSPACE, 0, "WS(%p = (%s, %p %u %u %u)", ws, ws->id, ws->s, pdiff(ws->s, ws->f), ws->r == NULL ? 0 : pdiff(ws->f, ws->r), pdiff(ws->s, ws->e)); assert(ws->s != NULL); assert(PAOK(ws->s)); assert(ws->e != NULL); assert(PAOK(ws->e)); assert(ws->s < ws->e); assert(ws->f >= ws->s); assert(ws->f <= ws->e); assert(PAOK(ws->f)); if (ws->r) { assert(ws->r > ws->s); assert(ws->r <= ws->e); assert(PAOK(ws->r)); } assert(*ws->e == 0x15); }
void WS_Init(struct ws *ws, const char *id, void *space, unsigned len) { DSL(DBG_WORKSPACE, 0, "WS_Init(%p, \"%s\", %p, %u)", ws, id, space, len); assert(space != NULL); INIT_OBJ(ws, WS_MAGIC); ws->s = space; assert(PAOK(space)); len = PRNDDN(len - 1); ws->e = ws->s + len; *ws->e = 0x15; ws->f = ws->s; assert(id[0] & 0x40); assert(strlen(id) < sizeof ws->id); strcpy(ws->id, id); WS_Assert(ws); }