2018-03-15 02:13:07 +03:00
/* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */
2005-04-17 02:20:36 +04:00
/******************************************************************************
*
* Name : acgcc . h - GCC specific defines , etc .
*
2022-04-11 21:54:22 +03:00
* Copyright ( C ) 2000 - 2022 , Intel Corp .
2005-04-17 02:20:36 +04:00
*
2018-03-15 02:13:07 +03:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2005-04-17 02:20:36 +04:00
# ifndef __ACGCC_H__
# define __ACGCC_H__
2017-06-05 11:39:56 +03:00
# ifndef va_arg
2021-10-06 08:13:18 +03:00
# ifdef __KERNEL__
2021-08-02 23:40:32 +03:00
# include <linux/stdarg.h>
2021-10-06 08:13:18 +03:00
# else
# include <stdarg.h>
# endif /* __KERNEL__ */
# endif /* ! va_arg */
2016-08-04 11:44:38 +03:00
2010-09-15 09:36:55 +04:00
# define ACPI_INLINE __inline__
2005-07-08 08:00:00 +04:00
/* Function name is used for debug output. Non-ANSI, compiler-dependent */
2008-10-16 09:01:24 +04:00
# define ACPI_GET_FUNCTION_NAME __func__
2005-07-08 08:00:00 +04:00
2006-01-28 00:43:00 +03:00
/*
* This macro is used to tag functions as " printf-like " because
2005-04-17 02:20:36 +04:00
* some compilers ( like GCC ) can catch printf format string problems .
*/
2006-01-28 00:43:00 +03:00
# define ACPI_PRINTF_LIKE(c) __attribute__ ((__format__ (__printf__, c, c+1)))
2005-04-17 02:20:36 +04:00
2006-01-28 00:43:00 +03:00
/*
* Some compilers complain about unused variables . Sometimes we don ' t want to
2005-07-08 08:00:00 +04:00
* use all the variables ( for example , _acpi_module_name ) . This allows us
2009-07-16 19:13:03 +04:00
* to tell the compiler warning in a per - variable manner that a variable
2005-04-17 02:20:36 +04:00
* is unused .
*/
# define ACPI_UNUSED_VAR __attribute__ ((unused))
2015-07-01 09:43:43 +03:00
/* GCC supports __VA_ARGS__ in macros */
# define COMPILER_VA_MACRO 1
2017-08-03 09:26:50 +03:00
/* GCC supports native multiply/shift on 32-bit platforms */
# define ACPI_USE_NATIVE_MATH64
2021-01-22 03:23:51 +03:00
/* GCC did not support __has_attribute until 5.1. */
# ifndef __has_attribute
# define __has_attribute(x) 0
# endif
/*
2021-04-07 00:30:14 +03:00
* Explicitly mark intentional explicit fallthrough to silence
2021-01-22 03:23:51 +03:00
* - Wimplicit - fallthrough in GCC 7.1 + .
*/
# if __has_attribute(__fallthrough__)
# define ACPI_FALLTHROUGH __attribute__((__fallthrough__))
# endif
2005-08-05 08:44:28 +04:00
# endif /* __ACGCC_H__ */