about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/pOS/arch/x86/kernel/shell/cmd.cpp20
-rw-r--r--src/pOS/arch/x86/kernel/shell/cmds/clear.cpp13
-rw-r--r--src/pOS/arch/x86/kernel/shell/cmds/date.cpp13
-rw-r--r--src/pOS/arch/x86/kernel/shell/cmds/halt.cpp12
-rw-r--r--src/pOS/arch/x86/kernel/shell/cmds/reboot.cpp12
-rw-r--r--src/pOS/arch/x86/kernel/shell/cmds/shutdown.cpp12
-rw-r--r--src/pOS/arch/x86/kernel/shell/cmds/test.cpp12
-rw-r--r--src/pOS/arch/x86/kernel/shell/shell.cpp2
-rw-r--r--src/pOS/include/kernel/shell/cmd.h4
9 files changed, 75 insertions, 25 deletions
diff --git a/src/pOS/arch/x86/kernel/shell/cmd.cpp b/src/pOS/arch/x86/kernel/shell/cmd.cpp
index 13b99ba..7c1fb00 100644
--- a/src/pOS/arch/x86/kernel/shell/cmd.cpp
+++ b/src/pOS/arch/x86/kernel/shell/cmd.cpp
@@ -6,36 +6,36 @@
 
 int CMD_MANAGER::execute(char* cmd)
 {
-    //char* arg = strtok(cmd, " ");
-
     dbgprintf("cmd: %s\n", cmd);
 
-    switch(str2int(cmd))
+    char* args = strtok(cmd, " ");
+
+    switch(str2int(args))
     {
         case str2int("clear"):
         case str2int("cls"):
         case str2int("c"):
-             return CMD_Clear().execute(cmd);
+             return CMD_Clear().execute();
 
         case str2int("date"):
         case str2int("time"):
-            return CMD_Date().execute(cmd);
+            return CMD_Date().execute();
 
         case str2int("halt"):
         case str2int("hlt"):
-            return CMD_Halt().execute(cmd);
+            return CMD_Halt().execute();
 
         case str2int("shutdown"):
-            return CMD_Shutdown().execute(cmd);
+            return CMD_Shutdown().execute();
 
         case str2int("reboot"):
-            return CMD_Reboot().execute(cmd);
+            return CMD_Reboot().execute();
 
         case str2int("test"):
         case str2int("t"):
-            return CMD_Test().execute(cmd);
+            return CMD_Test().execute();
     }
 
-    printf("Unknown cmd: %s\n", cmd);
+    printf("Unknown cmd: %s\n", args);
     return -1;
 }
diff --git a/src/pOS/arch/x86/kernel/shell/cmds/clear.cpp b/src/pOS/arch/x86/kernel/shell/cmds/clear.cpp
index 1919a3a..871c59b 100644
--- a/src/pOS/arch/x86/kernel/shell/cmds/clear.cpp
+++ b/src/pOS/arch/x86/kernel/shell/cmds/clear.cpp
@@ -1,9 +1,18 @@
 #include <kernel/shell/cmd.h>
 #include <kernel/tty.h>
+#include <kernel/debug.h>
 
-int CMD_Clear::execute(const char* args)
+int CMD_Clear::execute()
 {
-    UNUSED_VARIABLE(args);
+    dbgprintf("args: ");
+    char* arg = strtok(NULL, " ");
+    do
+    {
+        dbgprintf("%s, ", arg);
+        arg = strtok(NULL, " ");
+    } while(arg);
+    dbgprintf("\n");
+
     TTY::tty_initialize();
     return 0;
 }
diff --git a/src/pOS/arch/x86/kernel/shell/cmds/date.cpp b/src/pOS/arch/x86/kernel/shell/cmds/date.cpp
index 3a0431b..74330aa 100644
--- a/src/pOS/arch/x86/kernel/shell/cmds/date.cpp
+++ b/src/pOS/arch/x86/kernel/shell/cmds/date.cpp
@@ -1,9 +1,18 @@
 #include <kernel/shell/cmd.h>
 #include <kernel/time.h>
+#include <kernel/debug.h>
 
-int CMD_Date::execute(const char* args)
+int CMD_Date::execute()
 {
-    UNUSED_VARIABLE(args);
+    dbgprintf("args: ");
+    char* arg = strtok(NULL, " ");
+    do
+    {
+        dbgprintf("%s, ", arg);
+        arg = strtok(NULL, " ");
+    } while(arg);
+    dbgprintf("\n");
+
     printf("%s\n", Time::get_date_formatted());
     return 0;
 }
diff --git a/src/pOS/arch/x86/kernel/shell/cmds/halt.cpp b/src/pOS/arch/x86/kernel/shell/cmds/halt.cpp
index 2993af3..c68ee9d 100644
--- a/src/pOS/arch/x86/kernel/shell/cmds/halt.cpp
+++ b/src/pOS/arch/x86/kernel/shell/cmds/halt.cpp
@@ -1,9 +1,17 @@
 #include <kernel/shell/cmd.h>
 #include <kernel/acpi.h>
