diff options
author | David Woodhouse <dwmw2@tylersburg.infradead.org> | 2009-07-13 11:35:12 +0100 |
---|---|---|
committer | David Woodhouse <David.Woodhouse@intel.com> | 2009-10-29 14:38:47 +0000 |
commit | f5e70d0fe3ea990cfb3fc8d7f76a719adcb1e0b5 (patch) | |
tree | 1794eb51814228ff76f672a541100ad62dd791c9 /lib/raid6/unroll.pl | |
parent | 17d857be649a21ca90008c6dc425d849fa83db5c (diff) |
md: Factor out RAID6 algorithms into lib/
We'll want to use these in btrfs too.
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Diffstat (limited to 'lib/raid6/unroll.pl')
-rw-r--r-- | lib/raid6/unroll.pl | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/raid6/unroll.pl b/lib/raid6/unroll.pl new file mode 100644 index 00000000000..3acc710a20e --- /dev/null +++ b/lib/raid6/unroll.pl @@ -0,0 +1,24 @@ +#!/usr/bin/perl +# +# Take a piece of C code and for each line which contains the sequence $$ +# repeat n times with $ replaced by 0...n-1; the sequence $# is replaced +# by the unrolling factor, and $* with a single $ +# + +($n) = @ARGV; +$n += 0; + +while ( defined($line = <STDIN>) ) { + if ( $line =~ /\$\$/ ) { + $rep = $n; + } else { + $rep = 1; + } + for ( $i = 0 ; $i < $rep ; $i++ ) { + $tmp = $line; + $tmp =~ s/\$\$/$i/g; + $tmp =~ s/\$\#/$n/g; + $tmp =~ s/\$\*/\$/g; + print $tmp; + } +} |