X-Recipient: archive-cygwin AT delorie DOT com X-Spam-Check-By: sourceware.org X-SBRS: 3.5 X-MesageID: 42969971 X-Ironport-Server: ftlpip02.citrite.net X-Remote-IP: 216.142.71.134 X-Policy: $Relay X-IronPort-AV: E=Sophos;i="4.25,388,1199682000"; d="scan'208";a="42969971" Date: Thu, 21 Feb 2008 21:46:18 +0100 From: Samuel Thibault To: cygwin AT cygwin DOT com Subject: Re: ioperm() with ports above 0x3ff Message-ID: <20080221204618.GB10976@implementation> Mail-Followup-To: cygwin AT cygwin DOT com References: MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.12-2006-07-14 X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Hello, 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(). Samuel -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/