On Fri, 20 Dec 2002 10:38:45 -0600 (CST), Scott Garfinkle wrote: >"who really cares" refers to whether there is a specific need for the functionality. >Since there does >appear to be one, that's fine. At this point, providing general-purpose support on >OS/2 is often not >too important! As for KEE, it was implemented mainly to support JFS and the 32 bit >tcpip stack, not >out of some sense that OS/2 just ought to be able to do 32 bit DevHelps. Once it was >implemented, >it certainly made sense to make it available to others; however, in most cases, there >really isn't >anything to be gained (and often much efficiency to be lost) in doing 32 bit OS/2 dd >code.
I know about the efficiency of thunking :-) But like e.g. the Soundblaster Live! drivers. If they would use GCONFIG-API, one would have to support both, 16bit and 32-bit, otherwise Sander could dump the 32-bit version or regenerate GCONFIG-APIs internally. That's why I'm doing 32-bit. I won't implement them at first and the whole detection code is 16-bit mode. I'm just designing the detection area to allow access from 32-bit code later. Also device attach/detach are handled by 16-bit code. 32-bit only contains the API, which includes device search functions, specific functions like e.g. PCI-space access and hot-plug callback API. It's meant so one can write such driver like SBLive, so that it's possible to write a 16-bit and 32-bit version of it w/o modifying any code (at least for GCONFIG-calling). Example of some GCONFIG-API code: HWDEVICE MyDevice; USHORT MyIRQ; if (MyDevice = PCI_FindDevice(0x1073, -1, PDD_FIND_STRAIGHT, 0)) { MyIRQ = PDD_GetDeviceIRQ(MyDevice,0); PrintF ("Yamaha found on %lx using %d!", &MyDevice, MyIRQ); PCI_WriteConfigDWord (MyDevice, 64, 0x1000); } That's all the code needed to find the first PCI-device of vendor 0x1073 and getting the IRQ line that is currently assigned by the device, printing it out and set register 64 (dword) to 0x1000. Print/PrintF are also part of GCONFIG-API. That's the needed of it. And this code will run on ACPI and normal PCI systems. And the PDD_x functions are generic (!) which means they will work on any device. PnP, PCI, whatever. And all take HWDeviceID as the device specifier. There are also APIs to reconfigure a device (those are nearly of the same simplicity). cu, Kiewitz ----------- To unsubscribe yourself from this list, send the following message to [EMAIL PROTECTED] unsubscribe acpi-os2 end