9 bit serial / non-blocking TCSADRAIN

From: Baltazár Radics
Date: Thu May 05 2022 - 13:02:14 EST


Hello!

I want to use a raspberry pi's serial to communicate over a protocol
that uses 9-bit characters, so currently I'm using the stick parity
mode (CMSPAR) and toggling between odd and even parity, then using
tcsetattr with TCSADRAIN as the second argument, which blocks until all
bytes are transmitted. Is there a non-blocking api to do the same
thing, so I can use it from poll / select? (If there's a better way to
do 9 bit character size, that'd be even better. For my protocol, the
9th bit is only used to tell address bytes from data bytes, so I don't
have to change it often, so I guess my current method isn't too
horrible.)

Thanks!