[syslinux:master] hdt: Making dumping code easier to use

syslinux-bot for Erwan Velu erwanaliasr1 at gmail.com
Mon Apr 25 15:28:41 PDT 2011


Commit-ID:  b0ca086f7b98cdb92355c7adfddd3d976b7c94fc
Gitweb:     http://syslinux.zytor.com/commit/b0ca086f7b98cdb92355c7adfddd3d976b7c94fc
Author:     Erwan Velu <erwanaliasr1 at gmail.com>
AuthorDate: Sun, 3 Apr 2011 20:59:34 +0200
Committer:  Erwan Velu <erwanaliasr1 at gmail.com>
CommitDate: Sun, 3 Apr 2011 20:59:34 +0200

hdt: Making dumping code easier to use

A set of CREATE_NEW_OBJECT / FLUSH is enough for a simple dump.


---
 com32/hdt/hdt-dump-cpu.c      |    6 +-
 com32/hdt/hdt-dump-disks.c    |    7 ++-
 com32/hdt/hdt-dump-dmi.c      |    3 +-
 com32/hdt/hdt-dump-memory.c   |   83 ++++++++++++++++++++---------------------
 com32/hdt/hdt-dump-pci.c      |   14 +++---
 com32/hdt/hdt-dump-pxe.c      |    5 +-
 com32/hdt/hdt-dump-syslinux.c |    5 +-
 com32/hdt/hdt-dump-vesa.c     |    8 +++-
 com32/hdt/hdt-dump-vpd.c      |    6 +-
 9 files changed, 71 insertions(+), 66 deletions(-)

diff --git a/com32/hdt/hdt-dump-cpu.c b/com32/hdt/hdt-dump-cpu.c
index dc58a6f..33d561c 100644
--- a/com32/hdt/hdt-dump-cpu.c
+++ b/com32/hdt/hdt-dump-cpu.c
@@ -31,7 +31,7 @@
 
 void dump_cpu(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) {
 
-        *item = zzjson_create_object(config, NULL); /* empty object */
+        CREATE_NEW_OBJECT;
 	add_hs(cpu.vendor);
 	add_hs(cpu.model);
 	add_hi(cpu.vendor_id);
@@ -48,6 +48,6 @@ void dump_cpu(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item)
 		snprintf(temp,sizeof(temp),"cpu.flags.%s",cpu_flags_names[i]);
 		add_b(temp,get_cpu_flag_value_from_name(&hardware->cpu,cpu_flags_names[i]));
 	}
-
-	flush("cpu",config,item);
+	FLUSH_OBJECT;
+	to_cpio("cpu");
 }
