ia64/linux-2.6.18-xen.hg

annotate arch/sparc/prom/bootstr.c @ 912:dd42cdb0ab89

[IA64] Build blktap2 driver by default in x86 builds.

add CONFIG_XEN_BLKDEV_TAP2=y to buildconfigs/linux-defconfig_xen_ia64.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
author Isaku Yamahata <yamahata@valinux.co.jp>
date Mon Jun 29 12:09:16 2009 +0900 (2009-06-29)
parents 831230e53067
children
rev   line source
ian@0 1 /* $Id: bootstr.c,v 1.20 2000/02/08 20:24:23 davem Exp $
ian@0 2 * bootstr.c: Boot string/argument acquisition from the PROM.
ian@0 3 *
ian@0 4 * Copyright(C) 1995 David S. Miller (davem@caip.rutgers.edu)
ian@0 5 */
ian@0 6
ian@0 7 #include <linux/string.h>
ian@0 8 #include <asm/oplib.h>
ian@0 9 #include <asm/sun4prom.h>
ian@0 10 #include <linux/init.h>
ian@0 11
ian@0 12 #define BARG_LEN 256
ian@0 13 static char barg_buf[BARG_LEN] = { 0 };
ian@0 14 static char fetched __initdata = 0;
ian@0 15
ian@0 16 extern linux_sun4_romvec *sun4_romvec;
ian@0 17
ian@0 18 char * __init
ian@0 19 prom_getbootargs(void)
ian@0 20 {
ian@0 21 int iter;
ian@0 22 char *cp, *arg;
ian@0 23
ian@0 24 /* This check saves us from a panic when bootfd patches args. */
ian@0 25 if (fetched) {
ian@0 26 return barg_buf;
ian@0 27 }
ian@0 28
ian@0 29 switch(prom_vers) {
ian@0 30 case PROM_V0:
ian@0 31 case PROM_SUN4:
ian@0 32 cp = barg_buf;
ian@0 33 /* Start from 1 and go over fd(0,0,0)kernel */
ian@0 34 for(iter = 1; iter < 8; iter++) {
ian@0 35 arg = (*(romvec->pv_v0bootargs))->argv[iter];
ian@0 36 if(arg == 0) break;
ian@0 37 while(*arg != 0) {
ian@0 38 /* Leave place for space and null. */
ian@0 39 if(cp >= barg_buf + BARG_LEN-2){
ian@0 40 /* We might issue a warning here. */
ian@0 41 break;
ian@0 42 }
ian@0 43 *cp++ = *arg++;
ian@0 44 }
ian@0 45 *cp++ = ' ';
ian@0 46 }
ian@0 47 *cp = 0;
ian@0 48 break;
ian@0 49 case PROM_V2:
ian@0 50 case PROM_V3:
ian@0 51 /*
ian@0 52 * V3 PROM cannot supply as with more than 128 bytes
ian@0 53 * of an argument. But a smart bootstrap loader can.
ian@0 54 */
ian@0 55 strlcpy(barg_buf, *romvec->pv_v2bootargs.bootargs, sizeof(barg_buf));
ian@0 56 break;
ian@0 57 default:
ian@0 58 break;
ian@0 59 }
ian@0 60
ian@0 61 fetched = 1;
ian@0 62 return barg_buf;
ian@0 63 }