2
* YAFFS: Yet another Flash File System . A NAND-flash specific file system.
4
* Copyright (C) 2002-2007 Aleph One Ltd.
5
* for Toby Churchill Ltd and Brightstar Engineering
7
* Created by Charles Manning <charles@aleph1.co.uk>
9
* This program is free software; you can redistribute it and/or modify
10
* it under the terms of the GNU Lesser General Public License version 2.1 as
11
* published by the Free Software Foundation.
13
* Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
17
* This code implements the ECC algorithm used in SmartMedia.
19
* The ECC comprises 22 bits of parity information and is stuffed into 3 bytes.
20
* The two unused bit are set to 1.
21
* The ECC can correct single bit errors in a 256-byte page of data. Thus, two such ECC
22
* blocks are used on a 512-byte NAND page.
26
#ifndef __YAFFS_ECC_H__
27
#define __YAFFS_ECC_H__
30
unsigned char colParity;
32
unsigned lineParityPrime;
35
void yaffs_ECCCalculate(const unsigned char *data, unsigned char *ecc);
36
int yaffs_ECCCorrect(unsigned char *data, unsigned char *read_ecc,
37
const unsigned char *test_ecc);
39
void yaffs_ECCCalculateOther(const unsigned char *data, unsigned nBytes,
40
yaffs_ECCOther * ecc);
41
int yaffs_ECCCorrectOther(unsigned char *data, unsigned nBytes,
42
yaffs_ECCOther * read_ecc,
43
const yaffs_ECCOther * test_ecc);