inftl-user.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /*
  2. * $Id: inftl-user.h,v 1.2 2005/11/07 11:14:56 gleixner Exp $
  3. *
  4. * Parts of INFTL headers shared with userspace
  5. *
  6. */
  7. #ifndef __MTD_INFTL_USER_H__
  8. #define __MTD_INFTL_USER_H__
  9. #define OSAK_VERSION 0x5120
  10. #define PERCENTUSED 98
  11. #define SECTORSIZE 512
  12. /* Block Control Information */
  13. struct inftl_bci {
  14. uint8_t ECCsig[6];
  15. uint8_t Status;
  16. uint8_t Status1;
  17. } __attribute__((packed));
  18. struct inftl_unithead1 {
  19. uint16_t virtualUnitNo;
  20. uint16_t prevUnitNo;
  21. uint8_t ANAC;
  22. uint8_t NACs;
  23. uint8_t parityPerField;
  24. uint8_t discarded;
  25. } __attribute__((packed));
  26. struct inftl_unithead2 {
  27. uint8_t parityPerField;
  28. uint8_t ANAC;
  29. uint16_t prevUnitNo;
  30. uint16_t virtualUnitNo;
  31. uint8_t NACs;
  32. uint8_t discarded;
  33. } __attribute__((packed));
  34. struct inftl_unittail {
  35. uint8_t Reserved[4];
  36. uint16_t EraseMark;
  37. uint16_t EraseMark1;
  38. } __attribute__((packed));
  39. union inftl_uci {
  40. struct inftl_unithead1 a;
  41. struct inftl_unithead2 b;
  42. struct inftl_unittail c;
  43. };
  44. struct inftl_oob {
  45. struct inftl_bci b;
  46. union inftl_uci u;
  47. };
  48. /* INFTL Media Header */
  49. struct INFTLPartition {
  50. __u32 virtualUnits;
  51. __u32 firstUnit;
  52. __u32 lastUnit;
  53. __u32 flags;
  54. __u32 spareUnits;
  55. __u32 Reserved0;
  56. __u32 Reserved1;
  57. } __attribute__((packed));
  58. struct INFTLMediaHeader {
  59. char bootRecordID[8];
  60. __u32 NoOfBootImageBlocks;
  61. __u32 NoOfBinaryPartitions;
  62. __u32 NoOfBDTLPartitions;
  63. __u32 BlockMultiplierBits;
  64. __u32 FormatFlags;
  65. __u32 OsakVersion;
  66. __u32 PercentUsed;
  67. struct INFTLPartition Partitions[4];
  68. } __attribute__((packed));
  69. /* Partition flag types */
  70. #define INFTL_BINARY 0x20000000
  71. #define INFTL_BDTL 0x40000000
  72. #define INFTL_LAST 0x80000000
  73. #endif /* __MTD_INFTL_USER_H__ */