]> granicus.if.org Git - libnl/commitdiff
can: add helper function to get CAN bus state
authorBenedikt Spranger <b.spranger@linutronix.de>
Fri, 25 Jan 2013 15:50:32 +0000 (16:50 +0100)
committerThomas Graf <tgraf@suug.ch>
Fri, 25 Jan 2013 18:51:33 +0000 (19:51 +0100)
Add a helper function to get the CAN bus state.

Signed-off-by: Benedikt Spranger <b.spranger@linutronix.de>
include/netlink/route/link/can.h
lib/route/link/can.c

index 90296f1dfc2bb7a9c3dcc523677c15fd1d936e31..61c9f47e8a29549a751ae411bbc5f0879af2041f 100644 (file)
@@ -27,6 +27,7 @@ extern int rtnl_link_can_str2ctrlmode(const char *);
 
 extern int rtnl_link_can_restart(struct rtnl_link *);
 extern int rtnl_link_can_freq(struct rtnl_link *, uint32_t *);
+extern int rtnl_link_can_state(struct rtnl_link *, uint32_t *);
 
 extern int rtnl_link_can_berr_rx(struct rtnl_link *);
 extern int rtnl_link_can_berr_tx(struct rtnl_link *);
index 76bfa1ae4fac465dc943d1de5f3815a74e74e66c..307dec09826a4c09ee2f4428718164fcf92bda02 100644 (file)
@@ -404,6 +404,25 @@ int rtnl_link_can_freq(struct rtnl_link *link, uint32_t *freq)
        return 0;
 }
 
+/**
+ * Get CAN state
+ * @arg link            Link object
+ * @arg state          CAN bus state
+ * @return 0 on success or a negative error code
+ */
+int rtnl_link_can_state(struct rtnl_link *link, uint32_t *state)
+{
+       struct can_info *ci = link->l_info;
+
+       IS_CAN_LINK_ASSERT(link);
+       if (!state)
+               return -NLE_INVAL;
+
+       *state = ci->ci_state;
+
+       return 0;
+}
+
 /**
  * Get CAN RX bus error count
  * @arg link            Link object