From 9a86c64066a908e8ec2863c047b10532c3197397 Mon Sep 17 00:00:00 2001 From: Andreas Lillvik Date: Tue, 23 Nov 2010 13:33:35 +0100 Subject: Added support for parsing XMF versions 1.00 and 1.01 headers The parser will parse only parse file type and revision level when parsing XMF version 2.00 headers. XMF versions 1.00 and 1.01 doesn't support file type and revision level in the headers. Change-Id: I883c9e78179fac45db4ab3c4e3d0cbbb2df4899b --- arm-wt-22k/lib_src/eas_xmf.c | 45 +++++++++++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/arm-wt-22k/lib_src/eas_xmf.c b/arm-wt-22k/lib_src/eas_xmf.c index 0a92425..05b329e 100644 --- a/arm-wt-22k/lib_src/eas_xmf.c +++ b/arm-wt-22k/lib_src/eas_xmf.c @@ -43,6 +43,8 @@ /* XMF header file type */ #define XMF_IDENTIFIER 0x584d465f +#define XMF_VERSION_1_00 0x312e3030 +#define XMF_VERSION_1_01 0x312e3031 #define XMF_VERSION_2_00 0x322e3030 #define XMF_FILE_TYPE 0x00000002 #define XMF_SPEC_LEVEL 0x00000001 @@ -126,27 +128,36 @@ static EAS_RESULT XMF_CheckFileType (S_EAS_DATA *pEASData, EAS_FILE_HANDLE fileH /* read the version */ if ((result = EAS_HWGetDWord(pEASData->hwInstData, fileHandle, &temp, EAS_TRUE)) != EAS_SUCCESS) return result; - if (temp != XMF_VERSION_2_00) - { - { /* dpp: EAS_ReportEx(_EAS_SEVERITY_ERROR, "XMF file version was 0x%08x, expected 0x%08x\n", temp, XMF_VERSION_2_00); */ } - return EAS_SUCCESS; - } - /* read the file type */ - if ((result = EAS_HWGetDWord(pEASData->hwInstData, fileHandle, &temp, EAS_TRUE)) != EAS_SUCCESS) - return result; - if (temp != XMF_FILE_TYPE) + if (temp == XMF_VERSION_2_00) { - { /* dpp: EAS_ReportEx(_EAS_SEVERITY_ERROR, "XMF file type was 0x%08x, expected 0x%08x\n", temp, XMF_FILE_TYPE); */ } - return EAS_SUCCESS; - } + /* read the file type */ + result = EAS_HWGetDWord(pEASData->hwInstData, fileHandle, &temp, EAS_TRUE); + if (result != EAS_SUCCESS) + return result; - /* read the spec level */ - if ((result = EAS_HWGetDWord(pEASData->hwInstData, fileHandle, &temp, EAS_TRUE)) != EAS_SUCCESS) - return result; - if (temp != XMF_SPEC_LEVEL) + if (temp != XMF_FILE_TYPE) + { + { /* dpp: EAS_ReportEx(_EAS_SEVERITY_ERROR, + "XMF file type was 0x%08x, expected 0x%08x\n", temp, XMF_FILE_TYPE); */ } + return EAS_SUCCESS; + } + + /* read the spec level */ + result = EAS_HWGetDWord(pEASData->hwInstData, fileHandle, &temp, EAS_TRUE); + if (result != EAS_SUCCESS) + return result; + + if (temp != XMF_SPEC_LEVEL) + { + { /* dpp: EAS_ReportEx(_EAS_SEVERITY_ERROR, + "XMF file spec was 0x%08x, expected 0x%08x\n", temp, XMF_SPEC_LEVEL); */ } + return EAS_SUCCESS; + } + } + else if (temp != XMF_VERSION_1_00 && temp != XMF_VERSION_1_01) { - { /* dpp: EAS_ReportEx(_EAS_SEVERITY_ERROR, "XMF file spec was 0x%08x, expected 0x%08x\n", temp, XMF_SPEC_LEVEL); */ } + { /* dpp: EAS_ReportEx(_EAS_SEVERITY_ERROR, "XMF file version was 0x%08x\n", temp); */ } return EAS_SUCCESS; } -- cgit v1.2.3