#define pr_fmt(fmt) …
#include <linux/module.h>
#include <linux/netdevice.h>
#include <linux/slab.h>
#include <linux/mii.h>
#include <linux/usb.h>
#include <linux/usb/usbnet.h>
#include <linux/etherdevice.h>
#include <net/netns/generic.h>
#include <net/caif/caif_dev.h>
#include <net/caif/caif_layer.h>
#include <net/caif/cfpkt.h>
#include <net/caif/cfcnfg.h>
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
#define CFUSB_PAD_DESCR_SZ …
#define CFUSB_ALIGNMENT …
#define CFUSB_MAX_HEADLEN …
#define STE_USB_VID …
#define STE_USB_PID_CAIF …
struct cfusbl { … };
static bool pack_added;
static int cfusbl_receive(struct cflayer *layr, struct cfpkt *pkt)
{ … }
static int cfusbl_transmit(struct cflayer *layr, struct cfpkt *pkt)
{ … }
static void cfusbl_ctrlcmd(struct cflayer *layr, enum caif_ctrlcmd ctrl,
int phyid)
{ … }
static struct cflayer *cfusbl_create(int phyid, const u8 ethaddr[ETH_ALEN],
u8 braddr[ETH_ALEN])
{ … }
static void cfusbl_release(struct cflayer *layer)
{ … }
static struct packet_type caif_usb_type __read_mostly = …;
static int cfusbl_device_notify(struct notifier_block *me, unsigned long what,
void *ptr)
{ … }
static struct notifier_block caif_device_notifier = …;
static int __init cfusbl_init(void)
{ … }
static void __exit cfusbl_exit(void)
{ … }
module_init(…) …;
module_exit(cfusbl_exit);