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

📄 cmdline.c

📁 linux 内核源代码
💻 C
字号:
/* * This file is subject to the terms and conditions of the GNU General Public * License.  See the file "COPYING" in the main directory of this archive * for more details. * * cmdline.c: Kernel command line creation using ARCS argc/argv. * * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com) */#include <linux/init.h>#include <linux/kernel.h>#include <linux/string.h>#include <asm/sgialib.h>#include <asm/bootinfo.h>#undef DEBUG_CMDLINEchar * __init prom_getcmdline(void){	return arcs_cmdline;}static char *ignored[] = {	"ConsoleIn=",	"ConsoleOut=",	"SystemPartition=",	"OSLoader=",	"OSLoadPartition=",	"OSLoadFilename=",	"OSLoadOptions="};static char *used_arc[][2] = {	{ "OSLoadPartition=", "root=" },	{ "OSLoadOptions=", "" }};static char * __init move_firmware_args(char* cp){	char *s;	int actr, i;	actr = 1; /* Always ignore argv[0] */	while (actr < prom_argc) {		for(i = 0; i < ARRAY_SIZE(used_arc); i++) {			int len = strlen(used_arc[i][0]);			if (!strncmp(prom_argv(actr), used_arc[i][0], len)) {			/* Ok, we want it. First append the replacement... */				strcat(cp, used_arc[i][1]);				cp += strlen(used_arc[i][1]);				/* ... and now the argument */				s = strstr(prom_argv(actr), "=");				if (s) {					s++;					strcpy(cp, s);					cp += strlen(s);				}				*cp++ = ' ';				break;			}		}		actr++;	}	return cp;}void __init prom_init_cmdline(void){	char *cp;	int actr, i;	actr = 1; /* Always ignore argv[0] */	cp = arcs_cmdline;	/*	 * Move ARC variables to the beginning to make sure they can be	 * overridden by later arguments.	 */	cp = move_firmware_args(cp);	while (actr < prom_argc) {		for (i = 0; i < ARRAY_SIZE(ignored); i++) {			int len = strlen(ignored[i]);			if (!strncmp(prom_argv(actr), ignored[i], len))				goto pic_cont;		}		/* Ok, we want it. */		strcpy(cp, prom_argv(actr));		cp += strlen(prom_argv(actr));		*cp++ = ' ';	pic_cont:		actr++;	}	if (cp != arcs_cmdline)		/* get rid of trailing space */		--cp;	*cp = '\0';#ifdef DEBUG_CMDLINE	printk(KERN_DEBUG "prom cmdline: %s\n", arcs_cmdline);#endif}

⌨️ 快捷键说明

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