Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 6 Feb 2020 17:41:52 +0100
From:      Hans Petter Selasky <hps@selasky.org>
To:        Pawel Biernacki <kaktus@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r357614 - in head/sys: kern sys
Message-ID:  <ed14c28a-d212-e488-898a-cf85ac6ead73@selasky.org>
In-Reply-To: <202002061245.016CjwTi096374@repo.freebsd.org>
References:  <202002061245.016CjwTi096374@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2020-02-06 13:45, Pawel Biernacki wrote:
> +#ifdef notyet
> +#define	SYSCTL_ENFORCE_FLAGS(x)						\
> +    _Static_assert(((CTLFLAG_MPSAFE ^ CTLFLAG_NEEDGIANT) & (x)),	\
> +        "Has to be either CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT")
> +#else
> +#define	SYSCTL_ENFORCE_FLAGS(x)
> +#endif

Like cem@ pointed out, either you expand the XOR via OR or you can also 
do it like this:

(((x) & CTLFLAG_MPSAFE) != 0) ^ (((x) & CTLFLAG_NEEDGIANT) != 0)

which avoids having to define another macro.

--HPS



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?ed14c28a-d212-e488-898a-cf85ac6ead73>