<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
	"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []>

<book id="Reed-Solomon-Library-Guide">
 <bookinfo>
  <title>Reed-Solomon Library Programming Interface</title>
  
  <authorgroup>
   <author>
    <firstname>Thomas</firstname>
    <surname>Gleixner</surname>
    <affiliation>
     <address>
      <email>tglx@linutronix.de</email>
     </address>
    </affiliation>
   </author>
  </authorgroup>

  <copyright>
   <year>2004</year>
   <holder>Thomas Gleixner</holder>
  </copyright>

  <legalnotice>
   <para>
     This documentation 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.
   </para>
      
   <para>
     This program is distributed in the hope that it will be
     useful, but WITHOUT ANY WARRANTY; without even the implied
     warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     See the GNU General Public License for more details.
   </para>
      
   <para>
     You should have received a copy of the GNU General Public
     License along with this program; if not, write to the Free
     Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
     MA 02111-1307 USA
   </para>
      
   <para>
     For more details see the file COPYING in the source
     distribution of Linux.
   </para>
  </legalnotice>
 </bookinfo>

<toc></toc>

  <chapter id="intro">
      <title>Introduction</title>
  <para>
  	The generic Reed-Solomon Library provides encoding, decoding
	and error correction functions.
  </para>
  <para>
  	Reed-Solomon codes are used in communication and storage
	applications to ensure data integrity. 
  </para>
  <para>
  	This documentation is provided for developers who want to utilize
	the functions provided by the library.
  </para>
  </chapter>
  
  <chapter id="bugs">
     <title>Known Bugs And Assumptions</title>
  <para>
	None.	
  </para>
  </chapter>

  <chapter id="usage">
     	<title>Usage</title>
	<para>
		This chapter provides examples of how to use the library.
	</para>
	<sect1>
		<title>Initializing</title>
		<para>
			The init function init_rs returns a pointer to an
			rs decoder structure, which holds the necessary
			information for encoding, decoding and error correction
			with the given polynomial. It either uses an existing
			matching decoder or creates a new one. On creation all
			the lookup tables for fast en/decoding are created.
			The function may take a while, so make sure not to 
			call it in critical code paths.
		</para>
		<programlisting>
/* the Reed Solomon control structure */
static struct rs_control *rs_decoder;

/* Symbolsize is 10 (bits)
 * Primitive polynomial is x^10+x^3+1
 * first consecutive root is 0
 * primitive element to generate roots = 1
 * generator polynomial degree (number of roots) = 6
 */
rs_decoder = init_rs (10, 0x409, 0, 1, 6);
		</programlisting>
	</sect1>
	<sect1>
		<title>Encoding</title>
		<para>
			The encoder calculates the Reed-Solomon code over
			the given data length and stores the result in 
			the parity buffer. Note that the parity buffer must
			be initialized before calling the encoder.
		</para>
		<para>
			The expanded data can be inverted on the fly by
			providing a non-zero inversion mask. The expanded data is
			XOR'ed with the mask. This is used e.g. for FLASH
			ECC, where the all 0xFF is inverted to an all 0x00.
			The Reed-Solomon code for all 0x00 is all 0x00. The
			code is inverted before storing to FLASH so it is 0xFF
			too. This prevents that reading from an erased FLASH
			results in ECC errors.
		</para>
		<para>
			The databytes are expanded to the given symbol size
			on the fly. There is no support for encoding continuous
			bitstreams with a symbol size != 8 at the moment. If
			it is necessary it should be not a big deal to implement
			such functionality.
		</para>
		<programlisting>
