#ifndef C_CAN_H
#define C_CAN_H
enum reg { … };
static const u16 __maybe_unused reg_map_c_can[] = …;
static const u16 __maybe_unused reg_map_d_can[] = …;
enum c_can_dev_id { … };
struct raminit_bits { … };
struct c_can_driver_data { … };
struct c_can_raminit { … };
struct c_can_tx_ring { … };
struct c_can_priv { … };
struct net_device *alloc_c_can_dev(int msg_obj_num);
void free_c_can_dev(struct net_device *dev);
int register_c_can_dev(struct net_device *dev);
void unregister_c_can_dev(struct net_device *dev);
#ifdef CONFIG_PM
int c_can_power_up(struct net_device *dev);
int c_can_power_down(struct net_device *dev);
#endif
extern const struct ethtool_ops c_can_ethtool_ops;
static inline u8 c_can_get_tx_head(const struct c_can_tx_ring *ring)
{ … }
static inline u8 c_can_get_tx_tail(const struct c_can_tx_ring *ring)
{ … }
static inline u8 c_can_get_tx_free(const struct c_can_priv *priv,
const struct c_can_tx_ring *ring)
{ … }
#endif