This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project. See the Cygwin home page for more information.
[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index] [Subject Index] [Author Index] [Thread Index]

Re: Again about physical disks.



Serguei DACHIAN wrote:
> > This is a known 'feature' of w95;
> > the article "PRB: DeviceIoControl Int 13h Does Not Support Hard Disks"
> > It's *ugly* - you have to use 'flat thunks'.
> 
> So, if I understand well, the workaround is to make a 16bit DLL for disk IO,
> and then call it from 32bit code using so caled "thunk"s.
yes...

> this feasible under CygWin???  That is, can I compile 16bit DLL using
> cygwin???!!!
I don't think so! The binary image format is all different; maybe
you could cannabilize some older GPL'd 16-bit linker, but I don't
imagine this would be rewarding. Why not get NT 8) ( - or - Linux?!?!)

> And even if I compile the dll elsewhere (say under MSVC or Borland), will it
> be possible later to use this 16bit DLL in cygwin program???
Well, yes, if you wrap it up in a 32bit dll and make it cygwin-friendly

> Or, finally, the only solution is to made both a 16bit DLL and a 32bit DLL
> (using the 16bit one via thunks) under MSVC and then use the 32bit one from
> CygWin???
Basically, yes.

> disk will finally NOT REALLY be done under CygWin, and so both the short and
Well, not directly to the OS from cygwin functions; no.. Though
of course you could always do the necessary hocus-pocus with assembler
and god-knows-what to make it 'werk'.
In fact, this is what the MS thunking tools do, under the covers.
But cygwin has no concept if 16-bit environments (AFAIK) so it's
somewhat awkward. To put it Mildly. (americans: this is Irony.)
You could cheat with some kind of IPC mechanism - for example,
TCP/UDP between a borland-turbo-c 8/16-bit process and a cygwin process.
In fact, this would be a _lot_ easier...
Remember, also, that the MS development tools themselves have not
supported 16-bits for several (3? 4?) years.
As for the nuts and bolts of how a 16-bit library could possibly
be loaded by a 32-bit process, - sorry, can't remember. look it up!

Personally, I think you're barking mad to even consider it.
How about setting up a lan and mounting the drive from linux via NFS?
This _is_ the nineties, after all...

john

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com