24 lines
906 B
Text
24 lines
906 B
Text
The read event demultiplexer
|
|
|
|
select(2) on Unix FDs
|
|
...
|
|
Fill up AX.25 interface packet buffers
|
|
...
|
|
Decode as many packets as possible on each interface
|
|
...
|
|
Fill up buffers for pending caller reads, open new connections
|
|
...
|
|
If:
|
|
* ax25_select() is called: Notify caller of I/O events
|
|
|
|
* ax25_read() is called: Provide caller access to requested
|
|
buffer region
|
|
|
|
Buffer may be discarded upon next ax25_read() event, but should not
|
|
be discarded after an ax25_select() necessarily.
|
|
|
|
Most crucially: This sequence of events is triggered by ANY of the I/O calls,
|
|
so as to facilitate the same sort of behaviors that one would expect when
|
|
letting a kernel thread be responsible for all this activity from a userland
|
|
process' perspective. The main difference in behavior in any of these calls is
|
|
the result provided to the caller.
|