summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuotao Fu <l.fu@pengutronix.de>2009-11-26 16:30:23 +0100
committerLuotao Fu <l.fu@pengutronix.de>2009-11-26 16:30:23 +0100
commite82235ba1c4d4f4ef013ae2438254135c2b9dd64 (patch)
tree51dc1492232b6a7cb028778960b98f689b66b69a
parentbdc2c48125226a7fc20da52b52c28c0fe85bdcf7 (diff)
downloadcanutils-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.c41
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"))