These series of patchs implement Intel Hexadecimal File loader and add QTest testcase to verify the correctness of Loader.
v1: Basic version. v2: Replace `do{}while(cond);` block with `for(;;)` block. v3: Add two new files information in MAINTAINERS. v4: Correct the 'test.hex' path in hexloader-test.c. v5: Split huge parse_hex_blob() function into four small function; Add check for memory bounds; Check validation for Record type; Replace function ctoh() with glib function g_ascii_xdigit_value(); Remove check for '.hex' suffix; Remove unnecessary type cast; Remove duplicate zero-initialization; Correct typos; v6: Call Intel HEX loader after load_uimage_as(); Remove use of KERNEL_LOAD_ADDR; Change (hwaddr) type argument to (hwaddr *) type; Use new struct HexParser to contain all arguments needed by handle_record_type(); Enable discontiguous data records (again); Remove unnecessary memory clean: bin_buf and HexLine line; Correct typo; Remove unnecessary check for hex file size; Add entry point handle for START_SEG_ADDR_RECORD and START_LINEAR_ADDR_RECORD record type; Use hwaddr * type to store entry point; Su Hang (2): Implement .hex file loader Add QTest testcase for the Intel Hexadecimal Object File Loader. MAINTAINERS | 6 + hw/arm/boot.c | 17 ++- hw/core/loader.c | 241 +++++++++++++++++++++++++++++++++++ include/hw/loader.h | 16 +++ tests/Makefile.include | 2 + tests/hex-loader-check-data/test.hex | 12 ++ tests/hexloader-test.c | 56 ++++++++ 7 files changed, 345 insertions(+), 5 deletions(-) create mode 100644 tests/hex-loader-check-data/test.hex create mode 100644 tests/hexloader-test.c -- 2.7.4