mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
1.6 KiB
92 lines
1.6 KiB
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ |
|
/* |
|
* Parts of INFTL headers shared with userspace |
|
* |
|
*/ |
|
|
|
#ifndef __MTD_INFTL_USER_H__ |
|
#define __MTD_INFTL_USER_H__ |
|
|
|
#include <linux/types.h> |
|
|
|
#define OSAK_VERSION 0x5120 |
|
#define PERCENTUSED 98 |
|
|
|
#define SECTORSIZE 512 |
|
|
|
/* Block Control Information */ |
|
|
|
struct inftl_bci { |
|
__u8 ECCsig[6]; |
|
__u8 Status; |
|
__u8 Status1; |
|
} __attribute__((packed)); |
|
|
|
struct inftl_unithead1 { |
|
__u16 virtualUnitNo; |
|
__u16 prevUnitNo; |
|
__u8 ANAC; |
|
__u8 NACs; |
|
__u8 parityPerField; |
|
__u8 discarded; |
|
} __attribute__((packed)); |
|
|
|
struct inftl_unithead2 { |
|
__u8 parityPerField; |
|
__u8 ANAC; |
|
__u16 prevUnitNo; |
|
__u16 virtualUnitNo; |
|
__u8 NACs; |
|
__u8 discarded; |
|
} __attribute__((packed)); |
|
|
|
struct inftl_unittail { |
|
__u8 Reserved[4]; |
|
__u16 EraseMark; |
|
__u16 EraseMark1; |
|
} __attribute__((packed)); |
|
|
|
union inftl_uci { |
|
struct inftl_unithead1 a; |
|
struct inftl_unithead2 b; |
|
struct inftl_unittail c; |
|
}; |
|
|
|
struct inftl_oob { |
|
struct inftl_bci b; |
|
union inftl_uci u; |
|
}; |
|
|
|
|
|
/* INFTL Media Header */ |
|
|
|
struct INFTLPartition { |
|
__u32 virtualUnits; |
|
__u32 firstUnit; |
|
__u32 lastUnit; |
|
__u32 flags; |
|
__u32 spareUnits; |
|
__u32 Reserved0; |
|
__u32 Reserved1; |
|
} __attribute__((packed)); |
|
|
|
struct INFTLMediaHeader { |
|
char bootRecordID[8]; |
|
__u32 NoOfBootImageBlocks; |
|
__u32 NoOfBinaryPartitions; |
|
__u32 NoOfBDTLPartitions; |
|
__u32 BlockMultiplierBits; |
|
__u32 FormatFlags; |
|
__u32 OsakVersion; |
|
__u32 PercentUsed; |
|
struct INFTLPartition Partitions[4]; |
|
} __attribute__((packed)); |
|
|
|
/* Partition flag types */ |
|
#define INFTL_BINARY 0x20000000 |
|
#define INFTL_BDTL 0x40000000 |
|
#define INFTL_LAST 0x80000000 |
|
|
|
#endif /* __MTD_INFTL_USER_H__ */ |
|
|
|
|
|
|