xor.h 954 B

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