~ubuntu-branches/ubuntu/maverick/u-boot-omap3/maverick

« back to all changes in this revision

Viewing changes to fs/yaffs2/yaffs_ecc.h

  • Committer: Bazaar Package Importer
  • Author(s): Oliver Grawert
  • Date: 2010-03-22 15:06:23 UTC
  • Revision ID: james.westby@ubuntu.com-20100322150623-i21g8rgiyl5dohag
Tags: upstream-2010.3git20100315
ImportĀ upstreamĀ versionĀ 2010.3git20100315

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * YAFFS: Yet another Flash File System . A NAND-flash specific file system.
 
3
 *
 
4
 * Copyright (C) 2002-2007 Aleph One Ltd.
 
5
 *   for Toby Churchill Ltd and Brightstar Engineering
 
6
 *
 
7
 * Created by Charles Manning <charles@aleph1.co.uk>
 
8
 *
 
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.
 
12
 *
 
13
 * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
 
14
 */
 
15
 
 
16
 /*
 
17
  * This code implements the ECC algorithm used in SmartMedia.
 
18
  *
 
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.
 
23
  *
 
24
  */
 
25
 
 
26
#ifndef __YAFFS_ECC_H__
 
27
#define __YAFFS_ECC_H__
 
28
 
 
29
typedef struct {
 
30
        unsigned char colParity;
 
31
        unsigned lineParity;
 
32
        unsigned lineParityPrime;
 
33
} yaffs_ECCOther;
 
34
 
 
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);
 
38
 
 
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);
 
44
#endif