tapの調査

Pocket

0.7.2では、
qemu_add_read_packetで、
qemu_add_fd_read_handlerが呼ばれる。
ne2000_can_receiveとne2000_receiveを登録するのに使われている。
0.8.0では、
qemu_set_fd_handler(s->fd, tap_send, NULL, s)
で、IOハンドラを登録。データが来たときに反応する。
qemu_new_vlan_clientでne2000_receiveを登録。ne2000_can_receiveは登録されなくなっている。
これで、1つのclientから出たデータを他のclientに分配するときの関数を登録している。
0.7.2では、
n = tap_win32_readで、データがあれば、
first_io_handler->fd_read
これは、ne2000_receiveが呼ばれる。
その後、
tap_win32_free_bufferしている。
などなど、やっております。

Pocket

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください