cmdline.c
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:2k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  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. #include <asm/bootinfo.h>
  23. extern int prom_argc;
  24. extern int *_prom_argv;
  25. /*
  26.  * YAMON (32-bit PROM) pass arguments and environment as 32-bit pointer.
  27.  * This macro take care of sign extension.
  28.  */
  29. #define prom_argv(index) ((char *)(((int *)(int)_prom_argv)[(index)]))
  30. char arcs_cmdline[CL_SIZE];
  31. char * __init prom_getcmdline(void)
  32. {
  33. return &(arcs_cmdline[0]);
  34. }
  35. void  __init prom_init_cmdline(void)
  36. {
  37. char *cp;
  38. int actr;
  39. actr = 1; /* Always ignore argv[0] */
  40. cp = &(arcs_cmdline[0]);
  41. while(actr < prom_argc) {
  42.         strcpy(cp, prom_argv(actr));
  43. cp += strlen(prom_argv(actr));
  44. *cp++ = ' ';
  45. actr++;
  46. }
  47. if (cp != &(arcs_cmdline[0])) /* get rid of trailing space */
  48. --cp;
  49. *cp = '';
  50. }