PERFORCE change 135657 for review

Rafal Jaworowski raj at FreeBSD.org
Mon Feb 18 08:10:17 PST 2008


http://perforce.freebsd.org/chv.cgi?CH=135657

Change 135657 by raj at raj_mimi on 2008/02/18 16:09:40

	loader/U-Boot metadata area style cleanup.

Affected files ...

.. //depot/projects/e500/sys/boot/powerpc/uboot/metadata.c#5 edit

Differences ...

==== //depot/projects/e500/sys/boot/powerpc/uboot/metadata.c#5 (text+ko) ====

@@ -47,92 +47,94 @@
  * Return a 'boothowto' value corresponding to the kernel arguments in
  * (kargs) and any relevant environment variables.
  */
-static struct 
+static struct
 {
-    const char	*ev;
-    int		mask;
+	const char	*ev;
+	int		mask;
 } howto_names[] = {
-    {"boot_askname",	RB_ASKNAME},
-    {"boot_cdrom",	RB_CDROM},
-    {"boot_ddb",	RB_KDB},
-    {"boot_dfltroot",	RB_DFLTROOT},
-    {"boot_gdb",	RB_GDB},
-    {"boot_multicons",	RB_MULTIPLE},
-    {"boot_mute",	RB_MUTE},
-    {"boot_pause",	RB_PAUSE},
-    {"boot_serial",	RB_SERIAL},
-    {"boot_single",	RB_SINGLE},
-    {"boot_verbose",	RB_VERBOSE},
-    {NULL,	0}
+	{"boot_askname",	RB_ASKNAME},
+	{"boot_cdrom",		RB_CDROM},
+	{"boot_ddb",		RB_KDB},
+	{"boot_dfltroot",	RB_DFLTROOT},
+	{"boot_gdb",		RB_GDB},
+	{"boot_multicons",	RB_MULTIPLE},
+	{"boot_mute",		RB_MUTE},
+	{"boot_pause",		RB_PAUSE},
+	{"boot_serial",		RB_SERIAL},
+	{"boot_single",		RB_SINGLE},
+	{"boot_verbose",	RB_VERBOSE},
+	{NULL,			0}
 };
 
 int
 md_getboothowto(char *kargs)
 {
-    char	*cp;
-    int		howto;
-    int		active;
-    int		i;
-    
-    /* Parse kargs */
-    howto = 0;
-    if (kargs != NULL) {
-	cp = kargs;
-	active = 0;
-	while (*cp != 0) {
-	    if (!active && (*cp == '-')) {
-		active = 1;
-	    } else if (active)
-		switch (*cp) {
-		case 'a':
-		    howto |= RB_ASKNAME;
-		    break;
-		case 'C':
-		    howto |= RB_CDROM;
-		    break;
-		case 'd':
-		    howto |= RB_KDB;
-		    break;
-		case 'D':
-		    howto |= RB_MULTIPLE;
-		    break;
-		case 'm':
-		    howto |= RB_MUTE;
-		    break;
-		case 'g':
-		    howto |= RB_GDB;
-		    break;
-		case 'h':
-		    howto |= RB_SERIAL;
-		    break;
-		case 'p':
-		    howto |= RB_PAUSE;
-		    break;
-		case 'r':
-		    howto |= RB_DFLTROOT;
-		    break;
-		case 's':
-		    howto |= RB_SINGLE;
-		    break;
-		case 'v':
-		    howto |= RB_VERBOSE;
-		    break;
-		default:
-		    active = 0;
-		    break;
+	char	*cp;
+	int	howto;
+	int	active;
+	int	i;
+
+	/* Parse kargs */
+	howto = 0;
+	if (kargs != NULL) {
+		cp = kargs;
+		active = 0;
+		while (*cp != 0) {
+			if (!active && (*cp == '-'))
+				active = 1;
+			else if (active)
+				switch (*cp) {
+				case 'a':
+					howto |= RB_ASKNAME;
+					break;
+				case 'C':
+					howto |= RB_CDROM;
+					break;
+				case 'd':
+					howto |= RB_KDB;
+					break;
+				case 'D':
+					howto |= RB_MULTIPLE;
+					break;
+				case 'm':
+					howto |= RB_MUTE;
+					break;
+				case 'g':
+					howto |= RB_GDB;
+					break;
+				case 'h':
+					howto |= RB_SERIAL;
+					break;
+				case 'p':
+					howto |= RB_PAUSE;
+					break;
+				case 'r':
+					howto |= RB_DFLTROOT;
+					break;
+				case 's':
+					howto |= RB_SINGLE;
+					break;
+				case 'v':
+					howto |= RB_VERBOSE;
+					break;
+				default:
+					active = 0;
+					break;
+				}
+				cp++;
 		}
-	    cp++;
 	}
-    }
-    /* get equivalents from the environment */
-    for (i = 0; howto_names[i].ev != NULL; i++)
-	if (getenv(howto_names[i].ev) != NULL)
-	    howto |= howto_names[i].mask;
-    if (!strcmp(getenv("console"), "comconsole"))
-	howto |= RB_SERIAL;
-    if (!strcmp(getenv("console"), "nullconsole"))
-	howto |= RB_MUTE;
-    return(howto);
+
+	/* get equivalents from the environment */
+	for (i = 0; howto_names[i].ev != NULL; i++)
+		if (getenv(howto_names[i].ev) != NULL)
+			howto |= howto_names[i].mask;
+	if (!strcmp(getenv("console"), "comconsole"))
+		howto |= RB_SERIAL;
+	if (!strcmp(getenv("console"), "nullconsole"))
+		howto |= RB_MUTE;
+
+	return(howto);
 }
 
 /*
@@ -143,24 +145,25 @@
 vm_offset_t
 md_copyenv(vm_offset_t addr)
 {
-    struct env_var	*ep;
-    
-    /* traverse the environment */
-    for (ep = environ; ep != NULL; ep = ep->ev_next) {
-	archsw.arch_copyin(ep->ev_name, addr, strlen(ep->ev_name));
-	addr += strlen(ep->ev_name);
-	archsw.arch_copyin("=", addr, 1);
-	addr++;
-	if (ep->ev_value != NULL) {
-	    archsw.arch_copyin(ep->ev_value, addr, strlen(ep->ev_value));
-	    addr += strlen(ep->ev_value);
+	struct env_var	*ep;
+
+	/* traverse the environment */
+	for (ep = environ; ep != NULL; ep = ep->ev_next) {
+		archsw.arch_copyin(ep->ev_name, addr, strlen(ep->ev_name));
+		addr += strlen(ep->ev_name);
+		archsw.arch_copyin("=", addr, 1);
+		addr++;
+		if (ep->ev_value != NULL) {
+			archsw.arch_copyin(ep->ev_value, addr,
+			    strlen(ep->ev_value));
+			addr += strlen(ep->ev_value);
+		}
+		archsw.arch_copyin("", addr, 1);
+		addr++;
 	}
 	archsw.arch_copyin("", addr, 1);
 	addr++;
-    }
-    archsw.arch_copyin("", addr, 1);
-    addr++;
-    return(addr);
+	return(addr);
 }
 
 /*
@@ -225,28 +228,26 @@
 vm_offset_t
 md_copymodules(vm_offset_t addr)
 {
-    struct preloaded_file	*fp;
-    struct file_metadata	*md;
-    int				c;
+	struct preloaded_file	*fp;
+	struct file_metadata	*md;
+	int			c;
 
-    c = addr != 0;
-    /* start with the first module on the list, should be the kernel */
-    for (fp = file_findfile(NULL, NULL); fp != NULL; fp = fp->f_next) {
+	c = addr != 0;
+	/* start with the first module on the list, should be the kernel */
+	for (fp = file_findfile(NULL, NULL); fp != NULL; fp = fp->f_next) {
 
-	MOD_NAME(addr, fp->f_name, c);	/* this field must come first */
-	MOD_TYPE(addr, fp->f_type, c);
-	if (fp->f_args)
-	    MOD_ARGS(addr, fp->f_args, c);
-	MOD_ADDR(addr, fp->f_addr, c);
-	MOD_SIZE(addr, fp->f_size, c);
-	for (md = fp->f_metadata; md != NULL; md = md->md_next) {
-	    if (!(md->md_type & MODINFOMD_NOCOPY)) {
-		MOD_METADATA(addr, md, c);
-	    }
+		MOD_NAME(addr, fp->f_name, c);	/* this field must come first */
+		MOD_TYPE(addr, fp->f_type, c);
+		if (fp->f_args)
+			MOD_ARGS(addr, fp->f_args, c);
+		MOD_ADDR(addr, fp->f_addr, c);
+		MOD_SIZE(addr, fp->f_size, c);
+		for (md = fp->f_metadata; md != NULL; md = md->md_next)
+			if (!(md->md_type & MODINFOMD_NOCOPY))
+				MOD_METADATA(addr, md, c);
 	}
-    }
-    MOD_END(addr, c);
-    return(addr);
+	MOD_END(addr, c);
+	return(addr);
 }
 
 /*
@@ -260,110 +261,108 @@
 int
 md_load(char *args, vm_offset_t *modulep)
 {
-    struct bootinfo		bootinfo;
-    struct preloaded_file	*kfp;
-    struct preloaded_file	*xp;
-    struct file_metadata	*md;
-    vm_offset_t			kernend;
-    vm_offset_t			addr;
-    vm_offset_t			envp;
-    vm_offset_t			size;
-    vm_offset_t			vaddr;
-    struct sys_info		*si;
-    char			*rootdevname;
-    int				howto;
-    int				i;
+	struct bootinfo		bootinfo;
+	struct preloaded_file	*kfp;
+	struct preloaded_file	*xp;
+	struct file_metadata	*md;
+	vm_offset_t		kernend;
+	vm_offset_t		addr;
+	vm_offset_t		envp;
+	vm_offset_t		size;
+	vm_offset_t		vaddr;
+	struct sys_info		*si;
+	char			*rootdevname;
+	int			howto;
+	int			i;
 
-    /* This metadata addreses must be converted for kernel after relocation */
-    uint32_t			mdt[] = { MODINFOMD_SSYM, MODINFOMD_ESYM,
-	    				MODINFOMD_KERNEND, MODINFOMD_ENVP };
+	/* This metadata addreses must be converted for kernel after relocation */
+	uint32_t		mdt[] = {
+	    MODINFOMD_SSYM, MODINFOMD_ESYM, MODINFOMD_KERNEND, MODINFOMD_ENVP
+	};
 
-    howto = md_getboothowto(args);
+	howto = md_getboothowto(args);
 
-    /* 
-     * Allow the environment variable 'rootdev' to override the supplied device 
-     * This should perhaps go to MI code and/or have $rootdev tested/set by
-     * MI code before launching the kernel.
-     */
-    rootdevname = getenv("rootdev");
-    if (rootdevname == NULL)
-	    rootdevname = getenv("currdev");
-    /* Try reading the /etc/fstab file to select the root device */
-    getrootmount(rootdevname);
+	/*
+	 * Allow the environment variable 'rootdev' to override the supplied device 
+	 * This should perhaps go to MI code and/or have $rootdev tested/set by
+	 * MI code before launching the kernel.
+	 */
+	rootdevname = getenv("rootdev");
+	if (rootdevname == NULL)
+		rootdevname = getenv("currdev");
+	/* Try reading the /etc/fstab file to select the root device */
+	getrootmount(rootdevname);
 
-    /* find the last module in the chain */
-    addr = 0;
-    for (xp = file_findfile(NULL, NULL); xp != NULL; xp = xp->f_next) {
-	if (addr < (xp->f_addr + xp->f_size))
-	    addr = xp->f_addr + xp->f_size;
-    }
-    /* pad to a page boundary */
-    addr = roundup(addr, PAGE_SIZE);
+	/* find the last module in the chain */
+	addr = 0;
+	for (xp = file_findfile(NULL, NULL); xp != NULL; xp = xp->f_next)
+		if (addr < (xp->f_addr + xp->f_size))
+			addr = xp->f_addr + xp->f_size;
+	/* pad to a page boundary */
+	addr = roundup(addr, PAGE_SIZE);
 
-    /* copy our environment */
-    envp = addr;
-    addr = md_copyenv(addr);
+	/* copy our environment */
+	envp = addr;
+	addr = md_copyenv(addr);
 
-    /* pad to a page boundary */
-    addr = roundup(addr, PAGE_SIZE);
+	/* pad to a page boundary */
+	addr = roundup(addr, PAGE_SIZE);
 
-    /* Fill information structure */
-    if (!(si = ub_get_sys_info()))
-	panic("can't retrieve U-Boot sysinfo");
+	/* Fill information structure */
+	if (!(si = ub_get_sys_info()))
+		panic("can't retrieve U-Boot sysinfo");
 
-    /* Extract mem info */
-    for (i = 0; i < si->mr_no; i++)
-        if (si->mr[i].flags == MR_ATTR_DRAM) {
-	    bootinfo.mem_base = si->mr[i].start;
-	    bootinfo.mem_size = si->mr[i].size;
-	    break;
-	}
+	/* Extract mem info */
+	for (i = 0; i < si->mr_no; i++)
+		if (si->mr[i].flags == MR_ATTR_DRAM) {
+			bootinfo.mem_base = si->mr[i].start;
+			bootinfo.mem_size = si->mr[i].size;
+			break;
+		}
 
-    if (i == si->mr_no)
-        panic("can't retrieve memory info");
+	if (i == si->mr_no)
+		panic("can't retrieve memory info");
 
-    bootinfo.version = 1;
-    bootinfo.bar_base = si->bar;
-    bootinfo.cpu_clk = si->clk_cpu;
-    bootinfo.bus_clk = si->clk_bus;
+	bootinfo.version = 1;
+	bootinfo.bar_base = si->bar;
+	bootinfo.cpu_clk = si->clk_cpu;
+	bootinfo.bus_clk = si->clk_bus;
 
 #if 0
-    memcpy(bootinfo.eth0_addr, bd->bi_enetaddr, sizeof(bootinfo.eth0_addr));
-#ifdef CONFIG_HAS_ETH1
-    memcpy(bootinfo.eth1_addr, bd->bi_enet1addr, sizeof(bootinfo.eth1_addr));
+	memcpy(bootinfo.eth0_addr, bd->bi_enetaddr, sizeof(bootinfo.eth0_addr));
+	memcpy(bootinfo.eth1_addr, bd->bi_enet1addr, sizeof(bootinfo.eth1_addr));
 #endif
-#endif
 
-    kernend = 0;
-    kfp = file_findfile(NULL, "elf32 kernel");
-    if (kfp == NULL)
-	kfp = file_findfile(NULL, "elf kernel");
-    if (kfp == NULL)
-	panic("can't find kernel file");
-    file_addmetadata(kfp, MODINFOMD_HOWTO, sizeof howto, &howto);
-    file_addmetadata(kfp, MODINFOMD_BOOTINFO, sizeof bootinfo, &bootinfo);
-    file_addmetadata(kfp, MODINFOMD_ENVP, sizeof envp, &envp);
-    file_addmetadata(kfp, MODINFOMD_KERNEND, sizeof kernend, &kernend);
+	kernend = 0;
+	kfp = file_findfile(NULL, "elf32 kernel");
+	if (kfp == NULL)
+		kfp = file_findfile(NULL, "elf kernel");
+	if (kfp == NULL)
+		panic("can't find kernel file");
+	file_addmetadata(kfp, MODINFOMD_HOWTO, sizeof howto, &howto);
+	file_addmetadata(kfp, MODINFOMD_BOOTINFO, sizeof bootinfo, &bootinfo);
+	file_addmetadata(kfp, MODINFOMD_ENVP, sizeof envp, &envp);
+	file_addmetadata(kfp, MODINFOMD_KERNEND, sizeof kernend, &kernend);
 
-    *modulep = addr;
-    size = md_copymodules(0);
-    kernend = roundup(addr + size, PAGE_SIZE);
+	*modulep = addr;
+	size = md_copymodules(0);
+	kernend = roundup(addr + size, PAGE_SIZE);
 
-    md = file_findmetadata(kfp, MODINFOMD_KERNEND);
-    bcopy(&kernend, md->md_data, sizeof kernend);
+	md = file_findmetadata(kfp, MODINFOMD_KERNEND);
+	bcopy(&kernend, md->md_data, sizeof kernend);
 
-    /* Convert addresses to the final VA */
-    *modulep -= __elfN(relocation_offset);
+	/* Convert addresses to the final VA */
+	*modulep -= __elfN(relocation_offset);
 
-    for (i = 0; i < sizeof mdt / sizeof mdt[0]; i++) {
-    	md = file_findmetadata(kfp, mdt[i]);
-    	if (md) {
-		bcopy(md->md_data, &vaddr, sizeof vaddr);
-		vaddr -= __elfN(relocation_offset);
-		bcopy(&vaddr, md->md_data, sizeof vaddr);
-    	}
-    }
-    (void)md_copymodules(addr);
+	for (i = 0; i < sizeof mdt / sizeof mdt[0]; i++) {
+		md = file_findmetadata(kfp, mdt[i]);
+		if (md) {
+			bcopy(md->md_data, &vaddr, sizeof vaddr);
+			vaddr -= __elfN(relocation_offset);
+			bcopy(&vaddr, md->md_data, sizeof vaddr);
+		}
+	}
+	(void)md_copymodules(addr);
 
-    return(0);
+	return(0);
 }


More information about the p4-projects mailing list