home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / SLAX 6.0.8 / slax-6.0.8.iso / slax / base / 006-devel.lzm / usr / include / mtd / nftl-user.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-11-13  |  1.3 KB  |  75 lines

  1. /*
  2.  * Parts of NFTL headers shared with userspace
  3.  *
  4.  */
  5.  
  6. #ifndef __MTD_NFTL_USER_H__
  7. #define __MTD_NFTL_USER_H__
  8.  
  9. /* Block Control Information */
  10.  
  11. struct nftl_bci {
  12.     unsigned char ECCSig[6];
  13.     uint8_t Status;
  14.     uint8_t Status1;
  15. }__attribute__((packed));
  16.  
  17. /* Unit Control Information */
  18.  
  19. struct nftl_uci0 {
  20.     uint16_t VirtUnitNum;
  21.     uint16_t ReplUnitNum;
  22.     uint16_t SpareVirtUnitNum;
  23.     uint16_t SpareReplUnitNum;
  24. } __attribute__((packed));
  25.  
  26. struct nftl_uci1 {
  27.     uint32_t WearInfo;
  28.     uint16_t EraseMark;
  29.     uint16_t EraseMark1;
  30. } __attribute__((packed));
  31.  
  32. struct nftl_uci2 {
  33.         uint16_t FoldMark;
  34.         uint16_t FoldMark1;
  35.     uint32_t unused;
  36. } __attribute__((packed));
  37.  
  38. union nftl_uci {
  39.     struct nftl_uci0 a;
  40.     struct nftl_uci1 b;
  41.     struct nftl_uci2 c;
  42. };
  43.  
  44. struct nftl_oob {
  45.     struct nftl_bci b;
  46.     union nftl_uci u;
  47. };
  48.  
  49. /* NFTL Media Header */
  50.  
  51. struct NFTLMediaHeader {
  52.     char DataOrgID[6];
  53.     uint16_t NumEraseUnits;
  54.     uint16_t FirstPhysicalEUN;
  55.     uint32_t FormattedSize;
  56.     unsigned char UnitSizeFactor;
  57. } __attribute__((packed));
  58.  
  59. #define MAX_ERASE_ZONES (8192 - 512)
  60.  
  61. #define ERASE_MARK 0x3c69
  62. #define SECTOR_FREE 0xff
  63. #define SECTOR_USED 0x55
  64. #define SECTOR_IGNORE 0x11
  65. #define SECTOR_DELETED 0x00
  66.  
  67. #define FOLD_MARK_IN_PROGRESS 0x5555
  68.  
  69. #define ZONE_GOOD 0xff
  70. #define ZONE_BAD_ORIGINAL 0
  71. #define ZONE_BAD_MARKED 7
  72.  
  73.  
  74. #endif /* __MTD_NFTL_USER_H__ */
  75.