Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * Copyright (C) 2018 Linaro, Ltd. <ard.biesheuvel@linaro.org>
0004  */
0005 
0006 #ifndef __ASM_NEON_INTRINSICS_H
0007 #define __ASM_NEON_INTRINSICS_H
0008 
0009 #include <asm-generic/int-ll64.h>
0010 
0011 /*
0012  * In the kernel, u64/s64 are [un]signed long long, not [un]signed long.
0013  * So by redefining these macros to the former, we can force gcc-stdint.h
0014  * to define uint64_t / in64_t in a compatible manner.
0015  */
0016 
0017 #ifdef __INT64_TYPE__
0018 #undef __INT64_TYPE__
0019 #define __INT64_TYPE__      long long
0020 #endif
0021 
0022 #ifdef __UINT64_TYPE__
0023 #undef __UINT64_TYPE__
0024 #define __UINT64_TYPE__     unsigned long long
0025 #endif
0026 
0027 /*
0028  * genksyms chokes on the ARM NEON instrinsics system header, but we
0029  * don't export anything it defines anyway, so just disregard when
0030  * genksyms execute.
0031  */
0032 #ifndef __GENKSYMS__
0033 #include <arm_neon.h>
0034 #endif
0035 
0036 #ifdef CONFIG_CC_IS_CLANG
0037 #pragma clang diagnostic ignored "-Wincompatible-pointer-types"
0038 #endif
0039 
0040 #endif /* __ASM_NEON_INTRINSICS_H */