#include <linux/if_arp.h>
#include <linux/mhi.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/netdevice.h>
#include <linux/skbuff.h>
#include <linux/u64_stats_sync.h>
#define MHI_NET_MIN_MTU …
#define MHI_NET_MAX_MTU …
#define MHI_NET_DEFAULT_MTU …
struct mhi_net_stats { … };
struct mhi_net_dev { … };
struct mhi_device_info { … };
static int mhi_ndo_open(struct net_device *ndev)
{ … }
static int mhi_ndo_stop(struct net_device *ndev)
{ … }
static netdev_tx_t mhi_ndo_xmit(struct sk_buff *skb, struct net_device *ndev)
{ … }
static void mhi_ndo_get_stats64(struct net_device *ndev,
struct rtnl_link_stats64 *stats)
{ … }
static const struct net_device_ops mhi_netdev_ops = …;
static void mhi_net_setup(struct net_device *ndev)
{ … }
static struct sk_buff *mhi_net_skb_agg(struct mhi_net_dev *mhi_netdev,
struct sk_buff *skb)
{ … }
static void mhi_net_dl_callback(struct mhi_device *mhi_dev,
struct mhi_result *mhi_res)
{ … }
static void mhi_net_ul_callback(struct mhi_device *mhi_dev,
struct mhi_result *mhi_res)
{ … }
static void mhi_net_rx_refill_work(struct work_struct *work)
{ … }
static int mhi_net_newlink(struct mhi_device *mhi_dev, struct net_device *ndev)
{ … }
static void mhi_net_dellink(struct mhi_device *mhi_dev, struct net_device *ndev)
{ … }
static int mhi_net_probe(struct mhi_device *mhi_dev,
const struct mhi_device_id *id)
{ … }
static void mhi_net_remove(struct mhi_device *mhi_dev)
{ … }
static const struct mhi_device_info mhi_hwip0 = …;
static const struct mhi_device_info mhi_swip0 = …;
static const struct mhi_device_id mhi_net_id_table[] = …;
MODULE_DEVICE_TABLE(mhi, mhi_net_id_table);
static struct mhi_driver mhi_net_driver = …;
module_mhi_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;