パスワードを忘れた? アカウント作成
504718 journal

tarosukeの日記: [talos]8139 iii

日記 by tarosuke

8139の送信は普通にパケットのアドレスと長さを指定して送信させるだけ。受信は...バッファを構築して設定しておくと8139が受信パケットをそこにリングバッファとして書き込んで行くから割り込みが入ってステータスが受信済だったら「ここまで読んだ」レジスタからパケット先頭に書いてある長さまでをパケットバッファに転送(当然ラップし得る)、「ここまで読んだ」レジスタをパケット長+4bytesアライン進める(ここでもラップし得る)。という感じ。パケットで最大長がわかってる塊をわざわざラップ処理しなければならないストリームに固めてしまっているのが8139の最大の糞な点。

受信バッファ用に物理的に連続している複数ページを確保しなきゃならんしな。これがE100とか8169みたいにパケットはパケットとして処理できる造りなら普通にメモリ確保して実アドレスを求めるだけで済む。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

人生unstable -- あるハッカー

読み込み中...