From 463ac873c75e88d92d3e4bdd3584a5ec520d8d66 Mon Sep 17 00:00:00 2001 From: Wolfgang Grandegger Date: Tue, 1 Dec 2009 09:59:19 +0100 Subject: [PATCH] Add can_get_bittiming_const() Signed-off-by: Wolfgang Grandegger Acked-by: Luotao Fu --- include/libsocketcan.h | 1 + src/libsocketcan.c | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/include/libsocketcan.h b/include/libsocketcan.h index a92d33b..afe15f6 100644 --- a/include/libsocketcan.h +++ b/include/libsocketcan.h @@ -38,5 +38,6 @@ int can_get_bittiming(const char *name, struct can_bittiming *bt); int can_get_ctrlmode(const char *name, struct can_ctrlmode *cm); int can_get_state(const char *name, int *state); int can_get_clock(const char *name, struct can_clock *clock); +int can_get_bittiming_const(const char *name, struct can_bittiming_const *btc); #endif diff --git a/src/libsocketcan.c b/src/libsocketcan.c index 3c02d3d..07cc10f 100644 --- a/src/libsocketcan.c +++ b/src/libsocketcan.c @@ -47,6 +47,7 @@ #define GET_BITTIMING 3 #define GET_CTRLMODE 4 #define GET_CLOCK 5 +#define GET_BITTIMING_CONST 6 struct get_req { struct nlmsghdr n; @@ -388,6 +389,16 @@ static int do_get_nl_link(int fd, __u8 acquire, const char *name, void *res) fprintf(stderr, "no clock parameter data found\n"); + break; + case GET_BITTIMING_CONST: + if (can_attr[IFLA_CAN_BITTIMING_CONST]) { + memcpy(res, + RTA_DATA(can_attr[IFLA_CAN_BITTIMING_CONST]), + sizeof(struct can_bittiming_const)); + ret = 0; + } else + fprintf(stderr, "no bittiming_const data found\n"); + break; default: fprintf(stderr, "unknown acquire mode\n"); @@ -644,3 +655,9 @@ int can_get_clock(const char *name, struct can_clock *clock) { return get_link(name, GET_CLOCK, clock); } + +int can_get_bittiming_const(const char *name, struct can_bittiming_const *btc) +{ + return get_link(name, GET_BITTIMING_CONST, btc); +} +