[PATCH] Refer FDT tokens with symbolic names

Sourabh Jain sourabhjain at linux.ibm.com
Sat Sep 11 09:32:00 PDT 2021


Replace hardcoded FDT structure block tokens with proper names to
improve code readability.

Signed-off-by: Sourabh Jain <sourabhjain at linux.ibm.com>
---
 kexec/fs2dt.c | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/kexec/fs2dt.c b/kexec/fs2dt.c
index 1a43058..993b73b 100644
--- a/kexec/fs2dt.c
+++ b/kexec/fs2dt.c
@@ -32,6 +32,7 @@
 #include <stdio.h>
 #include "kexec.h"
 #include "fs2dt.h"
+#include "libfdt/fdt.h"
 
 #define MAXPATH 1024		/* max path name length */
 #define NAMESPACE 16384		/* max bytes for property names */
@@ -306,7 +307,7 @@ static void add_dyn_reconf_usable_mem_property__(int fd)
 	 * Add linux,drconf-usable-memory property.
 	 */
 	dt_reserve(&dt, 4+((rlen + 3)/4));
-	*dt++ = cpu_to_be32(3);
+	*dt++ = cpu_to_be32(FDT_PROP);
 	*dt++ = cpu_to_be32(rlen);
 	*dt++ = cpu_to_be32(propnum("linux,drconf-usable-memory"));
 	pad_structure_block(rlen);
@@ -380,7 +381,7 @@ static void add_usable_mem_property(int fd, size_t len)
 	 * No add linux,usable-memory property.
 	 */
 	dt_reserve(&dt, 4+((rlen + 3)/4));
-	*dt++ = cpu_to_be32(3);
+	*dt++ = cpu_to_be32(FDT_PROP);
 	*dt++ = cpu_to_be32(rlen);
 	*dt++ = cpu_to_be32(propnum("linux,usable-memory"));
 	pad_structure_block(rlen);
@@ -451,7 +452,7 @@ static void putprops(char *fn, struct dirent **nlist, int numlist)
 		len = statbuf.st_size;
 
 		dt_reserve(&dt, 4+((len + 3)/4));
-		*dt++ = cpu_to_be32(3);
+		*dt++ = cpu_to_be32(FDT_PROP);
 		*dt++ = cpu_to_be32(len);
 		*dt++ = cpu_to_be32(propnum(fn));
 		pad_structure_block(len);
@@ -586,7 +587,7 @@ static void putnode(void)
 	 * So round up & include the \0:
 	 */
 	dt_reserve(&dt, 1+((plen + 4)/4));
-	*dt++ = cpu_to_be32(1);
+	*dt++ = cpu_to_be32(FDT_BEGIN_NODE);
 	strcpy((void *)dt, *basename ? basename : "");
 	dt += ((plen + 4)/4);
 
@@ -602,7 +603,7 @@ static void putnode(void)
 		uint64_t bevalue;
 
 		dt_reserve(&dt, 12); /* both props, of 6 words ea. */
-		*dt++ = cpu_to_be32(3);
+		*dt++ = cpu_to_be32(FDT_PROP);
 		*dt++ = cpu_to_be32(len);
 		*dt++ = cpu_to_be32(propnum("linux,initrd-start"));
 		pad_structure_block(len);
@@ -612,7 +613,7 @@ static void putnode(void)
 		dt += (len + 3)/4;
 
 		len = 8;
-		*dt++ = cpu_to_be32(3);
+		*dt++ = cpu_to_be32(FDT_PROP);
 		*dt++ = cpu_to_be32(len);
 		*dt++ = cpu_to_be32(propnum("linux,initrd-end"));
 
@@ -656,7 +657,7 @@ static void putnode(void)
 
 		/* add new bootargs */
 		dt_reserve(&dt, 4+((cmd_len+3)/4));
-		*dt++ = cpu_to_be32(3);
+		*dt++ = cpu_to_be32(FDT_PROP);
 		*dt++ = cpu_to_be32(cmd_len);
 		*dt++ = cpu_to_be32(propnum("bootargs"));
 		pad_structure_block(cmd_len);
@@ -757,7 +758,7 @@ no_debug:
 	}
 
 	dt_reserve(&dt, 1);
-	*dt++ = cpu_to_be32(2);
+	*dt++ = cpu_to_be32(FDT_END_NODE);
 	dn[-1] = '\0';
 	free(namelist);
 }
@@ -796,7 +797,7 @@ static void add_boot_block(char **bufp, off_t *sizep)
 	len = _ALIGN(len, 4);
 	bb->totalsize = cpu_to_be32(be32_to_cpu(bb->off_dt_strings) + len);
 
-	bb->magic = cpu_to_be32(0xd00dfeed);
+	bb->magic = cpu_to_be32(FDT_MAGIC);
 	bb->version = cpu_to_be32(BOOT_BLOCK_VERSION);
 	bb->last_comp_version = cpu_to_be32(BOOT_BLOCK_LAST_COMP_VERSION);
 
@@ -844,7 +845,7 @@ void create_flatten_tree(char **bufp, off_t *sizep, const char *cmdline)
 
 	putnode();
 	dt_reserve(&dt, 1);
-	*dt++ = cpu_to_be32(9);
+	*dt++ = cpu_to_be32(FDT_END);
 
 	add_boot_block(bufp, sizep);
 	free(dt_base);
-- 
2.31.1




More information about the kexec mailing list