Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> プロトコルスタックのLinuxのリンク層上のデータ送信 - データ受信

プロトコルスタックのLinuxのリンク層上のデータ送信 - データ受信

  
 

を理解するために、カードデータを受信するデータ受信処理。 DMAの特定のプロセスを議論する必要があります。まず:そのようなDMAモード、メモリアドレス、送信された単語の数は、元のプログラムとCPUと、CPUのDMAにコマンドを送信実行するDMA制御I /OデバイスとメインメモリのDMAデータは、以下のステップに分けることができる移します。データを交換する間。データを受信した後、DMA要求は、データ転送、メイン・メモリ・アドレスの変更カード用のバスの制御を得るために、CPUに送られ、単語を確認し、変更カウンタ値がゼロであり、ゼロはゼロRuoyi、送信を続けません、その後、CPUへの割り込み要求を送ります。..すなわち、カードは、パケットを受信した場合、それは現在のskb->内に配置され、あるデータ。再び時にパッケージ。 DMAはskb->するために、カード上のメイン・メモリ・アドレスを変更します。次、にデータを。データパケットに格納されたデータの原因、すなわち、skb->あります。さて、今あなたは、特定のコードの実装を見ることができます。ネットワークへのネットワークデータは、DMAメモリカードに入れて、その後、DMAに報告する割り込み処理ルーチンを見つけるために、CPU、CPUの割り込みベクタを中断するだけでなく、我々はすでにe100_intrが登録されていることを()プロセスに従ってとき。静的irqreturn_t e100_intr(INTのIRQ、ボイド*なdev_id、構造体pt_regs * REGS){構造体net_device * NETDEV =なdev_id;構造体NIC * NIC = netdev_priv(NETDEV); U8 stat_ack = READB(& nic-> csr-> SCB .stat_ack); DPRINTK(INTR、DEBUG、" stat_ack = 0X%02X \\ n" stat_ack);(stat_ack == stat_ack_not_ours場合

Copyright © Windowsの知識 All Rights Reserved