initial commit
[pfinal.git] / Routix / tareas / shell / shell.c
blobf8c95d23eb616cc8748254ed0d7ea8cf99ff9ac3
1 /* tarea.c */
2 #include "stdarg.h"
3 #include "../include/routix.h"
5 char msg[50];
7 char msg1[50];
8 char msg2[50];
10 char str[]="Shell v 0.0.0.1";
12 int j, k;
14 void main(void)
16 puts(str);
18 putchar('\n');
20 while(1) {
22 printf("kernel$ ");
23 gets(msg);
25 // printf("*%s*\n", msg);
27 if ( ! strcmp(msg, "clear") ) {
28 clrscr();
30 else if ( ! strcmp(msg, "exec") ) {
31 printf("Ingrese nombre de tarea:");
32 gets(msg1);
33 if (exec(msg1)!=0)
34 perror("No pudo ejecutarse");
36 else if ( ! strcmp(msg, "echo") ) {
37 printf("Ingrese texto:");
38 gets(msg1);
39 printf("%s\n", msg1);
41 else if ( ! strcmp(msg, "\n") ) {
43 else if ( ! strcmp(msg, "ps") ) { proc_dump(); }
45 else if ( ! strcmp(msg, "ps count") ) { proc_dump(); }
47 else if ( ! strcmp(msg, "timers") ) { timer_dump(); }
49 else if ( ! strcmp(msg, "kill") ) {
51 puts("Pid: ");
52 gets(msg1);
53 puts("Senal: ");
54 gets(msg2);
56 kill(atoi(msg1), atoi(msg2));
60 else if ( ! strcmp(msg, "info") ) {
61 printf("Ingrese el PID: ");
62 gets(msg2);
63 if (proc_dump_v(atoi(msg2))==-1)
64 perror("proc dump verbose");
67 else if ( ! strcmp(msg, "renice") ) {
68 printf("Ingrese el PID: ");
69 gets(msg1);
70 printf("Ingrese la nueva prioridad: ");
71 gets(msg2);
72 if (renice( atoi(msg1), atoi(msg2)) == -1)
73 perror("renice");
75 proc_dump();
78 else if ( ! strcmp(msg, "free mem") ) { printf("Paginas disponibles: %d\n",free_mem() ) ; }
80 else if (! strcmp(msg, "show morecores")) {
81 show(1);
84 else if (! strcmp(msg, "show cache")) {
85 show(2);
88 else if (! strcmp(msg, "show 3")) {
89 show(3);
92 else if (! strcmp(msg, "setvar")) {
93 printf("Ingrese el nombre: ");
94 gets(msg1);
95 printf("Ingrese el valor: ");
96 gets(msg2);
97 if (setvar(msg1, atoi(msg2))==-1)
98 printf("No pueden definirse más variables\n");
101 else if (! strcmp(msg, "getvar")) {
102 printf("Ingrese el nombre: ");
103 gets(msg1);
104 j = getvar(msg1);
105 if (j==-1)
106 printf("%s no definida\n", msg1);
107 else printf ("Valor de %s: %d\n", msg1, j);
110 else printf("comando o nombre de archivo erroneo\n");