- Goals
- User guide
- Classlib developers guide
- Developer guide
- Tester guide
- Porting guide
- Blogs
- Project development
- Glossary
- Proposals
- FAQ
- Papers & presentations
- References
- Research
Driver framework
The basic device driver design involves 3 components:
- Device: a representation of the actual hardware device
- Driver: a software driver able to control a Device
- DeviceAPI: a programming interface for a Device, usually implemented by the Driver.
There is a DeviceManager where all devices are registered. It delegates to DeviceToDriverMapper instances to find a suitable driver for a given device. Instances of this mapper interface use e.g. the PCI id of a device (in case of PCIDevice) to find a suitable driver. This is configurable via a configuration file.
For a device to operate there are the following resources available:
- Hardware interrupts. A driver can register an IRQHandler which is called on its own (normal java-) thread. The native kernel signals a hardware interrupt by incrementing a counter for that interrupts, after which the thread scheduler dispatches such events to the correct threads of the IRQHandler's.
-
DMA channels. A driver can claim a DMA channel.
This channel can be setup, enabled and disabled. - IO port access. An Unsafe class has native methods for this. A device must first claim a range of IO ports before it can gain access to it.
- Memory access. A device can claim a range of the the memory addressspace. A MemoryResource is given to the device. The device can use the methods of the MemoryResource to actually access the memory.
- Printer-friendly version
- Login to post comments
For PCI device ids this is a
For PCI device ids this is a good place to look http://pciids.sourceforge.net/.
I found this nice program, th
I found this nice program, that can scan you pc for pci id's etc.
Regards,
Martin
lspci
we already have their file of ids in our cvs
Hi,
in the beginning of the year I updated our pci.ids in JNode cvs
But it may be updated from the url you give.
Fabien