This time it's got a few fix-ups in EDI itself, along with a sample driver based off of http://www.osdev.org/osfaq2/index.php/SerialPorts .
For those who have never heard, EDI is an effort by myself to produce a driver abstraction layer (Extensible Driver Interface) which can simultaneously allow developers to write portable drivers, kernel hackers to write operating systems without rewriting every single driver ever, *and* allow both to add custom functionality to their driver or kernel without having to break portability.
This version is a release candidate for EDI 3.4, as I feel too tired to check it over for stupidities or errors and polish it to a final release. Anyway, it includes:
1) EDI headers with doxygen-based documentation. This specify the EDI core standards.
2) A change of terms from "kernel" to "EDI runtime" or simply "runtime". It got confusing last time we talked about EDI, because the EDI runtime doesn't actually have to be implemented in-kernel. For all the standard cares, it can be the runtime library to which drivers link and can run in ring 3.
3) A new header, edi_devices.h, which specifies the calls and semantics for standardized block and character device objects. Any driver should feel free to inherit from these and implement them, but drivers can also expose entirely unrelated classes for the EDI runtime to interact with, as long as the runtime will recognize them.
4) A sample driver, as noted above. This thing drives COM port (serial port) #1, and does so in 219 lines of inefficient, stupid, and as-yet-un-debugged code. Please, DEAR LORD, do not consider this anything more than a a proof of concept for EDI. On the positive side, this thing pretty much reads from and writes to COM port #1, allowing the EDI runtime to treat it as a pseudo-POSIX character device. When I'm no longer tired and SAT 2s have passed (8 days from now), I'll type up a skeleton implementation of EDI to compile and test the sample driver if you really want.
Sourceforge's login is currently broken and refuses to recognize my password, so I've put the file up temporarily at: http://www.mytempdir.com/1020978 . It seems dumb; I hate it, but what else can I do?
EDI 3.4 RC1 - Give a look!