On Mon, 22 Apr 2002, Maciej W. Rozycki wrote:
> On Mon, 22 Apr 2002, Geert Uytterhoeven wrote:
> > > Hmm, I admit I haven't looked at this matter, but aren't
> > > in/out/ioperm/iopl implemented as library functions in glibc like for
> > > other architectures doing MMIO? E.g. Alpha does this an it makes porting
> >
> > Perhaps. Note that you still need some /proc magic to find out the correct
> > address to map. Or you can use /dev/ports.
>
> Well, for Alpha ioperm/iopl functions check the system type in
> /proc/cpuinfo (we seem to have enough information there as well) and
> failing this they check a result of readlink of /etc/alpha_systype. Then
> an appropriate region of /dev/mem is mmapped with per-page permissions set
> up as requested if ioperm is used (with a worse granularity, though) and
> subsequent in/out function invocations access the area as appropriate.
> See sysdeps/unix/sysv/linux/alpha/ioperm.c in glibc for details -- it's a
> pretty clever solution with good performance and only a few trade-offs.
I think PPC has syscalls to find the I/O bases, too.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
|