diff options
author | Luotao Fu <l.fu@pengutronix.de> | 2010-01-06 16:23:33 +0100 |
---|---|---|
committer | Luotao Fu <l.fu@pengutronix.de> | 2010-01-06 16:23:33 +0100 |
commit | 22bb7f840e06e5f4f7117c1f85f96c0499caae3b (patch) | |
tree | 1146a0754f72d8568d90291dd76a493bb477eb46 | |
parent | 1ce3affe6c9a5c5e7d44060d54f6829fc2fa872d (diff) | |
download | canutils-22bb7f840e06e5f4f7117c1f85f96c0499caae3b.tar.gz canutils-22bb7f840e06e5f4f7117c1f85f96c0499caae3b.tar.xz |
[canconfig] add one-shot mode
Signed-off-by: Luotao Fu <l.fu@pengutronix.de>
-rw-r--r-- | src/canconfig.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/canconfig.c b/src/canconfig.c index aacae7f..8dfdaa3 100644 --- a/src/canconfig.c +++ b/src/canconfig.c @@ -37,6 +37,10 @@ #define MIN(a, b) ((a) < (b) ? (a) : (b)) #endif +#ifndef CAN_CTRLMODE_ONE_SHOT +#define CAN_CTRLMODE_ONE_SHOT 0x8 +#endif + const char *can_states[CAN_STATE_MAX] = { "ERROR-ACTIVE", "ERROR-WARNING", @@ -350,10 +354,11 @@ static void cmd_stop(int argc, char *argv[], const char *name) static inline void print_ctrlmode(__u32 cm_flags) { fprintf(stdout, - "loopback[%s], listen-only[%s], tripple-sampling[%s]\n", + "loopback[%s], listen-only[%s], tripple-sampling[%s], one-shot[%s]\n", (cm_flags & CAN_CTRLMODE_LOOPBACK) ? "ON" : "OFF", (cm_flags & CAN_CTRLMODE_LISTENONLY) ? "ON" : "OFF", - (cm_flags & CAN_CTRLMODE_3_SAMPLES) ? "ON" : "OFF"); + (cm_flags & CAN_CTRLMODE_3_SAMPLES) ? "ON" : "OFF", + (cm_flags & CAN_CTRLMODE_ONE_SHOT) ? "ON" : "OFF"); } static void do_show_ctrlmode(const char *name) @@ -403,7 +408,12 @@ static void do_set_ctrlmode(int argc, char* argv[], const char *name) NEXT_ARG(); set_ctrlmode("triple-sampling", *argv, &cm, CAN_CTRLMODE_3_SAMPLES); + } else if (!strcmp(*argv, "one-shot")) { + NEXT_ARG(); + set_ctrlmode("one-shot", *argv, &cm, + CAN_CTRLMODE_ONE_SHOT); } + argc--, argv++; } |