Rev 607 | Rev 611 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 607 | Rev 609 | ||
---|---|---|---|
Line 38... | Line 38... | ||
38 | #include <arch.h> |
38 | #include <arch.h> |
39 | #include <macros.h> |
39 | #include <macros.h> |
40 | #include <debug.h> |
40 | #include <debug.h> |
41 | #include <func.h> |
41 | #include <func.h> |
42 | #include <symtab.h> |
42 | #include <symtab.h> |
- | 43 | #include <macros.h> |
|
43 | 44 | ||
44 | /** Simple kernel console. |
45 | /** Simple kernel console. |
45 | * |
46 | * |
46 | * The console is realized by kernel thread kconsole. |
47 | * The console is realized by kernel thread kconsole. |
47 | * It doesn't understand any useful command on its own, |
48 | * It doesn't understand any useful command on its own, |
Line 393... | Line 394... | ||
393 | 394 | ||
394 | /** Kernel console managing thread. |
395 | /** Kernel console managing thread. |
395 | * |
396 | * |
396 | * @param arg Not used. |
397 | * @param arg Not used. |
397 | */ |
398 | */ |
398 | void kconsole(void *arg) |
399 | void kconsole(void *prompt) |
399 | { |
400 | { |
400 | cmd_info_t *cmd_info; |
401 | cmd_info_t *cmd_info; |
401 | count_t len; |
402 | count_t len; |
402 | char *cmdline; |
403 | char *cmdline; |
403 | 404 | ||
Line 405... | Line 406... | ||
405 | printf("%s: no stdin\n", __FUNCTION__); |
406 | printf("%s: no stdin\n", __FUNCTION__); |
406 | return; |
407 | return; |
407 | } |
408 | } |
408 | 409 | ||
409 | while (true) { |
410 | while (true) { |
410 | cmdline = clever_readline(__FUNCTION__, stdin); |
411 | cmdline = clever_readline(prompt, stdin); |
411 | len = strlen(cmdline); |
412 | len = strlen(cmdline); |
412 | if (!len) |
413 | if (!len) |
413 | continue; |
414 | continue; |
414 | cmd_info = parse_cmdline(cmdline, len); |
415 | cmd_info = parse_cmdline(cmdline, len); |
415 | if (!cmd_info) |
416 | if (!cmd_info) |
416 | continue; |
417 | continue; |
- | 418 | if (strncmp(cmd_info->name,"exit", \ |
|
- | 419 | min(strlen(cmd_info->name),5)) == 0) |
|
- | 420 | break; |
|
417 | (void) cmd_info->func(cmd_info->argv); |
421 | (void) cmd_info->func(cmd_info->argv); |
418 | } |
422 | } |
419 | } |
423 | } |
420 | 424 | ||
421 | static int parse_int_arg(char *text, size_t len, __native *result) |
425 | static int parse_int_arg(char *text, size_t len, __native *result) |