Wenn eingehende Daten auf einem TTY mit einer Liniendisziplin ankommen, wird der Liniendisziplin-Callback receive_buf2() aufgerufen, um die Daten zu verarbeiten. Diese Funktion soll die Anzahl der tatsächlich verbrauchten Bytes zurückgeben. Wenn es nicht alle konsumiert, wann wird dann der Callback erneut aufgerufen? Wird es beispielsweise nur dann erneut aufgerufen, wenn zusätzliche eingehende Daten empfangen werden?Wann passiert, wenn die Liniendisziplin receive_buf2() nicht alle angebotenen Daten verarbeitet
1
A
Antwort
0
Ich weiß, diese Antwort ein wenig spät, aber hier ist es:
Gemäß der Dokumentation Kernel bei https://www.kernel.org/doc/Documentation/serial/tty.txt gefunden
Driver Side Interfaces :
receive_buf() - (optional)Called by the low - level driver to hand
a buffer of received bytes to the ldisc for
processing.The number of bytes is guaranteed not
to exceed the current value of tty->receive_room.
**All bytes must be processed.**
Alle Bytes von receive_buf()
verarbeitet werden müssen.