v17 of the blob format adds a field for the size of the structure
block, but is backwards compatible with v16. This patch introduces
definitions for the new field, and uses it to improve the bounds
checking in the read-only code. It also cleans up the sequential
write code using it: we no longer need to borrow the version field as
a write pointer.
This patch pulls out the logic for finding a string in the string table
into _fdt_find_string(), from fdt_sw.c's find_add_string(). This function
will be useful for random-access read-write functions. In the process
clean up the search logic a little.
This patch adds exported accessor macros for the various flat device
tree header fields to libfdt.h. This necessitates moving some of the
byte-swapping functions.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This patch fixes some completely bogus error checking logic from the
nop_property testcase (resulted from a cut-and-paste error).
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
The range sanity checking on the fdt_string_cmp() function causes problems
for the sequential write code (or at least for using RO functions on an
incomplete SW tree). Plus they didn't really fit with the philosphy for
the RO code of working as widely as possible on weirdly constructed trees.
Without this rather odd constrained pattern rule, make attempts to build
dumptrees using the default %: %.c rule instead of the defined %: %.o and
%.o: %.c rules.