1/* 2 * Carsten Langgaard, carstenl@mips.com 3 * Copyright (C) 1999,2000 MIPS Technologies, Inc. All rights reserved. 4 * 5 * This program is free software; you can distribute it and/or modify it 6 * under the terms of the GNU General Public License (Version 2) as 7 * published by the Free Software Foundation. 8 * 9 * This program is distributed in the hope it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * for more details. 13 * 14 * You should have received a copy of the GNU General Public License along 15 * with this program; if not, write to the Free Software Foundation, Inc., 16 * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. 17 * 18 * Kernel command line creation using the prom monitor (YAMON) argc/argv. 19 */ 20#include <linux/init.h> 21#include <linux/string.h> 22 23#include <asm/bootinfo.h> 24 25extern int prom_argc; 26extern int *_prom_argv; 27 28/* 29 * YAMON (32-bit PROM) pass arguments and environment as 32-bit pointer. 30 * This macro take care of sign extension. 31 */ 32#define prom_argv(index) ((char *)(long)_prom_argv[(index)]) 33 34char * __init prom_getcmdline(void) 35{ 36 return &(arcs_cmdline[0]); 37} 38 39 40void __init prom_init_cmdline(void) 41{ 42 char *cp; 43 int actr; 44 45 actr = 1; /* Always ignore argv[0] */ 46 47 cp = &(arcs_cmdline[0]); 48 while(actr < prom_argc) { 49 strcpy(cp, prom_argv(actr)); 50 cp += strlen(prom_argv(actr)); 51 *cp++ = ' '; 52 actr++; 53 } 54 if (cp != &(arcs_cmdline[0])) { 55 /* get rid of trailing space */ 56 --cp; 57 *cp = '\0'; 58 } 59} 60