From fb60a94f0a1d24c0f6e548df8385cdea25eca758 Mon Sep 17 00:00:00 2001 From: Matt Mower Date: Tue, 8 Jul 2014 22:25:38 -0500 Subject: Allow custom bootloader msg offset in block misc Use board define BOARD_RECOVERY_BLDRMSG_OFFSET with a decimal integer to define a custom offset where the bootloader message should be read/written. Change-Id: Id13a23dd41bb7d907b96d657b8e21eb839dfeaa9 --- bootloader.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'bootloader.cpp') diff --git a/bootloader.cpp b/bootloader.cpp index 033591274..3884c2870 100644 --- a/bootloader.cpp +++ b/bootloader.cpp @@ -258,6 +258,9 @@ static int get_bootloader_message_block(struct bootloader_message *out, LOGE("Can't open %s\n(%s)\n", v->blk_device, strerror(errno)); return -1; } +#ifdef BOARD_RECOVERY_BLDRMSG_OFFSET + fseek(f, BOARD_RECOVERY_BLDRMSG_OFFSET, SEEK_SET); +#endif struct bootloader_message temp; int count = fread(&temp, sizeof(temp), 1, f); if (count != 1) { @@ -280,6 +283,9 @@ static int set_bootloader_message_block(const struct bootloader_message *in, LOGE("Can't open %s\n(%s)\n", v->blk_device, strerror(errno)); return -1; } +#ifdef BOARD_RECOVERY_BLDRMSG_OFFSET + fseek(f, BOARD_RECOVERY_BLDRMSG_OFFSET, SEEK_SET); +#endif int count = fwrite(in, sizeof(*in), 1, f); if (count != 1) { LOGE("Failed writing %s\n(%s)\n", v->blk_device, strerror(errno)); @@ -300,6 +306,9 @@ int get_bootloader_message_block_name(struct bootloader_message *out) { LOGE("Can't open %s\n(%s)\n", device_name, strerror(errno)); return -1; } +#ifdef BOARD_RECOVERY_BLDRMSG_OFFSET + fseek(f, BOARD_RECOVERY_BLDRMSG_OFFSET, SEEK_SET); +#endif struct bootloader_message temp; int count = fread(&temp, sizeof(temp), 1, f); if (count != 1) { @@ -322,6 +331,9 @@ int set_bootloader_message_block_name(const struct bootloader_message *in, printf("Can't open %s\n(%s)\n", block_name, strerror(errno)); return -1; } +#ifdef BOARD_RECOVERY_BLDRMSG_OFFSET + fseek(f, BOARD_RECOVERY_BLDRMSG_OFFSET, SEEK_SET); +#endif int count = fwrite(in, sizeof(*in), 1, f); if (count != 1) { printf("Failed writing %s\n(%s)\n", block_name, strerror(errno)); -- cgit v1.2.3