~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/linux/can/dev.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /include/linux/can/dev.h (Version linux-6.11.5) and /include/linux/can/dev.h (Version linux-2.6.0)


  1 /* SPDX-License-Identifier: GPL-2.0 */              1 
  2 /*                                                
  3  * linux/can/dev.h                                
  4  *                                                
  5  * Definitions for the CAN network device driv    
  6  *                                                
  7  * Copyright (C) 2006 Andrey Volkov <avolkov@v    
  8  *               Varma Electronics Oy             
  9  *                                                
 10  * Copyright (C) 2008 Wolfgang Grandegger <wg@    
 11  *                                                
 12  */                                               
 13                                                   
 14 #ifndef _CAN_DEV_H                                
 15 #define _CAN_DEV_H                                
 16                                                   
 17 #include <linux/can.h>                            
 18 #include <linux/can/bittiming.h>                  
 19 #include <linux/can/error.h>                      
 20 #include <linux/can/length.h>                     
 21 #include <linux/can/netlink.h>                    
 22 #include <linux/can/skb.h>                        
 23 #include <linux/ethtool.h>                        
 24 #include <linux/netdevice.h>                      
 25                                                   
 26 /*                                                
 27  * CAN mode                                       
 28  */                                               
 29 enum can_mode {                                   
 30         CAN_MODE_STOP = 0,                        
 31         CAN_MODE_START,                           
 32         CAN_MODE_SLEEP                            
 33 };                                                
 34                                                   
 35 enum can_termination_gpio {                       
 36         CAN_TERMINATION_GPIO_DISABLED = 0,        
 37         CAN_TERMINATION_GPIO_ENABLED,             
 38         CAN_TERMINATION_GPIO_MAX,                 
 39 };                                                
 40                                                   
 41 /*                                                
 42  * CAN common private data                        
 43  */                                               
 44 struct can_priv {                                 
 45         struct net_device *dev;                   
 46         struct can_device_stats can_stats;        
 47                                                   
 48         const struct can_bittiming_const *bitt    
 49                 *data_bittiming_const;            
 50         struct can_bittiming bittiming, data_b    
 51         const struct can_tdc_const *tdc_const;    
 52         struct can_tdc tdc;                       
 53                                                   
 54         unsigned int bitrate_const_cnt;           
 55         const u32 *bitrate_const;                 
 56         const u32 *data_bitrate_const;            
 57         unsigned int data_bitrate_const_cnt;      
 58         u32 bitrate_max;                          
 59         struct can_clock clock;                   
 60                                                   
 61         unsigned int termination_const_cnt;       
 62         const u16 *termination_const;             
 63         u16 termination;                          
 64         struct gpio_desc *termination_gpio;       
 65         u16 termination_gpio_ohms[CAN_TERMINAT    
 66                                                   
 67         unsigned int echo_skb_max;                
 68         struct sk_buff **echo_skb;                
 69                                                   
 70         enum can_state state;                     
 71                                                   
 72         /* CAN controller features - see inclu    
 73         u32 ctrlmode;           /* current opt    
 74         u32 ctrlmode_supported; /* options tha    
 75                                                   
 76         int restart_ms;                           
 77         struct delayed_work restart_work;         
 78                                                   
 79         int (*do_set_bittiming)(struct net_dev    
 80         int (*do_set_data_bittiming)(struct ne    
 81         int (*do_set_mode)(struct net_device *    
 82         int (*do_set_termination)(struct net_d    
 83         int (*do_get_state)(const struct net_d    
 84                             enum can_state *st    
 85         int (*do_get_berr_counter)(const struc    
 86                                    struct can_    
 87         int (*do_get_auto_tdcv)(const struct n    
 88 };                                                
 89                                                   
 90 static inline bool can_tdc_is_enabled(const st    
 91 {                                                 
 92         return !!(priv->ctrlmode & CAN_CTRLMOD    
 93 }                                                 
 94                                                   
 95 /*                                                
 96  * can_get_relative_tdco() - TDCO relative to     
 97  *                                                
 98  * struct can_tdc::tdco represents the absolut    
 99  * controllers use instead an offset relative     
100  * such that:                                     
101  *                                                
102  * SSP = TDCV + absolute TDCO                     
103  *     = TDCV + SP + relative TDCO                
104  *                                                
105  * -+----------- one bit ----------+-- TX pin     
106  *  |<--- Sample Point --->|                      
107  *                                                
108  *                         --+----------- one     
109  *  |<-------- TDCV -------->|                    
110  *                           |<---------------    
111  *                           |<--- Sample Poin    
112  *                           |                    
113  *  |<------------- Secondary Sample Point ---    
114  */                                               
115 static inline s32 can_get_relative_tdco(const     
116 {                                                 
117         const struct can_bittiming *dbt = &pri    
118         s32 sample_point_in_tc = (CAN_SYNC_SEG    
119                                   dbt->phase_s    
120                                                   
121         return (s32)priv->tdc.tdco - sample_po    
122 }                                                 
123                                                   
124 /* helper to define static CAN controller feat    
125 static inline int __must_check can_set_static_    
126                                                   
127 {                                                 
128         struct can_priv *priv = netdev_priv(de    
129                                                   
130         /* alloc_candev() succeeded => netdev_    
131         if (priv->ctrlmode_supported & static_    
132                 netdev_warn(dev,                  
133                             "Controller featur    
134                 return -EINVAL;                   
135         }                                         
136         priv->ctrlmode = static_mode;             
137                                                   
138         /* override MTU which was set by defau    
139         if (static_mode & CAN_CTRLMODE_FD)        
140                 dev->mtu = CANFD_MTU;             
141                                                   
142         return 0;                                 
143 }                                                 
144                                                   
145 static inline u32 can_get_static_ctrlmode(stru    
146 {                                                 
147         return priv->ctrlmode & ~priv->ctrlmod    
148 }                                                 
149                                                   
150 static inline bool can_is_canxl_dev_mtu(unsign    
151 {                                                 
152         return (mtu >= CANXL_MIN_MTU && mtu <=    
153 }                                                 
154                                                   
155 /* drop skb if it does not contain a valid CAN    
156 static inline bool can_dev_dropped_skb(struct     
157 {                                                 
158         struct can_priv *priv = netdev_priv(de    
159                                                   
160         if (priv->ctrlmode & CAN_CTRLMODE_LIST    
161                 netdev_info_once(dev,             
162                                  "interface in    
163                 kfree_skb(skb);                   
164                 dev->stats.tx_dropped++;          
165                 return true;                      
166         }                                         
167                                                   
168         return can_dropped_invalid_skb(dev, sk    
169 }                                                 
170                                                   
171 void can_setup(struct net_device *dev);           
172                                                   
173 struct net_device *alloc_candev_mqs(int sizeof    
174                                     unsigned i    
175 #define alloc_candev(sizeof_priv, echo_skb_max    
176         alloc_candev_mqs(sizeof_priv, echo_skb    
177 #define alloc_candev_mq(sizeof_priv, echo_skb_    
178         alloc_candev_mqs(sizeof_priv, echo_skb    
179 void free_candev(struct net_device *dev);         
180                                                   
181 /* a candev safe wrapper around netdev_priv */    
182 struct can_priv *safe_candev_priv(struct net_d    
183                                                   
184 int open_candev(struct net_device *dev);          
185 void close_candev(struct net_device *dev);        
186 int can_change_mtu(struct net_device *dev, int    
187 int can_eth_ioctl_hwts(struct net_device *netd    
188 int can_ethtool_op_get_ts_info_hwts(struct net    
189                                     struct ker    
190                                                   
191 int register_candev(struct net_device *dev);      
192 void unregister_candev(struct net_device *dev)    
193                                                   
194 int can_restart_now(struct net_device *dev);      
195 void can_bus_off(struct net_device *dev);         
196                                                   
197 const char *can_get_state_str(const enum can_s    
198 void can_state_get_by_berr_counter(const struc    
199                                    const struc    
200                                    enum can_st    
201                                    enum can_st    
202 void can_change_state(struct net_device *dev,     
203                       enum can_state tx_state,    
204                                                   
205 #ifdef CONFIG_OF                                  
206 void of_can_transceiver(struct net_device *dev    
207 #else                                             
208 static inline void of_can_transceiver(struct n    
209 #endif                                            
210                                                   
211 extern struct rtnl_link_ops can_link_ops;         
212 int can_netlink_register(void);                   
213 void can_netlink_unregister(void);                
214                                                   
215 #endif /* !_CAN_DEV_H */                          
216                                                   

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php