summaryrefslogtreecommitdiffstats
path: root/freebsd/sbin
diff options
context:
space:
mode:
authorStefan Eßer <se@FreeBSD.org>2021-12-05 22:27:33 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2022-09-28 13:20:55 +0200
commit31808093e126ba93da7f1e497c46fee8c09fc9ce (patch)
tree899dfe6262c7901a15c05e3e0b93fdd8473314fe /freebsd/sbin
parentarm/lpc: Add option to customize device probes (diff)
downloadrtems-libbsd-31808093e126ba93da7f1e497c46fee8c09fc9ce.tar.bz2
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
Diffstat (limited to 'freebsd/sbin')
-rw-r--r--freebsd/sbin/pfctl/pfctl_altq.c1
-rw-r--r--freebsd/sbin/pfctl/pfctl_parser.h2
2 files changed, 2 insertions, 1 deletions
diff --git a/freebsd/sbin/pfctl/pfctl_altq.c b/freebsd/sbin/pfctl/pfctl_altq.c
index 7cf72b43..05c7da22 100644
--- a/freebsd/sbin/pfctl/pfctl_altq.c
+++ b/freebsd/sbin/pfctl/pfctl_altq.c
@@ -31,6 +31,7 @@
__FBSDID("$FreeBSD$");
#define PFIOC_USE_LATEST
+#define _WANT_FREEBSD_BITSET
#include <sys/types.h>
#include <sys/bitset.h>
diff --git a/freebsd/sbin/pfctl/pfctl_parser.h b/freebsd/sbin/pfctl/pfctl_parser.h
index aa6d98d7..7d92b1db 100644
--- a/freebsd/sbin/pfctl/pfctl_parser.h
+++ b/freebsd/sbin/pfctl/pfctl_parser.h
@@ -178,7 +178,7 @@ struct node_queue_opt {
};
#define QPRI_BITSET_SIZE 256
-BITSET_DEFINE(qpri_bitset, QPRI_BITSET_SIZE);
+__BITSET_DEFINE(qpri_bitset, QPRI_BITSET_SIZE);
LIST_HEAD(gen_sc, segment);
struct pfctl_altq {