浏览代码

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>
David Gibson 17 年之前
父节点
当前提交
d0ccb9b140
共有 4 个文件被更改,包括 10 次插入17 次删除
  1. 1 4
      libfdt/fdt.c
  2. 0 7
      libfdt/fdt_ro.c
  3. 2 6
      libfdt/fdt_rw.c
  4. 7 0
      libfdt/libfdt_internal.h

+ 1 - 4
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 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)
 	if (fdt_totalsize(fdt) > bufsize)
 		return -FDT_ERR_NOSPACE;
 		return -FDT_ERR_NOSPACE;

+ 0 - 7
libfdt/fdt_ro.c

@@ -55,13 +55,6 @@
 
 
 #include "libfdt_internal.h"
 #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,
 static int nodename_eq(const void *fdt, int offset,
 		       const char *s, int len)
 		       const char *s, int len)
 {
 {

+ 2 - 6
libfdt/fdt_rw.c

@@ -69,10 +69,8 @@ static int _blocks_misordered(const void *fdt,
 
 
 static int rw_check_header(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)
 	if (fdt_version(fdt) < 17)
 		return -FDT_ERR_BADVERSION;
 		return -FDT_ERR_BADVERSION;
 	if (_blocks_misordered(fdt, sizeof(struct fdt_reserve_entry),
 	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;
 	int newsize;
 	void *tmp;
 	void *tmp;
 
 
-	err = fdt_check_header(fdt);
-	if (err)
-		return err;
+	CHECK_HEADER(fdt);
 
 
 	mem_rsv_size = (fdt_num_mem_rsv(fdt)+1)
 	mem_rsv_size = (fdt_num_mem_rsv(fdt)+1)
 		* sizeof(struct fdt_reserve_entry);
 		* sizeof(struct fdt_reserve_entry);

+ 7 - 0
libfdt/libfdt_internal.h

@@ -58,6 +58,13 @@
 #define memeq(p, q, n)	(memcmp((p), (q), (n)) == 0)
 #define memeq(p, q, n)	(memcmp((p), (q), (n)) == 0)
 #define streq(p, q)	(strcmp((p), (q)) == 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);
 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);
 const char *_fdt_find_string(const char *strtab, int tabsize, const char *s);
 int _fdt_node_end_offset(void *fdt, int nodeoffset);
 int _fdt_node_end_offset(void *fdt, int nodeoffset);