summaryrefslogtreecommitdiff
path: root/firmware/lib/cgptlib/include/mtdlib.h
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/lib/cgptlib/include/mtdlib.h')
-rw-r--r--firmware/lib/cgptlib/include/mtdlib.h21
1 files changed, 13 insertions, 8 deletions
diff --git a/firmware/lib/cgptlib/include/mtdlib.h b/firmware/lib/cgptlib/include/mtdlib.h
index 59fb8b32..0c87822a 100644
--- a/firmware/lib/cgptlib/include/mtdlib.h
+++ b/firmware/lib/cgptlib/include/mtdlib.h
@@ -63,10 +63,9 @@
typedef struct {
- uint32_t starting_lba;
- uint32_t ending_lba;
+ uint64_t starting_offset;
+ uint64_t ending_offset;
uint32_t flags;
- uint32_t reserved;
} __attribute__((packed)) MtdDiskPartition;
typedef struct {
@@ -77,15 +76,15 @@ typedef struct {
*/
uint32_t crc32;
uint32_t size;
- uint32_t first_lba;
- uint32_t last_lba;
+ uint64_t first_offset;
+ uint64_t last_offset;
MtdDiskPartition partitions[MTD_MAX_PARTITIONS];
} __attribute__((packed)) MtdDiskLayout;
-#define MTD_DRIVE_V1_SIZE (24 + 16*16)
+#define MTD_DRIVE_V1_SIZE (32 + 16*20)
-#define MTDENTRY_EXPECTED_SIZE (16)
-#define MTDLAYOUT_EXPECTED_SIZE (24 + 16 * MTDENTRY_EXPECTED_SIZE)
+#define MTDENTRY_EXPECTED_SIZE (20)
+#define MTDLAYOUT_EXPECTED_SIZE (32 + 16 * MTDENTRY_EXPECTED_SIZE)
typedef struct {
@@ -135,6 +134,12 @@ void MtdSetEntryPriority(MtdDiskPartition *e, int priority);
void MtdSetEntryTries(MtdDiskPartition *e, int tries);
void MtdSetEntryType(MtdDiskPartition *e, int type);
+void MtdGetPartitionSize(const MtdDiskPartition *e,
+ uint64_t *start, uint64_t *end, uint64_t *size);
+
+void MtdGetPartitionSizeInSectors(const MtdDiskPartition *e, uint64_t *start,
+ uint64_t *end, uint64_t *size);
+
void MtdModified(MtdData *mtd);
int MtdGptInit(MtdData *mtd);
int MtdIsPartitionValid(const MtdDiskPartition *part);