shell.c

Go to the documentation of this file.
00001 /* tarea.c */
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 //    printf("*%s*\n", msg);
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 }    

Generated on Sun May 30 18:38:35 2004 for Routix OS by doxygen 1.3.6