#include <linux/can/can-ml.h>
#include <linux/can/core.h>
#include <linux/can/skb.h>
#include <linux/if_arp.h>
#include <linux/module.h>
#include "j1939-priv.h"
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_AUTHOR(…) …;
MODULE_ALIAS(…) …;
#define J1939_CAN_HDR …
static void j1939_can_recv(struct sk_buff *iskb, void *data)
{ … }
#define J1939_CAN_ID …
#define J1939_CAN_MASK …
static DEFINE_MUTEX(j1939_netdev_lock);
static struct j1939_priv *j1939_priv_create(struct net_device *ndev)
{ … }
static inline void j1939_priv_set(struct net_device *ndev,
struct j1939_priv *priv)
{ … }
static void __j1939_priv_release(struct kref *kref)
{ … }
void j1939_priv_put(struct j1939_priv *priv)
{ … }
void j1939_priv_get(struct j1939_priv *priv)
{ … }
static int j1939_can_rx_register(struct j1939_priv *priv)
{ … }
static void j1939_can_rx_unregister(struct j1939_priv *priv)
{ … }
static void __j1939_rx_release(struct kref *kref)
__releases(&j1939_netdev_lock)
{ … }
static inline struct j1939_priv *j1939_ndev_to_priv(struct net_device *ndev)
{ … }
static struct j1939_priv *j1939_priv_get_by_ndev_locked(struct net_device *ndev)
{ … }
static struct j1939_priv *j1939_priv_get_by_ndev(struct net_device *ndev)
{ … }
struct j1939_priv *j1939_netdev_start(struct net_device *ndev)
{ … }
void j1939_netdev_stop(struct j1939_priv *priv)
{ … }
int j1939_send_one(struct j1939_priv *priv, struct sk_buff *skb)
{ … }
static int j1939_netdev_notify(struct notifier_block *nb,
unsigned long msg, void *data)
{ … }
static struct notifier_block j1939_netdev_notifier = …;
static __init int j1939_module_init(void)
{ … }
static __exit void j1939_module_exit(void)
{ … }
module_init(…) …;
module_exit(j1939_module_exit);