linux/include/uapi/mtd/inftl-user.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
   2/*
   3 * Parts of INFTL headers shared with userspace
   4 *
   5 */
   6
   7#ifndef __MTD_INFTL_USER_H__
   8#define __MTD_INFTL_USER_H__
   9
  10#include <linux/types.h>
  11
  12#define OSAK_VERSION    0x5120
  13#define PERCENTUSED     98
  14
  15#define SECTORSIZE      512
  16
  17/* Block Control Information */
  18
  19struct inftl_bci {
  20        __u8 ECCsig[6];
  21        __u8 Status;
  22        __u8 Status1;
  23} __attribute__((packed));
  24
  25struct inftl_unithead1 {
  26        __u16 virtualUnitNo;
  27        __u16 prevUnitNo;
  28        __u8 ANAC;
  29        __u8 NACs;
  30        __u8 parityPerField;
  31        __u8 discarded;
  32} __attribute__((packed));
  33
  34struct inftl_unithead2 {
  35        __u8 parityPerField;
  36        __u8 ANAC;
  37        __u16 prevUnitNo;
  38        __u16 virtualUnitNo;
  39        __u8 NACs;
  40        __u8 discarded;
  41} __attribute__((packed));
  42
  43struct inftl_unittail {
  44        __u8 Reserved[4];
  45        __u16 EraseMark;
  46        __u16 EraseMark1;
  47} __attribute__((packed));
  48
  49union inftl_uci {
  50        struct inftl_unithead1 a;
  51        struct inftl_unithead2 b;
  52        struct inftl_unittail c;
  53};
  54
  55struct inftl_oob {
  56        struct inftl_bci b;
  57        union inftl_uci u;
  58};
  59
  60
  61/* INFTL Media Header */
  62
  63struct INFTLPartition {
  64        __u32 virtualUnits;
  65        __u32 firstUnit;
  66        __u32 lastUnit;
  67        __u32 flags;
  68        __u32 spareUnits;
  69        __u32 Reserved0;
  70        __u32 Reserved1;
  71} __attribute__((packed));
  72
  73struct INFTLMediaHeader {
  74        char bootRecordID[8];
  75        __u32 NoOfBootImageBlocks;
  76        __u32 NoOfBinaryPartitions;
  77        __u32 NoOfBDTLPartitions;
  78        __u32 BlockMultiplierBits;
  79        __u32 FormatFlags;
  80        __u32 OsakVersion;
  81        __u32 PercentUsed;
  82        struct INFTLPartition Partitions[4];
  83} __attribute__((packed));
  84
  85/* Partition flag types */
  86#define INFTL_BINARY    0x20000000
  87#define INFTL_BDTL      0x40000000
  88#define INFTL_LAST      0x80000000
  89
  90#endif /* __MTD_INFTL_USER_H__ */
  91
  92
  93