1 /* 2 * Copyright (C) 2018 Linaro, Ltd. <ard.biesheuvel@linaro.org> 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License version 2 as 6 * published by the Free Software Foundation. 7 */ 8 9 #ifndef __ASM_NEON_INTRINSICS_H 10 #define __ASM_NEON_INTRINSICS_H 11 12 #include <asm-generic/int-ll64.h> 13 14 /* 15 * In the kernel, u64/s64 are [un]signed long long, not [un]signed long. 16 * So by redefining these macros to the former, we can force gcc-stdint.h 17 * to define uint64_t / in64_t in a compatible manner. 18 */ 19 20 #ifdef __INT64_TYPE__ 21 #undef __INT64_TYPE__ 22 #define __INT64_TYPE__ long long 23 #endif 24 25 #ifdef __UINT64_TYPE__ 26 #undef __UINT64_TYPE__ 27 #define __UINT64_TYPE__ unsigned long long 28 #endif 29 30 /* 31 * genksyms chokes on the ARM NEON instrinsics system header, but we 32 * don't export anything it defines anyway, so just disregard when 33 * genksyms execute. 34 */ 35 #ifndef __GENKSYMS__ 36 #include <arm_neon.h> 37 #endif 38 39 #ifdef CONFIG_CC_IS_CLANG 40 #pragma clang diagnostic ignored "-Wincompatible-pointer-types" 41 #endif 42 43 #endif /* __ASM_NEON_INTRINSICS_H */ 44