1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef _XOR_H 3*4882a593Smuzhiyun #define _XOR_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #define MAX_XOR_BLOCKS 4 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun extern void xor_blocks(unsigned int count, unsigned int bytes, 8*4882a593Smuzhiyun void *dest, void **srcs); 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun struct xor_block_template { 11*4882a593Smuzhiyun struct xor_block_template *next; 12*4882a593Smuzhiyun const char *name; 13*4882a593Smuzhiyun int speed; 14*4882a593Smuzhiyun void (*do_2)(unsigned long, unsigned long *, unsigned long *); 15*4882a593Smuzhiyun void (*do_3)(unsigned long, unsigned long *, unsigned long *, 16*4882a593Smuzhiyun unsigned long *); 17*4882a593Smuzhiyun void (*do_4)(unsigned long, unsigned long *, unsigned long *, 18*4882a593Smuzhiyun unsigned long *, unsigned long *); 19*4882a593Smuzhiyun void (*do_5)(unsigned long, unsigned long *, unsigned long *, 20*4882a593Smuzhiyun unsigned long *, unsigned long *, unsigned long *); 21*4882a593Smuzhiyun }; 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun #endif 24