diff --git a/com32/hdt/hdt-dump-disks.c b/com32/hdt/hdt-dump-disks.c
index a8e856f..ed2aea3 100644
--- a/com32/hdt/hdt-dump-disks.c
+++ b/com32/hdt/hdt-dump-disks.c
@@ -123,7 +123,7 @@ void dump_disks(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **ite
 	for (int drive = 0x80; drive < 0xff; drive++) {
 	        if (hardware->disk_info[drive - 0x80].cbios) {
 			if (found==false) {
-        			*item = zzjson_create_object(config, NULL); /* empty object */
+				CREATE_NEW_OBJECT;
 				add_b("disks->is_valid",true);
        				found=true;
 			}
@@ -132,8 +132,9 @@ void dump_disks(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **ite
 	}
 
 	if (found==false) {
-        	*item = zzjson_create_object(config, NULL); /* empty object */
+		CREATE_NEW_OBJECT;
 		add_b("disks->is_valid",false);
+		FLUSH_OBJECT;
 	}
-	flush("disks",config,item);
+	to_cpio("disks");
 }
diff --git a/com32/hdt/hdt-dump-dmi.c b/com32/hdt/hdt-dump-dmi.c
index 8df9e61..6e5c1ce 100644
--- a/com32/hdt/hdt-dump-dmi.c
+++ b/com32/hdt/hdt-dump-dmi.c
@@ -420,6 +420,7 @@ void dump_dmi(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item)
 	add_hb(is_dmi_valid);
 
 	if (hardware->is_dmi_valid == false) {
+		FLUSH_OBJECT;
 		goto exit;
 	} else {
 		char buffer[8]={0};
@@ -442,5 +443,5 @@ void dump_dmi(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item)
 	dump_oem_strings(hardware,config,item);
 	dump_hardware_security(hardware,config,item);
 exit:
-	flush("dmi",config,item);
+	to_cpio("dmi");
 }
diff --git a/com32/hdt/hdt-dump-memory.c b/com32/hdt/hdt-dump-memory.c
index 5482354..5095d3c 100644
--- a/com32/hdt/hdt-dump-memory.c
+++ b/com32/hdt/hdt-dump-memory.c
@@ -34,41 +34,38 @@ void dump_88(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item)
 
 	(void) hardware;
 	int mem_size = 0;
+	CREATE_NEW_OBJECT;
 	if (detect_memory_88(&mem_size)) {
-		APPEND_ARRAY
-			add_as("memory.error","8800h memory configuration is invalid")
-		END_OF_APPEND;
+		add_s("memory.error","8800h memory configuration is invalid");
+		FLUSH_OBJECT
 		return;
 	}
 
-	APPEND_ARRAY
-	add_as("dmi.item","memory via 88")
-	add_ai("memory.size (KiB)", mem_size)
-	add_ai("memory.size (MiB)", mem_size >> 10)
-	END_OF_APPEND;
-
+	add_s("dmi.item","memory via 88");
+	add_i("memory.size (KiB)", mem_size);
+	add_i("memory.size (MiB)", mem_size >> 10);
+	FLUSH_OBJECT;
 }
 
 void dump_e801(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) {
 
 	(void) hardware;
 	int mem_low, mem_high = 0;
+	CREATE_NEW_OBJECT;
 	if (detect_memory_e801(&mem_low,&mem_high)) {
-		APPEND_ARRAY
-			add_as("memory.error","e801 memory configuration is invalid")
-		END_OF_APPEND;
+		add_s("memory.error","e801 memory configuration is invalid");
+		FLUSH_OBJECT;
 		return;
 	}
 
-	APPEND_ARRAY
-	add_as("dmi.item","memory via e801")
-	add_ai("memory.total.size (KiB)", mem_low + (mem_high << 6))
-	add_ai("memory.total.size (MiB)", (mem_low >> 10) + (mem_high >> 4))
-	add_ai("memory.low.size (KiB)", mem_low )
-	add_ai("memory.low.size (MiB)", mem_low >> 10)
-	add_ai("memory.high.size (KiB)", mem_high << 6)
-	add_ai("memory.high.size (MiB)", mem_high >> 4)
-	END_OF_APPEND;
+	add_s("dmi.item","memory via e801");
+	add_i("memory.total.size (KiB)", mem_low + (mem_high << 6));
+	add_i("memory.total.size (MiB)", (mem_low >> 10) + (mem_high >> 4));
+	add_i("memory.low.size (KiB)", mem_low );
+	add_i("memory.low.size (MiB)", mem_low >> 10);
+	add_i("memory.high.size (KiB)", mem_high << 6);
+	add_i("memory.high.size (MiB)", mem_high >> 4);
+	FLUSH_OBJECT;
 
 }
 void dump_e820(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) {
@@ -82,12 +79,12 @@ void dump_e820(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item
 	
 	detect_memory_e820(map, E820MAX, &count);
  	memsize = memsize_e820(map, count);
-
-	APPEND_ARRAY
-		add_as("dmi.item","memory via e820")
-		add_ai("memory.total.size (KiB)", memsize)
-		add_ai("memory.total.size (MiB)", (memsize + (1 << 9)) >> 10)
-	END_OF_APPEND;
+	
+	CREATE_NEW_OBJECT;
+		add_s("dmi.item","memory via e820");
+		add_i("memory.total.size (KiB)", memsize);
+		add_i("memory.total.size (MiB)", (memsize + (1 << 9)) >> 10);
+	FLUSH_OBJECT;
 
 	for (int i = 0; i < count; i++) {
 		get_type(map[i].type, type, sizeof(type));
@@ -97,12 +94,12 @@ void dump_e820(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item
 		snprintf(begin,sizeof(begin),"0x%016llx",map[i].addr);
 		snprintf(size,sizeof(size),"0x%016llx",map[i].size);
 		snprintf(end,sizeof(end),"0x%016llx",map[i].addr+map[i].size);
-		CREATE_TEMP_OBJECT
-			add_ts("memory.segment.start",begin);
-			add_ts("memory.segment.size ",size);
-			add_ts("memory.segment.end  ",end);
-			add_ts("memory.segment.type ",remove_spaces(type));
-		APPEND_TEMP_OBJECT_ARRAY;
+		CREATE_NEW_OBJECT;
+			add_s("memory.segment.start",begin);
+			add_s("memory.segment.size ",size);
+			add_s("memory.segment.end  ",end);
+			add_s("memory.segment.type ",remove_spaces(type));
+		FLUSH_OBJECT;
 	}
 
 	int nr = sanitize_e820_map(map, nm, count);
@@ -114,23 +111,23 @@ void dump_e820(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item
 		snprintf(begin,sizeof(begin),"0x%016llx",nm[i].addr);
 		snprintf(size,sizeof(size),"0x%016llx",nm[i].size);
 		snprintf(end,sizeof(end),"0x%016llx",nm[i].addr+nm[i].size);
-		CREATE_TEMP_OBJECT
-			add_ts("sanitized_memory.segment.start",begin);
-			add_ts("sanitized_memory.segment.size ",size);
-			add_ts("sanitized_memory.segment.end  ",end);
-			add_ts("sanitized_memory.segment.type ",remove_spaces(type));
-		APPEND_TEMP_OBJECT_ARRAY;
+		CREATE_NEW_OBJECT;
+			add_s("sanitized_memory.segment.start",begin);
+			add_s("sanitized_memory.segment.size ",size);
+			add_s("sanitized_memory.segment.end  ",end);
+			add_s("sanitized_memory.segment.type ",remove_spaces(type));
+		FLUSH_OBJECT;
 	}
 }
 
 void dump_memory(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) {
 
-	CREATE_ARRAY
-		add_as("Memory configuration","true")
-	END_OF_ARRAY;	
+	CREATE_NEW_OBJECT;
+		add_s("Memory configuration","true");
+	FLUSH_OBJECT;
 
 	dump_88(hardware,config,item);
 	dump_e801(hardware,config,item);
 	dump_e820(hardware,config,item);
-	flush("memory",config,item);
+	to_cpio("memory");
 }
diff --git a/com32/hdt/hdt-dump-pci.c b/com32/hdt/hdt-dump-pci.c
index 9d89f3a..b1f18fd 100644
--- a/com32/hdt/hdt-dump-pci.c
+++ b/com32/hdt/hdt-dump-pci.c
@@ -54,10 +54,11 @@ void dump_pci(struct s_hardware *hardware, ZZJSON_CONFIG * config,
 
     nomodulesfile = nomodulespcimap && nomodulesalias;
 
-    *item = zzjson_create_object(config, NULL);	/* empty object */
+    CREATE_NEW_OBJECT;
 
     add_i("pci_device.count", hardware->nb_pci_devices);
 
+    FLUSH_OBJECT;
     /* For every detected pci device, compute its submenu */
     for_each_pci_func(pci_device, hardware->pci_domain) {
 	if (pci_device == NULL)
@@ -69,9 +70,7 @@ void dump_pci(struct s_hardware *hardware, ZZJSON_CONFIG * config,
 	char c[10] = { 0 };
 	char r[10] = { 0 };
 
-        zzjson_print(config, *item);
-        zzjson_free(config, *item);
-        *item = zzjson_create_object(config, NULL);	/* empty object */
+	CREATE_NEW_OBJECT;
 	bus = __pci_bus;
 	slot = __pci_slot;
 	func = __pci_func;
@@ -112,8 +111,8 @@ void dump_pci(struct s_hardware *hardware, ZZJSON_CONFIG * config,
 	add_s("pci_device.product_id", p);
 	add_s("pci_device.sub_vendor_id", sv);
 	add_s("pci_device.sub_product_id", sp);
-//	add_s("pci_device.class_id", c);
-//	add_s("pci_device.revision", r);
+	add_s("pci_device.class_id", c);
+	add_s("pci_device.revision", r);
 	if ((pci_device->dev_info->irq > 0)
 	    && (pci_device->dev_info->irq < 255))
 	    add_i("pci_device.irq", pci_device->dev_info->irq);
@@ -131,6 +130,7 @@ void dump_pci(struct s_hardware *hardware, ZZJSON_CONFIG * config,
 	    }
 	}
 	i++;
+	FLUSH_OBJECT;
     }
-    flush("pci", config, item);
+    to_cpio("pci");
 }
diff --git a/com32/hdt/hdt-dump-pxe.c b/com32/hdt/hdt-dump-pxe.c
index 2cd214b..6f4f511 100644
--- a/com32/hdt/hdt-dump-pxe.c
+++ b/com32/hdt/hdt-dump-pxe.c
@@ -33,7 +33,7 @@
 
 void dump_pxe(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) {
 
-        *item = zzjson_create_object(config, NULL); /* empty object */
+	CREATE_NEW_OBJECT;
 	add_hb(is_pxe_valid);
 	if (hardware->is_pxe_valid) {
 		char buffer[32] = {0};
@@ -76,5 +76,6 @@ void dump_pxe(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item)
 		add_s("pxe.ipaddr",ip);
 		add_b("gpxe_detected",is_gpxe());
 	}
-	flush("pxe",config,item);
+	FLUSH_OBJECT;
+	to_cpio("pxe");
 }
diff --git a/com32/hdt/hdt-dump-syslinux.c b/com32/hdt/hdt-dump-syslinux.c
index 843ebaf..7cef925 100644
--- a/com32/hdt/hdt-dump-syslinux.c
+++ b/com32/hdt/hdt-dump-syslinux.c
@@ -32,11 +32,12 @@
 
 void dump_syslinux(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) {
 
-        *item = zzjson_create_object(config, NULL); /* empty object */
+	CREATE_NEW_OBJECT;
 	add_hs(syslinux_fs);
 	add_hs(sv->version_string);
 	add_hi(sv->version);
 	add_hi(sv->max_api);
 	add_hs(sv->copyright_string);
-	flush("syslinux",config,item);
+	FLUSH_OBJECT
+	to_cpio("syslinux");
 }
diff --git a/com32/hdt/hdt-dump-vesa.c b/com32/hdt/hdt-dump-vesa.c
index ddf096f..97ff9fc 100644
--- a/com32/hdt/hdt-dump-vesa.c
+++ b/com32/hdt/hdt-dump-vesa.c
@@ -37,6 +37,7 @@ void dump_vesa(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item
 	if (hardware->is_vesa_valid) {
 		char buffer[64]={0};
 		snprintf(buffer,sizeof(buffer),"%d.%d", hardware->vesa.major_version, hardware->vesa.minor_version);
+		printf("buffer='%s'\n",buffer);
 		add_s("vesa.version",buffer);
 		add_hs(vesa.vendor);
 		add_hs(vesa.product);
@@ -46,11 +47,11 @@ void dump_vesa(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item
 		snprintf(buffer,sizeof(buffer),"%d KB",hardware->vesa.total_memory*64);
 		add_s("vesa.memory",buffer);
 		add_i("vesa.modes",hardware->vesa.vmi_count);
+		FLUSH_OBJECT;
 		for (int i = 0; i < hardware->vesa.vmi_count; i++) {
 		        struct vesa_mode_info *mi = &hardware->vesa.vmi[i].mi;
 		        if ((mi->h_res == 0) || (mi->v_res == 0))
 				continue;
-			FLUSH_OBJECT;
 			CREATE_NEW_OBJECT;
 			memset(buffer,0,sizeof(buffer));
 			snprintf(buffer,sizeof(buffer),"0x%04x",hardware->vesa.vmi[i].mode + 0x200);
@@ -58,7 +59,10 @@ void dump_vesa(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item
 			add_i("vesa.hres",mi->h_res);
 			add_i("vesa.vres",mi->v_res);
 			add_i("vesa.bpp",mi->bpp);
+			FLUSH_OBJECT;
 		}
+	} else {
+		FLUSH_OBJECT;
 	}
-	flush("vesa",config,item);
+	to_cpio("vesa");
 }
diff --git a/com32/hdt/hdt-dump-vpd.c b/com32/hdt/hdt-dump-vpd.c
index 9e4a78e..36451c8 100644
--- a/com32/hdt/hdt-dump-vpd.c
+++ b/com32/hdt/hdt-dump-vpd.c
@@ -31,8 +31,7 @@
 
 void dump_vpd(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) {
 
-        
-	*item = zzjson_create_object(config, NULL); /* empty object */
+	CREATE_NEW_OBJECT;
 	add_hb(is_vpd_valid);
     	if (hardware->is_vpd_valid) {
 		add_hs(vpd.bios_build_id);
@@ -43,5 +42,6 @@ void dump_vpd(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item)
 		add_hs(vpd.motherboard_serial_number);
 		add_hs(vpd.machine_type_model);
 	}
-	flush("vpd",config,item);
+	FLUSH_OBJECT;
+	to_cpio("vpd");
 }



More information about the Syslinux-commits mailing list