- Define true and false in sys/types.h for _KERNEL consumers, and
typedef bool. Due to macro expansion it seemed better to use a typedef for kernel consumers (specifically ofed won't compile without more changes if a define is used). - <stdbool.h> should also not re-define bool/true/false if they are defined by <sys/types.h>. It would probably be a programming error to define _KERNEL for user-space code, but downstream consumers like Isilon have already been including <stdbool.h> in kernel sources, and this protects that usage. - sizeof(_Bool) is not necessarily the same as sizeof(int), so kernel modules should be rebuild with this change. Bump __FreeBSD_version. MFC after: 2 weeks Sponsored by: Isilon Systems, LLC
This commit is contained in:
parent
103af58f59
commit
108cd49471
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=228444
@ -29,6 +29,7 @@
|
|||||||
#ifndef _STDBOOL_H_
|
#ifndef _STDBOOL_H_
|
||||||
#define _STDBOOL_H_
|
#define _STDBOOL_H_
|
||||||
|
|
||||||
|
#ifndef __bool_true_false_are_defined
|
||||||
#define __bool_true_false_are_defined 1
|
#define __bool_true_false_are_defined 1
|
||||||
|
|
||||||
#ifndef __cplusplus
|
#ifndef __cplusplus
|
||||||
@ -42,5 +43,6 @@ typedef int _Bool;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* !__cplusplus */
|
#endif /* !__cplusplus */
|
||||||
|
#endif /* __bool_true_false_are_defined */
|
||||||
|
|
||||||
#endif /* !_STDBOOL_H_ */
|
#endif /* !_STDBOOL_H_ */
|
||||||
|
@ -58,7 +58,7 @@
|
|||||||
* in the range 5 to 9.
|
* in the range 5 to 9.
|
||||||
*/
|
*/
|
||||||
#undef __FreeBSD_version
|
#undef __FreeBSD_version
|
||||||
#define __FreeBSD_version 1000001 /* Master, propagated to newvers */
|
#define __FreeBSD_version 1000002 /* Master, propagated to newvers */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD,
|
* __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD,
|
||||||
|
@ -261,6 +261,16 @@ typedef __uint64_t uoff_t;
|
|||||||
typedef char vm_memattr_t; /* memory attribute codes */
|
typedef char vm_memattr_t; /* memory attribute codes */
|
||||||
typedef struct vm_page *vm_page_t;
|
typedef struct vm_page *vm_page_t;
|
||||||
|
|
||||||
|
#if !defined(__bool_true_false_are_defined) && !defined(__cplusplus)
|
||||||
|
#define __bool_true_false_are_defined 1
|
||||||
|
#define false 0
|
||||||
|
#define true 1
|
||||||
|
#if __STDC_VERSION__ < 199901L && __GNUC__ < 3 && !defined(__INTEL_COMPILER)
|
||||||
|
typedef int _Bool;
|
||||||
|
#endif
|
||||||
|
typedef _Bool bool;
|
||||||
|
#endif /* !__bool_true_false_are_defined && !__cplusplus */
|
||||||
|
|
||||||
#define offsetof(type, field) __offsetof(type, field)
|
#define offsetof(type, field) __offsetof(type, field)
|
||||||
|
|
||||||
#endif /* !_KERNEL */
|
#endif /* !_KERNEL */
|
||||||
|
Loading…
Reference in New Issue
Block a user