+#include <kernel/debug.h>
 
-int CMD_Halt::execute(const char* args)
+int CMD_Halt::execute()
 {
-    UNUSED_VARIABLE(args);
+    dbgprintf("args: ");
+    char* arg = strtok(NULL, " ");
+    do
+    {
+        dbgprintf("%s, ", arg);
+        arg = strtok(NULL, " ");
+    } while(arg);
+    dbgprintf("\n");
     ACPI::halt();
     return 0;
 }
diff --git a/src/pOS/arch/x86/kernel/shell/cmds/reboot.cpp b/src/pOS/arch/x86/kernel/shell/cmds/reboot.cpp
index bf2dac3..19e09a4 100644
--- a/src/pOS/arch/x86/kernel/shell/cmds/reboot.cpp
+++ b/src/pOS/arch/x86/kernel/shell/cmds/reboot.cpp
@@ -1,9 +1,17 @@
 #include <kernel/shell/cmd.h>
 #include <kernel/acpi.h>
+#include <kernel/debug.h>
 
-int CMD_Reboot::execute(const char* args)
+int CMD_Reboot::execute()
 {
-    UNUSED_VARIABLE(args);
+    dbgprintf("args: ");
+    char* arg = strtok(NULL, " ");
+    do
+    {
+        dbgprintf("%s, ", arg);
+        arg = strtok(NULL, " ");
+    } while(arg);
+    dbgprintf("\n");
     ACPI::reboot();
     return 0;
 }
diff --git a/src/pOS/arch/x86/kernel/shell/cmds/shutdown.cpp b/src/pOS/arch/x86/kernel/shell/cmds/shutdown.cpp
index e0939d9..943c313 100644
--- a/src/pOS/arch/x86/kernel/shell/cmds/shutdown.cpp
+++ b/src/pOS/arch/x86/kernel/shell/cmds/shutdown.cpp
@@ -1,9 +1,17 @@
 #include <kernel/shell/cmd.h>
 #include <kernel/acpi.h>
+#include <kernel/debug.h>
 
-int CMD_Shutdown::execute(const char* args)
+int CMD_Shutdown::execute()
 {
-    UNUSED_VARIABLE(args);
+    dbgprintf("args: ");
+    char* arg = strtok(NULL, " ");
+    do
+    {
+        dbgprintf("%s, ", arg);
+        arg = strtok(NULL, " ");
+    } while(arg);
+    dbgprintf("\n");
     ACPI::shutdown();
     return 0;
 }
diff --git a/src/pOS/arch/x86/kernel/shell/cmds/test.cpp b/src/pOS/arch/x86/kernel/shell/cmds/test.cpp
index 0c9a32c..f312d26 100644
--- a/src/pOS/arch/x86/kernel/shell/cmds/test.cpp
+++ b/src/pOS/arch/x86/kernel/shell/cmds/test.cpp
@@ -1,9 +1,17 @@
 #include <kernel/shell/cmd.h>
 #include <stdio.h>
+#include <kernel/debug.h>
 
-int CMD_Test::execute(const char* args)
+int CMD_Test::execute()
 {
-    UNUSED_VARIABLE(args);
+    dbgprintf("args: ");
+    char* arg = strtok(NULL, " ");
+    do
+    {
+        dbgprintf("%s, ", arg);
+        arg = strtok(NULL, " ");
+    } while(arg);
+    dbgprintf("\n");
     printf("Test!\n");
     return 0;
 }
diff --git a/src/pOS/arch/x86/kernel/shell/shell.cpp b/src/pOS/arch/x86/kernel/shell/shell.cpp
index d11e206..143fe8e 100644
--- a/src/pOS/arch/x86/kernel/shell/shell.cpp
+++ b/src/pOS/arch/x86/kernel/shell/shell.cpp
@@ -51,7 +51,7 @@ int Shell::run(void)
 
         if(c == '\b')
         {
-            cmd[indx] = c;
+            cmd[--indx] = 0;
         }
         else if(c == '\n')
         {
diff --git a/src/pOS/include/kernel/shell/cmd.h b/src/pOS/include/kernel/shell/cmd.h
index 42855a1..85f57a8 100644
--- a/src/pOS/include/kernel/shell/cmd.h
+++ b/src/pOS/include/kernel/shell/cmd.h
@@ -5,7 +5,7 @@
     class name : public CMD                 \
     {                                       \
     public:                                 \
-        int execute(const char* args);      \
+        int execute();      \
     };
 
 class CMD_MANAGER
@@ -17,7 +17,7 @@ public:
 class CMD
 {
 public:
-    virtual int execute(const char* args);
+    virtual int execute();
 };
 
 /* SHELL CMDS */