xref: /freebsd/sys/compat/linuxkpi/common/include/linux/compiler_attributes.h (revision 33fa585a0e9032b31c563c8aae001c0c2a4866d4)
1*33fa585aSJean-Sébastien Pédron /*
2*33fa585aSJean-Sébastien Pédron  * SPDX-License-Identifier: BSD-2-Clause
3*33fa585aSJean-Sébastien Pédron  *
4*33fa585aSJean-Sébastien Pédron  * Copyright (c) 2010 Isilon Systems, Inc.
5*33fa585aSJean-Sébastien Pédron  * Copyright (c) 2010 iX Systems, Inc.
6*33fa585aSJean-Sébastien Pédron  * Copyright (c) 2010 Panasas, Inc.
7*33fa585aSJean-Sébastien Pédron  * Copyright (c) 2013-2016 Mellanox Technologies, Ltd.
8*33fa585aSJean-Sébastien Pédron  * Copyright (c) 2015 François Tigeot
9*33fa585aSJean-Sébastien Pédron  * All rights reserved.
10*33fa585aSJean-Sébastien Pédron  */
11*33fa585aSJean-Sébastien Pédron 
12*33fa585aSJean-Sébastien Pédron #ifndef	_LINUXKPI_LINUX_COMPILER_ATTRIBUTES_H_
13*33fa585aSJean-Sébastien Pédron #define	_LINUXKPI_LINUX_COMPILER_ATTRIBUTES_H_
14*33fa585aSJean-Sébastien Pédron 
15*33fa585aSJean-Sébastien Pédron #include <sys/cdefs.h>
16*33fa585aSJean-Sébastien Pédron 
17*33fa585aSJean-Sébastien Pédron #define	__attribute_const__		__attribute__((__const__))
18*33fa585aSJean-Sébastien Pédron 
19*33fa585aSJean-Sébastien Pédron #ifndef	__deprecated
20*33fa585aSJean-Sébastien Pédron #define	__deprecated
21*33fa585aSJean-Sébastien Pédron #endif
22*33fa585aSJean-Sébastien Pédron 
23*33fa585aSJean-Sébastien Pédron #define	fallthrough			/* FALLTHROUGH */ do { } while(0)
24*33fa585aSJean-Sébastien Pédron 
25*33fa585aSJean-Sébastien Pédron #undef	__always_inline
26*33fa585aSJean-Sébastien Pédron #define	__always_inline			inline
27*33fa585aSJean-Sébastien Pédron 
28*33fa585aSJean-Sébastien Pédron #define	__printf(a,b)			__printflike(a,b)
29*33fa585aSJean-Sébastien Pédron 
30*33fa585aSJean-Sébastien Pédron #define	__malloc
31*33fa585aSJean-Sébastien Pédron 
32*33fa585aSJean-Sébastien Pédron #define	noinline			__noinline
33*33fa585aSJean-Sébastien Pédron 
34*33fa585aSJean-Sébastien Pédron #if __has_attribute(__nonstring__)
35*33fa585aSJean-Sébastien Pédron #define	__nonstring			__attribute__((__nonstring__))
36*33fa585aSJean-Sébastien Pédron #else
37*33fa585aSJean-Sébastien Pédron #define	__nonstring
38*33fa585aSJean-Sébastien Pédron #endif
39*33fa585aSJean-Sébastien Pédron 
40*33fa585aSJean-Sébastien Pédron #define	noinline_for_stack		__noinline
41*33fa585aSJean-Sébastien Pédron 
42*33fa585aSJean-Sébastien Pédron #define	__maybe_unused			__unused
43*33fa585aSJean-Sébastien Pédron #define	__always_unused			__unused
44*33fa585aSJean-Sébastien Pédron 
45*33fa585aSJean-Sébastien Pédron #define	__must_check			__result_use_check
46*33fa585aSJean-Sébastien Pédron 
47*33fa585aSJean-Sébastien Pédron #define	__weak __weak_symbol
48*33fa585aSJean-Sébastien Pédron 
49*33fa585aSJean-Sébastien Pédron #endif
50