1 /* SPDX-License-Identifier: LGPL-2.1-only */ 2 /* 3 * Copyright (c) 2012 Benedikt Spranger <[email protected]> 4 */ 5 6 #ifndef NETLINK_LINK_CAN_H_ 7 #define NETLINK_LINK_CAN_H_ 8 9 #include <netlink/netlink.h> 10 #include <netlink/route/link.h> 11 #include <linux/can/netlink.h> 12 13 #ifdef __cplusplus 14 extern "C" { 15 #endif 16 17 struct can_bittiming_const; 18 struct can_bittiming; 19 struct can_berr_counter; 20 21 extern int rtnl_link_is_can(struct rtnl_link *link); 22 23 extern char *rtnl_link_can_ctrlmode2str(int, char *, size_t); 24 extern int rtnl_link_can_str2ctrlmode(const char *); 25 26 extern int rtnl_link_can_restart(struct rtnl_link *); 27 extern int rtnl_link_can_freq(struct rtnl_link *, uint32_t *); 28 extern int rtnl_link_can_state(struct rtnl_link *, uint32_t *); 29 30 extern int rtnl_link_can_berr_rx(struct rtnl_link *); 31 extern int rtnl_link_can_berr_tx(struct rtnl_link *); 32 extern int rtnl_link_can_berr(struct rtnl_link *, struct can_berr_counter *); 33 34 extern int rtnl_link_can_get_bt_const(struct rtnl_link *, 35 struct can_bittiming_const *); 36 extern int rtnl_link_can_get_bittiming(struct rtnl_link *, 37 struct can_bittiming *); 38 extern int rtnl_link_can_set_bittiming(struct rtnl_link *, 39 const struct can_bittiming *); 40 41 extern int rtnl_link_can_get_bitrate(struct rtnl_link *, uint32_t *); 42 extern int rtnl_link_can_set_bitrate(struct rtnl_link *, uint32_t); 43 44 extern int rtnl_link_can_get_sample_point(struct rtnl_link *, uint32_t *); 45 extern int rtnl_link_can_set_sample_point(struct rtnl_link *, uint32_t); 46 47 extern int rtnl_link_can_get_restart_ms(struct rtnl_link *, uint32_t *); 48 extern int rtnl_link_can_set_restart_ms(struct rtnl_link *, uint32_t); 49 50 extern int rtnl_link_can_get_ctrlmode(struct rtnl_link *, uint32_t *); 51 extern int rtnl_link_can_set_ctrlmode(struct rtnl_link *, uint32_t); 52 extern int rtnl_link_can_unset_ctrlmode(struct rtnl_link *, uint32_t); 53 54 extern int rtnl_link_can_get_data_bittiming_const(struct rtnl_link *, 55 struct can_bittiming_const *); 56 extern int rtnl_link_can_set_data_bittiming_const(struct rtnl_link *, 57 const struct can_bittiming_const *); 58 extern int rtnl_link_can_get_data_bittiming(struct rtnl_link *, 59 struct can_bittiming *); 60 extern int rtnl_link_can_set_data_bittiming(struct rtnl_link *, 61 const struct can_bittiming *); 62 63 extern int rtnl_link_can_get_device_stats(struct rtnl_link *, 64 struct can_device_stats *); 65 66 #ifdef __cplusplus 67 } 68 #endif 69 70 #endif 71