While I really happy with the work you Martin are doing and have been doing to collect API documentation and source code for drivers and applications. I think its possibly time for a new strategy. What can be done with all of this source code ? As a community we can try to collect more source code. But the vast majority of work is not being done by the community. I can understand why that its happening as writing device drivers is a time consuming job.
While I can understand that you are not happy with the DRV32 library...
Practically speaking who is working on drivers for example ? And I do not think we need even more examples as Netlabs and hobbes has tons of driver sources stored already. Also checkin into SVN at Netlabs with revision history so people can see what and why was modified. When do we have enough source code ?
Roderick
We will never have enough source code !! Collecting source code and documenting the OS/2 API is already advanced but it is not finished yet. Knowledge it just a base to create things. I still do not think that the knowledge to create device drivers is completely consolidated and public. We need more documentation and articles about this subject.
But you are right by asking what comes next.
In the device drivers area I still think that there should be alternatives to the IBM DDK Source code samples, the IBM DDK binary tools can be used (since some version of the IBM DDK were available with free registration on the web) but I think that some open source samples are still needed. It will be interesting to try to create an open source friendly IBM DDK Samples alternative. (maybe BSD license)
For drivers based on the IBM DDK samples it will be satisfactory to me to create close source projects, but that are collaborative and governed by an organization like Netlabs, just like Lars is doing with his USB drivers. It is not the best thing for open source to use IBM DDK based drivers, but giving the source code changes rights to a third party will make me happy on this area to reduce the risk that the developer loose interest and we may lost the source code.
On the other hand we need device driver developers which is the hardest part. But I think it is also worst to have the rare case of having someone that has the will to create driver, but can not find examples or documentation on how to do it on OS/2. If someone wants to sponsor a device driver or try to raise money to create one, I will jump into that ship as long as it is an open source driver or at least that the source is giving to a third party non-profit organization that will share the rights and may continue the development in the future. Maybe with the exception that for the moment it will not be desirable a device driver of the ones that are on the
Arca's roadmap, just to don't step other firemen hose.
(please remember this are my personal opinions).
Regards
Well let me ask you this question then. What should the source code contain ? I will explain to you why we are pretty complete. Look which drivers OS/2 can load. IFS, storage drivers, NIC and audio for example.
We have plenty of examples of these drivers at Netlabs and on hobbes. If you even start looking in more detail you will see the DANIS506.ADD and OS2AHCI will have a small portion of code that talks to OS/2.
The OS/2 kernel/OS2DASD driver make calls to storage driver and its most likely these API's you are interested in to have documented. The other code in the DANIS506.ADD and OS2AHCI is not that interesting if you for example want to create a new open source version of OS/2. Lets say you would want that kernel to be able to load OS/2 drivers.
With audio, NIC and IFS drivers its the same thing. Most of the code is mostly not OS/2 related. If you want to write a driver for OS/2 you can go two ways. The first one really sucks. This I think could be example where you end up with up:
https://www.intel.com/content/dam/www/public/us/en/documents/datasheets/ethernet-controller-i350-datasheet.pdf Happy reading and then writing code based on all the registers.
Or you do how the Multimac project started out:
http://trac.netlabs.org/multimac/browser/trunk/e1000e/e1000hw.cIf you skim the code you will get somewhat of a feel what is happening and what the code does. It talks to chip.
Most of that code is not even OS/2 code specific. Its just C code that talks to the hardware and thanks to C code being a standard open watcom can compile the code.
Both these scenario's take up a lot of time and requiring patience and working accurately. Such as checking into SVN so you can track what changes you made. If a driver does crash you system you need to use a kernel debugger via a serial cable or grab a memory dump. Then it can still be very time consuming and a detective job to find why a driver you wrote blows up.
Anyway I kind of what to explain to you that for anybody who wants to write device drivers for OS/2 it should be possible with the current code we have. But you need to have patience, time and understand what you are doing. Drivers work at ring 0 of a computer and an error can make the OS crash or hang.
As I see it the DANIS506.ADD driver is mature but the code will most likely never be updated. But when Mensys had the first OS2AHCI driver developed the developers that worked on that code looked at the DANIS506.ADD driver to spot what they needed to pay attention to on how to interface with OS/2 its API calls.
Both JFS.IFS and FAT32 are basically the same API calls into the OS2KRNL the rest is file system specific code.
Maybe now you understand if you want developers to write code why I said we always have had enough code.
As when it comes to the DDK as I understand a portion of the DDK code is in Open Watcom and the guys rewrote portions of the DDK code. How much of the DDK code is in the Open Watcom I can not tell you.
While I share you hope the DDK can be rewritten I think with our current human resources we have its not practical to expect this to happen anytime soon.
This is why invited you to work with the people in the forum and with OS/2 VOICE is you want to start working on projects such as one I suggested. We are collecting funding. Any further OS/2 development will need more people on the platform that also means users.
I have been looking for people to help repackage software in RPM software rpm.os2voice.org could get large library I simply lack the time for it with a day job. But getting more applications is what I need people to help me with.
I hope the stuff about the driver stuff was useful if you have questions let me know.
Everybody have a good 2018 and thanks for helping to keep OS/2 on the move.
Roderick