We need a non-blocking driver for our application, so we are writing it for ourselves.
Looking at the code for select in socket.c we've run into a couple of problems.
First, the driver conflicts with <sys/types.h> in the definitions.
Secondly, if timeout==NULL, it appears that data is not written into the stream at all. I assume that is because the bytes are ignored by the chip if is blocking is set.
Finally, what are the magic 0x14's for. I assume they're to point at offsets to various values 20 bytes away, so the first is the offset to readsds, the second the offset to writesds, the third the offset to exceptsds and the fourth to the timeout value.