linux/net/can/j1939/main.c

// SPDX-License-Identifier: GPL-2.0
// Copyright (c) 2010-2011 EIA Electronics,
//                         Pieter Beyens <[email protected]>
// Copyright (c) 2010-2011 EIA Electronics,
//                         Kurt Van Dijck <[email protected]>
// Copyright (c) 2018 Protonic,
//                         Robin van der Gracht <[email protected]>
// Copyright (c) 2017-2019 Pengutronix,
//                         Marc Kleine-Budde <[email protected]>
// Copyright (c) 2017-2019 Pengutronix,
//                         Oleksij Rempel <[email protected]>

/* Core of can-j1939 that links j1939 to CAN. */

#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();

/* LOWLEVEL CAN interface */

/* CAN_HDR: #bytes before can_frame data part */
#define J1939_CAN_HDR

/* lowest layer */
static void j1939_can_recv(struct sk_buff *iskb, void *data)
{}

/* NETDEV MANAGEMENT */

/* values for can_rx_(un)register */
#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)
{}

/* get pointer to priv without increasing ref counter */
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 =;

/* MODULE interface */
static __init int j1939_module_init(void)
{}

static __exit void j1939_module_exit(void)
{}

module_init();
module_exit(j1939_module_exit);