The Pedigree Project
0.1
src
modules
drivers
common
ftdi
modules/drivers/common/ftdi/main.cc
1
/*
2
* Copyright (c) 2008-2014, Pedigree Developers
3
*
4
* Please see the CONTRIB file in the root of the source tree for a full
5
* list of contributors.
6
*
7
* Permission to use, copy, modify, and distribute this software for any
8
* purpose with or without fee is hereby granted, provided that the above
9
* copyright notice and this permission notice appear in all copies.
10
*
11
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18
*/
19
20
#include "pedigree/kernel/Log.h"
21
#include "pedigree/kernel/utilities/new"
22
23
#include "FtdiSerialDevice.h"
24
#include "modules/Module.h"
25
#include "modules/system/usb/UsbPnP.h"
26
27
class
UsbDevice
;
28
29
static
UsbPnP::Registration
g_Registration;
30
31
static
UsbDevice
* ftdiConnected(
UsbDevice
* pDevice) {
32
return
new
FtdiSerialDevice
(pDevice);
33
}
34
35
static
bool
entry() {
36
return
UsbPnP::instance
().
registerCallback
(0x0403, 0x6001, ftdiConnected, g_Registration);
37
}
38
39
static
void
exit() {
40
if
(!g_Registration.reset())
41
FATAL(
"FTDI USB binding could not be retired"
);
42
}
43
44
MODULE_INFO(
"ftdi"
, &entry, &exit,
"usb"
);
FtdiSerialDevice
Definition
FtdiSerialDevice.h:29
UsbDevice
Definition
UsbDevice.h:44
UsbPnP::Registration
Definition
UsbPnP.h:64
UsbPnP::registerCallback
MUST_USE_RESULT bool registerCallback(uint16_t nVendorId, uint16_t nProductId, callback_t callback, Registration ®istration)
Register a callback for the given vendor and product IDs.
Definition
UsbPnP.cc:443
UsbPnP::instance
static UsbPnP & instance()
Singleton design.
Definition
UsbPnP.h:95
Generated on Sat Oct 3 2026 06:38:05 for The Pedigree Project by
1.9.8