[coreboot] [v2] r4436 - in trunk/coreboot-v2: src/include src/lib util/options

svn at coreboot.org svn at coreboot.org
Sat Jul 18 16:20:39 CEST 2009


Author: oxygene
Date: 2009-07-18 16:20:39 +0200 (Sat, 18 Jul 2009)
New Revision: 4436

Modified:
   trunk/coreboot-v2/src/include/cbfs.h
   trunk/coreboot-v2/src/lib/cbfs.c
   trunk/coreboot-v2/util/options/build_opt_tbl.c
Log:
strdup the input of dirname, as dirname is free
(according to the spec) to change the string in-situ,
even if glibc doesn't do it.

This avoids errors on Mac OS and Solaris.

Kill nrv2b support in CBFS (we have lzma),
slightly improve debug output in CBFS,
properly declare all functions of CBFS in the header.

Signed-off-by: Patrick Georgi <patrick.georgi at coresystems.de>
Acked-by: Uwe Hermann <uwe at hermann-uwe.de>


Modified: trunk/coreboot-v2/src/include/cbfs.h
===================================================================
--- trunk/coreboot-v2/src/include/cbfs.h	2009-07-18 11:17:26 UTC (rev 4435)
+++ trunk/coreboot-v2/src/include/cbfs.h	2009-07-18 14:20:39 UTC (rev 4436)
@@ -57,7 +57,6 @@
 
 #define CBFS_COMPRESS_NONE  0
 #define CBFS_COMPRESS_LZMA  1
-#define CBFS_COMPRESS_NRV2B 2
 
 /** These are standard component types for well known
     components (i.e - those that coreboot needs to consume.
@@ -165,8 +164,12 @@
 void * cbfs_get_file(const char *name);
 void *cbfs_load_optionrom(u16 vendor, u16 device, void * dest);
 int run_address(void *f);
-
+int cbfs_decompress(int algo, void *src, void *dst, int len);
 struct cbfs_stage *cbfs_find_file(const char *name, int type);
+int cbfs_check_magic(struct cbfs_file *file);
+struct cbfs_header *cbfs_master_header(void);
+struct cbfs_file *cbfs_find(const char *name);
+void cbfs_and_run_core(char* filename, unsigned int ebp);
 
 #endif
 

Modified: trunk/coreboot-v2/src/lib/cbfs.c
===================================================================
--- trunk/coreboot-v2/src/lib/cbfs.c	2009-07-18 11:17:26 UTC (rev 4435)
+++ trunk/coreboot-v2/src/lib/cbfs.c	2009-07-18 14:20:39 UTC (rev 4436)
@@ -29,8 +29,6 @@
 #define ntohl(x) (x)
 #endif
 
-int run_address(void *f);
-
 int cbfs_decompress(int algo, void *src, void *dst, int len)
 {
 	switch(algo) {
@@ -44,15 +42,6 @@
 	}
 		return 0;
 
-#if CONFIG_COMPRESSED_PAYLOAD_NRV2B==1
-	case CBFS_COMPRESS_NRV2B: {
-		unsigned long unrv2b(u8 *src, u8 *dst, unsigned long *ilen_p);
-		unsigned long tmp;
-
-		unrv2b(src, dst, &tmp);
-	}
-		return 0;
-#endif
 	default:
 		printk_info( "CBFS:  Unknown compression type %d\n",
 		       algo);
@@ -103,11 +92,11 @@
 
 		int flen = ntohl(file->len);
 		int foffset = ntohl(file->offset);
-		printk_spew("CBFS: follow chain: %p + %x + %x + align -> ", offset, foffset, flen);
+		printk_spew("CBFS: follow chain: %p + %x + %x + align -> ", (void *)offset, foffset, flen);
 
 		unsigned long oldoffset = offset;
 		offset = ALIGN(offset + foffset + flen, align);
-		printk_spew("%p\n", offset);
+		printk_spew("%p\n", (void *)offset);
 		if (offset <= oldoffset) return NULL;
 
 		if (offset < 0xFFFFFFFF - ntohl(header->romsize))
@@ -182,7 +171,8 @@
 	if (stage == NULL)
 		return (void *) -1;
 
-	printk_info("Stage: load @ %d/%d bytes, enter @ %llx\n", 
+	printk_info("Stage: load %s @ %d/%d bytes, enter @ %llx\n", 
+			name,
 			(u32) stage->load, stage->memlen, 
 			stage->entry);
 	memset((void *) (u32) stage->load, 0, stage->memlen);

Modified: trunk/coreboot-v2/util/options/build_opt_tbl.c
===================================================================
--- trunk/coreboot-v2/util/options/build_opt_tbl.c	2009-07-18 11:17:26 UTC (rev 4435)
+++ trunk/coreboot-v2/util/options/build_opt_tbl.c	2009-07-18 14:20:39 UTC (rev 4436)
@@ -488,7 +488,7 @@
 	/* See if we want to output a C source file */
 	if(option) {
 		int err=0;
-		strncpy(tmpfilename, dirname(option), TMPFILE_LEN);
+		strncpy(tmpfilename, dirname(strdup(option)), TMPFILE_LEN);
 	        strncat(tmpfilename, TMPFILE_TEMPLATE, TMPFILE_LEN);
 		tmpfile = mkstemp(tmpfilename);
 		if(tmpfile == -1) {
@@ -539,7 +539,7 @@
 		struct cmos_option_table *hdr;
 		struct lb_record *ptr, *end;
 
-		strncpy(tmpfilename, dirname(option), TMPFILE_LEN);
+		strncpy(tmpfilename, dirname(strdup(option)), TMPFILE_LEN);
 	        strncat(tmpfilename, TMPFILE_TEMPLATE, TMPFILE_LEN);
 		tmpfile = mkstemp(tmpfilename);
 		if(tmpfile == -1) {





More information about the coreboot mailing list