freebsd-nq/include
Stefan Eßer 5e04571cf3 sys/bitset.h: reduce visibility of BIT_* macros
Add two underscore characters "__" to names of BIT_* and BITSET_*
macros to move them to the implementation name space and to prevent
a name space pollution due to BIT_* macros in 3rd party programs with
conflicting parameter signatures.

These prefixed macro names are used in kernel header files to define
macros in e.g. sched.h, sys/cpuset.h and sys/domainset.h.

If C programs are built with either -D_KERNEL (automatically passed
when building a kernel or kernel modules) or -D_WANT_FREENBSD_BITSET
(or this macros is defined in the source code before including the
bitset macros), then all macros are made visible with their previous
names, too. E.g., both __BIT_SET() and BIT_SET() are visible with
either of _KERNEL or _WANT_FREEBSD_BITSET defined.

The main reason for this change is that some 3rd party sources
including sched.h have been found to contain conflicting BIT_*
macros.

As a work-around, parts of shed.h have been made conditional and
depend on _WITH_CPU_SET_T being set when sched.h is included.
Ports that expect the full functionality provided by sched.h need
to be built with -D_WITH_CPU_SET_T. But this leads to conflicts if
BIT_* macros are defined in that program, too.

This patch set makes all of sched.h visible again without this
parameter being passed and without any name space pollution due
to BIT_* macros becoming visible when sched.h is included.

This patch set will be backported to the STABLE branches, but ports
will need to use -D_WITH_CPU_SET_T as long as there are supported
releases that do not contain these patches.

Reviewed by:	kib, markj
MFC after:	1 month
Relnotes:	yes
Differential Revision:	https://reviews.freebsd.org/D33235
2021-12-05 23:00:25 +01:00
..
arpa
gssapi
protocols Clean up global variable declarations in the dump and restore 2020-04-04 00:56:56 +00:00
rpc
rpcsvc Increase YPMAXRECORD to 16M to be compatible with Linux. 2019-08-12 20:27:33 +00:00
xlocale Implement strerror_l(). 2020-12-16 09:02:09 +00:00
_ctype.h
a.out.h
ar.h
assert.h
bitstring.h
complex.h Implementations of cexpl() 2021-11-05 13:51:42 +02:00
cpio.h
ctype.h
db.h
dirent.h
dlfcn.h Implement RTLD_DEEPBIND. 2020-05-15 11:58:01 +00:00
elf-hints.h
elf.h
err.h
fmtmsg.h
fnmatch.h
fstab.h
fts.h
ftw.h
getopt.h
glob.h
grp.h
gssapi.h
hesiod.h
iconv.h
ieeefp.h
ifaddrs.h
inttypes.h
iso646.h
kenv.h
langinfo.h
libgen.h
limits.h
link.h
locale.h
Makefile Add real sched.h 2021-11-10 21:18:53 +02:00
Makefile.depend
malloc_np.h Add memalign(3), mostly for glibc compatibility. 2020-05-14 21:12:08 +00:00
malloc.h Make include/malloc.h usable again. 2020-05-12 18:17:57 +00:00
memory.h
mk-osreldate.sh Move to using newvers -c instead of VARS_ONLY=1 2019-05-23 17:19:05 +00:00
monetary.h
mpool.h
mqueue.h
ndbm.h
netconfig.h
netdb.h
nl_types.h
nlist.h
nss.h
nsswitch.h
paths.h Add search of LOCALBASE/share/calendar for calendars supplied by a port. 2020-10-23 09:22:23 +00:00
printf.h
proc_service.h
pthread_np.h Revert r361770 "Add pthread_getname_np() and pthread_setname_np() aliases" for now. 2020-06-04 09:06:03 +00:00
pthread.h Reduce code duplication in machine/_types.h 2021-06-14 16:30:16 +01:00
pwd.h
ranlib.h
readpassphrase.h
regex.h <regex.h>: reserve a regcomp field for REG_POSIX 2020-07-31 12:40:31 +00:00
res_update.h
resolv.h
runetype.h Remove __NO_TLS. 2021-02-23 20:08:10 +02:00
sched.h sys/bitset.h: reduce visibility of BIT_* macros 2021-12-05 23:00:25 +01:00
search.h
semaphore.h
setjmp.h
signal.h Add sigsetop extensions commonly found in musl libc and glibc 2019-12-12 01:41:55 +00:00
spawn.h posix_spawn: add closefrom non-portable action 2021-11-30 03:43:54 +02:00
stab.h
stdalign.h
stdbool.h Remove obsolete check for GCC < 3 and support for Intel Compiler 2020-10-24 23:21:06 +00:00
stddef.h
stdio.h libc: provide fputc_unlocked 2020-02-02 19:45:12 +00:00
stdlib.h libc: add clearenv function 2021-11-07 16:20:15 +01:00
stdnoreturn.h
string.h libc: add mempcpy(3) and wmempcpy(3) 2021-07-15 19:40:28 +03:00
stringlist.h
strings.h
sysexits.h
tar.h
termios.h Add tcgetwinsize(3) and tcsetwinsize(3) to termios 2020-12-25 20:43:09 +02:00
tgmath.h
time.h time.h: reduce CLOCK_ namespace pollution, move to _clock_id.h 2021-07-30 17:20:22 -06:00
timeconv.h
timers.h
ttyent.h
uchar.h
ulimit.h
unistd.h Add _Fork() 2021-08-03 21:19:32 +03:00
unwind.h
utime.h
utmpx.h
uuid.h
varargs.h
wchar.h libc: add mempcpy(3) and wmempcpy(3) 2021-07-15 19:40:28 +03:00
wctype.h
wordexp.h
xlocale.h