[Armadillo:05285] Re: /dev/ttyAM1 での送信完了タイミング検知方法

Masahiro Hanada email@hidden
2010年 6月 2日 (水) 15:29:44 JST


花田です。

SAITOH Akinori <email@hidden> wrote:

> デバイスドライバの実装依存ですが,
> (void) ioctl(iofd, TCSBRK, 1);	/* Wait for output to drain */
> が有効かもしれません.SystemVでの事例は有りました.

あー、使えそうですね。(試してはいないんですけど)

char/tty_io.cのtty_ioctl()で、
TIOCSETD/TIOCSBRK/TCSBRK/TCSBRKPはtty_wait_until_sent()が
呼ばれるようになっています。
tty_wait_until_sent()の中からはdriverのwait_until_sent()が呼ばれますので、
serial/serial_core.cのuart_wait_until_sent()に行き着き、この中で
serial/ep93xx.cのep93xxuart_tx_empty()が真になるまで待ってくれるはず。

コード見てみた限りでは、こんな感じです。

> あと,TIOCDRAINってのが使えるかもしれません.が,もしかすると
> BSDにしかないioctlかも.

こちらはlinuxにはなさそうですねぇ


____________________________________________________

    花田 政弘 (はなだ まさひろ)

    E-mail: email@hidden
____________________________________________________




armadillo メーリングリストの案内