Subject: Re: new x86/pio.h breaks vbetool
To: Christos Zoulas <christos@astron.com>
From: Andrew Doran <ad@netbsd.org>
List: current-users
Date: 11/02/2007 01:28:59
On Tue, Oct 30, 2007 at 02:32:36AM +0000, Christos Zoulas wrote:
> In article <20071029175505.GK17594@hairylemon.org>,
> Andrew Doran  <ad@netbsd.org> wrote:
> >On Mon, Oct 29, 2007 at 12:31:11PM -0500, jakllsch@kollasch.net wrote:
> >
> >> src/sys/arch/x86/include/pio.h ... it used to have
> >> (in-line) assembly that was used by, among other
> >> things, pkgsrc/sysutils/vbetool.  vbetool now
> >> won't compile.
> >>
> >> Additionally, the functions would be nice
> >> to have available.  Easier than everything
> >> providing their own implementation.
> >
> >The presence of a kernel header does not mean that it's a published or
> >stable API. It's unfortunate, but vbetool shouldn't be using machine/pio.h
> >and it should be fixed.
> 
> What API should it be using?

They are single x86 instructions, and a few line assembly routine or __asm
statement does the same thing:

http://www.intel.com/products/processor/manuals/index.htm

Linux exports the same functions, but the arguments are reversed. It's a
kernel private header that's installed probably because we used to install
every kernel header as it was added. We have a well defined set of
interfaces, beyond those I believe we should not allow apps to rely on the
kernel working in a particular way because they will break when it's
changed.

Andrew