blob: 71abfc7612b2ff59f3abde8064e56ebf2434cbd2 [file] [log] [blame]
Jackie Liu21e28542018-12-04 09:43:22 +08001/*
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
Nathan Chancellor0738c8b2019-02-14 18:39:59 -070039#ifdef CONFIG_CC_IS_CLANG
40#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
41#endif
42
Jackie Liu21e28542018-12-04 09:43:22 +080043#endif /* __ASM_NEON_INTRINSICS_H */