Where are inb/outb macros?

5 messages, 4 authors, 2007-10-08 · open the first message on its own page

Where are inb/outb macros?

From: Peter Lemenkov <hidden>
Date: 2007-10-06 20:47:55

Hello All!
I can't compile one small software title because of lack <sys/io.h>
and inb/outb macros. What sould I do to overcome this obstacle?

My linux distro is Fedora 7 if it is matter.

-- 
With best regards!

Re: Where are inb/outb macros?

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2007-10-06 21:08:10

On Sun, 2007-10-07 at 00:47 +0400, Peter Lemenkov wrote:
Hello All!
I can't compile one small software title because of lack <sys/io.h>
and inb/outb macros. What sould I do to overcome this obstacle?

My linux distro is Fedora 7 if it is matter.
They don't exist in user space on non-x86. You have to do things
differently. What is your software trying to do ? If it's trying to
access a PCI device IO space, you probably want to mmap it in sysfs and
write your own accessors with appropriate memory barriers.

Ben

Re: Where are inb/outb macros?

From: Arnd Bergmann <arnd@arndb.de>
Date: 2007-10-06 23:47:51

On Saturday 06 October 2007, Benjamin Herrenschmidt wrote:
On Sun, 2007-10-07 at 00:47 +0400, Peter Lemenkov wrote:
quoted
Hello All!
I can't compile one small software title because of lack <sys/io.h>
and inb/outb macros. What sould I do to overcome this obstacle?

My linux distro is Fedora 7 if it is matter.
They don't exist in user space on non-x86. You have to do things
differently. What is your software trying to do ? If it's trying to
access a PCI device IO space, you probably want to mmap it in sysfs and
write your own accessors with appropriate memory barriers.
All cases where I've seen application software use <sys/io.h>, there was
actually a full device driver in the kernel that already exported a 
high-level interface to user space. If that's the case here, the application
should use that instead of sysfs.

	Arnd <><

Re: Where are inb/outb macros?

From: Misbah khan <hidden>
Date: 2007-10-08 06:05:17

inb/outb could be used from the usr space on x86 class PC-computer to access
to io ports this is what i assume that you are trying 

You need to compile the program with -O option (expantion of Inline function
)

To perform io operation on ports ioprem/iopl system call must be used (To
get permissio to perform io operation)

Program must run as root 

on non 86 platform try using /dev/port device file in the application 

misbah


Arnd Bergmann wrote:
On Saturday 06 October 2007, Benjamin Herrenschmidt wrote:
quoted
On Sun, 2007-10-07 at 00:47 +0400, Peter Lemenkov wrote:
quoted
Hello All!
I can't compile one small software title because of lack <sys/io.h>
and inb/outb macros. What sould I do to overcome this obstacle?

My linux distro is Fedora 7 if it is matter.
They don't exist in user space on non-x86. You have to do things
differently. What is your software trying to do ? If it's trying to
access a PCI device IO space, you probably want to mmap it in sysfs and
write your own accessors with appropriate memory barriers.
All cases where I've seen application software use <sys/io.h>, there was
actually a full device driver in the kernel that already exported a 
high-level interface to user space. If that's the case here, the
application
should use that instead of sysfs.

	Arnd <><
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev
-- 
View this message in context: http://www.nabble.com/Where-are-inb-outb-macros--tf4581135.html#a13091078
Sent from the linuxppc-dev mailing list archive at Nabble.com.

Re: Where are inb/outb macros?

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2007-10-08 08:12:07

On Mon, 2007-10-08 at 00:09 -0700, Misbah khan wrote:
inb/outb could be used from the usr space on x86 class PC-computer to access
to io ports this is what i assume that you are trying 

You need to compile the program with -O option (expantion of Inline function
)

To perform io operation on ports ioprem/iopl system call must be used (To
get permissio to perform io operation)

Program must run as root 

on non 86 platform try using /dev/port device file in the application 
"io ports" don't mean much on non-x86 platforms (or rather can have
multiple meanings) which is why I'm asking what is he trying to od in
the first place.

Ben.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help