⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bootstr.c

📁 ARM 嵌入式 系统 设计与实例开发 实验教材 二源码
💻 C
字号:
/* $Id: bootstr.c,v 1.20 2000/02/08 20:24:23 davem Exp $ * bootstr.c:  Boot string/argument acquisition from the PROM. * * Copyright(C) 1995 David S. Miller (davem@caip.rutgers.edu) */#include <linux/string.h>#include <asm/oplib.h>#include <asm/sun4prom.h>#include <linux/init.h>#define BARG_LEN  256static char barg_buf[BARG_LEN] = { 0 };static char fetched __initdata = 0;extern linux_sun4_romvec *sun4_romvec;char * __initprom_getbootargs(void){	int iter;	char *cp, *arg;	/* This check saves us from a panic when bootfd patches args. */	if (fetched) {		return barg_buf;	}	switch(prom_vers) {	case PROM_V0:	case PROM_SUN4:		cp = barg_buf;		/* Start from 1 and go over fd(0,0,0)kernel */		for(iter = 1; iter < 8; iter++) {			arg = (*(romvec->pv_v0bootargs))->argv[iter];			if(arg == 0) break;			while(*arg != 0) {				/* Leave place for space and null. */				if(cp >= barg_buf + BARG_LEN-2){					/* We might issue a warning here. */					break;				}				*cp++ = *arg++;			}			*cp++ = ' ';		}		*cp = 0;		break;	case PROM_V2:	case PROM_V3:		/*		 * V3 PROM cannot supply as with more than 128 bytes		 * of an argument. But a smart bootstrap loader can.		 */		strncpy(barg_buf, *romvec->pv_v2bootargs.bootargs, BARG_LEN-1);		break;	default:		break;	}	fetched = 1;	return barg_buf;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -