diff options
Diffstat (limited to 'include/linux/raid/xor.h')
-rw-r--r-- | include/linux/raid/xor.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/include/linux/raid/xor.h b/include/linux/raid/xor.h new file mode 100644 index 000000000..51b811b62 --- /dev/null +++ b/include/linux/raid/xor.h @@ -0,0 +1,30 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef _XOR_H +#define _XOR_H + +#define MAX_XOR_BLOCKS 4 + +extern void xor_blocks(unsigned int count, unsigned int bytes, + void *dest, void **srcs); + +struct xor_block_template { + struct xor_block_template *next; + const char *name; + int speed; + void (*do_2)(unsigned long, unsigned long * __restrict, + const unsigned long * __restrict); + void (*do_3)(unsigned long, unsigned long * __restrict, + const unsigned long * __restrict, + const unsigned long * __restrict); + void (*do_4)(unsigned long, unsigned long * __restrict, + const unsigned long * __restrict, + const unsigned long * __restrict, + const unsigned long * __restrict); + void (*do_5)(unsigned long, unsigned long * __restrict, + const unsigned long * __restrict, + const unsigned long * __restrict, + const unsigned long * __restrict, + const unsigned long * __restrict); +}; + +#endif |