Directly accessing I/O ports

Greg Allen gallen at
Fri Jul 19 10:06:12 EST 2002

I'd like to get the Linux ethernet card diagnostic tool,
eepro100-diag.c (from running
on the PowerPC.

Unfortunately, it uses iopl() and inw()/outw()/inl()/outl() to access
the entire I/O port space directly in userland. In fact, much of this
family of utils does the same thing.

I tried something like:
	io_fd = open("/dev/port", O_RDWR);
	iobase = mmap(0, device_size, PROT_READ|PROT_WRITE, MAP_SHARED,
		io_fd, device_base);
but I can't get it to work.

Are there suggestions (or code snippets) as to how I should proceed?

For that matter, what's the *right* way to access this sort of thing
from userland?

  Gregory E. Allen, MSEE Engineering Scientist
  Applied Research Laboratories: The University of Texas at Austin
  Please help find my missing daughter:

** Sent via the linuxppc-dev mail list. See

More information about the Linuxppc-dev mailing list