strange return values from io_read in io-char lib

I have been trying to track down a problem I am having with qtalk and qcp
transfers aborting on with a
“qtalk: (read) Resource temporarily unavailable” error occurring with my
serial port device driver.

My test setup has qtalk running on one of the serial ports on my driver and
another instance of qtalk is started on another serial port connected to
this first port. I then start a qcp transfer using a,s and bang the
first serial port gets this error.

I noticed that right after an io_read on my device the port was being
closed.

I am not actually overriding the default io-char library io_read function,
but I put a pass through function call in that allowed me to look at the
return values.

What I am seeing is usually io_read returns with a value of 0x80000000 but
when it fails it returns with a 0xb or EAGAIN. Looking at the io-char
io_read code this is likely due to no data being ready to read and it is a
nonblocking read. So it is perfectly normal from what I can see.

The driver has been compiled under the QNX 6.2.1 ddk.

Does anyone have any insight into why this would be happening?

Al

After some research it seems these return values are normal, although I
don’t know what a return value of 0x80000000 means. I get the same values
from working and non working systems with standard devc-ser8250 devices.
The qtalk error seems to be related to old versions and is not present on
newer versions.

I asked this before, but does anyone have any version history on qtalk and
issues fixed?

Al

“Allan Smith” <aes@connecttech.com> wrote in message
news:d8b6f9$8dg$1@inn.qnx.com

I have been trying to track down a problem I am having with qtalk and qcp
transfers aborting on with a
“qtalk: (read) Resource temporarily unavailable” error occurring with my
serial port device driver.

My test setup has qtalk running on one of the serial ports on my driver
and another instance of qtalk is started on another serial port connected
to this first port. I then start a qcp transfer using a,s and bang
the first serial port gets this error.

I noticed that right after an io_read on my device the port was being
closed.

I am not actually overriding the default io-char library io_read function,
but I put a pass through function call in that allowed me to look at the
return values.

What I am seeing is usually io_read returns with a value of 0x80000000 but
when it fails it returns with a 0xb or EAGAIN. Looking at the io-char
io_read code this is likely due to no data being ready to read and it is a
nonblocking read. So it is perfectly normal from what I can see.

The driver has been compiled under the QNX 6.2.1 ddk.

Does anyone have any insight into why this would be happening?

Al