| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 2 | * (C) 1999-2003 David Woodhouse <dwmw2@infradead.org> | 
|  | 3 | */ | 
|  | 4 |  | 
|  | 5 | #ifndef __MTD_NFTL_H__ | 
|  | 6 | #define __MTD_NFTL_H__ | 
|  | 7 |  | 
|  | 8 | #include <linux/mtd/mtd.h> | 
|  | 9 | #include <linux/mtd/blktrans.h> | 
|  | 10 |  | 
|  | 11 | #include <mtd/nftl-user.h> | 
|  | 12 |  | 
|  | 13 | /* these info are used in ReplUnitTable */ | 
|  | 14 | #define BLOCK_NIL          0xffff /* last block of a chain */ | 
|  | 15 | #define BLOCK_FREE         0xfffe /* free block */ | 
|  | 16 | #define BLOCK_NOTEXPLORED  0xfffd /* non explored block, only used during mounting */ | 
|  | 17 | #define BLOCK_RESERVED     0xfffc /* bios block or bad block */ | 
|  | 18 |  | 
|  | 19 | struct NFTLrecord { | 
|  | 20 | struct mtd_blktrans_dev mbd; | 
|  | 21 | __u16 MediaUnit, SpareMediaUnit; | 
|  | 22 | __u32 EraseSize; | 
|  | 23 | struct NFTLMediaHeader MediaHdr; | 
|  | 24 | int usecount; | 
|  | 25 | unsigned char heads; | 
|  | 26 | unsigned char sectors; | 
|  | 27 | unsigned short cylinders; | 
|  | 28 | __u16 numvunits; | 
|  | 29 | __u16 lastEUN;                  /* should be suppressed */ | 
|  | 30 | __u16 numfreeEUNs; | 
|  | 31 | __u16 LastFreeEUN; 		/* To speed up finding a free EUN */ | 
|  | 32 | int head,sect,cyl; | 
|  | 33 | __u16 *EUNtable; 		/* [numvunits]: First EUN for each virtual unit  */ | 
|  | 34 | __u16 *ReplUnitTable; 		/* [numEUNs]: ReplUnitNumber for each */ | 
|  | 35 | unsigned int nb_blocks;		/* number of physical blocks */ | 
|  | 36 | unsigned int nb_boot_blocks;	/* number of blocks used by the bios */ | 
|  | 37 | struct erase_info instr; | 
| Thomas Gleixner | 5bd34c0 | 2006-05-27 22:16:10 +0200 | [diff] [blame] | 38 | struct nand_ecclayout oobinfo; | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 39 | }; | 
|  | 40 |  | 
|  | 41 | int NFTL_mount(struct NFTLrecord *s); | 
|  | 42 | int NFTL_formatblock(struct NFTLrecord *s, int block); | 
|  | 43 |  | 
| Adrian Bunk | 51ee83d | 2008-04-14 17:20:00 +0300 | [diff] [blame] | 44 | int nftl_read_oob(struct mtd_info *mtd, loff_t offs, size_t len, | 
|  | 45 | size_t *retlen, uint8_t *buf); | 
|  | 46 | int nftl_write_oob(struct mtd_info *mtd, loff_t offs, size_t len, | 
|  | 47 | size_t *retlen, uint8_t *buf); | 
|  | 48 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 49 | #ifndef NFTL_MAJOR | 
|  | 50 | #define NFTL_MAJOR 93 | 
|  | 51 | #endif | 
|  | 52 |  | 
|  | 53 | #define MAX_NFTLS 16 | 
|  | 54 | #define MAX_SECTORS_PER_UNIT 64 | 
|  | 55 | #define NFTL_PARTN_BITS 4 | 
|  | 56 |  | 
|  | 57 | #endif /* __MTD_NFTL_H__ */ |