#include <linux/kernel.h>
#include <linux/tty.h>
#include <linux/module.h>
#include <linux/usb.h>
#include <linux/usb/serial.h>
#define DEVICE_N(vendor, IDS, nport) …
#define DEVICE(vendor, IDS) …
#define CARELINK_IDS() …
DEVICE(carelink, CARELINK_IDS);
#define FLASHLOADER_IDS() …
DEVICE(flashloader, FLASHLOADER_IDS);
#define FUNSOFT_IDS() …
DEVICE(funsoft, FUNSOFT_IDS);
#define GOOGLE_IDS() …
DEVICE(google, GOOGLE_IDS);
#define HP4X_IDS() …
DEVICE(hp4x, HP4X_IDS);
#define KAUFMANN_IDS() …
DEVICE(kaufmann, KAUFMANN_IDS);
#define LIBTRANSISTOR_IDS() …
DEVICE(libtransistor, LIBTRANSISTOR_IDS);
#define MOTO_IDS() …
DEVICE(moto_modem, MOTO_IDS);
#define MOTOROLA_TETRA_IDS() …
DEVICE(motorola_tetra, MOTOROLA_TETRA_IDS);
#define NOKIA_IDS() …
DEVICE(nokia, NOKIA_IDS);
#define NOVATEL_IDS() …
DEVICE_N(novatel_gps, NOVATEL_IDS, 3);
#define SIEMENS_IDS() …
DEVICE(siemens_mpi, SIEMENS_IDS);
#define SUUNTO_IDS() …
DEVICE(suunto, SUUNTO_IDS);
#define VIVOPAY_IDS() …
DEVICE(vivopay, VIVOPAY_IDS);
#define ZIO_IDS() …
DEVICE(zio, ZIO_IDS);
static struct usb_serial_driver * const serial_drivers[] = …;
static const struct usb_device_id id_table[] = …;
MODULE_DEVICE_TABLE(usb, id_table);
module_usb_serial_driver(…);
MODULE_LICENSE(…) …;