]> git.proxmox.com Git - mirror_zfs.git/blob - include/linux/simd_aarch64.h
Add parity generation/rebuild using 128-bits NEON for Aarch64
[mirror_zfs.git] / include / linux / simd_aarch64.h
1 /*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21 /*
22 * Copyright (C) 2016 Romain Dolbeau <romain@dolbeau.org>.
23 */
24
25 /*
26 * USER API:
27 *
28 * Kernel fpu methods:
29 * kfpu_begin()
30 * kfpu_end()
31 */
32
33 #ifndef _SIMD_AARCH64_H
34 #define _SIMD_AARCH64_H
35
36 #include <sys/isa_defs.h>
37
38 #if defined(__aarch64__)
39
40 #include <sys/types.h>
41
42 #if defined(_KERNEL)
43 #include <asm/neon.h>
44 #define kfpu_begin() \
45 { \
46 kernel_neon_begin(); \
47 }
48 #define kfpu_end() \
49 { \
50 kernel_neon_end(); \
51 }
52 #else
53 /*
54 * fpu dummy methods for userspace
55 */
56 #define kfpu_begin() do {} while (0)
57 #define kfpu_end() do {} while (0)
58 #endif /* defined(_KERNEL) */
59
60 #endif /* __aarch64__ */
61
62 #endif /* _SIMD_AARCH64_H */