xref: /openbmc/linux/arch/ia64/include/asm/xor.h (revision 41e0d491)
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  * Optimized RAID-5 checksumming functions for IA-64.
4  */
5 
6 
7 extern void xor_ia64_2(unsigned long bytes, unsigned long * __restrict p1,
8 		       const unsigned long * __restrict p2);
9 extern void xor_ia64_3(unsigned long bytes, unsigned long * __restrict p1,
10 		       const unsigned long * __restrict p2,
11 		       const unsigned long * __restrict p3);
12 extern void xor_ia64_4(unsigned long bytes, unsigned long * __restrict p1,
13 		       const unsigned long * __restrict p2,
14 		       const unsigned long * __restrict p3,
15 		       const unsigned long * __restrict p4);
16 extern void xor_ia64_5(unsigned long bytes, unsigned long * __restrict p1,
17 		       const unsigned long * __restrict p2,
18 		       const unsigned long * __restrict p3,
19 		       const unsigned long * __restrict p4,
20 		       const unsigned long * __restrict p5);
21 
22 static struct xor_block_template xor_block_ia64 = {
23 	.name =	"ia64",
24 	.do_2 =	xor_ia64_2,
25 	.do_3 =	xor_ia64_3,
26 	.do_4 =	xor_ia64_4,
27 	.do_5 =	xor_ia64_5,
28 };
29 
30 #define XOR_TRY_TEMPLATES	xor_speed(&xor_block_ia64)
31