Home | History | Annotate | Download | only in link
      1 /*
      2  * netlink/route/link/can.h		CAN interface
      3  *
      4  *	This library is free software; you can redistribute it and/or
      5  *	modify it under the terms of the GNU Lesser General Public
      6  *	License as published by the Free Software Foundation version 2.1
      7  *	of the License.
      8  *
      9  * Copyright (c) 2012 Benedikt Spranger <b.spranger (at) linutronix.de>
     10  */
     11 
     12 #ifndef NETLINK_LINK_CAN_H_
     13 #define NETLINK_LINK_CAN_H_
     14 
     15 #include <netlink/netlink.h>
     16 #include <netlink/route/link.h>
     17 #include <linux/can/netlink.h>
     18 
     19 #ifdef __cplusplus
     20 extern "C" {
     21 #endif
     22 
     23 extern int rtnl_link_is_can(struct rtnl_link *link);
     24 
     25 extern char *rtnl_link_can_ctrlmode2str(int, char *, size_t);
     26 extern int rtnl_link_can_str2ctrlmode(const char *);
     27 
     28 extern int rtnl_link_can_restart(struct rtnl_link *);
     29 extern int rtnl_link_can_freq(struct rtnl_link *, uint32_t *);
     30 extern int rtnl_link_can_state(struct rtnl_link *, uint32_t *);
     31 
     32 extern int rtnl_link_can_berr_rx(struct rtnl_link *);
     33 extern int rtnl_link_can_berr_tx(struct rtnl_link *);
     34 extern int rtnl_link_can_berr(struct rtnl_link *, struct can_berr_counter *);
     35 
     36 extern int rtnl_link_can_get_bt_const(struct rtnl_link *,
     37 				      struct can_bittiming_const *);
     38 extern int rtnl_link_can_get_bittiming(struct rtnl_link *,
     39 				       struct can_bittiming *);
     40 extern int rtnl_link_can_set_bittiming(struct rtnl_link *,
     41 				       struct can_bittiming *);
     42 
     43 extern int rtnl_link_can_get_bitrate(struct rtnl_link *, uint32_t *);
     44 extern int rtnl_link_can_set_bitrate(struct rtnl_link *, uint32_t);
     45 
     46 extern int rtnl_link_can_get_sample_point(struct rtnl_link *, uint32_t *);
     47 extern int rtnl_link_can_set_sample_point(struct rtnl_link *, uint32_t);
     48 
     49 extern int rtnl_link_can_get_restart_ms(struct rtnl_link *, uint32_t *);
     50 extern int rtnl_link_can_set_restart_ms(struct rtnl_link *, uint32_t);
     51 
     52 extern int rtnl_link_can_get_ctrlmode(struct rtnl_link *, uint32_t *);
     53 extern int rtnl_link_can_set_ctrlmode(struct rtnl_link *, uint32_t);
     54 extern int rtnl_link_can_unset_ctrlmode(struct rtnl_link *, uint32_t);
     55 
     56 #ifdef __cplusplus
     57 }
     58 #endif
     59 
     60 #endif
     61