| Wolfgang Grandegger | 39549ee | 2009-05-15 23:39:29 +0000 | [diff] [blame] | 1 | /* | 
|  | 2 | * linux/can/dev.h | 
|  | 3 | * | 
|  | 4 | * Definitions for the CAN network device driver interface | 
|  | 5 | * | 
|  | 6 | * Copyright (C) 2006 Andrey Volkov <avolkov@varma-el.com> | 
|  | 7 | *               Varma Electronics Oy | 
|  | 8 | * | 
|  | 9 | * Copyright (C) 2008 Wolfgang Grandegger <wg@grandegger.com> | 
|  | 10 | * | 
|  | 11 | * Send feedback to <socketcan-users@lists.berlios.de> | 
|  | 12 | */ | 
|  | 13 |  | 
|  | 14 | #ifndef CAN_DEV_H | 
|  | 15 | #define CAN_DEV_H | 
|  | 16 |  | 
|  | 17 | #include <linux/can/netlink.h> | 
|  | 18 | #include <linux/can/error.h> | 
|  | 19 |  | 
|  | 20 | /* | 
|  | 21 | * CAN mode | 
|  | 22 | */ | 
|  | 23 | enum can_mode { | 
|  | 24 | CAN_MODE_STOP = 0, | 
|  | 25 | CAN_MODE_START, | 
|  | 26 | CAN_MODE_SLEEP | 
|  | 27 | }; | 
|  | 28 |  | 
|  | 29 | /* | 
|  | 30 | * CAN common private data | 
|  | 31 | */ | 
|  | 32 | #define CAN_ECHO_SKB_MAX  4 | 
|  | 33 |  | 
|  | 34 | struct can_priv { | 
|  | 35 | struct can_device_stats can_stats; | 
|  | 36 |  | 
|  | 37 | struct can_bittiming bittiming; | 
|  | 38 | struct can_bittiming_const *bittiming_const; | 
|  | 39 | struct can_clock clock; | 
|  | 40 |  | 
|  | 41 | enum can_state state; | 
|  | 42 | u32 ctrlmode; | 
|  | 43 |  | 
|  | 44 | int restart_ms; | 
|  | 45 | struct timer_list restart_timer; | 
|  | 46 |  | 
|  | 47 | struct sk_buff *echo_skb[CAN_ECHO_SKB_MAX]; | 
|  | 48 |  | 
|  | 49 | int (*do_set_bittiming)(struct net_device *dev); | 
|  | 50 | int (*do_set_mode)(struct net_device *dev, enum can_mode mode); | 
|  | 51 | int (*do_get_state)(const struct net_device *dev, | 
|  | 52 | enum can_state *state); | 
|  | 53 | }; | 
|  | 54 |  | 
|  | 55 | struct net_device *alloc_candev(int sizeof_priv); | 
|  | 56 | void free_candev(struct net_device *dev); | 
|  | 57 |  | 
|  | 58 | int open_candev(struct net_device *dev); | 
|  | 59 | void close_candev(struct net_device *dev); | 
|  | 60 |  | 
|  | 61 | int register_candev(struct net_device *dev); | 
|  | 62 | void unregister_candev(struct net_device *dev); | 
|  | 63 |  | 
|  | 64 | int can_restart_now(struct net_device *dev); | 
|  | 65 | void can_bus_off(struct net_device *dev); | 
|  | 66 |  | 
|  | 67 | void can_put_echo_skb(struct sk_buff *skb, struct net_device *dev, int idx); | 
|  | 68 | void can_get_echo_skb(struct net_device *dev, int idx); | 
|  | 69 |  | 
|  | 70 | #endif /* CAN_DEV_H */ |