Ignore backups and object files.
Initial code import.

Disable DEBUG code by default in nvm_field.c and override.c.
Protect parse_overrides() from NULL string.
Add license information to override module.
Add override_append() function and test case.
Add missing function documentation.
Abort parsing in parse_hex_bytes() after invalid input.
Fix first listed symbol not being found in parse_overrides().
Abort override parsing when symbol list contains entry without field descriptor.
Return and document error codes in parse_overrides().
Split up generic and example-specific sources in Makefile.
Add configuration file for Doxygen system.
Split up print_symbol_iterator().

New functions are print_symbol_description_iterator() and print_symbol_content_iterator().
Get sizeof(version string character) from variable instead of hard-coded type.
Use override_append() for OPT_DEFINE handling in parse_opt().
Use override_append() for OPT_SET_SERIAL handling in dummy_parse_opt().
Fix mixed up source and target blob sizes.

The source data size was stored locally in nvm_image_merge_file()
instead of being passed to the iterator functions.

Add missing include directive for own header as well.
Fix signedness issue with blob size comparison.

The signed off_t value from fstat() was substracted from unsigned
size_t value, which results in underflow if the file is larger than
the blob size.  Fix by explicit cast.
Add function symbol_list_foreach_count().

This variant counts the symbols where the iterator function returned
NULL.
Clarify symbol_list_iterator_f documentation.

Behaviour depends on the foreach function used.
Count symbols successfully read by nvm_image_merge_file().

Add a return value to indicate errors or number of succesfully merged
symbols.  Adjust return values in iterator functions and fix
comparison of available data size.  Extend error message in
read_symbol_seek_iterator() to include actual number of bytes read.
Abort main program flow on input failure.

The process_maps() function now continues only when the input map and
any given input image was loaded successfully.
Fix byte-order issues with known field interpretation.

The old code would only work when compiled for little-endian
architectures.  Add new functions convert_uint8(), convert_uint16()
and convert_int16() to convert the values in a CPU endian-agnostic
way.  The return value depends only on the encoded data byte-order,
which is little-endian for IDC images.

All functions are inlined.  convert_uint8() is only for consistency.
Fix argument specification for OPT_SET_SERIAL.

The argument is the actual numeric value, not the hex bytes.
Fix behaviour without --print option.

With no option specified, no output is printed.  Any field or content
display option will enable printing.
Correctly check for read() return value.

Keep reading when read() function returns less bytes than requested.
Report errors only when return value was negative or on unexpected
EOF.
Use correct conversion specifiers for fixed-width inttypes.

Adjust all format strings to use the PRI** macros predefined in
inttypes.h where applicable.  Also adjust C99 length modifiers for
char types.