Resource Manager - SETIOV() problem


I’m writing a very simple resource manager for a digital I/O card. I have to
handle only open, close, read and write messages. I wrote an io_read and an
io_write handler and for other messages I used the default handlers. The
io_write handler works fine, but I have problem with the io_read handler. It
doesn’t return with the right value.

What did I do in a wrong way?

_Uint32t buffer;

buffer = in32( baseport );

SETIOV( ctp->iov, &buffer, sizeof(buffer) );
IO_SET_READ( ctp, sizeof(buffer) );
return(_RESMGR_NPARTS(1) );