void vmod_workspace_overflow(VRT_CTX, VCL_ENUM which) { struct ws *ws; CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC); ws = wsfind(ctx, which); WS_Assert(ws); WS_MarkOverflow(ws); }
VCL_BOOL vmod_workspace_overflowed(VRT_CTX, VCL_ENUM which) { struct ws *ws; CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC); ws = wsfind(ctx, which); WS_Assert(ws); return (WS_Overflowed(ws)); }
void vmod_workspace_reset(VRT_CTX, VCL_ENUM which) { struct ws *ws; CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC); ws = wsfind(ctx, which); WS_Assert(ws); WS_Reset(ws, debug_ws_snap); }
void vmod_workspace_snap(VRT_CTX, VCL_ENUM which) { struct ws *ws; CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC); ws = wsfind(ctx, which); WS_Assert(ws); debug_ws_snap = WS_Snapshot(ws); }
VCL_INT vmod_workspace_free(VRT_CTX, VCL_ENUM which) { struct ws *ws; CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC); ws = wsfind(ctx, which); WS_Assert(ws); AZ(ws->r); return pdiff(ws->f, ws->e); }
void vmod_workspace_allocate(VRT_CTX, VCL_ENUM which, VCL_INT size) { struct ws *ws; char *s; CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC); ws = wsfind(ctx, which); WS_Assert(ws); AZ(ws->r); s = WS_Alloc(ws, size); if (!s) return; memset(s, '\0', size); }