/* Parity buffer. Size = number of roots */
uint16_t par[6];
/* Initialize the parity buffer */
memset(par, 0, sizeof(par));
/* Encode 512 byte in data8. Store parity in buffer par */
encode_rs8 (rs_decoder, data8, 512, par, 0);
		</programlisting>
	</sect1>
	<sect1>
		<title>Decoding</title>
		<para>
			The decoder calculates the syndrome over
			the given data length and the received parity symbols
			and corrects errors in the data.
		</para>
		<para>
			If a syndrome is available from a hardware decoder
			then the syndrome calculation is skipped.
		</para>
		<para>
			The correction of the data buffer can be suppressed
			by providing a correction pattern buffer and an error
			location buffer to the decoder. The decoder stores the
			calculated error location and the correction bitmask
			in the given buffers. This is useful for hardware
			decoders which use a weird bit ordering scheme.
		</para>
		<para>
			The databytes are expanded to the given symbol size
			on the fly. There is no support for decoding continuous
			bitstreams with a symbolsize != 8 at the moment. If
			it is necessary it should be not a big deal to implement
			such functionality.
		</para>
		
		<sect2>
		<title>
			Decoding with syndrome calculation, direct data correction
		</title>
		<programlisting>
/* Parity buffer. Size = number of roots */
uint16_t par[6];
uint8_t  data[512];
int numerr;
/* Receive data */
.....
/* Receive parity */
.....
/* Decode 512 byte in data8.*/
numerr = decode_rs8 (rs_decoder, data8, par, 512, NULL, 0, NULL, 0, NULL);
		</programlisting>
		</sect2>

		<sect2>
		<title>
			Decoding with syndrome given by hardware decoder, direct data correction
		</title>
		<programlisting>
/* Parity buffer. Size = number of roots */
uint16_t par[6], syn[6];
uint8_t  data[512];
int numerr;
/* Receive data */
.....
/* Receive parity */
.....
/* Get syndrome from hardware decoder */
.....
/* Decode 512 byte in data8.*/
numerr = decode_rs8 (rs_decoder, data8, par, 512, syn, 0, NULL, 0, NULL);
		</programlisting>
		</sect2>

		<sect2>
		<title>
			Decoding with syndrome given by hardware decoder, no direct data correction.
		</title>
		<para>
			Note: It's not necessary to give data and received parity to the decoder.
		</para>
		<programlisting>
/* Parity buffer. Size = number of roots */
uint16_t par[6], syn[6], corr[8];
uint8_t  data[512];
int numerr, errpos[8];
/* Receive data */
.....
/* Receive parity */
.....
/* Get syndrome from hardware decoder */
.....
/* Decode 512 byte in data8.*/
numerr = decode_rs8 (rs_decoder, NULL, NULL, 512, syn, 0, errpos, 0, corr);
for (i = 0; i &lt; numerr; i++) {
	do_error_correction_in_your_buffer(errpos[i], corr[i]);
}
		</programlisting>
		</sect2>
	</sect1>
	<sect1>
		<title>Cleanup</title>
		<para>
			The function free_rs frees the allocated resources,
			if the caller is the last user of the decoder.
		</para>
		<programlisting>
/* Release resources */
free_rs(rs_decoder);
		</programlisting>
	</sect1>

  </chapter>
	
  <chapter id="structs">
     <title>Structures</title>
     <para>
     This chapter contains the autogenerated documentation of the structures which are
     used in the Reed-Solomon Library and are relevant for a developer.
     </para>
!Iinclude/linux/rslib.h
  </chapter>

  <chapter id="pubfunctions">
     <title>Public Functions Provided</title>
     <para>
     This chapter contains the autogenerated documentation of the Reed-Solomon functions
     which are exported.
     </para>
!Elib/reed_solomon/reed_solomon.c
  </chapter>
  
  <chapter id="credits">
     <title>Credits</title>
	<para>
		The library code for encoding and decoding was written by Phil Karn.
	</para>
	<programlisting>
		Copyright 2002, Phil Karn, KA9Q
 		May be used under the terms of the GNU General Public License (GPL)
	</programlisting>
	<para>
		The wrapper functions and interfaces are written by Thomas Gleixner.
	</para>
	<para>
		Many users have provided bugfixes, improvements and helping hands for testing.
		Thanks a lot.
	</para>
	<para>
		The following people have contributed to this document:
	</para>
	<para>
		Thomas Gleixner<email>tglx@linutronix.de</email>
	</para>
  </chapter>
</book>
