]>
Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | /* |
2 | * include/asm-sparc64/xor.h | |
3 | * | |
4 | * High speed xor_block operation for RAID4/5 utilizing the | |
5 | * UltraSparc Visual Instruction Set. | |
6 | * | |
7 | * Copyright (C) 1997, 1999 Jakub Jelinek (jj@ultra.linux.cz) | |
8 | * | |
9 | * This program is free software; you can redistribute it and/or modify | |
10 | * it under the terms of the GNU General Public License as published by | |
11 | * the Free Software Foundation; either version 2, or (at your option) | |
12 | * any later version. | |
13 | * | |
14 | * You should have received a copy of the GNU General Public License | |
15 | * (for example /usr/src/linux/COPYING); if not, write to the Free | |
16 | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |
17 | */ | |
18 | ||
19 | #include <asm/pstate.h> | |
20 | #include <asm/asi.h> | |
21 | ||
22 | extern void xor_vis_2(unsigned long, unsigned long *, unsigned long *); | |
23 | extern void xor_vis_3(unsigned long, unsigned long *, unsigned long *, | |
24 | unsigned long *); | |
25 | extern void xor_vis_4(unsigned long, unsigned long *, unsigned long *, | |
26 | unsigned long *, unsigned long *); | |
27 | extern void xor_vis_5(unsigned long, unsigned long *, unsigned long *, | |
28 | unsigned long *, unsigned long *, unsigned long *); | |
29 | ||
30 | /* XXX Ugh, write cheetah versions... -DaveM */ | |
31 | ||
32 | static struct xor_block_template xor_block_VIS = { | |
33 | .name = "VIS", | |
34 | .do_2 = xor_vis_2, | |
35 | .do_3 = xor_vis_3, | |
36 | .do_4 = xor_vis_4, | |
37 | .do_5 = xor_vis_5, | |
38 | }; | |
39 | ||
40 | #define XOR_TRY_TEMPLATES xor_speed(&xor_block_VIS) |