1
1
Files
zyxel-vmg8825_b50b-cfw/package/public-zyxel/libzyutil/patches/027-ENHANCE_add_zyUtilGetDualImageInfo_func.patch
T
2026-04-17 18:33:03 +02:00

55 lines
2.1 KiB
Diff
Executable File

Index: libzyutil-1.0/ECONET/libzyutil_wrapper.c
===================================================================
--- libzyutil-1.0.orig/ECONET/libzyutil_wrapper.c 2015-11-18 10:32:26.156877146 +0800
+++ libzyutil-1.0/ECONET/libzyutil_wrapper.c 2015-11-18 10:35:04.861029646 +0800
@@ -332,6 +332,38 @@
return ZCFG_SUCCESS;
}
+zcfgRet_t zyUtilGetDualImageInfo(int bootFlag, char *fwversion)
+{
+ char sysCmd[128] = {0};
+ FILE *fptr = NULL;
+ struct trx_header local_booting_header;
+ int currentBootFlag;
+
+ zyUtilIGetBootingFlag(&currentBootFlag);
+ sprintf(sysCmd,FLASH_READ_CMD,BOOTIMG_HEADER_FILE,(long unsigned int)BOOTIMG_HEADER_SIZE,(long unsigned int)BOOTIMG_HEADER_OFFSET, \
+ (bootFlag==1)?SLAVE_ROOTFS_PARTITION_NAME:MAIN_ROOTFS_PARTITION_NAME);
+ system(sysCmd);
+ //printf("%s:sysCmd = %s\n", __FUNCTION__, sysCmd);
+
+ /*Read boot flag to buffer*/
+ if((fptr = fopen(BOOTIMG_HEADER_FILE, "rb")) == NULL) {
+ unlink(BOOTIMG_HEADER_FILE);
+ printf("Can't fopen %s\n", BOOTIMG_HEADER_FILE);
+ return ZCFG_INTERNAL_ERROR;
+ }
+
+ memset(&local_booting_header, 0x0, BOOTIMG_HEADER_SIZE);
+ fread(&local_booting_header, 1, (uint32_t)BOOTIMG_HEADER_SIZE, fptr);
+ //printf("%s : Current sequence is %d\n", __FUNCTION__, local_booting_header->imageSequence);
+ fclose(fptr);
+ unlink(BOOTIMG_HEADER_FILE);
+
+ strcpy(fwversion, local_booting_header.swVersionInt);
+
+ return ZCFG_SUCCESS;
+}
+
+
int zyUtilGetGPIO(int gpioNum)
{
/*This function is only used to check VMG3926-B10A and VMG8924-B10B, so Cross Platform is not need*/
Index: libzyutil-1.0/libzyutil_wrapper.h
===================================================================
--- libzyutil-1.0.orig/libzyutil_wrapper.h 2015-11-18 10:38:16.288873052 +0800
+++ libzyutil-1.0/libzyutil_wrapper.h 2015-11-18 10:38:59.705609269 +0800
@@ -17,5 +17,6 @@
zcfgRet_t zyUtilIGetBootingFlag(int *boot_flag);
zcfgRet_t zyUtilISetBootingFlag(int boot_flag);
zcfgRet_t zyUtilGetBootImageHeader(void *booting_header); //should conver to "struct trx_header"
+zcfgRet_t zyUtilGetDualImageInfo(int bootFlag, char *fwversion);
#endif
int zyUtilGetGPIO(int gpioNum);