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(¤tBootFlag); + 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);