0001
0002 #ifndef _XOR_H
0003 #define _XOR_H
0004
0005 #define MAX_XOR_BLOCKS 4
0006
0007 extern void xor_blocks(unsigned int count, unsigned int bytes,
0008 void *dest, void **srcs);
0009
0010 struct xor_block_template {
0011 struct xor_block_template *next;
0012 const char *name;
0013 int speed;
0014 void (*do_2)(unsigned long, unsigned long * __restrict,
0015 const unsigned long * __restrict);
0016 void (*do_3)(unsigned long, unsigned long * __restrict,
0017 const unsigned long * __restrict,
0018 const unsigned long * __restrict);
0019 void (*do_4)(unsigned long, unsigned long * __restrict,
0020 const unsigned long * __restrict,
0021 const unsigned long * __restrict,
0022 const unsigned long * __restrict);
0023 void (*do_5)(unsigned long, unsigned long * __restrict,
0024 const unsigned long * __restrict,
0025 const unsigned long * __restrict,
0026 const unsigned long * __restrict,
0027 const unsigned long * __restrict);
0028 };
0029
0030 #endif