forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-09-20 a36159eec6ca17402b0e146b86efaf76568dc353
kernel/arch/mips/fw/arc/cmdline.c
....@@ -17,6 +17,12 @@
1717
1818 #undef DEBUG_CMDLINE
1919
20
+/*
21
+ * A 32-bit ARC PROM pass arguments and environment as 32-bit pointer.
22
+ * These macro take care of sign extension.
23
+ */
24
+#define prom_argv(index) ((char *) (long)argv[(index)])
25
+
2026 static char *ignored[] = {
2127 "ConsoleIn=",
2228 "ConsoleOut=",
....@@ -32,14 +38,14 @@
3238 { "OSLoadOptions=", "" }
3339 };
3440
35
-static char * __init move_firmware_args(char* cp)
41
+static char __init *move_firmware_args(int argc, LONG *argv, char *cp)
3642 {
3743 char *s;
3844 int actr, i;
3945
4046 actr = 1; /* Always ignore argv[0] */
4147
42
- while (actr < prom_argc) {
48
+ while (actr < argc) {
4349 for(i = 0; i < ARRAY_SIZE(used_arc); i++) {
4450 int len = strlen(used_arc[i][0]);
4551
....@@ -64,7 +70,7 @@
6470 return cp;
6571 }
6672
67
-void __init prom_init_cmdline(void)
73
+void __init prom_init_cmdline(int argc, LONG *argv)
6874 {
6975 char *cp;
7076 int actr, i;
....@@ -76,9 +82,9 @@
7682 * Move ARC variables to the beginning to make sure they can be
7783 * overridden by later arguments.
7884 */
79
- cp = move_firmware_args(cp);
85
+ cp = move_firmware_args(argc, argv, cp);
8086
81
- while (actr < prom_argc) {
87
+ while (actr < argc) {
8288 for (i = 0; i < ARRAY_SIZE(ignored); i++) {
8389 int len = strlen(ignored[i]);
8490