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