diff options
author | David Gibson <david@gibson.dropbear.id.au> | 2008-02-18 18:06:31 +1100 |
---|---|---|
committer | Gerald Van Baren <vanbaren@cideas.com> | 2008-03-18 21:03:45 -0400 |
commit | d0ccb9b140b472039732de102fc14597eedb14df (patch) | |
tree | 121a2e532df523cca768bafaf9cd527a1c00a295 | |
parent | fe30a354cdbb808b5f15366a935b151a4ccee74f (diff) | |
download | u-boot-imx-d0ccb9b140b472039732de102fc14597eedb14df.zip u-boot-imx-d0ccb9b140b472039732de102fc14597eedb14df.tar.gz u-boot-imx-d0ccb9b140b472039732de102fc14597eedb14df.tar.bz2 |
libfdt: Trivial cleanup for CHECK_HEADER)
Currently the CHECK_HEADER() macro is defined local to fdt_ro.c.
However, there are a handful of functions (fdt_move, rw_check_header,
fdt_open_into) from other files which could also use it (currently
they open-code something more-or-less identical). Therefore, this
patch moves CHECK_HEADER() to libfdt_internal.h and uses it in those
places.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
-rw-r--r-- | libfdt/fdt.c | 5 | ||||
-rw-r--r-- | libfdt/fdt_ro.c | 7 | ||||
-rw-r--r-- | libfdt/fdt_rw.c | 8 | ||||
-rw-r--r-- | libfdt/libfdt_internal.h | 7 |
4 files changed, 10 insertions, 17 deletions
diff --git a/libfdt/fdt.c b/libfdt/fdt.c index c61fb53..bd91712 100644 --- a/libfdt/fdt.c +++ b/libfdt/fdt.c @@ -184,10 +184,7 @@ const char *_fdt_find_string(const char *strtab, int tabsize, const char *s) int fdt_move(const void *fdt, void *buf, int bufsize) { - int err = fdt_check_header(fdt); - - if (err) - return err; + CHECK_HEADER(fdt); if (fdt_totalsize(fdt) > bufsize) return -FDT_ERR_NOSPACE; diff --git a/libfdt/fdt_ro.c b/libfdt/fdt_ro.c index f08941a..15d5f6b 100644 --- a/libfdt/fdt_ro.c +++ b/libfdt/fdt_ro.c @@ -55,13 +55,6 @@ #include "libfdt_internal.h" -#define CHECK_HEADER(fdt) \ - { \ - int err; \ - if ((err = fdt_check_header(fdt)) != 0) \ - return err; \ - } - static int nodename_eq(const void *fdt, int offset, const char *s, int len) { diff --git a/libfdt/fdt_rw.c b/libfdt/fdt_rw.c index ac50195..0df472b 100644 --- a/libfdt/fdt_rw.c +++ b/libfdt/fdt_rw.c @@ -69,10 +69,8 @@ static int _blocks_misordered(const void *fdt, static int rw_check_header(void *fdt) { - int err; + CHECK_HEADER(fdt); - if ((err = fdt_check_header(fdt))) - return err; if (fdt_version(fdt) < 17) return -FDT_ERR_BADVERSION; if (_blocks_misordered(fdt, sizeof(struct fdt_reserve_entry), @@ -399,9 +397,7 @@ int fdt_open_into(const void *fdt, void *buf, int bufsize) int newsize; void *tmp; - err = fdt_check_header(fdt); - if (err) - return err; + CHECK_HEADER(fdt); mem_rsv_size = (fdt_num_mem_rsv(fdt)+1) * sizeof(struct fdt_reserve_entry); diff --git a/libfdt/libfdt_internal.h b/libfdt/libfdt_internal.h index 1e60936..52e1b8d 100644 --- a/libfdt/libfdt_internal.h +++ b/libfdt/libfdt_internal.h @@ -58,6 +58,13 @@ #define memeq(p, q, n) (memcmp((p), (q), (n)) == 0) #define streq(p, q) (strcmp((p), (q)) == 0) +#define CHECK_HEADER(fdt) \ + { \ + int err; \ + if ((err = fdt_check_header(fdt)) != 0) \ + return err; \ + } + uint32_t _fdt_next_tag(const void *fdt, int startoffset, int *nextoffset); const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); int _fdt_node_end_offset(void *fdt, int nodeoffset); |