Index Word
|
Description
|
0
|
Header code [0x00140084]
|
1
|
nfds_t nfds
|
2
|
int timeout
|
3
|
Value 0x20 (processID header)
|
4
|
ProcessID set by the ARM11 kernel.
|
5
|
(insize<<14) | 0x2802
|
6
|
Pointer to input pollfd struct array
|
The following is located 0x100-bytes after the beginning of the above command buffer:
Index Word
|
Description
|
0
|
(outsize<<14) | 2
|
1
|
Pointer to output pollfd struct array
|
Events are a bitwise set of these flags.
Value
|
Name
|
Input/Output
|
Description
|
0x01
|
POLLIN
|
Both
|
Can recv() data from socket without blocking. For listen sockets, this means you can accept() a connection without blocking.
|
0x02
|
POLLPRI
|
Both
|
There is OOB data ready to recv(). Appears that recv()'ing without OOB flag still reads OOB data?
|
0x04
|
???
|
???
|
Have never seen this flag. Could possibly be POLLHUP (need to test).
|
0x08
|
???
|
???
|
This flag is almost always set when requested.
|
0x10
|
POLLOUT
|
Both
|
Can send() data to socket without blocking. For a non-blocking connect(), this means the connection has completed (need to test).
|
0x20
|
POLLNVAL
|
Out
|
Invalid socket handle. This is set if you use fd=-1, which is non-standard behavior.
|
???
|
POLLERR
|
Out
|
Socket error.
|
???
|
POLLHUP
|
Out
|
Socket has been disconnected.
|