00001
00002 #include "stdarg.h"
00003 #include "../include/routix.h"
00004
00005 char msg[50];
00006
00007 char msg1[50];
00008 char msg2[50];
00009
00010 char str[]="Shell v 0.0.0.1";
00011
00012 int j, k;
00013
00014 void main(void)
00015 {
00016 puts(str);
00017
00018 putchar('\n');
00019
00020 while(1) {
00021
00022 printf("kernel$ ");
00023 gets(msg);
00024
00025
00026
00027 if ( ! strcmp(msg, "clear") ) {
00028 clrscr();
00029 }
00030 else if ( ! strcmp(msg, "exec") ) {
00031 printf("Ingrese nombre de tarea:");
00032 gets(msg1);
00033 if (exec(msg1)!=0)
00034 perror("No pudo ejecutarse");
00035 }
00036 else if ( ! strcmp(msg, "echo") ) {
00037 printf("Ingrese texto:");
00038 gets(msg1);
00039 printf("%s\n", msg1);
00040 }
00041 else if ( ! strcmp(msg, "\n") ) {
00042 }
00043 else if ( ! strcmp(msg, "ps") ) { proc_dump(); }
00044
00045 else if ( ! strcmp(msg, "ps count") ) { proc_dump(); }
00046
00047 else if ( ! strcmp(msg, "timers") ) { timer_dump(); }
00048
00049 else if ( ! strcmp(msg, "kill") ) {
00050
00051 puts("Pid: ");
00052 gets(msg1);
00053 puts("Senal: ");
00054 gets(msg2);
00055
00056 kill(atoi(msg1), atoi(msg2));
00057
00058 }
00059
00060 else if ( ! strcmp(msg, "info") ) {
00061 printf("Ingrese el PID: ");
00062 gets(msg2);
00063 if (proc_dump_v(atoi(msg2))==-1)
00064 perror("proc dump verbose");
00065 }
00066
00067 else if ( ! strcmp(msg, "renice") ) {
00068 printf("Ingrese el PID: ");
00069 gets(msg1);
00070 printf("Ingrese la nueva prioridad: ");
00071 gets(msg2);
00072 if (renice( atoi(msg1), atoi(msg2)) == -1)
00073 perror("renice");
00074
00075 proc_dump();
00076 }
00077
00078 else if ( ! strcmp(msg, "free mem") ) { printf("Paginas disponibles: %d\n",free_mem() ) ; }
00079
00080 else if (! strcmp(msg, "show morecores")) {
00081 show(1);
00082 }
00083
00084 else if (! strcmp(msg, "show cache")) {
00085 show(2);
00086 }
00087
00088 else if (! strcmp(msg, "show 3")) {
00089 show(3);
00090 }
00091
00092 else if (! strcmp(msg, "setvar")) {
00093 printf("Ingrese el nombre: ");
00094 gets(msg1);
00095 printf("Ingrese el valor: ");
00096 gets(msg2);
00097 if (setvar(msg1, atoi(msg2))==-1)
00098 printf("No pueden definirse más variables\n");
00099 }
00100
00101 else if (! strcmp(msg, "getvar")) {
00102 printf("Ingrese el nombre: ");
00103 gets(msg1);
00104 j = getvar(msg1);
00105 if (j==-1)
00106 printf("%s no definida\n", msg1);
00107 else printf ("Valor de %s: %d\n", msg1, j);
00108 }
00109
00110 else printf("comando o nombre de archivo erroneo\n");
00111 }
00112
00113 }