The BIT_SET et.al. macros used in the FreeBSD kernel (and a few utilities that access low level data) differ from same-name macros used by third party programs.
The conflict is avoided by hiding these kernel specific macro definitions from user-land sources, and user-land programs can then define BIT_* macros with different parameters and semantics.
This patch is a pre-condition for adding BIT_* macros and some function signatures that conform with calling conventions expected in 3rd party code to sched.h.