20#include "pedigree/kernel/Log.h"
21#include "pedigree/kernel/processor/types.h"
22#include "pedigree/kernel/utilities/new"
25#include "modules/Module.h"
26#include "modules/system/usb/UsbPnP.h"
38#define NUM_DEVICES (sizeof(g_Devices) / sizeof(g_Devices[0]))
43 return new Dm9601(pDevice);
47 for (
size_t i = 0; i < NUM_DEVICES; i++) {
48 if (!
UsbPnP::instance().registerCallback(g_Devices[i].vendor, g_Devices[i].product,
49 dm9601Connected, g_Registrations[i])) {
51 g_Registrations[--i].reset();
61 for (
size_t i = NUM_DEVICES; i; --i) {
62 if (!g_Registrations[i - 1].reset())
63 FATAL(
"DM9601 USB binding could not be retired");
67MODULE_INFO(
"dm9601", &entry, &exit,
"usb",
"network-stack");
static UsbPnP & instance()
Singleton design.