Add the struct can_tdc to group the tdcv, tdco and tdvf variables together. This refactor is a preparation for the introduction of CAN XL. Signed-off-by: Vincent Mailhol <mailhol.vincent@xxxxxxxxxx> --- ip/iplink_can.c | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/ip/iplink_can.c b/ip/iplink_can.c index 928d5d79..f7faaf14 100644 --- a/ip/iplink_can.c +++ b/ip/iplink_can.c @@ -123,12 +123,18 @@ static void print_ctrlmode(enum output_type t, __u32 flags, const char* key) close_json_array(t, "> "); } +struct can_tdc { + __u32 tdcv; + __u32 tdco; + __u32 tdcf; +}; + static int can_parse_opt(struct link_util *lu, int argc, char **argv, struct nlmsghdr *n) { struct can_bittiming bt = {}, dbt = {}; struct can_ctrlmode cm = { 0 }; - __u32 tdcv = -1, tdco = -1, tdcf = -1; + struct can_tdc fd = { .tdcv = -1, .tdco = -1, .tdcf = -1 }; while (argc > 0) { if (matches(*argv, "bitrate") == 0) { @@ -196,15 +202,15 @@ static int can_parse_opt(struct link_util *lu, int argc, char **argv, invarg("invalid \"dsjw\" value", *argv); } else if (matches(*argv, "tdcv") == 0) { NEXT_ARG(); - if (get_u32(&tdcv, *argv, 0)) + if (get_u32(&fd.tdcv, *argv, 0)) invarg("invalid \"tdcv\" value", *argv); } else if (matches(*argv, "tdco") == 0) { NEXT_ARG(); - if (get_u32(&tdco, *argv, 0)) + if (get_u32(&fd.tdco, *argv, 0)) invarg("invalid \"tdco\" value", *argv); } else if (matches(*argv, "tdcf") == 0) { NEXT_ARG(); - if (get_u32(&tdcf, *argv, 0)) + if (get_u32(&fd.tdcf, *argv, 0)) invarg("invalid \"tdcf\" value", *argv); } else if (matches(*argv, "loopback") == 0) { NEXT_ARG(); @@ -294,16 +300,16 @@ static int can_parse_opt(struct link_util *lu, int argc, char **argv, if (cm.mask) addattr_l(n, 1024, IFLA_CAN_CTRLMODE, &cm, sizeof(cm)); - if (tdcv != -1 || tdco != -1 || tdcf != -1) { + if (fd.tdcv != -1 || fd.tdco != -1 || fd.tdcf != -1) { struct rtattr *tdc = addattr_nest(n, 1024, IFLA_CAN_TDC | NLA_F_NESTED); - if (tdcv != -1) - addattr32(n, 1024, IFLA_CAN_TDC_TDCV, tdcv); - if (tdco != -1) - addattr32(n, 1024, IFLA_CAN_TDC_TDCO, tdco); - if (tdcf != -1) - addattr32(n, 1024, IFLA_CAN_TDC_TDCF, tdcf); + if (fd.tdcv != -1) + addattr32(n, 1024, IFLA_CAN_TDC_TDCV, fd.tdcv); + if (fd.tdco != -1) + addattr32(n, 1024, IFLA_CAN_TDC_TDCO, fd.tdco); + if (fd.tdcf != -1) + addattr32(n, 1024, IFLA_CAN_TDC_TDCF, fd.tdcf); addattr_nest_end(n, tdc); } -- 2.45.2