eCo Software Developer Connection

About DevCon
Subscription to DevCon
Budget of DevCon

eCo Software runtime
eCo Software toolkit

Development of device drivers

Template of 32-bit driver for eComStation

Download eCo Software simple 32-bit driver.

  • 32-bit driver
  • interaction with ACPI driver

KEE interface

To develop modern drivers you should use DevHlp, KEE interfaces. Read DDK, pddref.inf for details.



eCS supports suspend/resume for one-core and multi-core desktops and notebooks. You can use APM interface (read DDK → in_out.inf, Input/Output Device Driver Reference) or hidden kernel function SaveRestore()

*  Function SaveRestore
* @pkt     standard drivers packet
* @return  None
* Note: This function is undocemmented in pddref.inf
    PrintDevCall((PRPH)pkt, "SaveRestore");
    if (PSD)
        PSD->AcpiOsPrintf("APM:SaveRestore - %x\n",(ULONG)pkt->FuncCode);
    pkt->rph.Status |= STDON;
 dd    OFFSET FLAT:SaveRestore  ; Command code 20h SaveRestore

Please share information with other developers how to:

  • How to process command line parameters?
  • How to gather log, so user can call: copy acpica$ acpi.log
  • How to register driver in resource manager? So users can see it via rmview /IRQ

Programming PCI devices

To create new driver, you need

Wakeup PCI devices


  • Wake up sleeping PCI devices at boot time (by Veit) driver, source code
  • Source code of USB drivers (DDK)

Read/write ports from Ring3

Mapping physical memory to linear

Use this method (via SCREEN$) memory mapping via SCREEN$ (thx LightElf)

Driver debugging

if you are going to do driver debugging, a trap dump partition is a must have. It will save you a lot of time. A usable kernel debugger setup will save you a even more time, but this can be problematic on newer systems that lack a serial port.

Read details: OS/2 Diagnostic Tools and Tips by Steven Levine.

Useful links

en/device_drivers_development.txt · Last modified: 2009/10/24 12:55 (external edit)

Recent changes RSS feed
© 2001 - 2009 eCo Software, All rights reserved