diff --git a/programs/system/shell/History.txt b/programs/system/shell/History.txt index 8ab5c5765e..194e418ad4 100644 --- a/programs/system/shell/History.txt +++ b/programs/system/shell/History.txt @@ -1,9 +1,16 @@ -DDDD@@@@@@@@@@@@!!!!!!!!!!!!!!!!!!!!! +Shell 0.4.52 // 25.10.2010 // Pterox +======================================= +* ─юсртыхэр ъюьрэфр "killall" - єсштрхЄ тёх яЁюЎхёё√ ъЁюьх OS/IDLE. +* ╘шъё√ + +Shell 0.4.51 // 21.10.2010 // Pterox +======================================= +* ╩юьрэфр "turnoff" яхЁхшьхэютрэр т "shutdown", "kerver" єфрыхэр - ЄхяхЁ№ х╕ чрьхэ хЄ "ver kernel"; Їшъё√. Shell 0.4.5 // 19.10.2010 // Pterox ======================================= ╧ЁюуЁрььр ЄхяхЁ№ ьэюую ч√ъютр  (рэуышщёъшщ, ш Ёєёёъшщ  ч√ъ). ╧ЁюуЁрььр яюыэюёЄ№■ ЁєёшЇшЎшЁютрээр. -* ╩юьрэфр "free" яхЁшьхэютрэр т "memory" - фы  ЄюўэюёЄш. +* ╩юьрэфр "free" яхЁхшьхэютрэр т "memory" - фы  ЄюўэюёЄш. * ─юсртыхэ√ ъюьрэф√ turnoff (т√ъы■ўшЄ№ ъюья№■ЄхЁ), kerver (тхЁёш   фЁр KoOS), uptime; reboot ЄхяхЁ№ ьюцхЄ яхЁхчруЁєцрЄ№  фЁю ("reboot kernel") Shell 0.4.4 // 20.08.2010 // Albom diff --git a/programs/system/shell/all.h b/programs/system/shell/all.h index 0fc156e0f3..9129942620 100644 --- a/programs/system/shell/all.h +++ b/programs/system/shell/all.h @@ -37,6 +37,7 @@ #include "cmd/cmd_sleep.c" #include "cmd/cmd_shutdown.c" #include "cmd/cmd_uptime.c" +#include "cmd/cmd_killall.c" #include "modules/module_command.c" #include "modules/module_program.c" diff --git a/programs/system/shell/bin/eng/shell.kex b/programs/system/shell/bin/eng/shell.kex deleted file mode 100644 index b62d31ee53..0000000000 Binary files a/programs/system/shell/bin/eng/shell.kex and /dev/null differ diff --git a/programs/system/shell/bin/rus/shell.kex b/programs/system/shell/bin/rus/shell.kex deleted file mode 100644 index 56568eeef5..0000000000 Binary files a/programs/system/shell/bin/rus/shell.kex and /dev/null differ diff --git a/programs/system/shell/cmd/cmd_killall.c b/programs/system/shell/cmd/cmd_killall.c new file mode 100644 index 0000000000..2a0861abe5 --- /dev/null +++ b/programs/system/shell/cmd/cmd_killall.c @@ -0,0 +1,15 @@ + +int cmd_killall(char process_name[]) +{ + +unsigned i; +if (!strlen(process_name)) + { + for (i = 2;i<256;i++) + { + kol_kill_process(i); + } + return TRUE; + } +return TRUE; +} \ No newline at end of file diff --git a/programs/system/shell/cmd/cmd_memory.c b/programs/system/shell/cmd/cmd_memory.c index d0e04500a2..3f3d1434c3 100644 --- a/programs/system/shell/cmd/cmd_memory.c +++ b/programs/system/shell/cmd/cmd_memory.c @@ -10,7 +10,7 @@ used = total - free; #if LANG_ENG printf (" Total [kB / MB / %%]: %-7d / %-5d / 100\n\r Free [kB / MB / %%]: %-7d / %-5d / %d\n\r Used [kB / MB / %%]: %-7d / %-5d / %d\n\r", #elif LANG_RUS - printf (" Всего [КБ / МБ / %%]: %-7d / %-5d / 100\n\r Свободно [КБ / МБ / %%]: %-7d / %-5d / %d\n\r Используется [КБ / МБ / %%]: %-7d / %-5d / %d\n\r", + printf (" Всего [КБ / МБ / %%]: %-7d / %-5d / 100\n\r Свободно [КБ / МБ / %%]: %-7d / %-5d / %d\n\r Используется [КБ / МБ / %%]: %-7d / %-5d / %d\n\r", #endif total, total/1024, free, free/1024, (free*100)/total, used, total/1024-free/1024, 100-(free*100)/total ); diff --git a/programs/system/shell/cmd/cmd_reboot.c b/programs/system/shell/cmd/cmd_reboot.c index 46a0875aae..7c62e869ca 100644 --- a/programs/system/shell/cmd/cmd_reboot.c +++ b/programs/system/shell/cmd/cmd_reboot.c @@ -1,7 +1,7 @@ int cmd_reboot(char param[]) { -if (strcmp(param, "kernel")) +if (!strcmp(param, "kernel")) { kol_system_end(4); return TRUE; diff --git a/programs/system/shell/compile_eng.bat b/programs/system/shell/compile_eng.bat index e845753f5a..487349b0dd 100644 --- a/programs/system/shell/compile_eng.bat +++ b/programs/system/shell/compile_eng.bat @@ -6,10 +6,10 @@ gcc -c shell.c gcc -c system/kolibri.c gcc -c system/stdlib.c gcc -c system/string.c -ld -nostdlib -T kolibri.ld -o shell.kex start.o kolibri.o stdlib.o string.o shell.o -objcopy shell.kex -O binary +ld -nostdlib -T kolibri.ld -o shell start.o kolibri.o stdlib.o string.o shell.o +objcopy shell -O binary erase lang.h start.o shell.o kolibri.o stdlib.o string.o -kpack shell.kex -move shell.kex bin\eng\ +kpack shell +move shell bin\eng\ copy locale\eng\.shell bin\eng\ pause \ No newline at end of file diff --git a/programs/system/shell/compile_rus.bat b/programs/system/shell/compile_rus.bat index 652c676ffd..18f63ff2e0 100644 --- a/programs/system/shell/compile_rus.bat +++ b/programs/system/shell/compile_rus.bat @@ -6,10 +6,10 @@ gcc -c shell.c gcc -c system/kolibri.c gcc -c system/stdlib.c gcc -c system/string.c -ld -nostdlib -T kolibri.ld -o shell.kex start.o kolibri.o stdlib.o string.o shell.o -objcopy shell.kex -O binary +ld -nostdlib -T kolibri.ld -o shell start.o kolibri.o stdlib.o string.o shell.o +objcopy shell -O binary erase lang.h start.o shell.o kolibri.o stdlib.o string.o -kpack shell.kex -move shell.kex bin\rus\ +kpack shell +move shell bin\rus\ copy locale\rus\.shell bin\rus\ pause \ No newline at end of file diff --git a/programs/system/shell/globals.h b/programs/system/shell/globals.h index 5d89084c81..8e5603c73e 100644 --- a/programs/system/shell/globals.h +++ b/programs/system/shell/globals.h @@ -1,5 +1,5 @@ -#define SHELL_VERSION "0.4.51" +#define SHELL_VERSION "0.4.52" extern char PATH[256]; extern char PARAM[256]; @@ -65,6 +65,7 @@ int cmd_ver(char arg[]); int cmd_sleep(char arg[]); int cmd_shutdown(char arg[]); int cmd_uptime(char param[]); +int cmd_killall(char process_name[]); /// =========================================================== diff --git a/programs/system/shell/locale/eng/globals.h b/programs/system/shell/locale/eng/globals.h index 35929a32d4..766ab093c6 100644 --- a/programs/system/shell/locale/eng/globals.h +++ b/programs/system/shell/locale/eng/globals.h @@ -11,6 +11,7 @@ const command_t COMMANDS[]= {"memory", " Displays total, free and used memory\n\r", &cmd_memory}, {"help", " Gives help on commands. Usage:\n\r help ;it lists all builtins\n\r help ;help on command\n\r", &cmd_help}, {"kill", " Stops a running process. Usage:\n\r kill \n\r", &cmd_kill}, + {"killall", " Kills all running processes\n\r", &cmd_killall}, {"ls", " Lists the files in a directory. Usage:\n\r ls ;lists the files in current directory\n\r ls ;lists the files at specified folder\n\r", &cmd_ls}, {"mkdir", " Makes directory. Usage:\n\r mkdir ;creates the folder in working directory\n\r mkdir ;create folder by specified path\n\r", &cmd_mkdir}, {"more", " Displays a file data to the screen. Usage:\n\r more \n\r", &cmd_more}, diff --git a/programs/system/shell/locale/rus/globals.h b/programs/system/shell/locale/rus/globals.h index 899773506e..27b0a65730 100644 --- a/programs/system/shell/locale/rus/globals.h +++ b/programs/system/shell/locale/rus/globals.h @@ -11,6 +11,7 @@ const command_t COMMANDS[]= {"memory", " Показывает объём памяти: всей, свободной и используемой\n\r", &cmd_memory}, {"help", " Справка по командам. Использование:\n\r help ;список всех команд\n\r help <команда> ;справка по команде\n\r", &cmd_help}, {"kill", " Убивает процесс. Использование:\n\r kill \n\r", &cmd_kill}, + {"killall", " Убивает все запущенные процессы\n\r", &cmd_killall}, {"ls", " Выводит список файлов. Использование:\n\r ls ;список файлов в текущем каталоге\n\r ls <директория> ;список файлов из заданной директории\n\r", &cmd_ls}, {"mkdir", " Создает каталог. Использование:\n\r mkdir <имя папки> ;создать папку в текущем каталоге\n\r mkdir <путь><имя папки> ;создать папку по указанному пути\n\r", &cmd_mkdir}, {"more", " Выводит содержимое файла на экран. Использование:\n\r more <имя файла>\n\r", &cmd_more}, diff --git a/programs/system/shell/modules/module_executable.c b/programs/system/shell/modules/module_executable.c index a223790a52..c805080c61 100644 --- a/programs/system/shell/modules/module_executable.c +++ b/programs/system/shell/modules/module_executable.c @@ -8,11 +8,11 @@ char exec[256]; #if LANG_ENG char error_starting[]={" No such command '%s'.\n\r"}; #elif LANG_RUS - char error_starting[]={" Не такой команды - '%s'.\n\r"}; + char error_starting[]={" Нет такой команды - '%s'.\n\r"}; #endif int result; -if ( '/' == cmd[0]) // если путь абсолбтный +if ( '/' == cmd[0]) // если путь абсолютный { strcpy(exec, cmd); diff --git a/programs/system/shell/system/kolibri.c b/programs/system/shell/system/kolibri.c index 978528987a..53b61d357b 100644 --- a/programs/system/shell/system/kolibri.c +++ b/programs/system/shell/system/kolibri.c @@ -411,6 +411,11 @@ int kol_process_kill_pid(unsigned process) asm ("int $0x40"::"a"(18), "b"(18), "c"(process)); } +int kol_kill_process(unsigned process) +{ +asm ("int $0x40"::"a"(18), "b"(2), "c"(process)); +} + void kol_get_kernel_ver(char buff16b[]) { asm ("int $0x40"::"a"(18), "b"(13), "c"(buff16b)); diff --git a/programs/system/shell/system/kolibri.h b/programs/system/shell/system/kolibri.h index 14ad94b2dc..284a3934dd 100644 --- a/programs/system/shell/system/kolibri.h +++ b/programs/system/shell/system/kolibri.h @@ -88,4 +88,5 @@ unsigned kol_time_tick(); unsigned kol_sound_speaker(char data[]); unsigned kol_process_info(unsigned slot, char buf1k[]); int kol_process_kill_pid(unsigned process); -void kol_get_kernel_ver(char buff16b[]); \ No newline at end of file +void kol_get_kernel_ver(char buff16b[]); +int kol_kill_process(unsigned process); \ No newline at end of file