QNX RTOS v4 Knowledge Base
QNX RTOS v4 Knowledge Base
Title |
_CA_PCI functions with 64k stacks |
Ref. No. |
QNX.000009566 |
Category(ies) |
Development |
Issue |
When we call _CA_PCI_Find_Device from a program with stack larger than 61K, The call fails and returns 0xB1. 0xB1 does not seem to be in any of the listed return types. How can we fix this problem?
|
Solution |
The _CA_PCI_* calls jump into the PCI BIOS, therefore, they can't handle any address that is greater then 64k. This means that if the stack base or any stack element, when called, has an address greater then 64k, it will fail.
If you specify a stack size of 61k, your stack base will be 69k. (When you compile, look at the op offset value passed to wlink -- that is the base of code, and also the base of stack.)
If you use any shared library you can't use these calls.
There is a free library on our webpage. You will need ca_pci_msg.tgz from /usr/free. |
|