[master] 2944ad5 Impose a consistent style on include/tbl headers.

Poul-Henning Kamp phk at FreeBSD.org
Tue Jan 3 11:02:06 CET 2017


commit 2944ad5d0487ba21eeab60db0a223635170b5898
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Tue Jan 3 09:59:00 2017 +0000

    Impose a consistent style on include/tbl headers.
    
    Flexelint comments are mandatory, and must bracket all content
    after the initial block comment.
    
    Macros can either be single line "FOO(....)\n" or multiple line
    "FOO(...\n)\n\n"
    
    Any macros defined or called must be #undef'ed by the include/tbl file
    
    include/tbl/style.py checks this.

diff --git a/bin/varnishd/cache/cache.h b/bin/varnishd/cache/cache.h
index 8a9ec6d..96bbaf9 100644
--- a/bin/varnishd/cache/cache.h
+++ b/bin/varnishd/cache/cache.h
@@ -69,7 +69,6 @@ enum req_fsm_nxt {
 enum body_status {
 #define BODYSTATUS(U,l)	BS_##U,
 #include "tbl/body_status.h"
-#undef BODYSTATUS
 };
 
 /*--------------------------------------------------------------------*/
@@ -77,7 +76,6 @@ enum body_status {
 enum req_body_state_e {
 #define REQ_BODY(U)	REQ_BODY_##U,
 #include <tbl/req_body.h>
-#undef REQ_BODY
 };
 
 /*--------------------------------------------------------------------*/
@@ -86,7 +84,6 @@ enum sess_close {
 	SC_NULL = 0,
 #define SESS_CLOSE(nm, stat, err, desc)	SC_##nm,
 #include "tbl/sess_close.h"
-#undef SESS_CLOSE
 };
 
 /*--------------------------------------------------------------------
@@ -95,7 +92,6 @@ enum sess_close {
 enum {
 #define SLTH(tag, ind, req, resp, sdesc, ldesc)	ind,
 #include "tbl/vsl_tags_http.h"
-#undef SLTH
 };
 
 /*--------------------------------------------------------------------*/
@@ -138,14 +134,12 @@ enum req_step {
 	R_STP_NONE = 0,
 #define REQ_STEP(l, u, arg)	R_STP_##u,
 #include "tbl/steps.h"
-#undef REQ_STEP
 };
 
 enum fetch_step {
 	F_STP_NONE = 0,
 #define FETCH_STEP(l, U, arg)	F_STP_##U,
 #include "tbl/steps.h"
-#undef FETCH_STEP
 };
 
 /*--------------------------------------------------------------------*/
@@ -246,7 +240,6 @@ struct http_conn {
 struct acct_req {
 #define ACCT(foo)	uint64_t	foo;
 #include "tbl/acct_fields_req.h"
-#undef ACCT
 };
 
 /*--------------------------------------------------------------------*/
@@ -254,7 +247,6 @@ struct acct_req {
 struct acct_bereq {
 #define ACCT(foo)	uint64_t	foo;
 #include "tbl/acct_fields_bereq.h"
-#undef ACCT
 };
 
 /*--------------------------------------------------------------------*/
@@ -370,7 +362,6 @@ struct storeobj {
 enum boc_state_e {
 #define BOC_STATE(U, l)       BOS_##U,
 #include "tbl/boc_state.h"
-#undef BOC_STATE
 };
 
 struct boc {
@@ -398,28 +389,22 @@ enum obj_attr {
 #define OBJ_VARATTR(U, l)	OA_##U,
 #define OBJ_AUXATTR(U, l)	OA_##U,
 #include "tbl/obj_attr.h"
-#undef OBJ_AUXATTR
-#undef OBJ_VARATTR
-#undef OBJ_FIXATTR
 				OA__MAX,
 };
 
 enum obj_flags {
 #define OBJ_FLAG(U, l, v)       OF_##U = v,
 #include "tbl/obj_attr.h"
-#undef OBJ_FLAG
 };
 
 enum oc_flags {
 #define OC_FLAG(U, l, v)	OC_F_##U = v,
 #include "tbl/oc_flags.h"
-#undef OC_FLAG
 };
 
 enum oc_exp_flags {
 #define OC_EXP_FLAG(U, l, v)	OC_EF_##U = v,
 #include "tbl/oc_exp_flags.h"
-#undef OC_EXP_FLAG
 };
 
 struct objcore {
@@ -498,7 +483,6 @@ struct busyobj {
 
 #define BO_FLAG(l, r, w, d) unsigned	l:1;
 #include "tbl/bo_flags.h"
-#undef BO_FLAG
 
 	/* Timeouts */
 	double			connect_timeout;
@@ -543,7 +527,6 @@ struct req {
 
 #define REQ_FLAG(l, r, w, d) unsigned	l:1;
 #include "tbl/req_flags.h"
-#undef REQ_FLAG
 
 	uint16_t		err_code;
 	const char		*err_reason;
@@ -635,7 +618,6 @@ enum sess_attr {
 #define SESS_ATTR(UP, low, typ, len)	SA_##UP,
 	SA_TRANSPORT,
 #include "tbl/sess_attr.h"
-#undef SESS_ATTR
 	SA_LAST
 };
 
@@ -817,9 +799,14 @@ uint16_t HTTP1_DissectResponse(struct http_conn *, struct http *resp,
     const struct http *req);
 unsigned HTTP1_Write(const struct worker *w, const struct http *hp, const int*);
 
+#define HTTPH_R_PASS	(1 << 0)	/* Request (c->b) in pass mode */
+#define HTTPH_R_FETCH	(1 << 1)	/* Request (c->b) for fetch */
+#define HTTPH_A_INS	(1 << 2)	/* Response (b->o) for insert */
+#define HTTPH_A_PASS	(1 << 3)	/* Response (b->o) for pass */
+
 #define HTTPH(a, b, c) extern char b[];
 #include "tbl/http_headers.h"
-#undef HTTPH
+
 extern const char H__Status[];
 extern const char H__Proto[];
 extern const char H__Reason[];
@@ -861,7 +848,6 @@ struct VSC_C_lck *Lck_CreateClass(const char *name);
 
 #define LOCK(nam) extern struct VSC_C_lck *lck_##nam;
 #include "tbl/locks.h"
-#undef LOCK
 
 /* cache_mempool.c */
 void MPL_AssertSane(void *item);
@@ -989,7 +975,6 @@ enum htc_status_e HTC_RxStuff(struct http_conn *, htc_complete_f *,
 	int SES_Get_##low(const struct sess *sp, typ **dst);		\
 	void SES_Reserve_##low(struct sess *sp, typ **dst);
 #include "tbl/sess_attr.h"
-#undef SESS_ATTR
 
 void SES_Set_String_Attr(struct sess *sp, enum sess_attr a, const char *src);
 const char *SES_Get_String_Attr(const struct sess *sp, enum sess_attr a);
@@ -1054,7 +1039,6 @@ const char *VCL_Return_Name(unsigned);
     void VCL_##l##_method(struct vcl *, struct worker *, struct req *, \
 	struct busyobj *bo, void *specific);
 #include "tbl/vcl_returns.h"
-#undef VCL_MET_MAC
 
 /* cache_vrt.c */
 
diff --git a/bin/varnishd/cache/cache_backend.c b/bin/varnishd/cache/cache_backend.c
index 55b2a13..58a89bd 100644
--- a/bin/varnishd/cache/cache_backend.c
+++ b/bin/varnishd/cache/cache_backend.c
@@ -173,7 +173,6 @@ vbe_dir_finish(const struct director *d, struct worker *wrk,
 	bp->vsc->conn--;
 #define ACCT(foo)	bp->vsc->foo += bo->acct.foo;
 #include "tbl/acct_fields_bereq.h"
-#undef ACCT
 	Lck_Unlock(&bp->mtx);
 	bo->htc = NULL;
 }
diff --git a/bin/varnishd/cache/cache_backend_probe.c b/bin/varnishd/cache/cache_backend_probe.c
index 6cd51e6..22a5d98 100644
--- a/bin/varnishd/cache/cache_backend_probe.c
+++ b/bin/varnishd/cache/cache_backend_probe.c
@@ -74,7 +74,6 @@ struct vbp_target {
 	/* Collected statistics */
 #define BITMAP(n, c, t, b)	uint64_t	n;
 #include "tbl/backend_poll.h"
-#undef BITMAP
 
 	double				last;
 	double				avg;
@@ -116,7 +115,6 @@ vbp_start_poke(struct vbp_target *vt)
 #define BITMAP(n, c, t, b) \
 	vt->n <<= 1;
 #include "tbl/backend_poll.h"
-#undef BITMAP
 
 	vt->last = 0;
 	vt->resp_buf[0] = '\0';
@@ -161,7 +159,6 @@ vbp_update_backend(struct vbp_target *vt)
 #define BITMAP(n, c, t, b) \
 		bits[i++] = (vt->n & 1) ? c : '-';
 #include "tbl/backend_poll.h"
-#undef BITMAP
 		bits[i] = '\0';
 
 		if (vt->good >= vt->threshold) {
@@ -201,7 +198,6 @@ vbp_reset(struct vbp_target *vt)
 #define BITMAP(n, c, t, b) \
 	vt->n = 0;
 #include "tbl/backend_poll.h"
-#undef BITMAP
 
 	for (u = 0; u < vt->initial; u++) {
 		vbp_start_poke(vt);
@@ -429,7 +425,6 @@ vbp_health_one(struct cli *cli, const struct vbp_target *vt)
 		if ((vt->n != 0) || (b))			\
 			vbp_bitmap(cli, (c), vt->n, (t));
 #include "tbl/backend_poll.h"
-#undef BITMAP
 }
 
 void
diff --git a/bin/varnishd/cache/cache_ban_build.c b/bin/varnishd/cache/cache_ban_build.c
index 2ec9544..0a3378a 100644
--- a/bin/varnishd/cache/cache_ban_build.c
+++ b/bin/varnishd/cache/cache_ban_build.c
@@ -58,7 +58,6 @@ static const struct pvar {
 } pvars[] = {
 #define PVAR(a, b, c)	{ (a), (b), (c) },
 #include "tbl/ban_vars.h"
-#undef PVAR
 	{ 0, 0, 0}
 };
 
diff --git a/bin/varnishd/cache/cache_fetch.c b/bin/varnishd/cache/cache_fetch.c
index 82e873c..9c4841d 100644
--- a/bin/varnishd/cache/cache_fetch.c
+++ b/bin/varnishd/cache/cache_fetch.c
@@ -967,7 +967,6 @@ vbf_fetch_thread(struct worker *wrk, void *priv)
 			stp = vbf_stp_##l arg;				\
 			break;
 #include "tbl/steps.h"
-#undef FETCH_STEP
 		default:
 			WRONG("Illegal fetch_step");
 		}
diff --git a/bin/varnishd/cache/cache_http.c b/bin/varnishd/cache/cache_http.c
index 6c39c3c..23bad44 100644
--- a/bin/varnishd/cache/cache_http.c
+++ b/bin/varnishd/cache/cache_http.c
@@ -41,7 +41,6 @@
 
 #define HTTPH(a, b, c) char b[] = "*" a ":";
 #include "tbl/http_headers.h"
-#undef HTTPH
 
 const char H__Status[]	= "\010:status:";
 const char H__Proto[]	= "\007:proto:";
@@ -671,7 +670,7 @@ http_DoConnection(struct http *hp)
 		    strlen(a) == u && !strncasecmp(a, b, u))	\
 			return (SC_RX_BAD);
 #include "tbl/http_headers.h"
-#undef HTTPH
+
 /*lint -restore */
 
 		v = http_findhdr(hp, u, b);
@@ -813,7 +812,6 @@ http_EstimateWS(const struct http *fm, unsigned how)
 		if (((c) & how) && http_IsHdr(&fm->hd[u], (b))) \
 			continue;
 #include "tbl/http_headers.h"
-#undef HTTPH
 		l += Tlen(fm->hd[u]) + 1L;
 	}
 	return (PRNDUP(l + 1L));
@@ -855,7 +853,6 @@ HTTP_Encode(const struct http *fm, uint8_t *p0, unsigned l, unsigned how)
 		if (((c) & how) && http_IsHdr(&fm->hd[u], (b))) \
 			continue;
 #include "tbl/http_headers.h"
-#undef HTTPH
 		http_VSLH(fm, u);
 		w = Tlen(fm->hd[u]) + 1L;
 		assert(p + w + 1 <= e);
@@ -1049,7 +1046,6 @@ http_filterfields(struct http *to, const struct http *fm, unsigned how)
 		if (((c) & how) && http_IsHdr(&fm->hd[u], (b))) \
 			continue;
 #include "tbl/http_headers.h"
-#undef HTTPH
 		assert (to->nhd < to->shd);
 		to->hd[to->nhd] = fm->hd[u];
 		to->hdf[to->nhd] = 0;
@@ -1221,5 +1217,4 @@ HTTP_Init(void)
 
 #define HTTPH(a, b, c) b[0] = (char)strlen(b + 1);
 #include "tbl/http_headers.h"
-#undef HTTPH
 }
diff --git a/bin/varnishd/cache/cache_lck.c b/bin/varnishd/cache/cache_lck.c
index 74cc5b9..4081d60 100644
--- a/bin/varnishd/cache/cache_lck.c
+++ b/bin/varnishd/cache/cache_lck.c
@@ -250,7 +250,6 @@ Lck_CreateClass(const char *name)
 
 #define LOCK(nam) struct VSC_C_lck *lck_##nam;
 #include "tbl/locks.h"
-#undef LOCK
 
 void
 LCK_Init(void)
@@ -262,5 +261,4 @@ LCK_Init(void)
 #endif
 #define LOCK(nam)	lck_##nam = Lck_CreateClass(#nam);
 #include "tbl/locks.h"
-#undef LOCK
 }
diff --git a/bin/varnishd/cache/cache_panic.c b/bin/varnishd/cache/cache_panic.c
index 68253ff..eb10008 100644
--- a/bin/varnishd/cache/cache_panic.c
+++ b/bin/varnishd/cache/cache_panic.c
@@ -74,7 +74,6 @@ body_status_2str(enum body_status e)
 	switch(e) {
 #define BODYSTATUS(U,l)	case BS_##U: return (#l);
 #include "tbl/body_status.h"
-#undef BODYSTATUS
 	default:
 		return ("?");
 	}
@@ -88,7 +87,6 @@ reqbody_status_2str(enum req_body_state_e e)
 	switch (e) {
 #define REQ_BODY(U) case REQ_BODY_##U: return("R_BODY_" #U);
 #include "tbl/req_body.h"
-#undef REQ_BODY
 	default:
 		return("?");
 	}
@@ -102,7 +100,6 @@ boc_state_2str(enum boc_state_e e)
 	switch (e) {
 #define BOC_STATE(U,l) case BOS_##U: return(#l);
 #include "tbl/boc_state.h"
-#undef BOC_STATE
 	default:
 		return ("?");
 	}
@@ -118,7 +115,6 @@ sess_close_2str(enum sess_close sc, int want_desc)
 #define SESS_CLOSE(nm, s, err, desc)			\
 	case SC_##nm: return(want_desc ? desc : #nm);
 #include "tbl/sess_close.h"
-#undef SESS_CLOSE
 
 	default:		return(want_desc ? "(invalid)" : "INVALID");
 	}
@@ -272,14 +268,13 @@ pan_objcore(struct vsb *vsb, const char *typ, const struct objcore *oc)
 #define OC_FLAG(U, l, v) \
 	if (oc->flags & v) { VSB_printf(vsb, "%s" #l, p); p = ", "; }
 #include "tbl/oc_flags.h"
-#undef OC_FLAG
 	VSB_printf(vsb, "},\n");
 	VSB_printf(vsb, "exp_flags = {");
 	p = "";
 #define OC_EXP_FLAG(U, l, v) \
 	if (oc->exp_flags & v) { VSB_printf(vsb, "%s" #l, p); p = ", "; }
 #include "tbl/oc_exp_flags.h"
-#undef OC_EXP_FLAG
+
 	VSB_printf(vsb, "},\n");
 	if (oc->boc != NULL)
 		pan_boc(vsb, oc->boc);
@@ -378,7 +373,6 @@ pan_busyobj(struct vsb *vsb, const struct busyobj *bo)
 #define BO_FLAG(l, r, w, d) \
 	if(bo->l) { VSB_printf(vsb, "%s" #l, p); p = ", "; }
 #include "tbl/bo_flags.h"
-#undef BO_FLAG
 	/*lint -restore */
 	VSB_printf(vsb, "},\n");
 
@@ -439,7 +433,6 @@ pan_req(struct vsb *vsb, const struct req *req)
 	switch (req->req_step) {
 #define REQ_STEP(l, u, arg) case R_STP_##u: stp = "R_STP_" #u; break;
 #include "tbl/steps.h"
-#undef REQ_STEP
 		default: stp = NULL;
 	}
 	if (stp != NULL)
@@ -482,7 +475,6 @@ pan_req(struct vsb *vsb, const struct req *req)
 	VSB_indent(vsb, 2);
 #define REQ_FLAG(l, r, w, d) if(req->l) VSB_printf(vsb, #l ",\n");
 #include "tbl/req_flags.h"
-#undef REQ_FLAG
 	VSB_indent(vsb, -2);
 	VSB_printf(vsb, "},\n");
 
diff --git a/bin/varnishd/cache/cache_req.c b/bin/varnishd/cache/cache_req.c
index 71d7733..62f8369 100644
--- a/bin/varnishd/cache/cache_req.c
+++ b/bin/varnishd/cache/cache_req.c
@@ -126,7 +126,6 @@ Req_Release(struct req *req)
 #define ACCT(foo) \
 	AZ(req->acct.foo);
 #include "tbl/acct_fields_req.h"
-#undef ACCT
 
 	AZ(req->vcl);
 	if (req->vsl->wid)
diff --git a/bin/varnishd/cache/cache_req_fsm.c b/bin/varnishd/cache/cache_req_fsm.c
index f5ea3ae..694260e 100644
--- a/bin/varnishd/cache/cache_req_fsm.c
+++ b/bin/varnishd/cache/cache_req_fsm.c
@@ -863,7 +863,6 @@ CNT_Request(struct worker *wrk, struct req *req)
 			nxt = cnt_##l arg; \
 			break;
 #include "tbl/steps.h"
-#undef REQ_STEP
 		default:
 			WRONG("State engine misfire");
 		}
@@ -903,5 +902,4 @@ CNT_AcctLogCharge(struct dstat *ds, struct req *req)
 	ds->s_##foo += a->foo;		\
 	a->foo = 0;
 #include "tbl/acct_fields_req.h"
-#undef ACCT
 }
diff --git a/bin/varnishd/cache/cache_session.c b/bin/varnishd/cache/cache_session.c
index c65ad95..cc148b3 100644
--- a/bin/varnishd/cache/cache_session.c
+++ b/bin/varnishd/cache/cache_session.c
@@ -142,7 +142,6 @@ ses_reserve_attr(struct sess *sp, enum sess_attr a, void **dst, int sz)
 	}
 
 #include "tbl/sess_attr.h"
-#undef SESS_ATTR
 
 void
 SES_Set_String_Attr(struct sess *sp, enum sess_attr a, const char *src)
@@ -155,7 +154,6 @@ SES_Set_String_Attr(struct sess *sp, enum sess_attr a, const char *src)
 	switch (a) {
 #define SESS_ATTR(UP, low, typ, len)	case SA_##UP: assert(len < 0); break;
 #include "tbl/sess_attr.h"
-#undef SESS_ATTR
 	default:  WRONG("wrong sess_attr");
 	}
 
@@ -173,7 +171,6 @@ SES_Get_String_Attr(const struct sess *sp, enum sess_attr a)
 	switch (a) {
 #define SESS_ATTR(UP, low, typ, len)	case SA_##UP: assert(len < 0); break;
 #include "tbl/sess_attr.h"
-#undef SESS_ATTR
 	default:  WRONG("wrong sess_attr");
 	}
 
@@ -483,7 +480,7 @@ ses_close_acct(enum sess_close reason)
 		i = err;				\
 		break;
 #include "tbl/sess_close.h"
-#undef SESS_CLOSE
+
 	default:
 		WRONG("Wrong event in ses_close_acct");
 	}
diff --git a/bin/varnishd/cache/cache_vcl.c b/bin/varnishd/cache/cache_vcl.c
index 2379d8e..f284575 100644
--- a/bin/varnishd/cache/cache_vcl.c
+++ b/bin/varnishd/cache/cache_vcl.c
@@ -225,7 +225,6 @@ VCL_Return_Name(unsigned r)
 	case VCL_RET_##U:	\
 		return(#l);
 #include "tbl/vcl_returns.h"
-#undef VCL_RET_MAC
 	default:
 		return (NULL);
 	}
@@ -240,7 +239,6 @@ VCL_Method_Name(unsigned m)
 	case VCL_MET_##upper:			\
 		return (#upper);
 #include "tbl/vcl_returns.h"
-#undef VCL_MET_MAC
 	default:
 		return (NULL);
 	}
@@ -1056,7 +1054,6 @@ VCL_##func##_method(struct vcl *vcl, struct worker *wrk,		\
 }
 
 #include "tbl/vcl_returns.h"
-#undef VCL_MET_MAC
 
 /*--------------------------------------------------------------------*/
 
diff --git a/bin/varnishd/cache/cache_vrt_var.c b/bin/varnishd/cache/cache_vrt_var.c
index 4932b26..34be2a2 100644
--- a/bin/varnishd/cache/cache_vrt_var.c
+++ b/bin/varnishd/cache/cache_vrt_var.c
@@ -199,7 +199,6 @@ VRT_r_beresp_##field(VRT_CTX)						\
 	VBERESPR##r(l) \
 	VBERESPW##w(l)
 #include "tbl/bo_flags.h"
-#undef BO_FLAG
 
 /*--------------------------------------------------------------------*/
 
@@ -649,7 +648,6 @@ VRT_r_req_##field(VRT_CTX)						\
 	VREQR##r(l) \
 	VREQW##w(l)
 #include "tbl/req_flags.h"
-#undef REQ_FLAG
 
 /*--------------------------------------------------------------------*/
 
diff --git a/bin/varnishd/common/params.h b/bin/varnishd/common/params.h
index aadb0ea..269f188 100644
--- a/bin/varnishd/common/params.h
+++ b/bin/varnishd/common/params.h
@@ -43,14 +43,12 @@
 enum debug_bits {
 #define DEBUG_BIT(U, l, d) DBG_##U,
 #include "tbl/debug_bits.h"
-#undef DEBUG_BIT
        DBG_Reserved
 };
 
 enum feature_bits {
 #define FEATURE_BIT(U, l, d, ld) FEATURE_##U,
 #include "tbl/feature_bits.h"
-#undef FEATURE_BIT
        FEATURE_Reserved
 };
 
@@ -73,7 +71,6 @@ struct params {
 #define	ptyp_vsl_reclen	unsigned
 #define PARAM(nm, ty, mi, ma, de, un, fl, st, lt, fn) ptyp_##ty nm;
 #include <tbl/params.h>
-#undef PARAM
 #undef ptyp_bool
 #undef ptyp_bytes
 #undef ptyp_bytes_u
diff --git a/bin/varnishd/hpack/vhp.h b/bin/varnishd/hpack/vhp.h
index 0f9852d..ae67136 100644
--- a/bin/varnishd/hpack/vhp.h
+++ b/bin/varnishd/hpack/vhp.h
@@ -69,7 +69,6 @@ enum vhd_ret_e {
 #define VHD_RET(NAME, VAL, DESC)		\
 	VHD_##NAME = VAL,
 #include "tbl/vhd_return.h"
-#undef VHD_RET
 };
 
 struct vhd_int {
diff --git a/bin/varnishd/hpack/vhp_decode.c b/bin/varnishd/hpack/vhp_decode.c
index 0e2d34c..3fa4b5e 100644
--- a/bin/varnishd/hpack/vhp_decode.c
+++ b/bin/varnishd/hpack/vhp_decode.c
@@ -60,13 +60,11 @@ enum vhd_func_e {
 #define VHD_FSM_FUNC(NAME, func)		\
 	VHD_F_##NAME,
 #include "tbl/vhd_fsm_funcs.h"
-#undef VHD_FSM_FUNC
 	VHD_F__MAX,
 };
 #define VHD_FSM_FUNC(NAME, func)		\
 	static vhd_state_f func;
 #include "tbl/vhd_fsm_funcs.h"
-#undef VHD_FSM_FUNC
 
 /* States */
 enum vhd_state_e {
@@ -74,7 +72,6 @@ enum vhd_state_e {
 #define VHD_FSM(STATE, FUNC, arg1, arg2)	\
 	VHD_S_##STATE,
 #include "tbl/vhd_fsm.h"
-#undef VHD_FSM
 	VHD_S__MAX,
 };
 static const struct vhd_state {
@@ -86,7 +83,6 @@ static const struct vhd_state {
 #define VHD_FSM(STATE, FUNC, arg1, arg2)	\
 	[VHD_S_##STATE] = { #STATE, VHD_F_##FUNC, arg1, arg2 },
 #include "tbl/vhd_fsm.h"
-#undef VHD_FSM
 };
 
 /* Utility functions */
@@ -508,7 +504,6 @@ VHD_Error(enum vhd_ret_e r)
 	case VHD_##NAME:				\
 		return ("VHD_" #NAME " (" DESC ")");
 #include "tbl/vhd_return.h"
-#undef VHD_RET
 	default:
 		return ("VHD_UNKNOWN");
 	}
@@ -555,7 +550,6 @@ VHD_Decode(struct vhd_decode *d, struct vht_table *tbl,
 			ret = func(ctx, first);	\
 			break;
 #include "tbl/vhd_fsm_funcs.h"
-#undef VHD_FSM_FUNC
 		default:
 			WRONG("Undefined vhd function");
 			break;
diff --git a/bin/varnishd/hpack/vhp_gen_hufdec.c b/bin/varnishd/hpack/vhp_gen_hufdec.c
index a15dbb7..5f86440 100644
--- a/bin/varnishd/hpack/vhp_gen_hufdec.c
+++ b/bin/varnishd/hpack/vhp_gen_hufdec.c
@@ -47,7 +47,6 @@ static const struct {
 } huf[] = {
 #define HPH(c, h, l) { h, l, (char)c },
 #include "tbl/vhp_huffman.h"
-#undef HPH
 };
 
 #define HUF_LEN (sizeof huf / sizeof huf[0])
diff --git a/bin/varnishd/hpack/vhp_table.c b/bin/varnishd/hpack/vhp_table.c
index 547a446..4f59501 100644
--- a/bin/varnishd/hpack/vhp_table.c
+++ b/bin/varnishd/hpack/vhp_table.c
@@ -72,7 +72,6 @@ static const struct vht_static static_table[] = {
 #define HPS(NUM, NAME, VAL)			\
 	{ NAME, sizeof NAME - 1, VAL, sizeof VAL - 1 },
 #include "tbl/vhp_static.h"
-#undef HPS
 };
 
 #define TBLSIZE(tbl) ((tbl)->size + (tbl)->n * VHT_ENTRY_SIZE)
diff --git a/bin/varnishd/http2/cache_http2_deliver.c b/bin/varnishd/http2/cache_http2_deliver.c
index 7666a4d..fc0c56e 100644
--- a/bin/varnishd/http2/cache_http2_deliver.c
+++ b/bin/varnishd/http2/cache_http2_deliver.c
@@ -56,7 +56,6 @@ struct hpack_static {
 static const struct hpack_static hp_static[] = {
 #define HPS(I,N,V) [I] = { I, N ":", V },
 #include "tbl/vhp_static.h"
-#undef HPS
 	{ 0, "\377:", ""}		// Terminator
 };
 
diff --git a/bin/varnishd/mgt/mgt_cli.c b/bin/varnishd/mgt/mgt_cli.c
index 84a853a..79f4b90 100644
--- a/bin/varnishd/mgt/mgt_cli.c
+++ b/bin/varnishd/mgt/mgt_cli.c
@@ -55,12 +55,10 @@
 #define CLI_CMD(U,l,s,h,d,m,M) \
 const struct cli_cmd_desc CLICMD_##U[1] = {{ l, s, h, d, m, M }};
 #include "tbl/cli_cmds.h"
-#undef CLI_CMD
 
 static const struct cli_cmd_desc *cmds[] = {
 #define CLI_CMD(U,l,s,h,d,m,M) CLICMD_##U,
 #include "tbl/cli_cmds.h"
-#undef CLI_CMD
 };
 
 static const int ncmds = sizeof cmds / sizeof cmds[0];
diff --git a/bin/varnishd/mgt/mgt_main.c b/bin/varnishd/mgt/mgt_main.c
index c0bdd6e..5242370 100644
--- a/bin/varnishd/mgt/mgt_main.c
+++ b/bin/varnishd/mgt/mgt_main.c
@@ -102,7 +102,6 @@ mgt_DumpRstVsl(void)
 
 #define SLTM(tag, flags, sdesc, ldesc) mgt_sltm(#tag, sdesc, ldesc);
 #include "tbl/vsl_tags.h"
-#undef SLTM
 }
 
 /*--------------------------------------------------------------------*/
diff --git a/bin/varnishd/mgt/mgt_param_bits.c b/bin/varnishd/mgt/mgt_param_bits.c
index 100d961..3706f27 100644
--- a/bin/varnishd/mgt/mgt_param_bits.c
+++ b/bin/varnishd/mgt/mgt_param_bits.c
@@ -111,7 +111,6 @@ bit_tweak(struct vsb *vsb, uint8_t *p, unsigned l, const char *arg,
 static const char * const VSL_tags[256] = {
 #  define SLTM(foo,flags,sdesc,ldesc) [SLT_##foo] = #foo,
 #  include "tbl/vsl_tags.h"
-#  undef SLTM
 	NULL
 };
 
@@ -156,7 +155,6 @@ tweak_vsl_mask(struct vsb *vsb, const struct parspec *par, const char *arg)
 static const char * const debug_tags[] = {
 #  define DEBUG_BIT(U, l, d) [DBG_##U] = #l,
 #  include "tbl/debug_bits.h"
-#  undef DEBUG_BIT
        NULL
 };
 
@@ -196,7 +194,6 @@ tweak_debug(struct vsb *vsb, const struct parspec *par, const char *arg)
 static const char * const feature_tags[] = {
 #  define FEATURE_BIT(U, l, d, ld) [FEATURE_##U] = #l,
 #  include "tbl/feature_bits.h"
-#  undef FEATURE_BIT
        NULL
 };
 
diff --git a/bin/varnishd/mgt/mgt_param_tbl.c b/bin/varnishd/mgt/mgt_param_tbl.c
index 5d4d451..b25539e 100644
--- a/bin/varnishd/mgt/mgt_param_tbl.c
+++ b/bin/varnishd/mgt/mgt_param_tbl.c
@@ -46,7 +46,6 @@ struct parspec mgt_parspec[] = {
 #define PARAM(nm, ty, mi, ma, de, un, fl, st, lt, fn)		\
 	{ #nm, tweak_##ty, &mgt_param.nm, mi, ma, st, fl, de, un },
 #include "tbl/params.h"
-#undef PARAM
 
 	{ "cc_command", tweak_string, &mgt_cc_cmd,
 		NULL, NULL,
diff --git a/bin/varnishd/storage/stevedore.c b/bin/varnishd/storage/stevedore.c
index 0a3fd3f..ba9001e 100644
--- a/bin/varnishd/storage/stevedore.c
+++ b/bin/varnishd/storage/stevedore.c
@@ -229,4 +229,3 @@ VRT_Stv_##nm(const char *nm)			\
 }
 
 #include "tbl/vrt_stv_var.h"
-#undef VRTSTVVAR
diff --git a/bin/varnishd/storage/storage.h b/bin/varnishd/storage/storage.h
index 849e442..8969f75 100644
--- a/bin/varnishd/storage/storage.h
+++ b/bin/varnishd/storage/storage.h
@@ -82,7 +82,6 @@ typedef void sml_free_f(struct storage *);
 #define VRTSTVVAR(nm,vt,ct,def) \
     typedef ct stv_var_##nm(const struct stevedore *);
 #include "tbl/vrt_stv_var.h"
-#undef VRTSTVVAR
 
 /*--------------------------------------------------------------------*/
 
@@ -115,7 +114,6 @@ struct stevedore {
 
 #define VRTSTVVAR(nm, vtype, ctype, dval) stv_var_##nm *var_##nm;
 #include "tbl/vrt_stv_var.h"
-#undef VRTSTVVAR
 
 	/* private fields for the stevedore */
 	void			*priv;
diff --git a/bin/varnishd/storage/storage_simple.c b/bin/varnishd/storage/storage_simple.c
index 6eba0a8..584da81 100644
--- a/bin/varnishd/storage/storage_simple.c
+++ b/bin/varnishd/storage/storage_simple.c
@@ -204,7 +204,6 @@ sml_slim(struct worker *wrk, struct objcore *oc)
 		o->aa_##l = NULL;					\
 	}
 #include "tbl/obj_attr.h"
-#undef OBJ_AUXATTR
 
 	VTAILQ_FOREACH_SAFE(st, &o->list, list, stn) {
 		CHECK_OBJ_NOTNULL(st, STORAGE_MAGIC);
@@ -530,7 +529,6 @@ sml_getattr(struct worker *wrk, struct objcore *oc, enum obj_attr attr,
 		*len = sizeof o->fa_##l;				\
 		return (o->fa_##l);
 #include "tbl/obj_attr.h"
-#undef OBJ_FIXATTR
 
 		/* Variable size attributes */
 #define OBJ_VARATTR(U, l)						\
@@ -540,7 +538,6 @@ sml_getattr(struct worker *wrk, struct objcore *oc, enum obj_attr attr,
 		*len = o->va_##l##_len;					\
 		return (o->va_##l);
 #include "tbl/obj_attr.h"
-#undef OBJ_VARATTR
 
 		/* Auxiliary attributes */
 #define OBJ_AUXATTR(U, l)						\
@@ -551,7 +548,6 @@ sml_getattr(struct worker *wrk, struct objcore *oc, enum obj_attr attr,
 		*len = o->aa_##l->len;					\
 		return (o->aa_##l->ptr);
 #include "tbl/obj_attr.h"
-#undef OBJ_AUXATTR
 
 	default:
 		break;
@@ -581,7 +577,6 @@ sml_setattr(struct worker *wrk, struct objcore *oc, enum obj_attr attr,
 		retval = o->fa_##l;					\
 		break;
 #include "tbl/obj_attr.h"
-#undef OBJ_FIXATTR
 
 		/* Variable size attributes */
 #define OBJ_VARATTR(U, l)						\
@@ -599,7 +594,6 @@ sml_setattr(struct worker *wrk, struct objcore *oc, enum obj_attr attr,
 		}							\
 		break;
 #include "tbl/obj_attr.h"
-#undef OBJ_VARATTR
 
 		/* Auxiliary attributes */
 #define OBJ_AUXATTR(U, l)						\
@@ -622,7 +616,6 @@ sml_setattr(struct worker *wrk, struct objcore *oc, enum obj_attr attr,
 		retval = o->aa_##l->ptr;				\
 		break;
 #include "tbl/obj_attr.h"
-#undef OBJ_AUXATTR
 
 	default:
 		WRONG("Unsupported OBJ_ATTR");
@@ -680,10 +673,6 @@ SML_panic(struct vsb *vsb, const struct objcore *oc)
 
 #include "tbl/obj_attr.h"
 
-#undef OBJ_FIXATTR
-#undef OBJ_VARATTR
-#undef OBJ_AUXATTR
-
 	VTAILQ_FOREACH(st, &o->list, list) {
 		sml_panic_st(vsb, "Body", st);
 	}
diff --git a/bin/varnishd/storage/storage_simple.h b/bin/varnishd/storage/storage_simple.h
index bae82f4..6985cdd 100644
--- a/bin/varnishd/storage/storage_simple.h
+++ b/bin/varnishd/storage/storage_simple.h
@@ -44,23 +44,20 @@ struct object {
 #define OBJ_FIXATTR(U, l, s)			\
 	uint8_t			fa_##l[s];
 #include "tbl/obj_attr.h"
-#undef OBJ_FIXATTR
 
 	/* Variable size attributes */
 #define OBJ_VARATTR(U, l)			\
 	uint8_t			*va_##l;
 #include "tbl/obj_attr.h"
-#undef OBJ_VARATTR
+
 #define OBJ_VARATTR(U, l)			\
 	unsigned		va_##l##_len;
 #include "tbl/obj_attr.h"
-#undef OBJ_VARATTR
 
 	/* Auxiliary attributes */
 #define OBJ_AUXATTR(U, l)			\
 	struct storage		*aa_##l;
 #include "tbl/obj_attr.h"
-#undef OBJ_AUXATTR
 
 	struct storagehead	list;
 };
diff --git a/include/tbl/acct_fields_bereq.h b/include/tbl/acct_fields_bereq.h
index 7b28879..b106325 100644
--- a/include/tbl/acct_fields_bereq.h
+++ b/include/tbl/acct_fields_bereq.h
@@ -30,8 +30,11 @@
  */
 
 /*lint -save -e525 -e539 */
+
 ACCT(bereq_hdrbytes)
 ACCT(bereq_bodybytes)
 ACCT(beresp_hdrbytes)
 ACCT(beresp_bodybytes)
+#undef ACCT
+
 /*lint -restore */
diff --git a/include/tbl/acct_fields_req.h b/include/tbl/acct_fields_req.h
index 44ce5b8..3921ab2 100644
--- a/include/tbl/acct_fields_req.h
+++ b/include/tbl/acct_fields_req.h
@@ -31,8 +31,11 @@
  */
 
 /*lint -save -e525 -e539 */
+
 ACCT(req_hdrbytes)
 ACCT(req_bodybytes)
 ACCT(resp_hdrbytes)
 ACCT(resp_bodybytes)
+#undef ACCT
+
 /*lint -restore */
diff --git a/include/tbl/backend_poll.h b/include/tbl/backend_poll.h
index 04174cb..a6fa339 100644
--- a/include/tbl/backend_poll.h
+++ b/include/tbl/backend_poll.h
@@ -28,6 +28,7 @@
  */
 
 /*lint -save -e525 -e539 */
+
 BITMAP(good_ipv4, '4', "Good IPv4", 0)
 BITMAP(good_ipv6, '6', "Good IPv6", 0)
 BITMAP( err_xmit, 'x', "Error Xmit", 0)
@@ -35,4 +36,6 @@ BITMAP(good_xmit, 'X', "Good Xmit", 0)
 BITMAP( err_recv, 'r', "Error Recv", 0)
 BITMAP(good_recv, 'R', "Good Recv", 0)
 BITMAP(happy,     'H', "Happy", 1)
-/* lint -restore */
+#undef BITMAP
+
+/*lint -restore */
diff --git a/include/tbl/ban_vars.h b/include/tbl/ban_vars.h
index 7bc665d..14e06b0 100644
--- a/include/tbl/ban_vars.h
+++ b/include/tbl/ban_vars.h
@@ -30,8 +30,11 @@
  */
 
 /*lint -save -e525 -e539 */
+
 PVAR("req.url",		BANS_FLAG_REQ,			BANS_ARG_URL)
 PVAR("req.http.",	BANS_FLAG_REQ | BANS_FLAG_HTTP,	BANS_ARG_REQHTTP)
 PVAR("obj.status",	BANS_FLAG_OBJ,			BANS_ARG_OBJSTATUS)
 PVAR("obj.http.",	BANS_FLAG_OBJ | BANS_FLAG_HTTP,	BANS_ARG_OBJHTTP)
+#undef PVAR
+
 /*lint -restore */
diff --git a/include/tbl/bo_flags.h b/include/tbl/bo_flags.h
index 06608e3..221f9a3 100644
--- a/include/tbl/bo_flags.h
+++ b/include/tbl/bo_flags.h
@@ -39,5 +39,6 @@ BO_FLAG(uncacheable,	0, 0, "")
 BO_FLAG(is_gzip,	0, 0, "")
 BO_FLAG(is_gunzip,	0, 0, "")
 BO_FLAG(was_304,	1, 0, "")
+#undef BO_FLAG
 
 /*lint -restore */
diff --git a/include/tbl/boc_state.h b/include/tbl/boc_state.h
index 5f71c7a..5297d8a 100644
--- a/include/tbl/boc_state.h
+++ b/include/tbl/boc_state.h
@@ -27,10 +27,13 @@
  */
 
 /*lint -save -e525 -e539 */
+
 BOC_STATE(INVALID,	invalid)	/* don't touch (yet) */
 BOC_STATE(REQ_DONE,	req_done)	/* beresp.* can be examined */
 BOC_STATE(PREP_STREAM,	prep_stream)	/* Prepare for streaming */
 BOC_STATE(STREAM,	stream)		/* beresp.* can be examined */
 BOC_STATE(FINISHED,	finished)	/* object is complete */
 BOC_STATE(FAILED,	failed)		/* something went wrong */
+#undef BOC_STATE
+
 /*lint -restore */
diff --git a/include/tbl/body_status.h b/include/tbl/body_status.h
index 5f6031f..c171831 100644
--- a/include/tbl/body_status.h
+++ b/include/tbl/body_status.h
@@ -29,9 +29,12 @@
  */
 
 /*lint -save -e525 -e539 */
+
 BODYSTATUS(NONE, none)
 BODYSTATUS(ERROR, error)
 BODYSTATUS(CHUNKED, chunked)
 BODYSTATUS(LENGTH, length)
 BODYSTATUS(EOF, eof)
+#undef BODYSTATUS
+
 /*lint -restore */
diff --git a/include/tbl/cli_cmds.h b/include/tbl/cli_cmds.h
index c0110c2..d162bad 100644
--- a/include/tbl/cli_cmds.h
+++ b/include/tbl/cli_cmds.h
@@ -26,9 +26,6 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- */
-
-/*
  * These macros define the common data for requests in the CLI protocol.
  * The fields are:
  *	const char *	upper-case C-ident request_name
@@ -40,6 +37,8 @@
  *	int		maximum_arguments
  */
 
+/*lint -save -e525 -e539 */
+
 CLI_CMD(BAN,
 	"ban",
 	"ban <field> <operator> <arg> [&& <field> <oper> <arg> ...]",
@@ -322,3 +321,6 @@ CLI_CMD(STORAGE_LIST,
 	0, 0
 )
 
+#undef CLI_CMD
+
+/*lint -restore */
diff --git a/include/tbl/debug_bits.h b/include/tbl/debug_bits.h
index fa0d32f..b354921 100644
--- a/include/tbl/debug_bits.h
+++ b/include/tbl/debug_bits.h
@@ -30,6 +30,7 @@
  */
 
 /*lint -save -e525 -e539 */
+
 DEBUG_BIT(REQ_STATE,		req_state,	"VSL Request state engine")
 DEBUG_BIT(WORKSPACE,		workspace,	"VSL Workspace operations")
 DEBUG_BIT(WAITER,		waiter,		"VSL Waiter internals")
@@ -43,4 +44,6 @@ DEBUG_BIT(FLUSH_HEAD,		flush_head,	"Flush after http1 head")
 DEBUG_BIT(VTC_MODE,		vtc_mode,	"Varnishtest Mode")
 DEBUG_BIT(WITNESS,		witness,	"Emit WITNESS lock records")
 DEBUG_BIT(VSM_KEEP,		vsm_keep,	"Keep the VSM file on restart")
+#undef DEBUG_BIT
+
 /*lint -restore */
diff --git a/include/tbl/feature_bits.h b/include/tbl/feature_bits.h
index a178b56..96500da 100644
--- a/include/tbl/feature_bits.h
+++ b/include/tbl/feature_bits.h
@@ -30,41 +30,53 @@
  */
 
 /*lint -save -e525 -e539 */
+
 FEATURE_BIT(SHORT_PANIC,		short_panic,
     "Short panic message.",
     "Reduce level of detail for panic messages."
 )
+
 FEATURE_BIT(WAIT_SILO,			wait_silo,
     "Wait for persistent silo.",
     "Wait for persistent silos to load completely before serving requests."
 )
+
 FEATURE_BIT(NO_COREDUMP,		no_coredump,
     "No coredumps.",
     "Don't attempt to coredump child process on panics."
 )
+
 FEATURE_BIT(ESI_IGNORE_HTTPS,		esi_ignore_https,
     "Treat HTTPS as HTTP in ESI:includes",
     "Convert <esi:include src\"https://... to http://..."
 )
+
 FEATURE_BIT(ESI_DISABLE_XML_CHECK,	esi_disable_xml_check,
     "Don't check of body looks like XML",
     "Allow ESI processing on any kind of object"
 )
+
 FEATURE_BIT(ESI_IGNORE_OTHER_ELEMENTS,	esi_ignore_other_elements,
     "Ignore non-esi XML-elements",
     "Allows syntax errors in the XML"
 )
+
 FEATURE_BIT(ESI_REMOVE_BOM,		esi_remove_bom,
     "Remove UTF-8 BOM",
     "Remove UTF-8 BOM from front of object."
     "Ignore and remove the UTF-8 BOM (0xeb 0xbb 0xbf) from front of object."
 )
+
 FEATURE_BIT(HTTPS_SCHEME,		https_scheme,
     "Also split https URIs",
     "Extract host from full URI in the request line if the scheme is https."
 )
+
 FEATURE_BIT(HTTP2,		http2,
     "Support HTTP/2 protocol",
     "Enable HTTP/2 protocol support."
 )
+
+#undef FEATURE_BIT
+
 /*lint -restore */
diff --git a/include/tbl/h2_frames.h b/include/tbl/h2_frames.h
index 031b27c..c7dc822 100644
--- a/include/tbl/h2_frames.h
+++ b/include/tbl/h2_frames.h
@@ -31,36 +31,35 @@
 /*lint -save -e525 -e539 */
 
 #ifdef H2_FRAME
-/* lower, upper, type, valid flags */
-H2_FRAME(data,		DATA,		0x0, 0x09)
-H2_FRAME(headers,	HEADERS,	0x1, 0x2d)
-H2_FRAME(priority,	PRIORITY,	0x2, 0x00)
-H2_FRAME(rst_stream,	RST_STREAM,	0x3, 0x00)
-H2_FRAME(settings,	SETTINGS,	0x4, 0x01)
-H2_FRAME(push_promise,	PUSH_PROMISE,	0x5, 0x0c)
-H2_FRAME(ping,		PING,		0x6, 0x01)
-H2_FRAME(goaway,	GOAWAY,		0x7, 0x00)
-H2_FRAME(window_update,	WINDOW_UPDATE,	0x8, 0x00)
-H2_FRAME(continuation,	CONTINUATION,	0x9, 0x04)
-#undef H2_FRAME
+/*	   lower,               upper,         type, valid flags */
+  H2_FRAME(data,		DATA,		0x0, 0x09)
+  H2_FRAME(headers,		HEADERS,	0x1, 0x2d)
+  H2_FRAME(priority,		PRIORITY,	0x2, 0x00)
+  H2_FRAME(rst_stream,		RST_STREAM,	0x3, 0x00)
+  H2_FRAME(settings,		SETTINGS,	0x4, 0x01)
+  H2_FRAME(push_promise,	PUSH_PROMISE,	0x5, 0x0c)
+  H2_FRAME(ping,		PING,		0x6, 0x01)
+  H2_FRAME(goaway,		GOAWAY,		0x7, 0x00)
+  H2_FRAME(window_update,	WINDOW_UPDATE,	0x8, 0x00)
+  H2_FRAME(continuation,	CONTINUATION,	0x9, 0x04)
+  #undef H2_FRAME
 #endif
 
-
 #ifdef H2_FRAME_FLAGS
-H2_FRAME_FLAGS(none,			NONE,				0x00)
-H2_FRAME_FLAGS(data_end_stream,		DATA_END_STREAM,		0x01)
-H2_FRAME_FLAGS(data_padded,		DATA_PADDED,			0x08)
-H2_FRAME_FLAGS(headers_end_stream,	HEADERS_END_STREAM,		0x01)
-H2_FRAME_FLAGS(headers_end_headers,	HEADERS_END_HEADERS,		0x04)
-H2_FRAME_FLAGS(headers_padded,		HEADERS_PADDED,			0x08)
-H2_FRAME_FLAGS(headers_priority,	HEADERS_PRIORITY,		0x20)
-H2_FRAME_FLAGS(settings_ack,		SETTINGS_ACK,			0x01)
-H2_FRAME_FLAGS(push_promise_end_headers,PUSH_PROMISE_END_HEADERS,	0x04)
-H2_FRAME_FLAGS(push_promise_padded,	PUSH_PROMISE_PADDED,		0x08)
-H2_FRAME_FLAGS(ping_ack,		PING_ACK,			0x01)
-H2_FRAME_FLAGS(continuation_end_headers,CONTINUATION_END_HEADERS,	0x04)
-#undef H2_FRAME_FLAGS
+/*		 lower,			upper,				flag */
+  H2_FRAME_FLAGS(none,			NONE,				0x00)
+  H2_FRAME_FLAGS(data_end_stream,	DATA_END_STREAM,		0x01)
+  H2_FRAME_FLAGS(data_padded,		DATA_PADDED,			0x08)
+  H2_FRAME_FLAGS(headers_end_stream,	HEADERS_END_STREAM,		0x01)
+  H2_FRAME_FLAGS(headers_end_headers,	HEADERS_END_HEADERS,		0x04)
+  H2_FRAME_FLAGS(headers_padded,	HEADERS_PADDED,			0x08)
+  H2_FRAME_FLAGS(headers_priority,	HEADERS_PRIORITY,		0x20)
+  H2_FRAME_FLAGS(settings_ack,		SETTINGS_ACK,			0x01)
+  H2_FRAME_FLAGS(push_promise_end_headers,PUSH_PROMISE_END_HEADERS,	0x04)
+  H2_FRAME_FLAGS(push_promise_padded,	PUSH_PROMISE_PADDED,		0x08)
+  H2_FRAME_FLAGS(ping_ack,		PING_ACK,			0x01)
+  H2_FRAME_FLAGS(continuation_end_headers,CONTINUATION_END_HEADERS,	0x04)
+  #undef H2_FRAME_FLAGS
 #endif
 
-
 /*lint -restore */
diff --git a/include/tbl/http_headers.h b/include/tbl/http_headers.h
index 12ccefd..44e7d06 100644
--- a/include/tbl/http_headers.h
+++ b/include/tbl/http_headers.h
@@ -36,16 +36,8 @@
  *
  */
 
-
 /*lint -save -e525 -e539 */
 
-#ifndef HTTPH_R_PASS
-#define HTTPH_R_PASS	(1 << 0)	/* Request (c->b) in pass mode */
-#define HTTPH_R_FETCH	(1 << 1)	/* Request (c->b) for fetch */
-#define HTTPH_A_INS	(1 << 2)	/* Response (b->o) for insert */
-#define HTTPH_A_PASS	(1 << 3)	/* Response (b->o) for pass */
-#endif
-
 /* Shorthand for this file only, to keep table narrow */
 
 #if defined(P) || defined(F) || defined(I) || defined(H) || defined(S)
@@ -116,5 +108,6 @@ H("X-Forwarded-For",	H_X_Forwarded_For,	0      )	// No RFC
 #undef I
 #undef S
 #undef H
+#undef HTTPH
 
 /*lint -restore */
diff --git a/include/tbl/http_response.h b/include/tbl/http_response.h
index 6baacfb..eaa74c4 100644
--- a/include/tbl/http_response.h
+++ b/include/tbl/http_response.h
@@ -29,6 +29,7 @@
  */
 
 /*lint -save -e525 -e539 */
+
 HTTP_RESP(101, "Switching Protocols")
 HTTP_RESP(200, "OK")
 HTTP_RESP(201, "Created")
@@ -69,4 +70,6 @@ HTTP_RESP(502, "Bad Gateway")
 HTTP_RESP(503, "Service Unavailable")
 HTTP_RESP(504, "Gateway Timeout")
 HTTP_RESP(505, "HTTP Version Not Supported")
+#undef HTTP_RESP
+
 /*lint -restore */
diff --git a/include/tbl/locks.h b/include/tbl/locks.h
index 8d99eb7..a89b0b4 100644
--- a/include/tbl/locks.h
+++ b/include/tbl/locks.h
@@ -28,6 +28,7 @@
  */
 
 /*lint -save -e525 -e539 */
+
 LOCK(backend)
 LOCK(backend_tcp)
 LOCK(ban)
@@ -47,4 +48,6 @@ LOCK(vxid)
 LOCK(waiter)
 LOCK(wq)
 LOCK(wstat)
+#undef LOCK
+
 /*lint -restore */
diff --git a/include/tbl/obj_attr.h b/include/tbl/obj_attr.h
index d05b598..b0b6773 100644
--- a/include/tbl/obj_attr.h
+++ b/include/tbl/obj_attr.h
@@ -31,30 +31,34 @@
 
 /* upper, lower, size */
 #ifdef OBJ_FIXATTR
-OBJ_FIXATTR(LEN, len, 8)
-OBJ_FIXATTR(VXID, vxid, 4)
-OBJ_FIXATTR(FLAGS, flags, 1)
-OBJ_FIXATTR(GZIPBITS, gzipbits, 32)
-OBJ_FIXATTR(LASTMODIFIED, lastmodified, 8)
+  OBJ_FIXATTR(LEN, len, 8)
+  OBJ_FIXATTR(VXID, vxid, 4)
+  OBJ_FIXATTR(FLAGS, flags, 1)
+  OBJ_FIXATTR(GZIPBITS, gzipbits, 32)
+  OBJ_FIXATTR(LASTMODIFIED, lastmodified, 8)
+  #undef OBJ_FIXATTR
 #endif
 
 /* upper, lower */
 #ifdef OBJ_VARATTR
-OBJ_VARATTR(VARY, vary)
-OBJ_VARATTR(HEADERS, headers)
+  OBJ_VARATTR(VARY, vary)
+  OBJ_VARATTR(HEADERS, headers)
+  #undef OBJ_VARATTR
 #endif
 
 /* upper, lower */
 #ifdef OBJ_AUXATTR
-OBJ_AUXATTR(ESIDATA, esidata)
+  OBJ_AUXATTR(ESIDATA, esidata)
+  #undef OBJ_AUXATTR
 #endif
 
 #ifdef OBJ_FLAG
 /* upper, lower, val */
-OBJ_FLAG(GZIPED,	gziped,		(1<<1))
-OBJ_FLAG(CHGGZIP,	chggzip,	(1<<2))
-OBJ_FLAG(IMSCAND,	imscand,	(1<<3))
-OBJ_FLAG(ESIPROC,	esiproc,	(1<<4))
+  OBJ_FLAG(GZIPED,	gziped,		(1<<1))
+  OBJ_FLAG(CHGGZIP,	chggzip,	(1<<2))
+  OBJ_FLAG(IMSCAND,	imscand,	(1<<3))
+  OBJ_FLAG(ESIPROC,	esiproc,	(1<<4))
+  #undef OBJ_FLAG
 #endif
 
 /*lint -restore */
diff --git a/include/tbl/oc_exp_flags.h b/include/tbl/oc_exp_flags.h
index 2fc16e5..83160b0 100644
--- a/include/tbl/oc_exp_flags.h
+++ b/include/tbl/oc_exp_flags.h
@@ -27,9 +27,12 @@
  */
 
 /*lint -save -e525 -e539 */
+
 OC_EXP_FLAG(POSTED,	posted,		(1<<1))
 OC_EXP_FLAG(REFD,	refd,		(1<<2))
 OC_EXP_FLAG(MOVE,	move,		(1<<3))
 OC_EXP_FLAG(INSERT,	insert,		(1<<4))
 OC_EXP_FLAG(REMOVE,	remove,		(1<<5))
+#undef OC_EXP_FLAG
+
 /*lint -restore */
diff --git a/include/tbl/oc_flags.h b/include/tbl/oc_flags.h
index 825312b..2e231c7 100644
--- a/include/tbl/oc_flags.h
+++ b/include/tbl/oc_flags.h
@@ -27,10 +27,13 @@
  */
 
 /*lint -save -e525 -e539 */
+
 OC_FLAG(BUSY,		busy,		(1<<1))
 OC_FLAG(PASS,		pass,		(1<<2))
 OC_FLAG(ABANDON,	abandon,	(1<<4))
 OC_FLAG(PRIVATE,	private,	(1<<5))
 OC_FLAG(FAILED,		failed,		(1<<6))
 OC_FLAG(DYING,		dying,		(1<<7))
+#undef OC_FLAG
+
 /*lint -restore */
diff --git a/include/tbl/params.h b/include/tbl/params.h
index 09aec90..5b79f8c 100644
--- a/include/tbl/params.h
+++ b/include/tbl/params.h
@@ -28,12 +28,12 @@
  * PARAM(nm, ty, mi, ma, de, un, fl, st, lt, fn)
  */
 
+/*lint -save -e525 -e539 */
+
 #if defined(XYZZY)
   #error "Temporary macro XYZZY already defined"
 #endif
 
-/*lint -save -e525 -e539 */
-
 #if defined(HAVE_ACCEPT_FILTERS)
   #define XYZZY MUST_RESTART
 #else
@@ -1176,6 +1176,7 @@ PARAM(
 	/* l-text */	"",
 	/* func */	NULL
 )
+
 /* actual location mgt_pool.c */
 PARAM(
 	/* name */	thread_pool_reserve,
@@ -1624,4 +1625,6 @@ PARAM(
 	/* func */	NULL
 )
 
+#undef PARAM
+
 /*lint -restore */
diff --git a/include/tbl/req_body.h b/include/tbl/req_body.h
index e9e32b7..9878e9c 100644
--- a/include/tbl/req_body.h
+++ b/include/tbl/req_body.h
@@ -36,5 +36,6 @@ REQ_BODY(TAKEN)
 REQ_BODY(CACHED)
 REQ_BODY(FAIL)
 REQ_BODY(NONE)
+#undef REQ_BODY
 
 /*lint -restore */
diff --git a/include/tbl/req_flags.h b/include/tbl/req_flags.h
index 4b8ec5b..f743649 100644
--- a/include/tbl/req_flags.h
+++ b/include/tbl/req_flags.h
@@ -35,4 +35,6 @@ REQ_FLAG(hash_ignore_busy,	1, 1, "")
 REQ_FLAG(hash_always_miss,	1, 1, "")
 REQ_FLAG(is_hit,		0, 0, "")
 REQ_FLAG(waitinglist,		0, 0, "")
+#undef REQ_FLAG
+
 /*lint -restore */
diff --git a/include/tbl/sess_attr.h b/include/tbl/sess_attr.h
index 4ab9631..6b4494f 100644
--- a/include/tbl/sess_attr.h
+++ b/include/tbl/sess_attr.h
@@ -40,5 +40,6 @@ SESS_ATTR(SERVER_ADDR,	  server_addr,	struct suckaddr,    vsa_suckaddr_len)
 SESS_ATTR(CLIENT_IP,	  client_ip,	char,		    -1)
 SESS_ATTR(CLIENT_PORT,	  client_port,	char,		    -1)
 SESS_ATTR(XPORT_PRIV,	  xport_priv,	uintptr_t,	    sizeof(uintptr_t))
+#undef SESS_ATTR
 
 /*lint -restore */
diff --git a/include/tbl/sess_close.h b/include/tbl/sess_close.h
index ef4c946..e1b4872 100644
--- a/include/tbl/sess_close.h
+++ b/include/tbl/sess_close.h
@@ -45,5 +45,6 @@ SESS_CLOSE(RESP_CLOSE,	  resp_close,	0,	"Backend/VCL requested close")
 SESS_CLOSE(OVERLOAD,	  overload,	1,	"Out of some resource")
 SESS_CLOSE(PIPE_OVERFLOW, pipe_overflow,1,	"Session pipe overflow")
 SESS_CLOSE(RANGE_SHORT,   range_short,  1,	"Insufficient data for range")
+#undef SESS_CLOSE
 
 /*lint -restore */
diff --git a/include/tbl/steps.h b/include/tbl/steps.h
index b862a79..10d8f9f 100644
--- a/include/tbl/steps.h
+++ b/include/tbl/steps.h
@@ -31,30 +31,32 @@
 /*lint -save -e525 -e539 */
 
 #ifdef REQ_STEP
-REQ_STEP(restart,	RESTART,	(wrk, req))
-REQ_STEP(recv,		RECV,		(wrk, req))
-REQ_STEP(pipe,		PIPE,		(wrk, req))
-REQ_STEP(pass,		PASS,		(wrk, req))
-REQ_STEP(lookup,	LOOKUP,		(wrk, req))
-REQ_STEP(purge,		PURGE,		(wrk, req))
-REQ_STEP(miss,		MISS,		(wrk, req))
-REQ_STEP(fetch,		FETCH,		(wrk, req))
-REQ_STEP(deliver,	DELIVER,	(wrk, req))
-REQ_STEP(synth,		SYNTH,		(wrk, req))
-REQ_STEP(transmit,	TRANSMIT,	(wrk, req))
+  REQ_STEP(restart,		RESTART,	(wrk, req))
+  REQ_STEP(recv,		RECV,		(wrk, req))
+  REQ_STEP(pipe,		PIPE,		(wrk, req))
+  REQ_STEP(pass,		PASS,		(wrk, req))
+  REQ_STEP(lookup,		LOOKUP,		(wrk, req))
+  REQ_STEP(purge,		PURGE,		(wrk, req))
+  REQ_STEP(miss,		MISS,		(wrk, req))
+  REQ_STEP(fetch,		FETCH,		(wrk, req))
+  REQ_STEP(deliver,		DELIVER,	(wrk, req))
+  REQ_STEP(synth,		SYNTH,		(wrk, req))
+  REQ_STEP(transmit,		TRANSMIT,	(wrk, req))
+  #undef REQ_STEP
 #endif
 
 #ifdef FETCH_STEP
-FETCH_STEP(mkbereq,	MKBEREQ,	(wrk, bo))
-FETCH_STEP(retry,	RETRY,		(wrk, bo))
-FETCH_STEP(startfetch,	STARTFETCH,	(wrk, bo))
-FETCH_STEP(condfetch,	CONDFETCH,	(wrk, bo))
-FETCH_STEP(fetch,	FETCH,		(wrk, bo))
-FETCH_STEP(fetchbody,	FETCHBODY,	(wrk, bo))
-FETCH_STEP(fetchend,	FETCHEND,	(wrk, bo))
-FETCH_STEP(error,	ERROR,		(wrk, bo))
-FETCH_STEP(fail,	FAIL,		(wrk, bo))
-FETCH_STEP(done,	DONE,		())
+  FETCH_STEP(mkbereq,		MKBEREQ,	(wrk, bo))
+  FETCH_STEP(retry,		RETRY,		(wrk, bo))
+  FETCH_STEP(startfetch,	STARTFETCH,	(wrk, bo))
+  FETCH_STEP(condfetch,		CONDFETCH,	(wrk, bo))
+  FETCH_STEP(fetch,		FETCH,		(wrk, bo))
+  FETCH_STEP(fetchbody,		FETCHBODY,	(wrk, bo))
+  FETCH_STEP(fetchend,		FETCHEND,	(wrk, bo))
+  FETCH_STEP(error,		ERROR,		(wrk, bo))
+  FETCH_STEP(fail,		FAIL,		(wrk, bo))
+  FETCH_STEP(done,		DONE,		())
+  #undef FETCH_STEP
 #endif
 
 /*lint -restore */
diff --git a/include/tbl/style.py b/include/tbl/style.py
new file mode 100644
index 0000000..a29459c
--- /dev/null
+++ b/include/tbl/style.py
@@ -0,0 +1,72 @@
+#!/usr/bin/env python
+#
+# Very basic style-checker for include/tbl files.
+
+from __future__ import print_function
+
+import glob
+
+def check_file(fn):
+	s = 0
+	ll = []
+	for l in open(fn):
+		ll.append(l)
+
+	assert ll.pop(0)[:2] == "/*"
+
+	while ll.pop(0) != " */\n":
+		continue
+
+	assert len(ll) > 5
+
+	assert ll.pop(0) == "\n"
+	assert ll.pop(0) == "/*lint -save -e525 -e539 */\n"
+	assert ll.pop(0) == "\n"
+
+	assert ll.pop(-1) == "/*lint -restore */\n"
+	assert ll.pop(-1) == "\n"
+
+	for i in range(0, len(ll) -1):
+		assert ll[i] != "\n" or ll[i+1] != "\n"
+		assert ll[i] != ")\n" or ll[i+1] == "\n" or ll[i+1][0] == "#"
+
+	m = {}
+	while len(ll) > 0:
+		i = ll.pop(0)
+		if i == "\n":
+			continue
+		l = i.lstrip()
+		if l[0] >= 'A' and l[0] <= 'Z':
+			j = l.split('(')
+			m[j[0]] = "Called"
+			l = l.split('//')[0]
+			l = l.split('/*')[0]
+			l = l.rstrip()
+			if l[-1] != ')':
+				while ll.pop(0) != ')\n':
+					continue
+		elif l[0] == "#":
+			j = l[1:].lstrip().split()
+			# print("#", j[0])
+			if j[0] == "define":
+				m[j[1].split("(")[0].strip()] = "Defined"
+			if j[0] == "undef":
+				m[j[1]] = "Undef"
+			while l[-2:] == "\\\n":
+				l = ll.pop(0)
+		else:
+			pass
+			# print(l)
+	rv = 0
+	for i in m:
+		if m[i] != "Undef":
+			print("ERROR", fn, i, m[i])
+			rv += 1
+	return rv
+
+rv = 0
+for fn in glob.glob("*.h"):
+	rv += check_file(fn)
+if rv != 0:
+	print(rv, "Errors")
+exit(rv)
diff --git a/include/tbl/symbol_kind.h b/include/tbl/symbol_kind.h
index 92d7900..f71228b 100644
--- a/include/tbl/symbol_kind.h
+++ b/include/tbl/symbol_kind.h
@@ -28,17 +28,20 @@
  */
 
 /*lint -save -e525 -e539 */
+
 VCC_SYMB(NONE,		none)
 VCC_SYMB(ACL,		acl)
 VCC_SYMB(BACKEND,	backend)
-VCC_SYMB(FUNC,		func)		/* VMOD function/procedure */
+VCC_SYMB(FUNC,		func)
 VCC_SYMB(INSTANCE,	instance)
 VCC_SYMB(METHOD,	method)
 VCC_SYMB(OBJECT,	object)
 VCC_SYMB(PROBE,		probe)
 VCC_SYMB(STEVEDORE,	stevedore)
-VCC_SYMB(SUB,		sub)		/* VCL subroutine */
+VCC_SYMB(SUB,		sub)
 VCC_SYMB(VAR,		var)
-VCC_SYMB(VCL,		vcl)		/* VCL program */
+VCC_SYMB(VCL,		vcl)
 VCC_SYMB(VMOD,		vmod)
+#undef VCC_SYMB
+
 /*lint -restore */
diff --git a/include/tbl/vhd_fsm.h b/include/tbl/vhd_fsm.h
index 802b2e1..4d0e660 100644
--- a/include/tbl/vhd_fsm.h
+++ b/include/tbl/vhd_fsm.h
@@ -27,6 +27,8 @@
  *
  */
 
+/*lint -save -e525 -e539 */
+
 /* Decode integer with prefix */
 #define VHD_FSM_INTEGER(STATE, pfx)				\
 	VHD_FSM(STATE, INTEGER, pfx, 0)
@@ -265,3 +267,7 @@ VHD_FSM_GOTO(TEST_LITERAL_FINISH, IDLE)
 #undef VHD_FSM_BRANCH_ZIDX
 #undef VHD_FSM_BRANCH_BIT0
 #undef VHD_FSM_LITERAL
+
+#undef VHD_FSM
+
+/*lint -restore */
diff --git a/include/tbl/vhd_fsm_funcs.h b/include/tbl/vhd_fsm_funcs.h
index 92cd082..f8bb459 100644
--- a/include/tbl/vhd_fsm_funcs.h
+++ b/include/tbl/vhd_fsm_funcs.h
@@ -27,6 +27,8 @@
  *
  */
 
+/*lint -save -e525 -e539 */
+
 VHD_FSM_FUNC(SKIP, vhd_skip)
 VHD_FSM_FUNC(GOTO, vhd_goto)
 VHD_FSM_FUNC(IDLE, vhd_idle)
@@ -40,3 +42,6 @@ VHD_FSM_FUNC(BRANCH_ZIDX, vhd_branch_zidx)
 VHD_FSM_FUNC(BRANCH_BIT0, vhd_branch_bit0)
 VHD_FSM_FUNC(RAW, vhd_raw)
 VHD_FSM_FUNC(HUFFMAN, vhd_huffman)
+#undef VHD_FSM_FUNC
+
+/*lint -restore */
diff --git a/include/tbl/vhd_return.h b/include/tbl/vhd_return.h
index 31f6cca..66547d4 100644
--- a/include/tbl/vhd_return.h
+++ b/include/tbl/vhd_return.h
@@ -27,18 +27,22 @@
  *
  */
 
-VHD_RET(ERR_ARG, -1, "Invalid HPACK instruction")
-VHD_RET(ERR_INT, -2, "Integer overflow")
-VHD_RET(ERR_IDX, -3, "Invalid table index")
-VHD_RET(ERR_LEN, -4, "Invalid length")
-VHD_RET(ERR_HUF, -5, "Invalid huffman code")
-VHD_RET(ERR_UPD, -6, "Spurious update")
+/*lint -save -e525 -e539 */
 
-VHD_RET(OK, 0, "OK")
-VHD_RET(MORE, 1, "Feed me")
-VHD_RET(NAME, 2, "Name")
-VHD_RET(VALUE, 3, "Value")
-VHD_RET(NAME_SEC, 4, "Name never index")
-VHD_RET(VALUE_SEC, 5, "Value never index")
-VHD_RET(BUF, 6, "Stuffed")
-VHD_RET(AGAIN, 7, "Call again")
+VHD_RET(ERR_ARG,	-1, "Invalid HPACK instruction")
+VHD_RET(ERR_INT,	-2, "Integer overflow")
+VHD_RET(ERR_IDX,	-3, "Invalid table index")
+VHD_RET(ERR_LEN,	-4, "Invalid length")
+VHD_RET(ERR_HUF,	-5, "Invalid huffman code")
+VHD_RET(ERR_UPD,	-6, "Spurious update")
+VHD_RET(OK,		 0, "OK")
+VHD_RET(MORE,		 1, "Feed me")
+VHD_RET(NAME,		 2, "Name")
+VHD_RET(VALUE,		 3, "Value")
+VHD_RET(NAME_SEC,	 4, "Name never index")
+VHD_RET(VALUE_SEC,	 5, "Value never index")
+VHD_RET(BUF,		 6, "Stuffed")
+VHD_RET(AGAIN,		 7, "Call again")
+#undef VHD_RET
+
+/*lint -restore */
diff --git a/include/tbl/vhp_huffman.h b/include/tbl/vhp_huffman.h
index ad9ebe2..bbe825f 100644
--- a/include/tbl/vhp_huffman.h
+++ b/include/tbl/vhp_huffman.h
@@ -6,6 +6,8 @@
  * HPACK Huffman table, but sorted by codes (RFC 7541 Appendix B)
  */
 
+/*lint -save -e525 -e539 */
+
 HPH(0x30, 0x00000000,  5) /* '0' */
 HPH(0x31, 0x00000001,  5) /* '1' */
 HPH(0x32, 0x00000002,  5) /* '2' */
@@ -262,3 +264,6 @@ HPH(0xf9, 0x0ffffffe, 28)
 HPH(0x0a, 0x3ffffffc, 30)
 HPH(0x0d, 0x3ffffffd, 30)
 HPH(0x16, 0x3ffffffe, 30)
+#undef HPH
+
+/*lint -restore */
diff --git a/include/tbl/vhp_static.h b/include/tbl/vhp_static.h
index 576c180..881543c 100644
--- a/include/tbl/vhp_static.h
+++ b/include/tbl/vhp_static.h
@@ -6,6 +6,8 @@
  * HPACK: Static Table Definition (RFC 7540 Appendix A)
  */
 
+/*lint -save -e525 -e539 */
+
 HPS( 1,	":authority",			"")
 HPS( 2,	":method",			"GET")
 HPS( 3,	":method",			"POST")
@@ -67,3 +69,6 @@ HPS(58,	"user-agent",			"")
 HPS(59,	"vary",				"")
 HPS(60,	"via",				"")
 HPS(61,	"www-authenticate",		"")
+#undef HPS
+
+/*lint -restore */
diff --git a/include/tbl/vsc_all.h b/include/tbl/vsc_all.h
index 8b681de..1c761d4 100644
--- a/include/tbl/vsc_all.h
+++ b/include/tbl/vsc_all.h
@@ -27,45 +27,64 @@
  *
  */
 
-
 /*lint -save -e525 -e539 */
+
 VSC_DO(MAIN, main, VSC_type_main)
-#include "tbl/vsc_f_main.h"
+  #define VSC_FF VSC_F
+  #include "tbl/vsc_f_main.h"
+  #undef VSC_FF
 VSC_DONE(MAIN, main, VSC_type_main)
 
 VSC_DO(MGT, mgt, VSC_type_mgt)
-#define VSC_DO_MGT
-#include "tbl/vsc_fields.h"
-#undef VSC_DO_MGT
+  #define VSC_DO_MGT
+    #define VSC_FF VSC_F
+    #include "tbl/vsc_fields.h"
+    #undef VSC_FF
+  #undef VSC_DO_MGT
 VSC_DONE(MGT, mgt, VSC_type_mgt)
 
 VSC_DO(MEMPOOL, mempool, VSC_type_mempool)
-#define VSC_DO_MEMPOOL
-#include "tbl/vsc_fields.h"
-#undef VSC_DO_MEMPOOL
+  #define VSC_DO_MEMPOOL
+    #define VSC_FF VSC_F
+    #include "tbl/vsc_fields.h"
+    #undef VSC_FF
+  #undef VSC_DO_MEMPOOL
 VSC_DONE(MEMPOOL, mempool, VSC_type_mempool)
 
 VSC_DO(SMA, sma, VSC_type_sma)
-#define VSC_DO_SMA
-#include "tbl/vsc_fields.h"
-#undef VSC_DO_SMA
+  #define VSC_DO_SMA
+    #define VSC_FF VSC_F
+    #include "tbl/vsc_fields.h"
+    #undef VSC_FF
+  #undef VSC_DO_SMA
 VSC_DONE(SMA, sma, VSC_type_sma)
 
 VSC_DO(SMF, smf, VSC_type_smf)
-#define VSC_DO_SMF
-#include "tbl/vsc_fields.h"
-#undef VSC_DO_SMF
+  #define VSC_DO_SMF
+    #define VSC_FF VSC_F
+    #include "tbl/vsc_fields.h"
+    #undef VSC_FF
+  #undef VSC_DO_SMF
 VSC_DONE(SMF, smf, VSC_type_smf)
 
 VSC_DO(VBE, vbe, VSC_type_vbe)
-#define VSC_DO_VBE
-#include "tbl/vsc_fields.h"
-#undef VSC_DO_VBE
+  #define VSC_DO_VBE
+    #define VSC_FF VSC_F
+    #include "tbl/vsc_fields.h"
+    #undef VSC_FF
+  #undef VSC_DO_VBE
 VSC_DONE(VBE, vbe, VSC_type_vbe)
 
 VSC_DO(LCK, lck, VSC_type_lck)
-#define VSC_DO_LCK
-#include "tbl/vsc_fields.h"
-#undef VSC_DO_LCK
+  #define VSC_DO_LCK
+    #define VSC_FF VSC_F
+    #include "tbl/vsc_fields.h"
+    #undef VSC_FF
+  #undef VSC_DO_LCK
 VSC_DONE(LCK, lck, VSC_type_lck)
+
+#undef VSC_DO
+#undef VSC_F
+#undef VSC_DONE
+
 /*lint -restore */
diff --git a/include/tbl/vsc_f_main.h b/include/tbl/vsc_f_main.h
index 3952302..7dbc87d 100644
--- a/include/tbl/vsc_f_main.h
+++ b/include/tbl/vsc_f_main.h
@@ -31,31 +31,32 @@
  * See include/tbl/vsc_fields.h for the table definition.
  */
 
+/*lint -save -e525 -e539 */
+
 /*--------------------------------------------------------------------
  * Globals, not related to traffic
  */
 
-VSC_F(uptime,			uint64_t, 0, 'c', 'd', info,
+VSC_FF(uptime,			uint64_t, 0, 'c', 'd', info,
     "Child process uptime",
 	"How long the child process has been running."
 )
 
-
 /*---------------------------------------------------------------------
  * Sessions
  */
 
-VSC_F(sess_conn,		uint64_t, 1, 'c', 'i', info,
+VSC_FF(sess_conn,		uint64_t, 1, 'c', 'i', info,
     "Sessions accepted",
 	"Count of sessions successfully accepted"
 )
 
-VSC_F(sess_drop,		uint64_t, 1, 'c', 'i', info,
+VSC_FF(sess_drop,		uint64_t, 1, 'c', 'i', info,
     "Sessions dropped",
 	"Count of sessions silently dropped due to lack of worker thread."
 )
 
-VSC_F(sess_fail,		uint64_t, 1, 'c', 'i', info,
+VSC_FF(sess_fail,		uint64_t, 1, 'c', 'i', info,
     "Session accept failures",
 	"Count of failures to accept TCP connection."
 	" Either the client changed its mind, or the kernel ran out of"
@@ -64,32 +65,32 @@ VSC_F(sess_fail,		uint64_t, 1, 'c', 'i', info,
 
 /*---------------------------------------------------------------------*/
 
-VSC_F(client_req_400,		uint64_t, 1, 'c', 'i', info,
+VSC_FF(client_req_400,		uint64_t, 1, 'c', 'i', info,
     "Client requests received, subject to 400 errors",
 	"400 means we couldn't make sense of the request, it was"
 	" malformed in some drastic way."
 )
 
-VSC_F(client_req_417,		uint64_t, 1, 'c', 'i', info,
+VSC_FF(client_req_417,		uint64_t, 1, 'c', 'i', info,
     "Client requests received, subject to 417 errors",
 	"417 means that something went wrong with an Expect: header."
 )
 
-VSC_F(client_req,		uint64_t, 1, 'c', 'i', info,
+VSC_FF(client_req,		uint64_t, 1, 'c', 'i', info,
     "Good client requests received",
 	"The count of parseable client requests seen."
 )
 
 /*---------------------------------------------------------------------*/
 
-VSC_F(cache_hit,		uint64_t, 1, 'c', 'i', info,
+VSC_FF(cache_hit,		uint64_t, 1, 'c', 'i', info,
     "Cache hits",
 	"Count of cache hits. "
 	" A cache hit indicates that an object has been delivered to a"
 	" client without fetching it from a backend server."
 )
 
-VSC_F(cache_hitpass,		uint64_t, 1, 'c', 'i', info,
+VSC_FF(cache_hitpass,		uint64_t, 1, 'c', 'i', info,
     "Cache hits for pass.",
 	"Count of hits for pass."
 	" A cache hit for pass indicates that Varnish is going to"
@@ -98,7 +99,7 @@ VSC_F(cache_hitpass,		uint64_t, 1, 'c', 'i', info,
 	" decision is being used."
 )
 
-VSC_F(cache_miss,		uint64_t, 1, 'c', 'i', info,
+VSC_FF(cache_miss,		uint64_t, 1, 'c', 'i', info,
     "Cache misses",
 	"Count of misses."
 	" A cache miss indicates the object was fetched from the"
@@ -107,30 +108,34 @@ VSC_F(cache_miss,		uint64_t, 1, 'c', 'i', info,
 
 /*---------------------------------------------------------------------*/
 
-VSC_F(backend_conn,		uint64_t, 0, 'c', 'i', info,
+VSC_FF(backend_conn,		uint64_t, 0, 'c', 'i', info,
     "Backend conn. success",
 	"How many backend connections have successfully been"
 	" established."
 )
 
-VSC_F(backend_unhealthy,	uint64_t, 0, 'c', 'i', info,
+VSC_FF(backend_unhealthy,	uint64_t, 0, 'c', 'i', info,
     "Backend conn. not attempted",
 	""
 )
-VSC_F(backend_busy,		uint64_t, 0, 'c', 'i', info,
+
+VSC_FF(backend_busy,		uint64_t, 0, 'c', 'i', info,
     "Backend conn. too many",
 	""
 )
-VSC_F(backend_fail,		uint64_t, 0, 'c', 'i', info,
+
+VSC_FF(backend_fail,		uint64_t, 0, 'c', 'i', info,
     "Backend conn. failures",
 	""
 )
-VSC_F(backend_reuse,		uint64_t, 0, 'c', 'i', info,
+
+VSC_FF(backend_reuse,		uint64_t, 0, 'c', 'i', info,
     "Backend conn. reuses",
 	"Count of backend connection reuses."
 	" This counter is increased whenever we reuse a recycled connection."
 )
-VSC_F(backend_recycle,		uint64_t, 0, 'c', 'i', info,
+
+VSC_FF(backend_recycle,		uint64_t, 0, 'c', 'i', info,
     "Backend conn. recycles",
 	"Count of backend connection recycles."
 	" This counter is increased whenever we have a keep-alive"
@@ -138,7 +143,8 @@ VSC_F(backend_recycle,		uint64_t, 0, 'c', 'i', info,
 	" It has not yet been used, but it might be, unless the backend"
 	" closes it."
 )
-VSC_F(backend_retry,		uint64_t, 0, 'c', 'i', info,
+
+VSC_FF(backend_retry,		uint64_t, 0, 'c', 'i', info,
     "Backend conn. retry",
 	""
 )
@@ -147,47 +153,57 @@ VSC_F(backend_retry,		uint64_t, 0, 'c', 'i', info,
  * Backend fetch statistics
  */
 
-VSC_F(fetch_head,		uint64_t, 1, 'c', 'i', info,
+VSC_FF(fetch_head,		uint64_t, 1, 'c', 'i', info,
     "Fetch no body (HEAD)",
 	"beresp with no body because the request is HEAD."
 )
-VSC_F(fetch_length,		uint64_t, 1, 'c', 'i', info,
+
+VSC_FF(fetch_length,		uint64_t, 1, 'c', 'i', info,
     "Fetch with Length",
 	"beresp.body with Content-Length."
 )
-VSC_F(fetch_chunked,		uint64_t, 1, 'c', 'i', info,
+
+VSC_FF(fetch_chunked,		uint64_t, 1, 'c', 'i', info,
     "Fetch chunked",
 	"beresp.body with Chunked."
 )
-VSC_F(fetch_eof,		uint64_t, 1, 'c', 'i', info,
+
+VSC_FF(fetch_eof,		uint64_t, 1, 'c', 'i', info,
     "Fetch EOF",
 	"beresp.body with EOF."
 )
-VSC_F(fetch_bad,		uint64_t, 1, 'c', 'i', info,
+
+VSC_FF(fetch_bad,		uint64_t, 1, 'c', 'i', info,
     "Fetch bad T-E",
 	"beresp.body length/fetch could not be determined."
 )
-VSC_F(fetch_none,		uint64_t, 1, 'c', 'i', info,
+
+VSC_FF(fetch_none,		uint64_t, 1, 'c', 'i', info,
     "Fetch no body",
 	"beresp.body empty"
 )
-VSC_F(fetch_1xx,		uint64_t, 1, 'c', 'i', info,
+
+VSC_FF(fetch_1xx,		uint64_t, 1, 'c', 'i', info,
     "Fetch no body (1xx)",
 	"beresp with no body because of 1XX response."
 )
-VSC_F(fetch_204,		uint64_t, 1, 'c', 'i', info,
+
+VSC_FF(fetch_204,		uint64_t, 1, 'c', 'i', info,
     "Fetch no body (204)",
 	"beresp with no body because of 204 response."
 )
-VSC_F(fetch_304,		uint64_t, 1, 'c', 'i', info,
+
+VSC_FF(fetch_304,		uint64_t, 1, 'c', 'i', info,
     "Fetch no body (304)",
 	"beresp with no body because of 304 response."
 )
-VSC_F(fetch_failed,		uint64_t, 1, 'c', 'i', info,
+
+VSC_FF(fetch_failed,		uint64_t, 1, 'c', 'i', info,
     "Fetch failed (all causes)",
 	"beresp fetch failed."
 )
-VSC_F(fetch_no_thread,		uint64_t, 1, 'c', 'i', info,
+
+VSC_FF(fetch_no_thread,		uint64_t, 1, 'c', 'i', info,
     "Fetch failed (no thread)",
 	"beresp fetch failed, no thread available."
 )
@@ -198,74 +214,74 @@ VSC_F(fetch_no_thread,		uint64_t, 1, 'c', 'i', info,
  *
  */
 
-VSC_F(pools,			uint64_t, 0, 'g', 'i', info,
+VSC_FF(pools,			uint64_t, 0, 'g', 'i', info,
     "Number of thread pools",
 	"Number of thread pools. See also parameter thread_pools."
 	" NB: Presently pools cannot be removed once created."
 )
 
-VSC_F(threads,			uint64_t, 0, 'g', 'i', info,
+VSC_FF(threads,			uint64_t, 0, 'g', 'i', info,
     "Total number of threads",
 	"Number of threads in all pools."
 	" See also parameters thread_pools, thread_pool_min and"
 	" thread_pool_max."
 )
 
-VSC_F(threads_limited,		uint64_t, 0, 'c', 'i', info,
+VSC_FF(threads_limited,		uint64_t, 0, 'c', 'i', info,
     "Threads hit max",
 	"Number of times more threads were needed, but limit was reached"
 	" in a thread pool. See also parameter thread_pool_max."
 )
 
-VSC_F(threads_created,		uint64_t, 0, 'c', 'i', info,
+VSC_FF(threads_created,		uint64_t, 0, 'c', 'i', info,
     "Threads created",
 	"Total number of threads created in all pools."
 )
 
-VSC_F(threads_destroyed,	uint64_t, 0, 'c', 'i', info,
+VSC_FF(threads_destroyed,	uint64_t, 0, 'c', 'i', info,
     "Threads destroyed",
 	"Total number of threads destroyed in all pools."
 )
 
-VSC_F(threads_failed,		uint64_t, 0, 'c', 'i', info,
+VSC_FF(threads_failed,		uint64_t, 0, 'c', 'i', info,
     "Thread creation failed",
 	"Number of times creating a thread failed."
 	" See VSL::Debug for diagnostics."
 	" See also parameter thread_fail_delay."
 )
 
-VSC_F(thread_queue_len,		uint64_t, 0, 'g', 'i', info,
+VSC_FF(thread_queue_len,		uint64_t, 0, 'g', 'i', info,
     "Length of session queue",
 	"Length of session queue waiting for threads."
 	" NB: Only updates once per second."
 	" See also parameter thread_queue_limit."
 )
 
-VSC_F(busy_sleep,		uint64_t, 1, 'c', 'i', info,
+VSC_FF(busy_sleep,		uint64_t, 1, 'c', 'i', info,
     "Number of requests sent to sleep on busy objhdr",
 	"Number of requests sent to sleep without a worker thread because"
 	" they found a busy object."
 )
 
-VSC_F(busy_wakeup,		uint64_t, 1, 'c', 'i', info,
+VSC_FF(busy_wakeup,		uint64_t, 1, 'c', 'i', info,
     "Number of requests woken after sleep on busy objhdr",
 	"Number of requests taken off the busy object sleep list and"
 	" rescheduled."
 )
 
-VSC_F(busy_killed,		uint64_t, 1, 'c', 'i', info,
+VSC_FF(busy_killed,		uint64_t, 1, 'c', 'i', info,
     "Number of requests killed after sleep on busy objhdr",
 	"Number of requests killed from the busy object sleep list"
 	" due to lack of resources."
 )
 
-VSC_F(sess_queued,		uint64_t, 0, 'c', 'i', info,
+VSC_FF(sess_queued,		uint64_t, 0, 'c', 'i', info,
     "Sessions queued for thread",
 	"Number of times session was queued waiting for a thread."
 	" See also parameter thread_queue_limit."
 )
 
-VSC_F(sess_dropped,		uint64_t, 0, 'c', 'i', info,
+VSC_FF(sess_dropped,		uint64_t, 0, 'c', 'i', info,
     "Sessions dropped for thread",
 	"Number of times session was dropped because the queue were too"
 	" long already. See also parameter thread_queue_limit."
@@ -273,120 +289,140 @@ VSC_F(sess_dropped,		uint64_t, 0, 'c', 'i', info,
 
 /*---------------------------------------------------------------------*/
 
-VSC_F(n_object,			uint64_t, 1, 'g', 'i', info,
+VSC_FF(n_object,			uint64_t, 1, 'g', 'i', info,
     "object structs made",
 	"Approximate number of HTTP objects (headers + body, if present)"
 	" in the cache."
 )
-VSC_F(n_vampireobject,		uint64_t, 1, 'g', 'i', diag,
+
+VSC_FF(n_vampireobject,		uint64_t, 1, 'g', 'i', diag,
     "unresurrected objects",
 	"Number of unresurrected objects"
 )
-VSC_F(n_objectcore,		uint64_t, 1, 'g', 'i', info,
+
+VSC_FF(n_objectcore,		uint64_t, 1, 'g', 'i', info,
     "objectcore structs made",
 	"Approximate number of object metadata elements in the cache."
 	" Each object needs an objectcore, extra objectcores are for"
 	" hit-for-pass and busy objects."
 )
-VSC_F(n_objecthead,		uint64_t, 1, 'g', 'i', info,
+
+VSC_FF(n_objecthead,		uint64_t, 1, 'g', 'i', info,
     "objecthead structs made",
 	"Approximate number of different hash entries in the cache."
 )
 
-VSC_F(n_backend,		uint64_t, 0, 'g', 'i', info,
+VSC_FF(n_backend,		uint64_t, 0, 'g', 'i', info,
     "Number of backends",
 	"Number of backends known to us."
 )
 
-VSC_F(n_expired,		uint64_t, 0, 'g', 'i', info,
+VSC_FF(n_expired,		uint64_t, 0, 'g', 'i', info,
     "Number of expired objects",
 	"Number of objects that expired from cache"
 	" because of old age."
 )
-VSC_F(n_lru_nuked,		uint64_t, 0, 'g', 'i', info,
+
+VSC_FF(n_lru_nuked,		uint64_t, 0, 'g', 'i', info,
     "Number of LRU nuked objects",
 	"How many objects have been forcefully evicted"
 	" from storage to make room for a new object."
 )
-VSC_F(n_lru_moved,		uint64_t, 0, 'g', 'i', diag,
+
+VSC_FF(n_lru_moved,		uint64_t, 0, 'g', 'i', diag,
     "Number of LRU moved objects",
 	"Number of move operations done on the LRU list."
 )
 
-VSC_F(losthdr,			uint64_t, 0, 'c', 'i', info,
+VSC_FF(losthdr,			uint64_t, 0, 'c', 'i', info,
     "HTTP header overflows",
 	""
 )
 
-VSC_F(s_sess,			uint64_t, 1, 'c', 'i', info,
+VSC_FF(s_sess,			uint64_t, 1, 'c', 'i', info,
     "Total sessions seen",
 	""
 )
-VSC_F(s_req,			uint64_t, 1, 'c', 'i', info,
+
+VSC_FF(s_req,			uint64_t, 1, 'c', 'i', info,
     "Total requests seen",
 	""
 )
-VSC_F(s_pipe,			uint64_t, 1, 'c', 'i', info,
+
+VSC_FF(s_pipe,			uint64_t, 1, 'c', 'i', info,
     "Total pipe sessions seen",
 	""
 )
-VSC_F(s_pass,			uint64_t, 1, 'c', 'i', info,
+
+VSC_FF(s_pass,			uint64_t, 1, 'c', 'i', info,
     "Total pass-ed requests seen",
 	""
 )
-VSC_F(s_fetch,			uint64_t, 1, 'c', 'i', info,
+
+VSC_FF(s_fetch,			uint64_t, 1, 'c', 'i', info,
     "Total backend fetches initiated",
 	""
 )
-VSC_F(s_synth,			uint64_t, 1, 'c', 'i', info,
+
+VSC_FF(s_synth,			uint64_t, 1, 'c', 'i', info,
     "Total synthethic responses made",
 	""
 )
-VSC_F(s_req_hdrbytes,		uint64_t, 1, 'c', 'B', info,
+
+VSC_FF(s_req_hdrbytes,		uint64_t, 1, 'c', 'B', info,
     "Request header bytes",
 	"Total request header bytes received"
 )
-VSC_F(s_req_bodybytes,		uint64_t, 1, 'c', 'B', info,
+
+VSC_FF(s_req_bodybytes,		uint64_t, 1, 'c', 'B', info,
     "Request body bytes",
 	"Total request body bytes received"
 )
-VSC_F(s_resp_hdrbytes,		uint64_t, 1, 'c', 'B', info,
+
+VSC_FF(s_resp_hdrbytes,		uint64_t, 1, 'c', 'B', info,
     "Response header bytes",
 	"Total response header bytes transmitted"
 )
-VSC_F(s_resp_bodybytes,		uint64_t, 1, 'c', 'B', info,
+
+VSC_FF(s_resp_bodybytes,		uint64_t, 1, 'c', 'B', info,
     "Response body bytes",
 	"Total response body bytes transmitted"
 )
-VSC_F(s_pipe_hdrbytes,		uint64_t, 0, 'c', 'B', info,
+
+VSC_FF(s_pipe_hdrbytes,		uint64_t, 0, 'c', 'B', info,
     "Pipe request header bytes",
 	"Total request bytes received for piped sessions"
 )
-VSC_F(s_pipe_in,		uint64_t, 0, 'c', 'B', info,
+
+VSC_FF(s_pipe_in,		uint64_t, 0, 'c', 'B', info,
     "Piped bytes from client",
 	"Total number of bytes forwarded from clients in"
 	" pipe sessions"
 )
-VSC_F(s_pipe_out,		uint64_t, 0, 'c', 'B', info,
+
+VSC_FF(s_pipe_out,		uint64_t, 0, 'c', 'B', info,
     "Piped bytes to client",
 	"Total number of bytes forwarded to clients in"
 	" pipe sessions"
 )
 
-VSC_F(sess_closed,		uint64_t, 1, 'c', 'i', info,
+VSC_FF(sess_closed,		uint64_t, 1, 'c', 'i', info,
     "Session Closed",
 	""
 )
-VSC_F(sess_closed_err,		uint64_t, 0, 'c', 'i', info,
+
+VSC_FF(sess_closed_err,		uint64_t, 0, 'c', 'i', info,
     "Session Closed with error",
 	"Total number of sessions closed with errors."
 	" See sc_* diag counters for detailed breakdown"
 )
-VSC_F(sess_readahead,		uint64_t, 1, 'c', 'i', info,
+
+VSC_FF(sess_readahead,		uint64_t, 1, 'c', 'i', info,
     "Session Read Ahead",
 	""
 )
-VSC_F(sess_herd,		uint64_t, 1, 'c', 'i', diag,
+
+VSC_FF(sess_herd,		uint64_t, 1, 'c', 'i', diag,
     "Session herd",
 	"Number of times the timeout_linger triggered"
 )
@@ -396,139 +432,159 @@ VSC_F(sess_herd,		uint64_t, 1, 'c', 'i', diag,
 #define SESS_CLOSE_ERROR0 ""
 #define SESS_CLOSE_ERROR1 "Error "
 #define SESS_CLOSE(r, f, e, s)					\
-VSC_F(sc_ ## f, uint64_t, 0, 'c', 'i', diag,			\
+VSC_FF(sc_ ## f, uint64_t, 0, 'c', 'i', diag,			\
     "Session " SESS_CLOSE_ERR ## e #r,				\
 	"Number of session closes with "			\
 	SESS_CLOSE_ERROR ## e #r " (" s ")"			\
 )
 #include "tbl/sess_close.h"
-#undef SESS_CLOSE
 #undef SESS_CLOSE_ERROR1
 #undef SESS_CLOSE_ERROR0
 #undef SESS_CLOSE_ERR1
 #undef SESS_CLOSE_ERR0
+#undef SESS_CLOSE
 
 /*--------------------------------------------------------------------*/
 
-VSC_F(shm_records,		uint64_t, 0, 'c', 'i', diag,
+VSC_FF(shm_records,		uint64_t, 0, 'c', 'i', diag,
     "SHM records",
 	""
 )
-VSC_F(shm_writes,		uint64_t, 0, 'c', 'i', diag,
+
+VSC_FF(shm_writes,		uint64_t, 0, 'c', 'i', diag,
     "SHM writes",
 	""
 )
-VSC_F(shm_flushes,		uint64_t, 0, 'c', 'i', diag,
+
+VSC_FF(shm_flushes,		uint64_t, 0, 'c', 'i', diag,
     "SHM flushes due to overflow",
 	""
 )
-VSC_F(shm_cont,			uint64_t, 0, 'c', 'i', diag,
+
+VSC_FF(shm_cont,			uint64_t, 0, 'c', 'i', diag,
     "SHM MTX contention",
 	""
 )
-VSC_F(shm_cycles,		uint64_t, 0, 'c', 'i', diag,
+
+VSC_FF(shm_cycles,		uint64_t, 0, 'c', 'i', diag,
     "SHM cycles through buffer",
 	""
 )
 
 /*--------------------------------------------------------------------*/
 
-VSC_F(backend_req,		uint64_t, 0, 'c', 'i', info,
+VSC_FF(backend_req,		uint64_t, 0, 'c', 'i', info,
     "Backend requests made",
 	""
 )
 
 /*--------------------------------------------------------------------*/
 
-VSC_F(n_vcl,			uint64_t, 0, 'c', 'i', info,
+VSC_FF(n_vcl,			uint64_t, 0, 'c', 'i', info,
     "Number of loaded VCLs in total",
 	""
 )
-VSC_F(n_vcl_avail,		uint64_t, 0, 'c', 'i', diag,
+
+VSC_FF(n_vcl_avail,		uint64_t, 0, 'c', 'i', diag,
     "Number of VCLs available",
 	""
 )
-VSC_F(n_vcl_discard,		uint64_t, 0, 'c', 'i', diag,
+
+VSC_FF(n_vcl_discard,		uint64_t, 0, 'c', 'i', diag,
     "Number of discarded VCLs",
 	""
 )
 
 /*--------------------------------------------------------------------*/
 
-VSC_F(bans,			uint64_t, 0, 'g', 'i', info,
+VSC_FF(bans,			uint64_t, 0, 'g', 'i', info,
    "Count of bans",
 	"Number of all bans in system, including bans superseded"
 	" by newer bans and bans already checked by the ban-lurker."
 )
-VSC_F(bans_completed,		uint64_t, 0, 'g', 'i', diag,
+
+VSC_FF(bans_completed,		uint64_t, 0, 'g', 'i', diag,
     "Number of bans marked 'completed'",
 	"Number of bans which are no longer active, either because they"
 	" got checked by the ban-lurker or superseded by newer identical bans."
 )
-VSC_F(bans_obj,			uint64_t, 0, 'g', 'i', diag,
+
+VSC_FF(bans_obj,			uint64_t, 0, 'g', 'i', diag,
     "Number of bans using obj.*",
 	"Number of bans which use obj.* variables.  These bans can possibly"
 	" be washed by the ban-lurker."
 )
-VSC_F(bans_req,			uint64_t, 0, 'g', 'i', diag,
+
+VSC_FF(bans_req,			uint64_t, 0, 'g', 'i', diag,
     "Number of bans using req.*",
 	"Number of bans which use req.* variables.  These bans can not"
 	" be washed by the ban-lurker."
 )
-VSC_F(bans_added,		uint64_t, 0, 'c', 'i', diag,
+
+VSC_FF(bans_added,		uint64_t, 0, 'c', 'i', diag,
     "Bans added",
 	"Counter of bans added to ban list."
 )
-VSC_F(bans_deleted,		uint64_t, 0, 'c', 'i', diag,
+
+VSC_FF(bans_deleted,		uint64_t, 0, 'c', 'i', diag,
     "Bans deleted",
 	"Counter of bans deleted from ban list."
 )
 
-VSC_F(bans_tested,		uint64_t, 0, 'c', 'i', diag,
+VSC_FF(bans_tested,		uint64_t, 0, 'c', 'i', diag,
     "Bans tested against objects (lookup)",
 	"Count of how many bans and objects have been tested against"
 	" each other during hash lookup."
 )
-VSC_F(bans_obj_killed,		uint64_t, 0, 'c', 'i', diag,
+
+VSC_FF(bans_obj_killed,		uint64_t, 0, 'c', 'i', diag,
     "Objects killed by bans (lookup)",
 	"Number of objects killed by bans during object lookup."
 )
-VSC_F(bans_lurker_tested,	uint64_t, 0, 'c', 'i', diag,
+
+VSC_FF(bans_lurker_tested,	uint64_t, 0, 'c', 'i', diag,
     "Bans tested against objects (lurker)",
 	"Count of how many bans and objects have been tested against"
 	" each other by the ban-lurker."
 )
-VSC_F(bans_tests_tested,	uint64_t, 0, 'c', 'i', diag,
+
+VSC_FF(bans_tests_tested,	uint64_t, 0, 'c', 'i', diag,
     "Ban tests tested against objects (lookup)",
 	"Count of how many tests and objects have been tested against"
 	" each other during lookup."
 	" 'ban req.url == foo && req.http.host == bar'"
 	" counts as one in 'bans_tested' and as two in 'bans_tests_tested'"
 )
-VSC_F(bans_lurker_tests_tested,	uint64_t, 0, 'c', 'i', diag,
+
+VSC_FF(bans_lurker_tests_tested,	uint64_t, 0, 'c', 'i', diag,
     "Ban tests tested against objects (lurker)",
 	"Count of how many tests and objects have been tested against"
 	" each other by the ban-lurker."
 	"  'ban req.url == foo && req.http.host == bar'"
 	" counts as one in 'bans_tested' and as two in 'bans_tests_tested'"
 )
-VSC_F(bans_lurker_obj_killed,	uint64_t, 0, 'c', 'i', diag,
+
+VSC_FF(bans_lurker_obj_killed,	uint64_t, 0, 'c', 'i', diag,
     "Objects killed by bans (lurker)",
 	"Number of objects killed by ban-lurker."
 )
-VSC_F(bans_dups,		uint64_t, 0, 'c', 'i', diag,
+
+VSC_FF(bans_dups,		uint64_t, 0, 'c', 'i', diag,
     "Bans superseded by other bans",
 	"Count of bans replaced by later identical bans."
 )
-VSC_F(bans_lurker_contention,	uint64_t, 0, 'c', 'i', diag,
+
+VSC_FF(bans_lurker_contention,	uint64_t, 0, 'c', 'i', diag,
     "Lurker gave way for lookup",
 	"Number of times the ban-lurker had to wait for lookups."
 )
-VSC_F(bans_persisted_bytes,	uint64_t, 0, 'g', 'B', diag,
+
+VSC_FF(bans_persisted_bytes,	uint64_t, 0, 'g', 'B', diag,
     "Bytes used by the persisted ban lists",
 	"Number of bytes used by the persisted ban lists."
 )
-VSC_F(bans_persisted_fragmentation, uint64_t, 0, 'g', 'B', diag,
+
+VSC_FF(bans_persisted_fragmentation, uint64_t, 0, 'g', 'B', diag,
     "Extra bytes in persisted ban lists due to fragmentation",
 	"Number of extra bytes accumulated through dropped and"
 	" completed bans in the persistent ban lists."
@@ -536,93 +592,98 @@ VSC_F(bans_persisted_fragmentation, uint64_t, 0, 'g', 'B', diag,
 
 /*--------------------------------------------------------------------*/
 
-VSC_F(n_purges,			uint64_t, 0, 'g', 'i', info,
+VSC_FF(n_purges,			uint64_t, 0, 'g', 'i', info,
     "Number of purge operations executed",
 	""
 )
-VSC_F(n_obj_purged,		uint64_t, 0, 'g', 'i', info,
+
+VSC_FF(n_obj_purged,		uint64_t, 0, 'g', 'i', info,
     "Number of purged objects",
 	""
 )
 
 /*--------------------------------------------------------------------*/
 
-VSC_F(exp_mailed,		uint64_t, 0, 'c', 'i', diag,
+VSC_FF(exp_mailed,		uint64_t, 0, 'c', 'i', diag,
     "Number of objects mailed to expiry thread",
 	"Number of objects mailed to expiry thread for handling."
 )
 
-VSC_F(exp_received,		uint64_t, 0, 'c', 'i', diag,
+VSC_FF(exp_received,		uint64_t, 0, 'c', 'i', diag,
     "Number of objects received by expiry thread",
 	"Number of objects received by expiry thread for handling."
 )
 
 /*--------------------------------------------------------------------*/
 
-VSC_F(hcb_nolock,		uint64_t, 1, 'c', 'i', debug,
+VSC_FF(hcb_nolock,		uint64_t, 1, 'c', 'i', debug,
     "HCB Lookups without lock",
 	""
 )
-VSC_F(hcb_lock,			uint64_t, 0, 'c', 'i', debug,
+
+VSC_FF(hcb_lock,			uint64_t, 0, 'c', 'i', debug,
     "HCB Lookups with lock",
 	""
 )
-VSC_F(hcb_insert,		uint64_t, 0, 'c', 'i', debug,
+
+VSC_FF(hcb_insert,		uint64_t, 0, 'c', 'i', debug,
     "HCB Inserts",
 	""
 )
 
 /*--------------------------------------------------------------------*/
 
-VSC_F(esi_errors,		uint64_t, 0, 'c', 'i', diag,
+VSC_FF(esi_errors,		uint64_t, 0, 'c', 'i', diag,
     "ESI parse errors (unlock)",
 	""
 )
-VSC_F(esi_warnings,		uint64_t, 0, 'c', 'i', diag,
+
+VSC_FF(esi_warnings,		uint64_t, 0, 'c', 'i', diag,
     "ESI parse warnings (unlock)",
 	""
 )
 
 /*--------------------------------------------------------------------*/
 
-VSC_F(vmods,			uint64_t, 0, 'g', 'i', info,
+VSC_FF(vmods,			uint64_t, 0, 'g', 'i', info,
     "Loaded VMODs",
 	""
 )
 
 /*--------------------------------------------------------------------*/
 
-VSC_F(n_gzip,			uint64_t, 0, 'c', 'i', info,
+VSC_FF(n_gzip,			uint64_t, 0, 'c', 'i', info,
     "Gzip operations",
 	""
 )
-VSC_F(n_gunzip,			uint64_t, 0, 'c', 'i', info,
+
+VSC_FF(n_gunzip,			uint64_t, 0, 'c', 'i', info,
     "Gunzip operations",
 	""
 )
 
 /*--------------------------------------------------------------------*/
 
-VSC_F(vsm_free,			uint64_t, 0, 'g', 'B', diag,
+VSC_FF(vsm_free,			uint64_t, 0, 'g', 'B', diag,
     "Free VSM space",
 	"Number of bytes free in the shared memory used to communicate"
 	" with tools like varnishstat, varnishlog etc."
 )
 
-VSC_F(vsm_used,			uint64_t, 0, 'g', 'B', diag,
+VSC_FF(vsm_used,			uint64_t, 0, 'g', 'B', diag,
     "Used VSM space",
 	"Number of bytes used in the shared memory used to communicate"
 	" with tools like varnishstat, varnishlog etc."
 )
 
-VSC_F(vsm_cooling,		uint64_t, 0, 'g', 'B', debug,
+VSC_FF(vsm_cooling,		uint64_t, 0, 'g', 'B', debug,
     "Cooling VSM space",
 	"Number of bytes which will soon (max 1 minute) be freed"
 	" in the shared memory used to communicate"
 	" with tools like varnishstat, varnishlog etc."
 )
 
-VSC_F(vsm_overflow,		uint64_t, 0, 'g', 'B', diag,
+VSC_FF(vsm_overflow,		uint64_t, 0, 'g', 'B', diag,
     "Overflow VSM space",
 	"Number of bytes which does not fit"
 	" in the shared memory used to communicate"
@@ -631,7 +692,7 @@ VSC_F(vsm_overflow,		uint64_t, 0, 'g', 'B', diag,
 	" increasing the runtime variable vsm_space."
 )
 
-VSC_F(vsm_overflowed,		uint64_t, 0, 'c', 'B', diag,
+VSC_FF(vsm_overflowed,		uint64_t, 0, 'c', 'B', diag,
     "Overflowed VSM space",
 	"Total number of bytes which did not fit"
 	" in the shared memory used to communicate"
@@ -639,3 +700,7 @@ VSC_F(vsm_overflowed,		uint64_t, 0, 'c', 'B', diag,
 	" If this counter is not zero, consider"
 	" increasing the runtime variable vsm_space."
 )
+
+#undef VSC_FF
+
+/*lint -restore */
diff --git a/include/tbl/vsc_fields.h b/include/tbl/vsc_fields.h
index fcf342f..30c16bd 100644
--- a/include/tbl/vsc_fields.h
+++ b/include/tbl/vsc_fields.h
@@ -61,36 +61,44 @@
  *
  */
 
+/*lint -save -e525 -e539 */
+
 /**********************************************************************/
 
 #ifdef VSC_DO_MGT
 
-VSC_F(uptime,			uint64_t, 0, 'c', 'd', info,
+VSC_FF(uptime,			uint64_t, 0, 'c', 'd', info,
     "Management process uptime",
 	"Uptime in seconds of the management process"
 )
-VSC_F(child_start,		uint64_t, 0, 'c', 'i', diag,
+
+VSC_FF(child_start,		uint64_t, 0, 'c', 'i', diag,
     "Child process started",
 	"Number of times the child process has been started"
 )
-VSC_F(child_exit,		uint64_t, 0, 'c', 'i', diag,
+
+VSC_FF(child_exit,		uint64_t, 0, 'c', 'i', diag,
     "Child process normal exit",
 	"Number of times the child process has been cleanly stopped"
 )
-VSC_F(child_stop,		uint64_t, 0, 'c', 'i', diag,
+
+VSC_FF(child_stop,		uint64_t, 0, 'c', 'i', diag,
     "Child process unexpected exit",
 	"Number of times the child process has exited with an unexpected"
 	" return code"
 )
-VSC_F(child_died,		uint64_t, 0, 'c', 'i', diag,
+
+VSC_FF(child_died,		uint64_t, 0, 'c', 'i', diag,
     "Child process died (signal)",
 	"Number of times the child process has died due to signals"
 )
-VSC_F(child_dump,		uint64_t, 0, 'c', 'i', diag,
+
+VSC_FF(child_dump,		uint64_t, 0, 'c', 'i', diag,
     "Child process core dumped",
 	"Number of times the child process has produced core dumps"
 )
-VSC_F(child_panic,		uint64_t, 0, 'c', 'i', diag,
+
+VSC_FF(child_panic,		uint64_t, 0, 'c', 'i', diag,
     "Child process panic",
 	"Number of times the management process has caught a child panic"
 )
@@ -101,15 +109,17 @@ VSC_F(child_panic,		uint64_t, 0, 'c', 'i', diag,
 
 #ifdef VSC_DO_LCK
 
-VSC_F(creat,			uint64_t, 0, 'c', 'i', debug,
+VSC_FF(creat,			uint64_t, 0, 'c', 'i', debug,
     "Created locks",
 	""
 )
-VSC_F(destroy,			uint64_t, 0, 'c', 'i', debug,
+
+VSC_FF(destroy,			uint64_t, 0, 'c', 'i', debug,
     "Destroyed locks",
 	""
 )
-VSC_F(locks,			uint64_t, 0, 'c', 'i', debug,
+
+VSC_FF(locks,			uint64_t, 0, 'c', 'i', debug,
     "Lock Operations",
 	""
 )
@@ -121,37 +131,42 @@ VSC_F(locks,			uint64_t, 0, 'c', 'i', debug,
  */
 
 #if defined(VSC_DO_SMA) || defined (VSC_DO_SMF)
-VSC_F(c_req,			uint64_t, 0, 'c', 'i', info,
+VSC_FF(c_req,			uint64_t, 0, 'c', 'i', info,
     "Allocator requests",
 	"Number of times the storage has been asked to provide a storage segment."
 )
-VSC_F(c_fail,			uint64_t, 0, 'c', 'i', info,
+
+VSC_FF(c_fail,			uint64_t, 0, 'c', 'i', info,
     "Allocator failures",
 	"Number of times the storage has failed to provide a storage segment."
 )
-VSC_F(c_bytes,			uint64_t, 0, 'c', 'B', info,
+
+VSC_FF(c_bytes,			uint64_t, 0, 'c', 'B', info,
     "Bytes allocated",
 	"Number of total bytes allocated by this storage."
 )
-VSC_F(c_freed,			uint64_t, 0, 'c', 'B', info,
+
+VSC_FF(c_freed,			uint64_t, 0, 'c', 'B', info,
     "Bytes freed",
 	"Number of total bytes returned to this storage."
 )
-VSC_F(g_alloc,			uint64_t, 0, 'g', 'i', info,
+
+VSC_FF(g_alloc,			uint64_t, 0, 'g', 'i', info,
     "Allocations outstanding",
 	"Number of storage allocations outstanding."
 )
-VSC_F(g_bytes,			uint64_t, 0, 'g', 'B', info,
+
+VSC_FF(g_bytes,			uint64_t, 0, 'g', 'B', info,
     "Bytes outstanding",
 	"Number of bytes allocated from the storage."
 )
-VSC_F(g_space,			uint64_t, 0, 'g', 'B', info,
+
+VSC_FF(g_space,			uint64_t, 0, 'g', 'B', info,
     "Bytes available",
 	"Number of bytes left in the storage."
 )
 #endif
 
-
 /**********************************************************************/
 
 #ifdef VSC_DO_SMA
@@ -161,63 +176,75 @@ VSC_F(g_space,			uint64_t, 0, 'g', 'B', info,
 /**********************************************************************/
 
 #ifdef VSC_DO_SMF
-VSC_F(g_smf,			uint64_t, 0, 'g', 'i', info,
+VSC_FF(g_smf,			uint64_t, 0, 'g', 'i', info,
     "N struct smf",
 	""
 )
-VSC_F(g_smf_frag,		uint64_t, 0, 'g', 'i', info,
+
+VSC_FF(g_smf_frag,		uint64_t, 0, 'g', 'i', info,
     "N small free smf",
 	""
 )
-VSC_F(g_smf_large,		uint64_t, 0, 'g', 'i', info,
+
+VSC_FF(g_smf_large,		uint64_t, 0, 'g', 'i', info,
     "N large free smf",
 	""
 )
+
 #endif
 
 /**********************************************************************/
 
 #ifdef VSC_DO_VBE
 
-VSC_F(happy,			uint64_t, 0, 'b', 'b', info,
+VSC_FF(happy,			uint64_t, 0, 'b', 'b', info,
     "Happy health probes",
 	""
 )
-VSC_F(bereq_hdrbytes,		uint64_t, 0, 'c', 'B', info,
+
+VSC_FF(bereq_hdrbytes,		uint64_t, 0, 'c', 'B', info,
     "Request header bytes",
 	"Total backend request header bytes sent"
 )
-VSC_F(bereq_bodybytes,		uint64_t, 0, 'c', 'B', info,
+
+VSC_FF(bereq_bodybytes,		uint64_t, 0, 'c', 'B', info,
     "Request body bytes",
 	"Total backend request body bytes sent"
 )
-VSC_F(beresp_hdrbytes,		uint64_t, 0, 'c', 'B', info,
+
+VSC_FF(beresp_hdrbytes,		uint64_t, 0, 'c', 'B', info,
     "Response header bytes",
 	"Total backend response header bytes received"
 )
-VSC_F(beresp_bodybytes,		uint64_t, 0, 'c', 'B', info,
+
+VSC_FF(beresp_bodybytes,		uint64_t, 0, 'c', 'B', info,
     "Response body bytes",
 	"Total backend response body bytes received"
 )
-VSC_F(pipe_hdrbytes,		uint64_t, 0, 'c', 'B', info,
+
+VSC_FF(pipe_hdrbytes,		uint64_t, 0, 'c', 'B', info,
     "Pipe request header bytes",
 	"Total request bytes sent for piped sessions"
 )
-VSC_F(pipe_out,			uint64_t, 0, 'c', 'B', info,
+
+VSC_FF(pipe_out,			uint64_t, 0, 'c', 'B', info,
     "Piped bytes to backend",
 	"Total number of bytes forwarded to backend in"
 	" pipe sessions"
 )
-VSC_F(pipe_in,			uint64_t, 0, 'c', 'B', info,
+
+VSC_FF(pipe_in,			uint64_t, 0, 'c', 'B', info,
     "Piped bytes from backend",
 	"Total number of bytes forwarded from backend in"
 	" pipe sessions"
 )
-VSC_F(conn,			uint64_t, 0, 'g', 'i', info,
+
+VSC_FF(conn,			uint64_t, 0, 'g', 'i', info,
     "Concurrent connections to backend",
 	""
 )
-VSC_F(req,			uint64_t, 0, 'c', 'i', info,
+
+VSC_FF(req,			uint64_t, 0, 'c', 'i', info,
     "Backend requests sent",
 	""
 )
@@ -227,49 +254,63 @@ VSC_F(req,			uint64_t, 0, 'c', 'i', info,
 /**********************************************************************/
 #ifdef VSC_DO_MEMPOOL
 
-VSC_F(live,			uint64_t, 0, 'g', 'i', debug,
+VSC_FF(live,			uint64_t, 0, 'g', 'i', debug,
     "In use",
 	""
 )
-VSC_F(pool,			uint64_t, 0, 'g', 'i', debug,
+
+VSC_FF(pool,			uint64_t, 0, 'g', 'i', debug,
     "In Pool",
 	""
 )
-VSC_F(sz_wanted,		uint64_t, 0, 'g', 'B', debug,
+
+VSC_FF(sz_wanted,		uint64_t, 0, 'g', 'B', debug,
     "Size requested",
 	""
 )
-VSC_F(sz_actual,		uint64_t, 0, 'g', 'B', debug,
+
+VSC_FF(sz_actual,		uint64_t, 0, 'g', 'B', debug,
     "Size allocated",
 	""
 )
-VSC_F(allocs,			uint64_t, 0, 'c', 'i', debug,
+
+VSC_FF(allocs,			uint64_t, 0, 'c', 'i', debug,
     "Allocations",
 	""
 )
-VSC_F(frees,			uint64_t, 0, 'c', 'i', debug,
+
+VSC_FF(frees,			uint64_t, 0, 'c', 'i', debug,
     "Frees",
 	""
 )
-VSC_F(recycle,			uint64_t, 0, 'c', 'i', debug,
+
+VSC_FF(recycle,			uint64_t, 0, 'c', 'i', debug,
     "Recycled from pool",
 	""
 )
-VSC_F(timeout,			uint64_t, 0, 'c', 'i', debug,
+
+VSC_FF(timeout,			uint64_t, 0, 'c', 'i', debug,
     "Timed out from pool",
 	""
 )
-VSC_F(toosmall,			uint64_t, 0, 'c', 'i', debug,
+
+VSC_FF(toosmall,			uint64_t, 0, 'c', 'i', debug,
     "Too small to recycle",
 	""
 )
-VSC_F(surplus,			uint64_t, 0, 'c', 'i', debug,
+
+VSC_FF(surplus,			uint64_t, 0, 'c', 'i', debug,
     "Too many for pool",
 	""
 )
-VSC_F(randry,			uint64_t, 0, 'c', 'i', debug,
+
+VSC_FF(randry,			uint64_t, 0, 'c', 'i', debug,
     "Pool ran dry",
 	""
 )
 
 #endif
+
+#undef VSC_FF
+
+/*lint -restore */
diff --git a/include/tbl/vsc_levels.h b/include/tbl/vsc_levels.h
index 4a41cfe..f85dd2a 100644
--- a/include/tbl/vsc_levels.h
+++ b/include/tbl/vsc_levels.h
@@ -25,9 +25,7 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- */
-
-/*
+ *
  * Fields (v, l, e, d):
  *    v - Verbosity lvl:	Field name, in C-source
  *    l - Label:		Display name, in stats programs
@@ -36,10 +34,19 @@
  */
 
 /*lint -save -e525 -e539 */
+
 VSC_LEVEL_F(info,	"INFO",		"Informational counters",
-    "Counters giving runtime information")
+    "Counters giving runtime information"
+)
+
 VSC_LEVEL_F(diag,	"DIAG",		"Diagnostic counters",
-    "Counters giving diagnostic information")
+    "Counters giving diagnostic information"
+)
+
 VSC_LEVEL_F(debug,	"DEBUG",	"Debug counters",
-    "Counters giving Varnish internals debug information")
+    "Counters giving Varnish internals debug information"
+)
+
+#undef VSC_LEVEL_F
+
 /*lint -restore */
diff --git a/include/tbl/vsc_types.h b/include/tbl/vsc_types.h
index 22bc127..20adc1c 100644
--- a/include/tbl/vsc_types.h
+++ b/include/tbl/vsc_types.h
@@ -25,9 +25,7 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- */
-
-/*
+ *
  * Fields (n, l, e, d):
  *    n - Name:		Field name, in C-source
  *    t - Type:		Type name, in shm chunk
@@ -41,25 +39,35 @@
  */
 
 /*lint -save -e525 -e539 */
+
 VSC_TYPE_F(main,	"MAIN",		"",		"Child",
     "Child process main counters"
 )
+
 VSC_TYPE_F(mgt,		"MGT",		"MGT",		"Master",
     "Management process counters"
 )
+
 VSC_TYPE_F(mempool,	"MEMPOOL",	"MEMPOOL",	"Memory pool",
     "Memory pool counters"
 )
+
 VSC_TYPE_F(sma,		"SMA",		"SMA",		"Storage malloc",
     "Malloc storage counters"
 )
+
 VSC_TYPE_F(smf,		"SMF",		"SMF",		"Storage file",
     "File storage counters"
 )
+
 VSC_TYPE_F(vbe,		"VBE",		"VBE",		"Backend",
     "Backend counters"
 )
+
 VSC_TYPE_F(lck,		"LCK",		"LCK",		"Lock",
     "Mutex lock counters"
 )
+
+#undef VSC_TYPE_F
+
 /*lint -restore */
diff --git a/include/tbl/vsl_tags.h b/include/tbl/vsl_tags.h
index 339675e..93a2bfe 100644
--- a/include/tbl/vsl_tags.h
+++ b/include/tbl/vsl_tags.h
@@ -43,6 +43,7 @@
  */
 
 /*lint -save -e525 -e539 */
+
 #define NODEF_NOTICE \
     "NB: This log record is masked by default.\n\n"
 
@@ -77,16 +78,6 @@ SLTM(SessOpen, 0, "Client connection opened",
 	"\n"
 )
 
-/*
- * XXX: compilers are _so_ picky, and won't let us do an #include
- * XXX: in the middle of a macro invocation :-(
- * XXX: If we could, these three lines would have described the
- * XXX: 'reason' field below.
-#define SESS_CLOSE(nm, s, err, desc) "    " #nm "\n\t" desc "\n\n"
-#include "tbl/sess_close.h"
-#undef SESS_CLOSE
-*/
-
 SLTM(SessClose, 0, "Client connection closed",
 	"SessClose is the last record for any client connection.\n\n"
 	"The format is::\n\n"
@@ -208,6 +199,7 @@ SLTM(BogoHeader, 0, "Bogus HTTP received",
 	"Contains the first 20 characters of received HTTP headers we could"
 	" not make sense of.  Applies to both req.http and beresp.http.\n\n"
 )
+
 SLTM(LostHeader, 0, "Failed attempt to set HTTP header",
 	"Logs the header name of a failed HTTP header operation due to"
 	" resource exhaustion or configured limits.\n\n"
@@ -550,4 +542,6 @@ SLTM(H2TxBody, 0, "Transmitted HTTP2 frame body",
 )
 
 #undef NODEF_NOTICE
+#undef SLTM
+
 /*lint -restore */
diff --git a/include/tbl/vsl_tags_http.h b/include/tbl/vsl_tags_http.h
index 82a2219..393dbe5 100644
--- a/include/tbl/vsl_tags_http.h
+++ b/include/tbl/vsl_tags_http.h
@@ -44,21 +44,27 @@
  */
 
 /*lint -save -e525 -e539 */
+
 SLTH(Method,	HTTP_HDR_METHOD,	1, 0, "method",
 	"The HTTP request method used.\n\n"
 )
+
 SLTH(URL,	HTTP_HDR_URL,		1, 0, "URL",
 	"The HTTP request URL.\n\n"
 )
+
 SLTH(Protocol,	HTTP_HDR_PROTO,		1, 1, "protocol",
 	"The HTTP protocol version information.\n\n"
 )
+
 SLTH(Status,	HTTP_HDR_STATUS,	0, 1, "status",
 	"The HTTP status code received.\n\n"
 )
+
 SLTH(Reason,	HTTP_HDR_REASON,	0, 1, "response",
 	"The HTTP response string received.\n\n"
 )
+
 SLTH(Header,	HTTP_HDR_FIRST,		1, 1, "header",
 	"HTTP header contents.\n\n"
 	"The format is::\n\n"
@@ -68,6 +74,7 @@ SLTH(Header,	HTTP_HDR_FIRST,		1, 1, "header",
 	"\t+----- Header name\n"
 	"\n"
 )
+
 SLTH(Unset,	HTTP_HDR_UNSET,		0, 0, "unset header",
 	"HTTP header contents.\n\n"
 	"The format is::\n\n"
@@ -77,7 +84,11 @@ SLTH(Unset,	HTTP_HDR_UNSET,		0, 0, "unset header",
 	"\t+----- Header name\n"
 	"\n"
 )
+
 SLTH(Lost,	HTTP_HDR_LOST,		0, 0, "lost header",
 	""
 )
+
+#undef SLTH
+
 /*lint -restore */
diff --git a/include/vapi/vsc.h b/include/vapi/vsc.h
index 83ed155..ded83df 100644
--- a/include/vapi/vsc.h
+++ b/include/vapi/vsc.h
@@ -189,8 +189,5 @@ const struct VSC_level_desc *VSC_LevelDesc(unsigned level);
 #define VSC_F(n,t,l,s,f,v,d,e)
 #define VSC_DONE(U,l,t)
 #include "tbl/vsc_all.h"
-#undef VSC_DO
-#undef VSC_F
-#undef VSC_DONE
 
 #endif /* VAPI_VSC_H_INCLUDED */
diff --git a/include/vapi/vsc_int.h b/include/vapi/vsc_int.h
index 44a2d83..2566724 100644
--- a/include/vapi/vsc_int.h
+++ b/include/vapi/vsc_int.h
@@ -49,6 +49,3 @@ enum VSC_level_e {
 #define VSC_F(n,t,l,s,f,v,d,e)			t n;
 #define VSC_DONE(u,l,t)			};
 #include "tbl/vsc_all.h"
-#undef VSC_DO
-#undef VSC_F
-#undef VSC_DONE
diff --git a/include/vapi/vsl_int.h b/include/vapi/vsl_int.h
index 206c045..c28604d 100644
--- a/include/vapi/vsl_int.h
+++ b/include/vapi/vsl_int.h
@@ -91,7 +91,6 @@ enum VSL_tag_e {
 	SLT__Bogus = 0,
 #define SLTM(foo,flags,sdesc,ldesc)	SLT_##foo,
 #include "tbl/vsl_tags.h"
-#undef SLTM
 	SLT__Reserved = 254,
 	SLT__Batch = 255
 };
diff --git a/include/vcli_serve.h b/include/vcli_serve.h
index 332432c..1d7d5f9 100644
--- a/include/vcli_serve.h
+++ b/include/vcli_serve.h
@@ -51,7 +51,6 @@ struct cli_cmd_desc {
 
 #define CLI_CMD(U,l,s,h,d,m,M) extern const struct cli_cmd_desc CLICMD_##U[1];
 #include "tbl/cli_cmds.h"
-#undef CLI_CMD
 
 /* A CLI command */
 struct cli_proto {
diff --git a/lib/libvarnishapi/vsc.c b/lib/libvarnishapi/vsc.c
index 67da9d6..6aff617 100644
--- a/lib/libvarnishapi/vsc.c
+++ b/lib/libvarnishapi/vsc.c
@@ -54,7 +54,6 @@ enum {
 #define VSC_TYPE_F(n,t,l,e,d) \
 	VSC_type_order_##n,
 #include "tbl/vsc_types.h"
-#undef VSC_TYPE_F
 };
 
 struct vsc_vf {
@@ -304,9 +303,6 @@ vsc_add_pt(struct vsc *vsc, const volatile void *ptr,
 	}
 
 #include "tbl/vsc_all.h"
-#undef VSC_DO
-#undef VSC_F
-#undef VSC_DONE
 
 /*--------------------------------------------------------------------
  */
@@ -329,7 +325,6 @@ vsc_build_vf_list(struct VSM_data *vd)
 			vsc_add_vf(vsc, &vsc->iter_fantom,		\
 			    &VSC_type_desc_##n, VSC_type_order_##n);
 #include "tbl/vsc_types.h"
-#undef VSC_TYPE_F
 	}
 }
 
@@ -459,12 +454,10 @@ VSC_LevelDesc(unsigned level)
 
 #define VSC_TYPE_F(n,t,l,e,d)	const char *VSC_type_##n = t;
 #include "tbl/vsc_types.h"
-#undef VSC_TYPE_F
 
 #define VSC_TYPE_F(n,t,l,e,d)			\
 	const struct VSC_type_desc VSC_type_desc_##n = {l,e,d};
 #include "tbl/vsc_types.h"
-#undef VSC_TYPE_F
 
 #define VSC_DO(U,l,t)		const struct VSC_desc VSC_desc_##l[] = {
 #define VSC_F(n,t,l,s,f,v,d,e)		{#n,#t,s,f,&VSC_level_desc_##v,d,e},
diff --git a/lib/libvarnishapi/vsl.c b/lib/libvarnishapi/vsl.c
index 1efc453..a6e0f21 100644
--- a/lib/libvarnishapi/vsl.c
+++ b/lib/libvarnishapi/vsl.c
@@ -62,7 +62,6 @@
 const char * const VSL_tags[SLT__MAX] = {
 #  define SLTM(foo,flags,sdesc,ldesc)       [SLT_##foo] = #foo,
 #  include "tbl/vsl_tags.h"
-#  undef SLTM
 };
 
 const unsigned VSL_tagflags[SLT__MAX] = {
diff --git a/lib/libvarnishapi/vsl2rst.c b/lib/libvarnishapi/vsl2rst.c
index b9f7413..e4767d5 100644
--- a/lib/libvarnishapi/vsl2rst.c
+++ b/lib/libvarnishapi/vsl2rst.c
@@ -48,7 +48,6 @@ static struct SLT tags[SLT__MAX] = {
 #define SLTM(name, flags, sdesc, ldesc)				\
 	[SLT_##name] = { SLT_##name, flags, #name, sdesc, ldesc },
 #include "tbl/vsl_tags.h"
-#undef SLTM
 };
 
 static int
diff --git a/lib/libvcc/generate.py b/lib/libvcc/generate.py
index 9ee7469..55bb359 100755
--- a/lib/libvcc/generate.py
+++ b/lib/libvcc/generate.py
@@ -986,8 +986,15 @@ def file_header(fo):
  *
  * Edit and run generate.py instead.
  */
+
 """)
 
+def lint_start(fo):
+	fo.write('/*lint -save -e525 -e539 */\n\n')
+
+def lint_end(fo):
+	fo.write('\n/*lint -restore */\n')
+
 #######################################################################
 
 polish_tokens(tokens)
@@ -1028,9 +1035,9 @@ fo = open(join(buildroot, "include/tbl/vcl_returns.h"), "w")
 
 file_header(fo)
 
-fo.write("\n/*lint -save -e525 -e539 */\n")
+lint_start(fo)
 
-fo.write("\n#ifdef VCL_RET_MAC\n")
+fo.write("#ifdef VCL_RET_MAC\n")
 ll = sorted(returns)
 for i in sorted(rets.keys()):
 	fo.write("VCL_RET_MAC(%s, %s" % (i.lower(), i.upper()))
@@ -1039,7 +1046,8 @@ for i in sorted(rets.keys()):
 		if i in j[2]:
 			fo.write("%sVCL_MET_%s" % (s, j[0].upper()))
 			s = " |\n\t"
-	fo.write("\n)\n")
+	fo.write("\n)\n\n")
+fo.write("#undef VCL_RET_MAC\n")
 fo.write("#endif\n")
 
 fo.write("\n#ifdef VCL_MET_MAC\n")
@@ -1050,9 +1058,10 @@ for i in ll:
 	for j in sorted(i[2]):
 		fo.write("%s(1U << VCL_RET_%s)" % (p, j.upper()))
 		p = " |\n\t"
-	fo.write("\n))\n")
+	fo.write(")\n)\n\n")
+fo.write("#undef VCL_MET_MAC\n")
 fo.write("#endif\n")
-fo.write("\n/*lint -restore */\n")
+lint_end(fo)
 fo.close()
 
 #######################################################################
@@ -1282,11 +1291,12 @@ fo.close()
 ft = open(join(buildroot, "include/tbl/vcc_types.h"), "w")
 file_header(ft)
 
-ft.write("/*lint -save -e525 -e539 */\n")
+lint_start(ft)
 
 for vcltype in sorted(vcltypes.keys()):
 	ft.write("VCC_TYPE(" + vcltype + ")\n")
-ft.write("/*lint -restore */\n")
+ft.write("#undef VCC_TYPE\n")
+lint_end(ft)
 ft.close()
 
 #######################################################################
@@ -1294,6 +1304,7 @@ ft.close()
 fo = open(join(buildroot, "include/tbl/vrt_stv_var.h"), "w")
 
 file_header(fo)
+lint_start(fo)
 
 for i in stv_variables:
 	ct = vcltypes[i[1]]
@@ -1301,6 +1312,8 @@ for i in stv_variables:
 	fo.write(ct + ",\t" + i[2] + ")")
 	fo.write("\n")
 
+fo.write("#undef VRTSTVVAR\n")
+lint_end(fo)
 fo.close()
 
 #######################################################################
diff --git a/lib/libvcc/vcc_action.c b/lib/libvcc/vcc_action.c
index 60525a7..92e7b9f 100644
--- a/lib/libvcc/vcc_action.c
+++ b/lib/libvcc/vcc_action.c
@@ -295,7 +295,6 @@ parse_return(struct vcc *tl)
 			h = #U;				\
 		}
 #include "tbl/vcl_returns.h"
-#undef VCL_RET_MAC
 	if (h == NULL) {
 		VSB_printf(tl->sb, "Expected return action name.\n");
 		vcc_ErrWhere(tl, tl->t);
diff --git a/lib/libvcc/vcc_compile.c b/lib/libvcc/vcc_compile.c
index e350c95..a7dc484 100644
--- a/lib/libvcc/vcc_compile.c
+++ b/lib/libvcc/vcc_compile.c
@@ -68,7 +68,6 @@ struct method method_tab[] = {
 	{ "none", 0U, 0},
 #define VCL_MET_MAC(l,U,t,b)	{ "vcl_"#l, b, VCL_MET_##U },
 #include "tbl/vcl_returns.h"
-#undef VCL_MET_MAC
 	{ NULL, 0U, 0}
 };
 
@@ -426,7 +425,6 @@ EmitStruct(const struct vcc *tl)
 #define VCL_MET_MAC(l,u,t,b) \
 	Fc(tl, 0, "\t." #l "_func = VGC_function_vcl_" #l ",\n");
 #include "tbl/vcl_returns.h"
-#undef VCL_MET_MAC
 	Fc(tl, 0, "};\n");
 }
 
diff --git a/lib/libvcc/vcc_compile.h b/lib/libvcc/vcc_compile.h
index 008c9bb..d4b3964 100644
--- a/lib/libvcc/vcc_compile.h
+++ b/lib/libvcc/vcc_compile.h
@@ -101,13 +101,11 @@ struct type {
 
 #define VCC_TYPE(foo)		extern const struct type foo[1];
 #include "tbl/vcc_types.h"
-#undef VCC_TYPE
 
 
 enum symkind {
 #define VCC_SYMB(uu, ll)	SYM_##uu,
 #include "tbl/symbol_kind.h"
-#undef VCC_SYMB
 };
 
 typedef void sym_expr_t(struct vcc *tl, struct expr **,
diff --git a/lib/libvcc/vcc_symb.c b/lib/libvcc/vcc_symb.c
index 21dd348..10362a3 100644
--- a/lib/libvcc/vcc_symb.c
+++ b/lib/libvcc/vcc_symb.c
@@ -55,7 +55,6 @@ VCC_SymKind(struct vcc *tl, const struct symbol *s)
 	switch(s->kind) {
 #define VCC_SYMB(uu, ll)	case SYM_##uu: return(#ll);
 #include "tbl/symbol_kind.h"
-#undef VCC_SYMB
 	default:
 		ErrInternal(tl);
 		VSB_printf(tl->sb, "Symbol Kind 0x%x\n", s->kind);
@@ -204,7 +203,6 @@ vcc_global(struct vcc *tl, struct symbol *sym,
 
 #define VCL_MET_MAC(l,u,t,b)   sym->r_methods |= VCL_MET_##u;
 #include "tbl/vcl_returns.h"
-#undef VCL_MET_MAC
 }
 
 struct symbol *
diff --git a/lib/libvcc/vcc_types.c b/lib/libvcc/vcc_types.c
index b47e7f3..4f0a5c4 100644
--- a/lib/libvcc/vcc_types.c
+++ b/lib/libvcc/vcc_types.c
@@ -166,7 +166,6 @@ VCC_Type(const char *p)
 
 #define VCC_TYPE(foo)	if (!strcmp(p, #foo)) return (foo);
 #include "tbl/vcc_types.h"
-#undef VCC_TYPE
 	return (NULL);
 }
 
diff --git a/lib/libvcc/vcc_xref.c b/lib/libvcc/vcc_xref.c
index d492cc6..166bfe4 100644
--- a/lib/libvcc/vcc_xref.c
+++ b/lib/libvcc/vcc_xref.c
@@ -231,7 +231,6 @@ vcc_CheckActionRecurse(struct vcc *tl, struct proc *p, unsigned bitmap)
 			vcc_ErrWhere(tl, p->return_tok[VCL_RET_##U]);	\
 		}
 #include "tbl/vcl_returns.h"
-#undef VCL_RET_MAC
 
 		VSB_printf(tl->sb, "\n...in subroutine \"%.*s\"\n",
 		    PF(p->name));
@@ -276,7 +275,6 @@ vcc_checkaction1(struct vcc *tl, const struct symbol *sym)
 			VSB_printf(tl->sb, " \"%s\"", #l);
 
 #include "tbl/vcl_returns.h"
-#undef VCL_RET_MAC
 		VSB_printf(tl->sb, "\n");
 		tl->err = 1;
 	}



More information about the varnish-commit mailing list