State Changes
Each buffer has an associated state
- Null, Empty, Data, Data-Time-Out, Hold
Read returns when state transitions occur
- Not all transitions awaken read
- Ioctl’s control some of the read-wakeups
- Ioctl’s manage user process release of buffers