diff options
author | Luotao Fu <l.fu@pengutronix.de> | 2009-11-26 16:30:23 +0100 |
---|---|---|
committer | Luotao Fu <l.fu@pengutronix.de> | 2009-11-26 16:30:23 +0100 |
commit | e82235ba1c4d4f4ef013ae2438254135c2b9dd64 (patch) | |
tree | 51dc1492232b6a7cb028778960b98f689b66b69a | |
parent | bdc2c48125226a7fc20da52b52c28c0fe85bdcf7 (diff) | |
download | canutils-e82235ba1c4d4f4ef013ae2438254135c2b9dd64.tar.gz canutils-e82235ba1c4d4f4ef013ae2438254135c2b9dd64.tar.xz |
[canconfig] add start/stop device
Signed-off-by: Luotao Fu <l.fu@pengutronix.de>
-rw-r--r-- | src/canconfig.c | 41 |
1 files changed, 40 insertions, 1 deletions
diff --git a/src/canconfig.c b/src/canconfig.c index 064fdd8..8c034b4 100644 --- a/src/canconfig.c +++ b/src/canconfig.c @@ -73,7 +73,8 @@ static void help(void) "RESTART_MS := <autorestart interval in ms>\n\t" "canconfig <dev> mode { MODE }\n\t\t" "MODE := <[loopback | listen-only | triple-sampling] [on|off]>\n\t" - "canconfig <dev> restart\n\t" + "canconfig <dev> {ACTION}\n\t\t" + "ACTION := <[start|stop|restart]>" "canconfig <dev> clockfreq\n" ); @@ -267,6 +268,40 @@ static void cmd_restart(int argc, char *argv[]) exit(EXIT_SUCCESS); } +static void do_start(int argc, char *argv[]) +{ + if (scan_do_start(argv[1]) < 0) { + fprintf(stderr, "%s: failed to start\n", argv[1]); + exit(EXIT_FAILURE); + } else { + do_show_state(argc, argv); + } +} + +static void cmd_start(int argc, char *argv[]) +{ + do_start(argc, argv); + + exit(EXIT_SUCCESS); +} + +static void do_stop(int argc, char *argv[]) +{ + if (scan_do_stop(argv[1]) < 0) { + fprintf(stderr, "%s: failed to stop\n", argv[1]); + exit(EXIT_FAILURE); + } else { + do_show_state(argc, argv); + } +} + +static void cmd_stop(int argc, char *argv[]) +{ + do_stop(argc, argv); + + exit(EXIT_SUCCESS); +} + static inline void print_ctrlmode(__u32 cm_flags) { fprintf(stdout, @@ -416,6 +451,10 @@ int main(int argc, char *argv[]) cmd_ctrlmode(argc, argv); if (!strcmp(argv[2], "restart")) cmd_restart(argc, argv); + if (!strcmp(argv[2], "start")) + cmd_start(argc, argv); + if (!strcmp(argv[2], "stop")) + cmd_stop(argc, argv); if (!strcmp(argv[2], "restart-ms")) cmd_restart_ms(argc, argv); if (!strcmp(argv[2], "state")) |