i386_set_ioperm(2)/i386_get_ioperm(2) replacement after switch from x86 to amd64

Alexander Best alexbestms at wwu.de
Wed Dec 2 21:19:11 UTC 2009


ahh. thanks for the hint. wasn't aware of sysarch(2).

cheers.
alex

Kostik Belousov schrieb am 2009-12-01:
> On Tue, Dec 01, 2009 at 04:21:39PM +0100, Alexander Best wrote:
> > i'm getting this during compilation/linking:

> > undefined reference to `i386_set_ioperm'
> Libc wrappers for these syscalls are not provided by amd64 libc.
> Use sysarch(2) to execute them.


> > do i need to link against some x86 compat lib?
> You cannot link 32bit library to amd64 binary.


> > alex

> > ps: also the ioperm manuals are not getting installed on amd64 it
> > seems.

> > Kostik Belousov schrieb am 2009-12-01:
> > > On Tue, Dec 01, 2009 at 02:22:23PM +0100, Alexander Best wrote:
> > > > hi there,

> > > > i recently switch from x86 to amd64. right now i'm looking for
> > > > a
> > > > way to
> > > > replace i386_set_ioperm(2) and i386_get_ioperm(2) (which are
> > > > x86
> > > > specific).
> > > > any suggestions?

> > > > * full /dev/io access is rather nasty
> > > > * the app i'm developing is using inb/outb opcodes through
> > > >   inline
> > > >   assembly in
> > > > order to access the parallel port. i tried using ppi(4), but
> > > > that
> > > > slows down
> > > > things dramatically (see:
> > > > http://lists.freebsd.org/pipermail/freebsd-hackers/2009-July/029188.html)

> > > FreeBSD 8.0 supports these syscalls on amd64.


More information about the freebsd-hackers mailing list