IO_SELECT message in an IO manager

I have implemented an IO manager that creates a character device
in /dev. Open, Close, Read, and Write, are currently implemented and
working. I now need Select. The only hint I have is from Rob Krten’s
book “Getting Started with QNX4”, that sayes:
… There are _SEL_POLL and _SEL_ARM phases.
The _SEL_POLL polls for conditions to satisfy the select(); then
the _SEL_ARM sets up notification for when those conditions have
been met. Later, another _SEL_POLL is issued to see what happened
after the notification.

The first IO_SELECT message contains:
mode=_SEL_ARM proxy=31877 proxy_spare=0 nfds=1
set[0].flag=0x1 set[0].fd=3


Can anyone give me more hints on how to implement select
in an IO manager?

Ping
Ray Hausman wrote:

I have implemented an IO manager that creates a character device
in /dev. Open, Close, Read, and Write, are currently implemented and
working. I now need Select. The only hint I have is from Rob Krten’s
book “Getting Started with QNX4”, that sayes:
… There are _SEL_POLL and _SEL_ARM phases.
The _SEL_POLL polls for conditions to satisfy the select(); then
the _SEL_ARM sets up notification for when those conditions have
been met. Later, another _SEL_POLL is issued to see what happened
after the notification.

The first IO_SELECT message contains:
mode=_SEL_ARM proxy=31877 proxy_spare=0 nfds=1
set[0].flag=0x1 set[0].fd=3


Can anyone give me more hints on how to implement select
in an IO manager?

Ping
Ray Hausman wrote:
I have implemented an IO manager that creates a character device
in /dev. Open, Close, Read, and Write, are currently implemented and
working. I now need Select. The only hint I have is from Rob Krten’s
book “Getting Started with QNX4”, that sayes:
… There are _SEL_POLL and _SEL_ARM phases.
The _SEL_POLL polls for conditions to satisfy the select(); then
the _SEL_ARM sets up notification for when those conditions have
been met. Later, another _SEL_POLL is issued to see what happened
after the notification.

The first IO_SELECT message contains:
mode=_SEL_ARM proxy=31877 proxy_spare=0 nfds=1
set[0].flag=0x1 set[0].fd=3


Can anyone give me more hints on how to implement select
in an IO manager?

The Alsa driver is a good example. It is under /usr/free/…

Thanks.

Gusztav Roka wrote:

Ping
Ray Hausman wrote:

I have implemented an IO manager that creates a character device
in /dev. Open, Close, Read, and Write, are currently implemented and
working. I now need Select. The only hint I have is from Rob Krten’s
book “Getting Started with QNX4”, that sayes:
… There are _SEL_POLL and _SEL_ARM phases.
The _SEL_POLL polls for conditions to satisfy the select(); then
the _SEL_ARM sets up notification for when those conditions have
been met. Later, another _SEL_POLL is issued to see what happened
after the notification.

The first IO_SELECT message contains:
mode=_SEL_ARM proxy=31877 proxy_spare=0 nfds=1
set[0].flag=0x1 set[0].fd=3


Can anyone give me more hints on how to implement select
in an IO manager?


The Alsa driver is a good example. It is under /usr/free/…