[LIB] reed_solomon: Clean up trailing white spaces
authorThomas Gleixner <tglx@linutronix.de>
Mon, 7 Nov 2005 11:15:37 +0000 (11:15 +0000)
committerThomas Gleixner <tglx@mtd.linutronix.de>
Mon, 7 Nov 2005 13:25:38 +0000 (14:25 +0100)
include/linux/rslib.h
lib/reed_solomon/Makefile
lib/reed_solomon/decode_rs.c
lib/reed_solomon/encode_rs.c
lib/reed_solomon/reed_solomon.c

index 980c8f7..ace25ac 100644 (file)
@@ -1,15 +1,15 @@
-/* 
+/*
  * include/linux/rslib.h
  *
  * Overview:
  *   Generic Reed Solomon encoder / decoder library
- *   
+ *
  * Copyright (C) 2004 Thomas Gleixner (tglx@linutronix.de)
  *
  * RS code lifted from reed solomon library written by Phil Karn
  * Copyright 2002 Phil Karn, KA9Q
  *
- * $Id: rslib.h,v 1.3 2004/10/05 22:08:22 gleixner Exp $
+ * $Id: rslib.h,v 1.4 2005/11/07 11:14:52 gleixner Exp $
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
 
 #include <linux/list.h>
 
-/** 
+/**
  * struct rs_control - rs control structure
- * 
+ *
  * @mm:                Bits per symbol
  * @nn:                Symbols per block (= (1<<mm)-1)
  * @alpha_to:  log lookup table
  * @index_of:  Antilog lookup table
- * @genpoly:   Generator polynomial 
+ * @genpoly:   Generator polynomial
  * @nroots:    Number of generator roots = number of parity symbols
  * @fcr:       First consecutive root, index form
- * @prim:      Primitive element, index form 
- * @iprim:     prim-th root of 1, index form 
- * @gfpoly:    The primitive generator polynominal 
- * @users:     Users of this structure 
+ * @prim:      Primitive element, index form
+ * @iprim:     prim-th root of 1, index form
+ * @gfpoly:    The primitive generator polynominal
+ * @users:     Users of this structure
  * @list:      List entry for the rs control list
 */
 struct rs_control {
@@ -58,7 +58,7 @@ int encode_rs8(struct rs_control *rs, uint8_t *data, int len, uint16_t *par,
               uint16_t invmsk);
 #endif
 #ifdef CONFIG_REED_SOLOMON_DEC8
-int decode_rs8(struct rs_control *rs, uint8_t *data, uint16_t *par, int len, 
+int decode_rs8(struct rs_control *rs, uint8_t *data, uint16_t *par, int len,
                uint16_t *s, int no_eras, int *eras_pos, uint16_t invmsk,
               uint16_t *corr);
 #endif
@@ -75,7 +75,7 @@ int decode_rs16(struct rs_control *rs, uint16_t *data, uint16_t *par, int len,
 #endif
 
 /* Create or get a matching rs control structure */
-struct rs_control *init_rs(int symsize, int gfpoly, int fcr, int prim, 
+struct rs_control *init_rs(int symsize, int gfpoly, int fcr, int prim,
                           int nroots);
 
 /* Release a rs control structure */
@@ -87,9 +87,9 @@ void free_rs(struct rs_control *rs);
  *  @x:                the value to reduce
  *
  *  where
- *  rs->mm = number of bits per symbol 
+ *  rs->mm = number of bits per symbol
  *  rs->nn = (2^rs->mm) - 1
- *  
+ *
  *  Simple arithmetic modulo would return a wrong result for values
  *  >= 3 * rs->nn
 */
index 747a2de..c3d7136 100644 (file)
@@ -1,5 +1,5 @@
 #
-# This is a modified version of reed solomon lib, 
+# This is a modified version of reed solomon lib,
 #
 
 obj-$(CONFIG_REED_SOLOMON) += reed_solomon.o
index d401dec..a58df56 100644 (file)
@@ -1,22 +1,22 @@
-/* 
+/*
  * lib/reed_solomon/decode_rs.c
  *
  * Overview:
  *   Generic Reed Solomon encoder / decoder library
- *   
+ *
  * Copyright 2002, Phil Karn, KA9Q
  * May be used under the terms of the GNU General Public License (GPL)
  *
  * Adaption to the kernel by Thomas Gleixner (tglx@linutronix.de)
  *
- * $Id: decode_rs.c,v 1.6 2004/10/22 15:41:47 gleixner Exp $
+ * $Id: decode_rs.c,v 1.7 2005/11/07 11:14:59 gleixner Exp $
  *
  */
 
-/* Generic data width independent code which is included by the 
+/* Generic data width independent code which is included by the
  * wrappers.
  */
-{ 
+{
        int deg_lambda, el, deg_omega;
        int i, j, r, k, pad;
        int nn = rs->nn;
@@ -41,9 +41,9 @@
        pad = nn - nroots - len;
        if (pad < 0 || pad >= nn)
                return -ERANGE;
-               
+
        /* Does the caller provide the syndrome ? */
-       if (s != NULL) 
+       if (s != NULL)
                goto decode;
 
        /* form the syndromes; i.e., evaluate data(x) at roots of
        for (j = 1; j < len; j++) {
                for (i = 0; i < nroots; i++) {
                        if (syn[i] == 0) {
-                               syn[i] = (((uint16_t) data[j]) ^ 
+                               syn[i] = (((uint16_t) data[j]) ^
                                          invmsk) & msk;
                        } else {
                                syn[i] = ((((uint16_t) data[j]) ^
-                                          invmsk) & msk) ^ 
+                                          invmsk) & msk) ^
                                        alpha_to[rs_modnn(rs, index_of[syn[i]] +
                                                       (fcr + i) * prim)];
                        }
@@ -70,7 +70,7 @@
                        if (syn[i] == 0) {
                                syn[i] = ((uint16_t) par[j]) & msk;
                        } else {
-                               syn[i] = (((uint16_t) par[j]) & msk) ^ 
+                               syn[i] = (((uint16_t) par[j]) & msk) ^
                                        alpha_to[rs_modnn(rs, index_of[syn[i]] +
                                                       (fcr+i)*prim)];
                        }
 
        if (no_eras > 0) {
                /* Init lambda to be the erasure locator polynomial */
-               lambda[1] = alpha_to[rs_modnn(rs, 
+               lambda[1] = alpha_to[rs_modnn(rs,
                                              prim * (nn - 1 - eras_pos[0]))];
                for (i = 1; i < no_eras; i++) {
                        u = rs_modnn(rs, prim * (nn - 1 - eras_pos[i]));
                        for (j = i + 1; j > 0; j--) {
                                tmp = index_of[lambda[j - 1]];
                                if (tmp != nn) {
-                                       lambda[j] ^= 
+                                       lambda[j] ^=
                                                alpha_to[rs_modnn(rs, u + tmp)];
                                }
                        }
                discr_r = 0;
                for (i = 0; i < r; i++) {
                        if ((lambda[i] != 0) && (s[r - i - 1] != nn)) {
-                               discr_r ^= 
-                                       alpha_to[rs_modnn(rs, 
+                               discr_r ^=
+                                       alpha_to[rs_modnn(rs,
                                                          index_of[lambda[i]] +
                                                          s[r - i - 1])];
                        }
                        t[0] = lambda[0];
                        for (i = 0; i < nroots; i++) {
                                if (b[i] != nn) {
-                                       t[i + 1] = lambda[i + 1] ^ 
+                                       t[i + 1] = lambda[i + 1] ^
                                                alpha_to[rs_modnn(rs, discr_r +
                                                                  b[i])];
                                } else
                num1 = 0;
                for (i = deg_omega; i >= 0; i--) {
                        if (omega[i] != nn)
-                               num1 ^= alpha_to[rs_modnn(rs, omega[i] + 
+                               num1 ^= alpha_to[rs_modnn(rs, omega[i] +
                                                        i * root[j])];
                }
                num2 = alpha_to[rs_modnn(rs, root[j] * (fcr - 1) + nn)];
                 * lambda_pr of lambda[i] */
                for (i = min(deg_lambda, nroots - 1) & ~1; i >= 0; i -= 2) {
                        if (lambda[i + 1] != nn) {
-                               den ^= alpha_to[rs_modnn(rs, lambda[i + 1] + 
+                               den ^= alpha_to[rs_modnn(rs, lambda[i + 1] +
                                                       i * root[j])];
                        }
                }
                /* Apply error to data */
                if (num1 != 0 && loc[j] >= pad) {
-                       uint16_t cor = alpha_to[rs_modnn(rs,index_of[num1] + 
+                       uint16_t cor = alpha_to[rs_modnn(rs,index_of[num1] +
                                                       index_of[num2] +
                                                       nn - index_of[den])];
                        /* Store the error correction pattern, if a
index 237bf65..0b5b1a6 100644 (file)
@@ -1,19 +1,19 @@
-/* 
+/*
  * lib/reed_solomon/encode_rs.c
  *
  * Overview:
  *   Generic Reed Solomon encoder / decoder library
- *   
+ *
  * Copyright 2002, Phil Karn, KA9Q
  * May be used under the terms of the GNU General Public License (GPL)
  *
  * Adaption to the kernel by Thomas Gleixner (tglx@linutronix.de)
  *
- * $Id: encode_rs.c,v 1.4 2004/10/22 15:41:47 gleixner Exp $
+ * $Id: encode_rs.c,v 1.5 2005/11/07 11:14:59 gleixner Exp $
  *
  */
 
-/* Generic data width independent code which is included by the 
+/* Generic data width independent code which is included by the
  * wrappers.
  * int encode_rsX (struct rs_control *rs, uintX_t *data, int len, uintY_t *par)
  */
        for (i = 0; i < len; i++) {
                fb = index_of[((((uint16_t) data[i])^invmsk) & msk) ^ par[0]];
                /* feedback term is non-zero */
-               if (fb != nn) { 
+               if (fb != nn) {
                        for (j = 1; j < nroots; j++) {
-                               par[j] ^= alpha_to[rs_modnn(rs, fb + 
+                               par[j] ^= alpha_to[rs_modnn(rs, fb +
                                                         genpoly[nroots - j])];
                        }
                }
                /* Shift */
                memmove(&par[0], &par[1], sizeof(uint16_t) * (nroots - 1));
                if (fb != nn) {
-                       par[nroots - 1] = alpha_to[rs_modnn(rs, 
+                       par[nroots - 1] = alpha_to[rs_modnn(rs,
                                                            fb + genpoly[0])];
                } else {
                        par[nroots - 1] = 0;
index 6604e3b..f5fef94 100644 (file)
@@ -1,22 +1,22 @@
-/* 
+/*
  * lib/reed_solomon/rslib.c
  *
  * Overview:
  *   Generic Reed Solomon encoder / decoder library
- *   
+ *
  * Copyright (C) 2004 Thomas Gleixner (tglx@linutronix.de)
  *
  * Reed Solomon code lifted from reed solomon library written by Phil Karn
  * Copyright 2002 Phil Karn, KA9Q
  *
- * $Id: rslib.c,v 1.5 2004/10/22 15:41:47 gleixner Exp $
+ * $Id: rslib.c,v 1.7 2005/11/07 11:14:59 gleixner Exp $
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  *
  * Description:
- *     
+ *
  * The generic Reed Solomon library provides runtime configurable
  * encoding / decoding of RS codes.
  * Each user must call init_rs to get a pointer to a rs_control
  * If a structure is generated then the polynomial arrays for
  * fast encoding / decoding are built. This can take some time so
  * make sure not to call this function from a time critical path.
- * Usually a module / driver should initialize the necessary 
+ * Usually a module / driver should initialize the necessary
  * rs_control structure on module / driver init and release it
  * on exit.
- * The encoding puts the calculated syndrome into a given syndrome 
- * buffer. 
+ * The encoding puts the calculated syndrome into a given syndrome
+ * buffer.
  * The decoding is a two step process. The first step calculates
  * the syndrome over the received (data + syndrome) and calls the
  * second stage, which does the decoding / error correction itself.
@@ -51,7 +51,7 @@ static LIST_HEAD (rslist);
 /* Protection for the list */
 static DECLARE_MUTEX(rslistlock);
 
-/** 
+/**
  * rs_init - Initialize a Reed-Solomon codec
  *
  * @symsize:   symbol size, bits (1-8)
@@ -63,7 +63,7 @@ static DECLARE_MUTEX(rslistlock);
  * Allocate a control structure and the polynom arrays for faster
  * en/decoding. Fill the arrays according to the given parameters
  */
-static struct rs_control *rs_init(int symsize, int gfpoly, int fcr, 
+static struct rs_control *rs_init(int symsize, int gfpoly, int fcr,
                                   int prim, int nroots)
 {
        struct rs_control *rs;
@@ -124,15 +124,15 @@ static struct rs_control *rs_init(int symsize, int gfpoly, int fcr,
                /* Multiply rs->genpoly[] by  @**(root + x) */
                for (j = i; j > 0; j--) {
                        if (rs->genpoly[j] != 0) {
-                               rs->genpoly[j] = rs->genpoly[j -1] ^ 
-                                       rs->alpha_to[rs_modnn(rs, 
+                               rs->genpoly[j] = rs->genpoly[j -1] ^
+                                       rs->alpha_to[rs_modnn(rs,
                                        rs->index_of[rs->genpoly[j]] + root)];
                        } else
                                rs->genpoly[j] = rs->genpoly[j - 1];
                }
                /* rs->genpoly[0] can never be zero */
-               rs->genpoly[0] = 
-                       rs->alpha_to[rs_modnn(rs, 
+               rs->genpoly[0] =
+                       rs->alpha_to[rs_modnn(rs,
                                rs->index_of[rs->genpoly[0]] + root)];
        }
        /* convert rs->genpoly[] to index form for quicker encoding */
@@ -153,7 +153,7 @@ errrs:
 }
 
 
-/** 
+/**
  *  free_rs - Free the rs control structure, if its not longer used
  *
  *  @rs:       the control structure which is not longer used by the
@@ -173,19 +173,19 @@ void free_rs(struct rs_control *rs)
        up(&rslistlock);
 }
 
-/** 
+/**
  * init_rs - Find a matching or allocate a new rs control structure
  *
  *  @symsize:  the symbol size (number of bits)
  *  @gfpoly:   the extended Galois field generator polynomial coefficients,
  *             with the 0th coefficient in the low order bit. The polynomial
  *             must be primitive;
- *  @fcr:      the first consecutive root of the rs code generator polynomial 
+ *  @fcr:      the first consecutive root of the rs code generator polynomial
  *             in index form
  *  @prim:     primitive element to generate polynomial roots
  *  @nroots:   RS code generator polynomial degree (number of roots)
  */
-struct rs_control *init_rs(int symsize, int gfpoly, int fcr, int prim, 
+struct rs_control *init_rs(int symsize, int gfpoly, int fcr, int prim,
                           int nroots)
 {
        struct list_head        *tmp;
@@ -198,9 +198,9 @@ struct rs_control *init_rs(int symsize, int gfpoly, int fcr, int prim,
                return NULL;
        if (prim <= 0 || prim >= (1<<symsize))
                return NULL;
-       if (nroots < 0 || nroots >= (1<<symsize) || nroots > 8)
+       if (nroots < 0 || nroots >= (1<<symsize))
                return NULL;
-       
+
        down(&rslistlock);
 
        /* Walk through the list and look for a matching entry */
@@ -211,9 +211,9 @@ struct rs_control *init_rs(int symsize, int gfpoly, int fcr, int prim,
                if (gfpoly != rs->gfpoly)
                        continue;
                if (fcr != rs->fcr)
-                       continue;       
+                       continue;
                if (prim != rs->prim)
-                       continue;       
+                       continue;
                if (nroots != rs->nroots)
                        continue;
                /* We have a matching one already */
@@ -227,18 +227,18 @@ struct rs_control *init_rs(int symsize, int gfpoly, int fcr, int prim,
                rs->users = 1;
                list_add(&rs->list, &rslist);
        }
-out:   
+out:
        up(&rslistlock);
        return rs;
 }
 
 #ifdef CONFIG_REED_SOLOMON_ENC8
-/** 
+/**
  *  encode_rs8 - Calculate the parity for data values (8bit data width)
  *
  *  @rs:       the rs control structure
  *  @data:     data field of a given type
- *  @len:      data length 
+ *  @len:      data length
  *  @par:      parity data, must be initialized by caller (usually all 0)
  *  @invmsk:   invert data mask (will be xored on data)
  *
@@ -246,7 +246,7 @@ out:
  *  symbol size > 8. The calling code must take care of encoding of the
  *  syndrome result for storage itself.
  */
-int encode_rs8(struct rs_control *rs, uint8_t *data, int len, uint16_t *par, 
+int encode_rs8(struct rs_control *rs, uint8_t *data, int len, uint16_t *par,
               uint16_t invmsk)
 {
 #include "encode_rs.c"
@@ -255,7 +255,7 @@ EXPORT_SYMBOL_GPL(encode_rs8);
 #endif
 
 #ifdef CONFIG_REED_SOLOMON_DEC8
-/** 
+/**
  *  decode_rs8 - Decode codeword (8bit data width)
  *
  *  @rs:       the rs control structure
@@ -273,7 +273,7 @@ EXPORT_SYMBOL_GPL(encode_rs8);
  *  syndrome result and the received parity before calling this code.
  */
 int decode_rs8(struct rs_control *rs, uint8_t *data, uint16_t *par, int len,
-              uint16_t *s, int no_eras, int *eras_pos, uint16_t invmsk, 
+              uint16_t *s, int no_eras, int *eras_pos, uint16_t invmsk,
               uint16_t *corr)
 {
 #include "decode_rs.c"
@@ -287,13 +287,13 @@ EXPORT_SYMBOL_GPL(decode_rs8);
  *
  *  @rs:       the rs control structure
  *  @data:     data field of a given type
- *  @len:      data length 
+ *  @len:      data length
  *  @par:      parity data, must be initialized by caller (usually all 0)
  *  @invmsk:   invert data mask (will be xored on data, not on parity!)
  *
  *  Each field in the data array contains up to symbol size bits of valid data.
  */
-int encode_rs16(struct rs_control *rs, uint16_t *data, int len, uint16_t *par, 
+int encode_rs16(struct rs_control *rs, uint16_t *data, int len, uint16_t *par,
        uint16_t invmsk)
 {
 #include "encode_rs.c"
@@ -302,7 +302,7 @@ EXPORT_SYMBOL_GPL(encode_rs16);
 #endif
 
 #ifdef CONFIG_REED_SOLOMON_DEC16
-/** 
+/**
  *  decode_rs16 - Decode codeword (16bit data width)
  *
  *  @rs:       the rs control structure
@@ -312,13 +312,13 @@ EXPORT_SYMBOL_GPL(encode_rs16);
  *  @s:                syndrome data field (if NULL, syndrome is calculated)
  *  @no_eras:  number of erasures
  *  @eras_pos: position of erasures, can be NULL
- *  @invmsk:   invert data mask (will be xored on data, not on parity!) 
+ *  @invmsk:   invert data mask (will be xored on data, not on parity!)
  *  @corr:     buffer to store correction bitmask on eras_pos
  *
  *  Each field in the data array contains up to symbol size bits of valid data.
  */
 int decode_rs16(struct rs_control *rs, uint16_t *data, uint16_t *par, int len,
-               uint16_t *s, int no_eras, int *eras_pos, uint16_t invmsk, 
+               uint16_t *s, int no_eras, int *eras_pos, uint16_t invmsk,
                uint16_t *corr)
 {
 #include "decode_rs.c"