Accessing PCI from App Builder app

I remember being unable to use the _CA_PCI_BIOS_xxxxxx( ) functions from a
PhAB application on QNX4. I never really figured out why, but I always got
“Memory Access Error” crashes on these calls. From a non-GUI app they worked
fine however.

I read that Neutrino uses calls pci_xxxxx () and a server to handle the
equivalent functionality. Anyone used these from an App Builder (GUI)
application successfully?

Thanks,
Jay D. Marchetti

Jay Marchetti <marchetti@pittsburghfirmware.com> wrote:

I remember being unable to use the _CA_PCI_BIOS_xxxxxx( ) functions from a
PhAB application on QNX4. I never really figured out why, but I always got
“Memory Access Error” crashes on these calls. From a non-GUI app they worked
fine however.

I read that Neutrino uses calls pci_xxxxx () and a server to handle the
equivalent functionality. Anyone used these from an App Builder (GUI)
application successfully?

You can do that but you will need varying degress of access control. For
somethings you can access data as a normal user. Other things require root
privs and yet other other things will require you to get hardware and I/O
access by using ThreadCtrl().

The issue on QNX4 was that you probably needed to be linked with -T1 and
run as root.

chris

\

Chris McKillop <cdm@qnx.com> “The faster I go, the behinder I get.”
Software Engineer, QSSL – Lewis Carroll –
http://qnx.wox.org/

Hmmm… I may be mistaken, but I thought there was an issue with QNX4
Photon/PhAB and the first 64k of process memory conflicting with the PCI
library. Using a separate process for PCI access removed the conflict. Not
an issue with QNX6 as the PCI stuff is already a separate process.

-Warren “Back in MY day…” Peece



“Chris McKillop” <cdm@qnx.com> wrote in message
news:a4cnei$54j$1@nntp.qnx.com

Jay Marchetti <> marchetti@pittsburghfirmware.com> > wrote:

I remember being unable to use the _CA_PCI_BIOS_xxxxxx( ) functions from
a
PhAB application on QNX4. I never really figured out why, but I always
got
“Memory Access Error” crashes on these calls. From a non-GUI app they
worked
fine however.

I read that Neutrino uses calls pci_xxxxx () and a server to handle the
equivalent functionality. Anyone used these from an App Builder (GUI)
application successfully?


You can do that but you will need varying degress of access control. For
somethings you can access data as a normal user. Other things require
root
privs and yet other other things will require you to get hardware and I/O
access by using ThreadCtrl().

The issue on QNX4 was that you probably needed to be linked with -T1 and
run as root.

chris

\

Chris McKillop <> cdm@qnx.com> > “The faster I go, the behinder I get.”
Software Engineer, QSSL – Lewis Carroll –
http://qnx.wox.org/

Warren Peece <Warren@nospam.com> wrote:

Hmmm… I may be mistaken, but I thought there was an issue with QNX4
Photon/PhAB and the first 64k of process memory conflicting with the PCI
library. Using a separate process for PCI access removed the conflict. Not
an issue with QNX6 as the PCI stuff is already a separate process.

Could be. Really, Photon apps should leave hardware access to some other
backend service. Keeps them both a lot cleaner.

chris

\

Chris McKillop <cdm@qnx.com> “The faster I go, the behinder I get.”
Software Engineer, QSSL – Lewis Carroll –
http://qnx.wox.org/