ioperm() with ports above 0x3ff

Samuel Thibault
Thu Feb 21 22:46:00 GMT 2008


Andrew Dyer, le Mon 18 Feb 2008 21:15:42 +0000, a écrit :
> I am having problems using ioperm() to try and access a parallel printer port on
> a PCI card in my system running WinXP.  The port is mapped to I/O port address
> 0xDCD8.  I cannot access the port because the ioperm() driver has a check to
> limit I/O port accesses to < 0x400.

Yes: on Linux ioperm doesn't work above 0x400.  On Linux, so as to
access ports above 0x400 you need to use iopl(), that's why ioperm in
cygwin does this.  Now, allowing >= 0x400 would be possible in cygwin's
ioperm, but then you'd get problems when using the code on Linux...  The
truly proper way is really to use iopl().


Unsubscribe info:
Problem reports:

More information about the Cygwin mailing list