From 5235bed2b26548ff0d05bd1834e23bf345375eea Mon Sep 17 00:00:00 2001 From: oliverschmidt Date: Wed, 30 Aug 2006 22:06:18 +0000 Subject: [PATCH] The Contiki 2.x process entity doesn't contain a process id anymore. Therefore processes are killed by name rather then by id. --- apps/shell/shell.c | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/apps/shell/shell.c b/apps/shell/shell.c index 3f08feb1c..97432c5f1 100644 --- a/apps/shell/shell.c +++ b/apps/shell/shell.c @@ -28,7 +28,7 @@ * * This file is part of the Contiki desktop OS. * - * $Id: shell.c,v 1.1 2006/06/17 22:41:12 adamdunkels Exp $ + * $Id: shell.c,v 1.2 2006/08/30 22:06:18 oliverschmidt Exp $ * */ @@ -103,15 +103,11 @@ inttostr(register char *str, unsigned int i) static void processes(char *str) { - static char idstr[5]; struct process *p; shell_output("Processes:", ""); - /* Step through each possible process ID and see if there is a - matching process. */ for(p = PROCESS_LIST(); p != NULL; p = p->next) { - /* inttostr(idstr, p->id);*/ - shell_output(idstr, (char *)p->name); + shell_output((char *)p->name, ""); } } /*-----------------------------------------------------------------------------------*/ @@ -161,28 +157,22 @@ execfile(char *str) static void killproc(char *str) { - char procnum, j, c; - char procstr[5]; + struct process *p; nullterminate(str); - procnum = 0; - - for(j = 0; j < 4; ++j) { - c = str[(unsigned int)j]; - if(c >= '0' && c <= '9') { - procnum = procnum * 10 + (str[(unsigned int)j] - '0'); - } else { + for(p = PROCESS_LIST(); p != NULL; p = p->next) { + if(strcasecmp(p->name, str) == 0) { break; } } - if(procnum != 0) { - inttostr(procstr, procnum); - shell_output("Killing process ", procstr); + + if(p != NULL) { + shell_output("Killing process ", (char *)p->name); + process_post(p, PROCESS_EVENT_EXIT, NULL); } else { - shell_output("Invalid process number", ""); + shell_output("Invalid process name", ""); } - } /*-----------------------------------------------------------------------------------*/ static void