Some work on builtin slirp header files.

- Get rid of slirp_config.h.
- Added ip6_icmp.h (not yet used).
- Updates in some other headers.
- Added c++ static_assert for structure size checking at compile time.
- Updated Makefile dependencies and VS2019 project files.
This commit is contained in:
Volker Ruppert 2024-05-05 20:00:45 +02:00
parent a684734975
commit 5489f18ff2
19 changed files with 626 additions and 479 deletions

View File

@ -241,6 +241,7 @@
<ClInclude Include="..\iodev\network\slirp\if.h" />
<ClInclude Include="..\iodev\network\slirp\ip.h" />
<ClInclude Include="..\iodev\network\slirp\ip6.h" />
<ClInclude Include="..\iodev\network\slirp\ip6_icmp.h" />
<ClInclude Include="..\iodev\network\slirp\ip_icmp.h" />
<ClInclude Include="..\iodev\network\slirp\libslirp.h" />
<ClInclude Include="..\iodev\network\slirp\main.h" />
@ -248,7 +249,6 @@
<ClInclude Include="..\iodev\network\slirp\misc.h" />
<ClInclude Include="..\iodev\network\slirp\sbuf.h" />
<ClInclude Include="..\iodev\network\slirp\slirp.h" />
<ClInclude Include="..\iodev\network\slirp\slirp_config.h" />
<ClInclude Include="..\iodev\network\slirp\socket.h" />
<ClInclude Include="..\iodev\network\slirp\tcp.h" />
<ClInclude Include="..\iodev\network\slirp\tcp_timer.h" />

View File

@ -264,6 +264,7 @@
<ClInclude Include="..\iodev\network\slirp\if.h" />
<ClInclude Include="..\iodev\network\slirp\ip.h" />
<ClInclude Include="..\iodev\network\slirp\ip6.h" />
<ClInclude Include="..\iodev\network\slirp\ip6_icmp.h" />
<ClInclude Include="..\iodev\network\slirp\ip_icmp.h" />
<ClInclude Include="..\iodev\network\slirp\libslirp.h" />
<ClInclude Include="..\iodev\network\slirp\main.h" />
@ -271,7 +272,6 @@
<ClInclude Include="..\iodev\network\slirp\misc.h" />
<ClInclude Include="..\iodev\network\slirp\sbuf.h" />
<ClInclude Include="..\iodev\network\slirp\slirp.h" />
<ClInclude Include="..\iodev\network\slirp\slirp_config.h" />
<ClInclude Include="..\iodev\network\slirp\socket.h" />
<ClInclude Include="..\iodev\network\slirp\tcp.h" />
<ClInclude Include="..\iodev\network\slirp\tcp_timer.h" />

View File

@ -175,382 +175,338 @@ dist-clean: clean
# building plugins.
###########################################
e1000.o: e1000.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h ../../param_names.h \
../../pc_system.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \
../../memory/memory-bochs.h ../../gui/siminterface.h ../../gui/gui.h \
../pci.h netmod.h e1000.h
../../logio.h ../../misc/bswap.h ../../plugin.h ../../extplugin.h \
../../param_names.h ../../pc_system.h ../../bx_debug/debug.h \
../../config.h ../../osdep.h ../../memory/memory-bochs.h \
../../gui/siminterface.h ../../gui/paramtree.h ../../gui/gui.h ../pci.h \
netmod.h e1000.h
eth_fbsd.o: eth_fbsd.@CPP_SUFFIX@ ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h ../../pc_system.h \
netmod.h
../../logio.h ../../misc/bswap.h ../../plugin.h ../../extplugin.h \
../../pc_system.h netmod.h
eth_linux.o: eth_linux.@CPP_SUFFIX@ ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h ../../pc_system.h \
netmod.h
../../logio.h ../../misc/bswap.h ../../plugin.h ../../extplugin.h \
../../pc_system.h netmod.h
eth_null.o: eth_null.@CPP_SUFFIX@ ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h ../../pc_system.h \
netmod.h
../../logio.h ../../misc/bswap.h ../../plugin.h ../../extplugin.h \
../../pc_system.h netmod.h
eth_slirp.o: eth_slirp.@CPP_SUFFIX@ ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h ../../pc_system.h \
netmod.h slirp/slirp.h ../../config.h slirp/slirp_config.h slirp/debug.h \
slirp/libslirp.h slirp/compat.h ../../qemu-queue.h slirp/ip.h \
slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h slirp/udp.h \
slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h slirp/socket.h slirp/if.h \
slirp/main.h slirp/misc.h slirp/bootp.h slirp/tftp.h slirp/libslirp.h
../../logio.h ../../misc/bswap.h ../../plugin.h ../../extplugin.h \
../../pc_system.h netmod.h slirp/libslirp.h
eth_socket.o: eth_socket.@CPP_SUFFIX@ ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h ../../pc_system.h \
netmod.h
../../logio.h ../../misc/bswap.h ../../plugin.h ../../extplugin.h \
../../pc_system.h netmod.h
eth_tap.o: eth_tap.@CPP_SUFFIX@ ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h ../../pc_system.h \
netmod.h
../../logio.h ../../misc/bswap.h ../../plugin.h ../../extplugin.h \
../../pc_system.h netmod.h
eth_tuntap.o: eth_tuntap.@CPP_SUFFIX@ ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h ../../pc_system.h \
netmod.h
../../logio.h ../../misc/bswap.h ../../plugin.h ../../extplugin.h \
../../pc_system.h netmod.h
eth_vde.o: eth_vde.@CPP_SUFFIX@ ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h ../../pc_system.h \
netmod.h
../../logio.h ../../misc/bswap.h ../../plugin.h ../../extplugin.h \
../../pc_system.h netmod.h
eth_vnet.o: eth_vnet.@CPP_SUFFIX@ ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h ../../pc_system.h \
netmod.h netutil.h
../../logio.h ../../misc/bswap.h ../../plugin.h ../../extplugin.h \
../../pc_system.h netmod.h netutil.h
eth_win32.o: eth_win32.@CPP_SUFFIX@ ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h ../../pc_system.h \
netmod.h
../../logio.h ../../misc/bswap.h ../../plugin.h ../../extplugin.h \
../../pc_system.h netmod.h
ne2k.o: ne2k.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h ../../param_names.h \
../../pc_system.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \
../../memory/memory-bochs.h ../../gui/siminterface.h ../../gui/gui.h \
../pci.h ne2k.h netmod.h
../../logio.h ../../misc/bswap.h ../../plugin.h ../../extplugin.h \
../../param_names.h ../../pc_system.h ../../bx_debug/debug.h \
../../config.h ../../osdep.h ../../memory/memory-bochs.h \
../../gui/siminterface.h ../../gui/paramtree.h ../../gui/gui.h ../pci.h \
ne2k.h netmod.h
netmod.o: netmod.@CPP_SUFFIX@ ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h \
../../gui/siminterface.h netmod.h
../../logio.h ../../misc/bswap.h ../../plugin.h ../../extplugin.h \
../../gui/siminterface.h ../../gui/paramtree.h netmod.h
netutil.o: netutil.@CPP_SUFFIX@ ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../pc_system.h netmod.h netutil.h
../../logio.h ../../misc/bswap.h ../../pc_system.h netmod.h netutil.h
pcipnic.o: pcipnic.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h \
../../osdep.h ../../gui/paramtree.h ../../logio.h \
../../instrument/stubs/instrument.h ../../misc/bswap.h ../../plugin.h \
../../osdep.h ../../logio.h ../../misc/bswap.h ../../plugin.h \
../../extplugin.h ../../param_names.h ../../pc_system.h \
../../bx_debug/debug.h ../../config.h ../../osdep.h \
../../memory/memory-bochs.h ../../gui/siminterface.h ../../gui/gui.h
../../memory/memory-bochs.h ../../gui/siminterface.h \
../../gui/paramtree.h ../../gui/gui.h
slirp/arp_table.o: slirp/arp_table.@CPP_SUFFIX@ slirp/slirp.h ../../config.h \
slirp/slirp_config.h slirp/debug.h slirp/libslirp.h slirp/compat.h \
../../qemu-queue.h slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h \
slirp/tcp_timer.h slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h \
slirp/compat.h slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h \
slirp/ip6.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/bootp.o: slirp/bootp.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/slirp_config.h \
slirp/debug.h slirp/libslirp.h slirp/compat.h ../../qemu-queue.h \
slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h slirp/socket.h \
slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h slirp/tftp.h
slirp/cksum.o: slirp/cksum.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/slirp_config.h \
slirp/debug.h slirp/libslirp.h slirp/compat.h ../../qemu-queue.h \
slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h slirp/socket.h \
slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h slirp/tftp.h
slirp/compat.o: slirp/compat.@CPP_SUFFIX@ slirp/slirp.h ../../config.h \
slirp/slirp_config.h slirp/debug.h slirp/libslirp.h slirp/compat.h \
../../qemu-queue.h slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h \
slirp/tcp_timer.h slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h \
slirp/bootp.o: slirp/bootp.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/compat.h \
slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h slirp/ip6.h \
slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h slirp/udp.h \
slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/cksum.o: slirp/cksum.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/compat.h \
slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h slirp/ip6.h \
slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h slirp/udp.h \
slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/dnssearch.o: slirp/dnssearch.@CPP_SUFFIX@ slirp/slirp.h ../../config.h \
slirp/slirp_config.h slirp/debug.h slirp/libslirp.h slirp/compat.h \
../../qemu-queue.h slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h \
slirp/tcp_timer.h slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h \
slirp/compat.h slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h \
slirp/ip6.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/if.o: slirp/if.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/slirp_config.h \
slirp/debug.h slirp/libslirp.h slirp/compat.h ../../qemu-queue.h \
slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h slirp/socket.h \
slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h slirp/tftp.h \
../iodev.h ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h ../../param_names.h \
../../pc_system.h ../../bx_debug/debug.h ../../osdep.h \
../../memory/memory-bochs.h ../../gui/siminterface.h ../../gui/gui.h
slirp/ip_icmp.o: slirp/ip_icmp.@CPP_SUFFIX@ slirp/slirp.h ../../config.h \
slirp/slirp_config.h slirp/debug.h slirp/libslirp.h slirp/compat.h \
../../qemu-queue.h slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h \
slirp/tcp_timer.h slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h \
slirp/if.o: slirp/if.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/compat.h \
slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h slirp/ip6.h \
slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h slirp/udp.h \
slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/ip_input.o: slirp/ip_input.@CPP_SUFFIX@ slirp/slirp.h ../../config.h \
slirp/slirp_config.h slirp/debug.h slirp/libslirp.h slirp/compat.h \
../../qemu-queue.h slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h \
slirp/tcp_timer.h slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h \
slirp/ip_icmp.o: slirp/ip_icmp.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/compat.h \
slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h slirp/ip6.h \
slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h slirp/udp.h \
slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/ip_input.o: slirp/ip_input.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/compat.h \
slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h slirp/ip6.h \
slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h slirp/udp.h \
slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/ip_output.o: slirp/ip_output.@CPP_SUFFIX@ slirp/slirp.h ../../config.h \
slirp/slirp_config.h slirp/debug.h slirp/libslirp.h slirp/compat.h \
../../qemu-queue.h slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h \
slirp/tcp_timer.h slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h \
slirp/compat.h slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h \
slirp/ip6.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/mbuf.o: slirp/mbuf.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/slirp_config.h \
slirp/debug.h slirp/libslirp.h slirp/compat.h ../../qemu-queue.h \
slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h slirp/socket.h \
slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h slirp/tftp.h
slirp/misc.o: slirp/misc.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/slirp_config.h \
slirp/debug.h slirp/libslirp.h slirp/compat.h ../../qemu-queue.h \
slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h slirp/socket.h \
slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h slirp/tftp.h
slirp/sbuf.o: slirp/sbuf.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/slirp_config.h \
slirp/debug.h slirp/libslirp.h slirp/compat.h ../../qemu-queue.h \
slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h slirp/socket.h \
slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h slirp/tftp.h
slirp/slirp.o: slirp/slirp.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/slirp_config.h \
slirp/debug.h slirp/libslirp.h slirp/compat.h ../../qemu-queue.h \
slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h slirp/socket.h \
slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h slirp/tftp.h \
../iodev.h ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h ../../param_names.h \
../../pc_system.h ../../bx_debug/debug.h ../../osdep.h \
../../memory/memory-bochs.h ../../gui/siminterface.h ../../gui/gui.h
slirp/socket.o: slirp/socket.@CPP_SUFFIX@ slirp/slirp.h ../../config.h \
slirp/slirp_config.h slirp/debug.h slirp/libslirp.h slirp/compat.h \
../../qemu-queue.h slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h \
slirp/tcp_timer.h slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h \
slirp/mbuf.o: slirp/mbuf.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/compat.h \
slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h slirp/ip6.h \
slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h slirp/udp.h \
slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/misc.o: slirp/misc.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/compat.h \
slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h slirp/ip6.h \
slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h slirp/udp.h \
slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/sbuf.o: slirp/sbuf.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/compat.h \
slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h slirp/ip6.h \
slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h slirp/udp.h \
slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/slirp.o: slirp/slirp.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/compat.h \
slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h slirp/ip6.h \
slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h slirp/udp.h \
slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/socket.o: slirp/socket.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/compat.h \
slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h slirp/ip6.h \
slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h slirp/udp.h \
slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/tcp_input.o: slirp/tcp_input.@CPP_SUFFIX@ slirp/slirp.h ../../config.h \
slirp/slirp_config.h slirp/debug.h slirp/libslirp.h slirp/compat.h \
../../qemu-queue.h slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h \
slirp/tcp_timer.h slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h \
slirp/compat.h slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h \
slirp/ip6.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/tcp_output.o: slirp/tcp_output.@CPP_SUFFIX@ slirp/slirp.h ../../config.h \
slirp/slirp_config.h slirp/debug.h slirp/libslirp.h slirp/compat.h \
../../qemu-queue.h slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h \
slirp/tcp_timer.h slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h \
slirp/compat.h slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h \
slirp/ip6.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/tcp_subr.o: slirp/tcp_subr.@CPP_SUFFIX@ slirp/slirp.h ../../config.h \
slirp/slirp_config.h slirp/debug.h slirp/libslirp.h slirp/compat.h \
../../qemu-queue.h slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h \
slirp/tcp_timer.h slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h \
slirp/tcp_subr.o: slirp/tcp_subr.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/compat.h \
slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h slirp/ip6.h \
slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h slirp/udp.h \
slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/tcp_timer.o: slirp/tcp_timer.@CPP_SUFFIX@ slirp/slirp.h ../../config.h \
slirp/slirp_config.h slirp/debug.h slirp/libslirp.h slirp/compat.h \
../../qemu-queue.h slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h \
slirp/tcp_timer.h slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h \
slirp/compat.h slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h \
slirp/ip6.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/tftp.o: slirp/tftp.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/slirp_config.h \
slirp/debug.h slirp/libslirp.h slirp/compat.h ../../qemu-queue.h \
slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h slirp/socket.h \
slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h slirp/tftp.h
slirp/udp.o: slirp/udp.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/slirp_config.h \
slirp/debug.h slirp/libslirp.h slirp/compat.h ../../qemu-queue.h \
slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h slirp/socket.h \
slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h slirp/tftp.h
e1000.lo: e1000.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h ../../param_names.h \
../../pc_system.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \
../../memory/memory-bochs.h ../../gui/siminterface.h ../../gui/gui.h \
../pci.h netmod.h e1000.h
eth_fbsd.lo: eth_fbsd.@CPP_SUFFIX@ ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h ../../pc_system.h \
netmod.h
eth_linux.lo: eth_linux.@CPP_SUFFIX@ ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h ../../pc_system.h \
netmod.h
eth_null.lo: eth_null.@CPP_SUFFIX@ ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h ../../pc_system.h \
netmod.h
eth_slirp.lo: eth_slirp.@CPP_SUFFIX@ ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h ../../pc_system.h \
netmod.h slirp/slirp.h ../../config.h slirp/slirp_config.h slirp/debug.h \
slirp/libslirp.h slirp/compat.h ../../qemu-queue.h slirp/ip.h \
slirp/tftp.o: slirp/tftp.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/compat.h \
slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h slirp/ip6.h \
slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h slirp/udp.h \
slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h slirp/socket.h slirp/if.h \
slirp/main.h slirp/misc.h slirp/bootp.h slirp/tftp.h slirp/libslirp.h
slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/udp.o: slirp/udp.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/compat.h \
slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h slirp/ip6.h \
slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h slirp/udp.h \
slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/util.o: slirp/util.@CPP_SUFFIX@ ../../config.h slirp/util.h slirp/libslirp.h
e1000.lo: e1000.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h ../../osdep.h \
../../logio.h ../../misc/bswap.h ../../plugin.h ../../extplugin.h \
../../param_names.h ../../pc_system.h ../../bx_debug/debug.h \
../../config.h ../../osdep.h ../../memory/memory-bochs.h \
../../gui/siminterface.h ../../gui/paramtree.h ../../gui/gui.h ../pci.h \
netmod.h e1000.h
eth_fbsd.lo: eth_fbsd.@CPP_SUFFIX@ ../../bochs.h ../../config.h ../../osdep.h \
../../logio.h ../../misc/bswap.h ../../plugin.h ../../extplugin.h \
../../pc_system.h netmod.h
eth_linux.lo: eth_linux.@CPP_SUFFIX@ ../../bochs.h ../../config.h ../../osdep.h \
../../logio.h ../../misc/bswap.h ../../plugin.h ../../extplugin.h \
../../pc_system.h netmod.h
eth_null.lo: eth_null.@CPP_SUFFIX@ ../../bochs.h ../../config.h ../../osdep.h \
../../logio.h ../../misc/bswap.h ../../plugin.h ../../extplugin.h \
../../pc_system.h netmod.h
eth_slirp.lo: eth_slirp.@CPP_SUFFIX@ ../../bochs.h ../../config.h ../../osdep.h \
../../logio.h ../../misc/bswap.h ../../plugin.h ../../extplugin.h \
../../pc_system.h netmod.h slirp/libslirp.h
eth_socket.lo: eth_socket.@CPP_SUFFIX@ ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h ../../pc_system.h \
netmod.h
../../logio.h ../../misc/bswap.h ../../plugin.h ../../extplugin.h \
../../pc_system.h netmod.h
eth_tap.lo: eth_tap.@CPP_SUFFIX@ ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h ../../pc_system.h \
netmod.h
../../logio.h ../../misc/bswap.h ../../plugin.h ../../extplugin.h \
../../pc_system.h netmod.h
eth_tuntap.lo: eth_tuntap.@CPP_SUFFIX@ ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h ../../pc_system.h \
netmod.h
../../logio.h ../../misc/bswap.h ../../plugin.h ../../extplugin.h \
../../pc_system.h netmod.h
eth_vde.lo: eth_vde.@CPP_SUFFIX@ ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h ../../pc_system.h \
netmod.h
../../logio.h ../../misc/bswap.h ../../plugin.h ../../extplugin.h \
../../pc_system.h netmod.h
eth_vnet.lo: eth_vnet.@CPP_SUFFIX@ ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h ../../pc_system.h \
netmod.h netutil.h
../../logio.h ../../misc/bswap.h ../../plugin.h ../../extplugin.h \
../../pc_system.h netmod.h netutil.h
eth_win32.lo: eth_win32.@CPP_SUFFIX@ ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h ../../pc_system.h \
netmod.h
../../logio.h ../../misc/bswap.h ../../plugin.h ../../extplugin.h \
../../pc_system.h netmod.h
ne2k.lo: ne2k.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h ../../param_names.h \
../../pc_system.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \
../../memory/memory-bochs.h ../../gui/siminterface.h ../../gui/gui.h \
../pci.h ne2k.h netmod.h
../../logio.h ../../misc/bswap.h ../../plugin.h ../../extplugin.h \
../../param_names.h ../../pc_system.h ../../bx_debug/debug.h \
../../config.h ../../osdep.h ../../memory/memory-bochs.h \
../../gui/siminterface.h ../../gui/paramtree.h ../../gui/gui.h ../pci.h \
ne2k.h netmod.h
netmod.lo: netmod.@CPP_SUFFIX@ ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h \
../../gui/siminterface.h netmod.h
../../logio.h ../../misc/bswap.h ../../plugin.h ../../extplugin.h \
../../gui/siminterface.h ../../gui/paramtree.h netmod.h
netutil.lo: netutil.@CPP_SUFFIX@ ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../pc_system.h netmod.h netutil.h
../../logio.h ../../misc/bswap.h ../../pc_system.h netmod.h netutil.h
pcipnic.lo: pcipnic.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h \
../../osdep.h ../../gui/paramtree.h ../../logio.h \
../../instrument/stubs/instrument.h ../../misc/bswap.h ../../plugin.h \
../../osdep.h ../../logio.h ../../misc/bswap.h ../../plugin.h \
../../extplugin.h ../../param_names.h ../../pc_system.h \
../../bx_debug/debug.h ../../config.h ../../osdep.h \
../../memory/memory-bochs.h ../../gui/siminterface.h ../../gui/gui.h
../../memory/memory-bochs.h ../../gui/siminterface.h \
../../gui/paramtree.h ../../gui/gui.h
slirp/arp_table.lo: slirp/arp_table.@CPP_SUFFIX@ slirp/slirp.h ../../config.h \
slirp/slirp_config.h slirp/debug.h slirp/libslirp.h slirp/compat.h \
../../qemu-queue.h slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h \
slirp/tcp_timer.h slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h \
slirp/compat.h slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h \
slirp/ip6.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/bootp.lo: slirp/bootp.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/slirp_config.h \
slirp/debug.h slirp/libslirp.h slirp/compat.h ../../qemu-queue.h \
slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h slirp/socket.h \
slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h slirp/tftp.h
slirp/cksum.lo: slirp/cksum.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/slirp_config.h \
slirp/debug.h slirp/libslirp.h slirp/compat.h ../../qemu-queue.h \
slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h slirp/socket.h \
slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h slirp/tftp.h
slirp/compat.lo: slirp/compat.@CPP_SUFFIX@ slirp/slirp.h ../../config.h \
slirp/slirp_config.h slirp/debug.h slirp/libslirp.h slirp/compat.h \
../../qemu-queue.h slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h \
slirp/tcp_timer.h slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h \
slirp/bootp.lo: slirp/bootp.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/compat.h \
slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h slirp/ip6.h \
slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h slirp/udp.h \
slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/cksum.lo: slirp/cksum.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/compat.h \
slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h slirp/ip6.h \
slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h slirp/udp.h \
slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/dnssearch.lo: slirp/dnssearch.@CPP_SUFFIX@ slirp/slirp.h ../../config.h \
slirp/slirp_config.h slirp/debug.h slirp/libslirp.h slirp/compat.h \
../../qemu-queue.h slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h \
slirp/tcp_timer.h slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h \
slirp/compat.h slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h \
slirp/ip6.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/if.lo: slirp/if.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/slirp_config.h \
slirp/debug.h slirp/libslirp.h slirp/compat.h ../../qemu-queue.h \
slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h slirp/socket.h \
slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h slirp/tftp.h \
../iodev.h ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h ../../param_names.h \
../../pc_system.h ../../bx_debug/debug.h ../../osdep.h \
../../memory/memory-bochs.h ../../gui/siminterface.h ../../gui/gui.h
slirp/ip_icmp.lo: slirp/ip_icmp.@CPP_SUFFIX@ slirp/slirp.h ../../config.h \
slirp/slirp_config.h slirp/debug.h slirp/libslirp.h slirp/compat.h \
../../qemu-queue.h slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h \
slirp/tcp_timer.h slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h \
slirp/if.lo: slirp/if.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/compat.h \
slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h slirp/ip6.h \
slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h slirp/udp.h \
slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/ip_input.lo: slirp/ip_input.@CPP_SUFFIX@ slirp/slirp.h ../../config.h \
slirp/slirp_config.h slirp/debug.h slirp/libslirp.h slirp/compat.h \
../../qemu-queue.h slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h \
slirp/tcp_timer.h slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h \
slirp/ip_icmp.lo: slirp/ip_icmp.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/compat.h \
slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h slirp/ip6.h \
slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h slirp/udp.h \
slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/ip_input.lo: slirp/ip_input.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/compat.h \
slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h slirp/ip6.h \
slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h slirp/udp.h \
slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/ip_output.lo: slirp/ip_output.@CPP_SUFFIX@ slirp/slirp.h ../../config.h \
slirp/slirp_config.h slirp/debug.h slirp/libslirp.h slirp/compat.h \
../../qemu-queue.h slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h \
slirp/tcp_timer.h slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h \
slirp/compat.h slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h \
slirp/ip6.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/mbuf.lo: slirp/mbuf.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/slirp_config.h \
slirp/debug.h slirp/libslirp.h slirp/compat.h ../../qemu-queue.h \
slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h slirp/socket.h \
slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h slirp/tftp.h
slirp/misc.lo: slirp/misc.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/slirp_config.h \
slirp/debug.h slirp/libslirp.h slirp/compat.h ../../qemu-queue.h \
slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h slirp/socket.h \
slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h slirp/tftp.h
slirp/sbuf.lo: slirp/sbuf.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/slirp_config.h \
slirp/debug.h slirp/libslirp.h slirp/compat.h ../../qemu-queue.h \
slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h slirp/socket.h \
slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h slirp/tftp.h
slirp/slirp.lo: slirp/slirp.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/slirp_config.h \
slirp/debug.h slirp/libslirp.h slirp/compat.h ../../qemu-queue.h \
slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h slirp/socket.h \
slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h slirp/tftp.h \
../iodev.h ../../bochs.h ../../config.h ../../osdep.h \
../../gui/paramtree.h ../../logio.h ../../instrument/stubs/instrument.h \
../../misc/bswap.h ../../plugin.h ../../extplugin.h ../../param_names.h \
../../pc_system.h ../../bx_debug/debug.h ../../osdep.h \
../../memory/memory-bochs.h ../../gui/siminterface.h ../../gui/gui.h
slirp/socket.lo: slirp/socket.@CPP_SUFFIX@ slirp/slirp.h ../../config.h \
slirp/slirp_config.h slirp/debug.h slirp/libslirp.h slirp/compat.h \
../../qemu-queue.h slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h \
slirp/tcp_timer.h slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h \
slirp/mbuf.lo: slirp/mbuf.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/compat.h \
slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h slirp/ip6.h \
slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h slirp/udp.h \
slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/misc.lo: slirp/misc.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/compat.h \
slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h slirp/ip6.h \
slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h slirp/udp.h \
slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/sbuf.lo: slirp/sbuf.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/compat.h \
slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h slirp/ip6.h \
slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h slirp/udp.h \
slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/slirp.lo: slirp/slirp.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/compat.h \
slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h slirp/ip6.h \
slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h slirp/udp.h \
slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/socket.lo: slirp/socket.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/compat.h \
slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h slirp/ip6.h \
slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h slirp/udp.h \
slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/tcp_input.lo: slirp/tcp_input.@CPP_SUFFIX@ slirp/slirp.h ../../config.h \
slirp/slirp_config.h slirp/debug.h slirp/libslirp.h slirp/compat.h \
../../qemu-queue.h slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h \
slirp/tcp_timer.h slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h \
slirp/compat.h slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h \
slirp/ip6.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/tcp_output.lo: slirp/tcp_output.@CPP_SUFFIX@ slirp/slirp.h ../../config.h \
slirp/slirp_config.h slirp/debug.h slirp/libslirp.h slirp/compat.h \
../../qemu-queue.h slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h \
slirp/tcp_timer.h slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h \
slirp/compat.h slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h \
slirp/ip6.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/tcp_subr.lo: slirp/tcp_subr.@CPP_SUFFIX@ slirp/slirp.h ../../config.h \
slirp/slirp_config.h slirp/debug.h slirp/libslirp.h slirp/compat.h \
../../qemu-queue.h slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h \
slirp/tcp_timer.h slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h \
slirp/tcp_subr.lo: slirp/tcp_subr.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/compat.h \
slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h slirp/ip6.h \
slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h slirp/udp.h \
slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/tcp_timer.lo: slirp/tcp_timer.@CPP_SUFFIX@ slirp/slirp.h ../../config.h \
slirp/slirp_config.h slirp/debug.h slirp/libslirp.h slirp/compat.h \
../../qemu-queue.h slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h \
slirp/tcp_timer.h slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h \
slirp/compat.h slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h \
slirp/ip6.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/tftp.lo: slirp/tftp.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/slirp_config.h \
slirp/debug.h slirp/libslirp.h slirp/compat.h ../../qemu-queue.h \
slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h slirp/socket.h \
slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h slirp/tftp.h
slirp/udp.lo: slirp/udp.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/slirp_config.h \
slirp/debug.h slirp/libslirp.h slirp/compat.h ../../qemu-queue.h \
slirp/ip.h slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h \
slirp/udp.h slirp/ip_icmp.h slirp/mbuf.h slirp/sbuf.h slirp/socket.h \
slirp/if.h slirp/main.h slirp/misc.h slirp/bootp.h slirp/tftp.h
slirp/tftp.lo: slirp/tftp.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/compat.h \
slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h slirp/ip6.h \
slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h slirp/udp.h \
slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/udp.lo: slirp/udp.@CPP_SUFFIX@ slirp/slirp.h ../../config.h slirp/compat.h \
slirp/debug.h slirp/util.h slirp/libslirp.h slirp/ip.h slirp/ip6.h \
slirp/tcp.h slirp/tcp_var.h slirp/tcpip.h slirp/tcp_timer.h slirp/udp.h \
slirp/ip_icmp.h slirp/ip6_icmp.h slirp/mbuf.h slirp/sbuf.h \
slirp/socket.h slirp/misc.h slirp/if.h slirp/main.h slirp/bootp.h \
slirp/tftp.h
slirp/util.lo: slirp/util.@CPP_SUFFIX@ ../../config.h slirp/util.h slirp/libslirp.h

View File

@ -39,4 +39,7 @@
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
#endif
#define BX_STATIC_ASSERT(s) \
static_assert (s, "Invalid structure size");
#endif

View File

@ -12,12 +12,12 @@
#define DBG_TFTP (1 << 3)
#define DBG_VERBOSE_CALL (1 << 4)
#define dfd stderr
extern int slirp_debug;
#ifdef DEBUG
#define dfd stderr
#define DEBUG_CALL(x) if (slirp_debug & DBG_CALL) { fprintf(dfd, "%s...\n", x); fflush(dfd); }
#define DEBUG_ARG(x, y) if (slirp_debug & DBG_CALL) { fputc(' ', dfd); fprintf(dfd, x, y); fputc('\n', dfd); fflush(dfd); }
#define DEBUG_ARGS(x) if (slirp_debug & DBG_CALL) { fprintf x ; fflush(dfd); }

View File

@ -178,7 +178,7 @@ struct ip_timestamp {
#define IP_MSS 576 /* default maximum segment size */
#if SIZEOF_CHAR_P == 4
#if SIZEOF_INT_P == 4
SLIRP_PACKED_BEGIN
struct mbuf_ptr {
struct mbuf *mptr;
@ -212,7 +212,6 @@ struct ipovly {
* being reassembled is attached to one of these structures.
* They are timed out after ipq_ttl drops to 0, and may also
* be reclaimed if memory becomes tight.
* size 28 bytes
*/
struct ipq {
struct qlink frag_link; /* to ip headers of fragments */
@ -221,7 +220,7 @@ struct ipq {
uint8_t ipq_p; /* protocol of this fragment */
uint16_t ipq_id; /* sequence id for reassembly */
struct in_addr ipq_src,ipq_dst;
} GCC_ATTRIBUTE((packed));
};
/*
* Ip header, when holding a fragment.
@ -231,7 +230,7 @@ struct ipq {
struct ipasfrag {
struct qlink ipf_link;
struct ip ipf_ip;
} GCC_ATTRIBUTE((packed));
};
#define ipf_off ipf_ip.ip_off
#define ipf_tos ipf_ip.ip_tos

View File

@ -209,4 +209,13 @@ struct ip6_pseudohdr {
uint8_t ih_nh; /* next header */
};
/*
* We don't want to mark these ip6 structs as packed as they are naturally
* correctly aligned; instead assert that there is no stray padding.
* If we marked the struct as packed then we would be unable to take
* the address of any of the fields in it.
*/
BX_STATIC_ASSERT(sizeof(struct ip6) == 40);
BX_STATIC_ASSERT(sizeof(struct ip6_pseudohdr) == 40);
#endif

View File

@ -0,0 +1,238 @@
/* SPDX-License-Identifier: BSD-3-Clause */
/*
* Copyright (c) 2013
* Guillaume Subiron, Yann Bordenave, Serigne Modou Wagne.
*/
#ifndef SLIRP_IP6_ICMP_H
#define SLIRP_IP6_ICMP_H
/*
* Interface Control Message Protocol version 6 Definitions.
* Per RFC 4443, March 2006.
*
* Network Discover Protocol Definitions.
* Per RFC 4861, September 2007.
*/
struct icmp6_echo { /* Echo Messages */
uint16_t id;
uint16_t seq_num;
};
union icmp6_error_body {
uint32_t unused;
uint32_t pointer;
uint32_t mtu;
};
/*
* NDP Messages
*/
struct ndp_rs { /* Router Solicitation Message */
uint32_t reserved;
};
struct ndp_ra { /* Router Advertisement Message */
uint8_t chl; /* Cur Hop Limit */
#if defined(BX_BIG_ENDIAN) && !defined(_MSC_VER)
uint8_t M : 1, O : 1, reserved : 6;
#else
uint8_t reserved : 6, O : 1, M : 1;
#endif
uint16_t lifetime; /* Router Lifetime */
uint32_t reach_time; /* Reachable Time */
uint32_t retrans_time; /* Retrans Timer */
};
BX_STATIC_ASSERT(sizeof(struct ndp_ra) == 12);
struct ndp_ns { /* Neighbor Solicitation Message */
uint32_t reserved;
struct in6_addr target; /* Target Address */
};
BX_STATIC_ASSERT(sizeof(struct ndp_ns) == 20);
struct ndp_na { /* Neighbor Advertisement Message */
#if defined(BX_BIG_ENDIAN) && !defined(_MSC_VER)
uint8_t R : 1, /* Router Flag */
S : 1, /* Solicited Flag */
O : 1, /* Override Flag */
reserved_1 : 5;
#else
uint8_t reserved_1 : 5, O : 1, S : 1, R : 1;
#endif
uint8_t reserved_2;
uint16_t reserved_3;
struct in6_addr target; /* Target Address */
};
BX_STATIC_ASSERT(sizeof(struct ndp_na) == 20);
struct ndp_redirect {
uint32_t reserved;
struct in6_addr target; /* Target Address */
struct in6_addr dest; /* Destination Address */
};
BX_STATIC_ASSERT(sizeof(struct ndp_redirect) == 36);
/*
* Structure of an icmpv6 header.
*/
struct icmp6 {
uint8_t icmp6_type; /* type of message, see below */
uint8_t icmp6_code; /* type sub code */
uint16_t icmp6_cksum; /* ones complement cksum of struct */
union {
union icmp6_error_body error_body;
struct icmp6_echo echo;
struct ndp_rs ndp_rs;
struct ndp_ra ndp_ra;
struct ndp_ns ndp_ns;
struct ndp_na ndp_na;
struct ndp_redirect ndp_redirect;
} icmp6_body;
#define icmp6_err icmp6_body.error_body
#define icmp6_echo icmp6_body.echo
#define icmp6_nrs icmp6_body.ndp_rs
#define icmp6_nra icmp6_body.ndp_ra
#define icmp6_nns icmp6_body.ndp_ns
#define icmp6_nna icmp6_body.ndp_na
#define icmp6_redirect icmp6_body.ndp_redirect
};
BX_STATIC_ASSERT(sizeof(struct icmp6) == 40);
#define ICMP6_MINLEN 4
#define ICMP6_ERROR_MINLEN 8
#define ICMP6_ECHO_MINLEN 8
#define ICMP6_NDP_RS_MINLEN 8
#define ICMP6_NDP_RA_MINLEN 16
#define ICMP6_NDP_NS_MINLEN 24
#define ICMP6_NDP_NA_MINLEN 24
#define ICMP6_NDP_REDIRECT_MINLEN 40
/*
* NDP Options
*/
SLIRP_PACKED_BEGIN
struct ndpopt {
uint8_t ndpopt_type; /* Option type */
uint8_t ndpopt_len; /* /!\ In units of 8 octets */
union {
unsigned char linklayer_addr[6]; /* Source/Target Link-layer */
#define ndpopt_linklayer ndpopt_body.linklayer_addr
SLIRP_PACKED_BEGIN
struct prefixinfo { /* Prefix Information */
uint8_t prefix_length;
#if defined(BX_BIG_ENDIAN) && !defined(_MSC_VER)
uint8_t L : 1, A : 1, reserved1 : 6;
#else
uint8_t reserved1 : 6, A : 1, L : 1;
#endif
uint32_t valid_lt; /* Valid Lifetime */
uint32_t pref_lt; /* Preferred Lifetime */
uint32_t reserved2;
struct in6_addr prefix;
} SLIRP_PACKED_END prefixinfo;
#define ndpopt_prefixinfo ndpopt_body.prefixinfo
SLIRP_PACKED_BEGIN
struct rdnss {
uint16_t reserved;
uint32_t lifetime;
struct in6_addr addr;
} SLIRP_PACKED_END rdnss;
#define ndpopt_rdnss ndpopt_body.rdnss
} ndpopt_body;
} SLIRP_PACKED_END;
/* NDP options type */
#define NDPOPT_LINKLAYER_SOURCE 1 /* Source Link-Layer Address */
#define NDPOPT_LINKLAYER_TARGET 2 /* Target Link-Layer Address */
#define NDPOPT_PREFIX_INFO 3 /* Prefix Information */
#define NDPOPT_RDNSS 25 /* Recursive DNS Server Address */
/* NDP options size, in octets. */
#define NDPOPT_LINKLAYER_LEN 8
#define NDPOPT_PREFIXINFO_LEN 32
#define NDPOPT_RDNSS_LEN 24
/*
* Definition of type and code field values.
* Per https://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xml
* Last Updated 2012-11-12
*/
/* Errors */
#define ICMP6_UNREACH 1 /* Destination Unreachable */
#define ICMP6_UNREACH_NO_ROUTE 0 /* no route to dest */
#define ICMP6_UNREACH_DEST_PROHIB 1 /* com with dest prohibited */
#define ICMP6_UNREACH_SCOPE 2 /* beyond scope of src addr */
#define ICMP6_UNREACH_ADDRESS 3 /* address unreachable */
#define ICMP6_UNREACH_PORT 4 /* port unreachable */
#define ICMP6_UNREACH_SRC_FAIL 5 /* src addr failed */
#define ICMP6_UNREACH_REJECT_ROUTE 6 /* reject route to dest */
#define ICMP6_UNREACH_SRC_HDR_ERROR 7 /* error in src routing header */
#define ICMP6_TOOBIG 2 /* Packet Too Big */
#define ICMP6_TIMXCEED 3 /* Time Exceeded */
#define ICMP6_TIMXCEED_INTRANS 0 /* hop limit exceeded in transit */
#define ICMP6_TIMXCEED_REASS 1 /* ttl=0 in reass */
#define ICMP6_PARAMPROB 4 /* Parameter Problem */
#define ICMP6_PARAMPROB_HDR_FIELD 0 /* err header field */
#define ICMP6_PARAMPROB_NXTHDR_TYPE 1 /* unrecognized Next Header type */
#define ICMP6_PARAMPROB_IPV6_OPT 2 /* unrecognized IPv6 option */
/* Informational Messages */
#define ICMP6_ECHO_REQUEST 128 /* Echo Request */
#define ICMP6_ECHO_REPLY 129 /* Echo Reply */
#define ICMP6_NDP_RS 133 /* Router Solicitation (NDP) */
#define ICMP6_NDP_RA 134 /* Router Advertisement (NDP) */
#define ICMP6_NDP_NS 135 /* Neighbor Solicitation (NDP) */
#define ICMP6_NDP_NA 136 /* Neighbor Advertisement (NDP) */
#define ICMP6_NDP_REDIRECT 137 /* Redirect Message (NDP) */
/*
* Router Configuration Variables (rfc4861#section-6)
*/
#define NDP_IsRouter 1
#define NDP_AdvSendAdvertisements 1
#define NDP_MaxRtrAdvInterval 600000
#define NDP_MinRtrAdvInterval \
((NDP_MaxRtrAdvInterval >= 9) ? NDP_MaxRtrAdvInterval / 3 : \
NDP_MaxRtrAdvInterval)
#define NDP_AdvManagedFlag 0
#define NDP_AdvOtherConfigFlag 0
#define NDP_AdvLinkMTU 0
#define NDP_AdvReachableTime 0
#define NDP_AdvRetransTime 0
#define NDP_AdvCurHopLimit 64
#define NDP_AdvDefaultLifetime ((3 * NDP_MaxRtrAdvInterval) / 1000)
#define NDP_AdvValidLifetime 86400
#define NDP_AdvOnLinkFlag 1
#define NDP_AdvPrefLifetime 14400
#define NDP_AdvAutonomousFlag 1
/* Called from slirp_new, but after other initialization */
void icmp6_post_init(Slirp *slirp);
/* Called from slirp_cleanup */
void icmp6_cleanup(Slirp *slirp);
/* Process an ICMPv6 packet from the guest */
void icmp6_input(struct mbuf *);
/* Send an ICMPv6 error related to the given packet, using the given ICMPv6 type and code, using the given source */
void icmp6_forward_error(struct mbuf *m, uint8_t type, uint8_t code, struct in6_addr *src);
/* Similar to icmp6_forward_error, but use the link-local address as source */
void icmp6_send_error(struct mbuf *m, uint8_t type, uint8_t code);
/* Send a neighbour sollicitation, to resolve the given IPV6 address */
void ndp_send_ns(Slirp *slirp, struct in6_addr addr);
/* Timer handler for router advertisement, to send it and reschedule the timer */
void ra_timer_handler(Slirp *slirp, void *unused);
#endif

View File

@ -31,8 +31,8 @@
* ip_icmp.h,v 1.4 1995/05/30 08:09:43 rgrimes Exp
*/
#ifndef _NETINET_IP_ICMP_H_
#define _NETINET_IP_ICMP_H_
#ifndef NETINET_IP_ICMP_H
#define NETINET_IP_ICMP_H
/*
* Interface Control Message Protocol Definitions.
@ -45,32 +45,32 @@ typedef uint32_t n_time;
* Structure of an icmp header.
*/
struct icmp {
u_char icmp_type; /* type of message, see below */
u_char icmp_code; /* type sub code */
u_short icmp_cksum; /* ones complement cksum of struct */
union {
u_char ih_pptr; /* ICMP_PARAMPROB */
struct in_addr ih_gwaddr; /* ICMP_REDIRECT */
struct ih_idseq {
u_short icd_id;
u_short icd_seq;
} ih_idseq;
int ih_void;
uint8_t icmp_type; /* type of message, see below */
uint8_t icmp_code; /* type sub code */
uint16_t icmp_cksum; /* ones complement cksum of struct */
union {
uint8_t ih_pptr; /* ICMP_PARAMPROB */
struct in_addr ih_gwaddr; /* ICMP_REDIRECT */
struct ih_idseq {
uint16_t icd_id;
uint16_t icd_seq;
} ih_idseq;
int ih_void;
/* ICMP_UNREACH_NEEDFRAG -- Path MTU Discovery (RFC1191) */
struct ih_pmtu {
u_short ipm_void;
u_short ipm_nextmtu;
} ih_pmtu;
} icmp_hun;
#define icmp_pptr icmp_hun.ih_pptr
#define icmp_gwaddr icmp_hun.ih_gwaddr
#define icmp_id icmp_hun.ih_idseq.icd_id
#define icmp_seq icmp_hun.ih_idseq.icd_seq
#define icmp_void icmp_hun.ih_void
#define icmp_pmvoid icmp_hun.ih_pmtu.ipm_void
#define icmp_nextmtu icmp_hun.ih_pmtu.ipm_nextmtu
union {
/* ICMP_UNREACH_NEEDFRAG -- Path MTU Discovery (RFC1191) */
struct ih_pmtu {
uint16_t ipm_void;
uint16_t ipm_nextmtu;
} ih_pmtu;
} icmp_hun;
#define icmp_pptr icmp_hun.ih_pptr
#define icmp_gwaddr icmp_hun.ih_gwaddr
#define icmp_id icmp_hun.ih_idseq.icd_id
#define icmp_seq icmp_hun.ih_idseq.icd_seq
#define icmp_void icmp_hun.ih_void
#define icmp_pmvoid icmp_hun.ih_pmtu.ipm_void
#define icmp_nextmtu icmp_hun.ih_pmtu.ipm_nextmtu
union {
struct id_ts {
n_time its_otime;
n_time its_rtime;
@ -82,13 +82,13 @@ struct icmp {
} id_ip;
uint32_t id_mask;
char id_data[1];
} icmp_dun;
#define icmp_otime icmp_dun.id_ts.its_otime
#define icmp_rtime icmp_dun.id_ts.its_rtime
#define icmp_ttime icmp_dun.id_ts.its_ttime
#define icmp_ip icmp_dun.id_ip.idi_ip
#define icmp_mask icmp_dun.id_mask
#define icmp_data icmp_dun.id_data
} icmp_dun;
#define icmp_otime icmp_dun.id_ts.its_otime
#define icmp_rtime icmp_dun.id_ts.its_rtime
#define icmp_ttime icmp_dun.id_ts.its_ttime
#define icmp_ip icmp_dun.id_ip.idi_ip
#define icmp_mask icmp_dun.id_mask
#define icmp_data icmp_dun.id_data
};
/*
@ -99,34 +99,34 @@ struct icmp {
* data have been returned, since we need to check the returned
* ip header length.
*/
#define ICMP_MINLEN 8 /* abs minimum */
#define ICMP_TSLEN (8 + 3 * sizeof (n_time)) /* timestamp */
#define ICMP_MASKLEN 12 /* address mask */
#define ICMP_ADVLENMIN (8 + sizeof (struct ip) + 8) /* min */
#define ICMP_ADVLEN(p) (8 + ((p)->icmp_ip.ip_hl << 2) + 8)
/* N.B.: must separately check that ip_hl >= 5 */
#define ICMP_MINLEN 8 /* abs minimum */
#define ICMP_TSLEN (8 + 3 * sizeof (n_time)) /* timestamp */
#define ICMP_MASKLEN 12 /* address mask */
#define ICMP_ADVLENMIN (8 + sizeof (struct ip) + 8) /* min */
#define ICMP_ADVLEN(p) (8 + ((p)->icmp_ip.ip_hl << 2) + 8)
/* N.B.: must separately check that ip_hl >= 5 */
/*
* Definition of type and code field values.
*/
#define ICMP_ECHOREPLY 0 /* echo reply */
#define ICMP_UNREACH 3 /* dest unreachable, codes: */
#define ICMP_UNREACH_NET 0 /* bad net */
#define ICMP_UNREACH_HOST 1 /* bad host */
#define ICMP_UNREACH_PROTOCOL 2 /* bad protocol */
#define ICMP_UNREACH_PORT 3 /* bad port */
#define ICMP_UNREACH_NEEDFRAG 4 /* IP_DF caused drop */
#define ICMP_UNREACH_SRCFAIL 5 /* src route failed */
#define ICMP_UNREACH_NET_UNKNOWN 6 /* unknown net */
#define ICMP_UNREACH_HOST_UNKNOWN 7 /* unknown host */
#define ICMP_UNREACH_ISOLATED 8 /* src host isolated */
#define ICMP_UNREACH_NET_PROHIB 9 /* prohibited access */
#define ICMP_UNREACH_HOST_PROHIB 10 /* ditto */
#define ICMP_UNREACH_TOSNET 11 /* bad tos for net */
#define ICMP_UNREACH_TOSHOST 12 /* bad tos for host */
#define ICMP_SOURCEQUENCH 4 /* packet lost, slow down */
#define ICMP_REDIRECT 5 /* shorter route, codes: */
#define ICMP_REDIRECT_NET 0 /* for network */
#define ICMP_ECHOREPLY 0 /* echo reply */
#define ICMP_UNREACH 3 /* dest unreachable, codes: */
#define ICMP_UNREACH_NET 0 /* bad net */
#define ICMP_UNREACH_HOST 1 /* bad host */
#define ICMP_UNREACH_PROTOCOL 2 /* bad protocol */
#define ICMP_UNREACH_PORT 3 /* bad port */
#define ICMP_UNREACH_NEEDFRAG 4 /* IP_DF caused drop */
#define ICMP_UNREACH_SRCFAIL 5 /* src route failed */
#define ICMP_UNREACH_NET_UNKNOWN 6 /* unknown net */
#define ICMP_UNREACH_HOST_UNKNOWN 7 /* unknown host */
#define ICMP_UNREACH_ISOLATED 8 /* src host isolated */
#define ICMP_UNREACH_NET_PROHIB 9 /* prohibited access */
#define ICMP_UNREACH_HOST_PROHIB 10 /* ditto */
#define ICMP_UNREACH_TOSNET 11 /* bad tos for net */
#define ICMP_UNREACH_TOSHOST 12 /* bad tos for host */
#define ICMP_SOURCEQUENCH 4 /* packet lost, slow down */
#define ICMP_REDIRECT 5 /* shorter route, codes: */
#define ICMP_REDIRECT_NET 0 /* for network */
#define ICMP_REDIRECT_HOST 1 /* for host */
#define ICMP_REDIRECT_TOSNET 2 /* for tos and net */
#define ICMP_REDIRECT_TOSHOST 3 /* for tos and host */
@ -145,19 +145,19 @@ struct icmp {
#define ICMP_MASKREQ 17 /* address mask request */
#define ICMP_MASKREPLY 18 /* address mask reply */
#define ICMP_MAXTYPE 18
#define ICMP_MAXTYPE 18
#define ICMP_INFOTYPE(type) \
((type) == ICMP_ECHOREPLY || (type) == ICMP_ECHO || \
(type) == ICMP_ROUTERADVERT || (type) == ICMP_ROUTERSOLICIT || \
(type) == ICMP_TSTAMP || (type) == ICMP_TSTAMPREPLY || \
(type) == ICMP_IREQ || (type) == ICMP_IREQREPLY || \
(type) == ICMP_MASKREQ || (type) == ICMP_MASKREPLY)
((type) == ICMP_ECHOREPLY || (type) == ICMP_ECHO || \
(type) == ICMP_ROUTERADVERT || (type) == ICMP_ROUTERSOLICIT || \
(type) == ICMP_TSTAMP || (type) == ICMP_TSTAMPREPLY || \
(type) == ICMP_IREQ || (type) == ICMP_IREQREPLY || \
(type) == ICMP_MASKREQ || (type) == ICMP_MASKREPLY)
void icmp_init(Slirp *slirp);
void icmp_cleanup(Slirp *slirp);
void icmp_input(struct mbuf *, int);
void icmp_error(struct mbuf *msrc, u_char type, u_char code, int minsize,
void icmp_error(struct mbuf *msrc, uint8_t type, uint8_t code, int minsize,
const char *message);
void icmp_reflect(struct mbuf *);
void icmp_receive(struct socket *so);

View File

@ -2,13 +2,10 @@
/*
* Copyright (c) 1995 Danny Gasparovski.
*/
#ifndef SLIRP_MAIN_H
#define SLIRP_MAIN_H
#ifdef HAVE_SYS_SELECT_H
#include <sys/select.h>
#endif
#include "libslirp.h"
/* The current guest virtual time */

View File

@ -34,8 +34,6 @@
#ifndef MBUF_H
#define MBUF_H
#define MINCSIZE 4096 /* Amount to increase mbuf if too small */
/*
* Macros for type conversion
* mtod(m,t) - convert mbuf pointer to data pointer of correct type

View File

@ -39,6 +39,9 @@
int slirp_debug;
/* Define to 1 if you want KEEPALIVE timers */
bool slirp_do_keepalive;
/* host loopback address */
struct in_addr loopback_addr;
/* host loopback network mask */

View File

@ -10,7 +10,6 @@
#endif
#include "config.h"
#include "slirp_config.h"
#ifdef _WIN32
@ -59,6 +58,7 @@
#include "tcpip.h"
#include "udp.h"
#include "ip_icmp.h"
#include "ip6_icmp.h"
#include "mbuf.h"
#include "sbuf.h"
#include "socket.h"
@ -198,10 +198,17 @@ void if_start(Slirp *);
/* Get the address of the DNS server on the host side */
int get_dns_addr(struct in_addr *pdns_addr);
#define SO_OPTIONS DO_KEEPALIVE
#ifndef _WIN32
#include <netdb.h>
#endif
/* Whether we should send TCP keepalive packets */
extern bool slirp_do_keepalive;
#define TCP_MAXIDLE (TCPTV_KEEPCNT * TCPTV_KEEPINTVL)
/* dnssearch.c */
/* Translate from vdnssearch in configuration, into Slirp */
int translate_dnssearch(Slirp *s, const char ** names);
/* cksum.c */

View File

@ -1,42 +0,0 @@
/////////////////////////////////////////////////////////////////////////
// $Id$
/////////////////////////////////////////////////////////////////////////
/*
* User definable configuration options
*/
/* Define to 1 if you want KEEPALIVE timers */
#define DO_KEEPALIVE 0
/*********************************************************/
/*
* Autoconf defined configuration options
* You shouldn't need to touch any of these
*/
/* Define if you have readv */
#undef HAVE_READV
/* Define if iovec needs to be declared */
#undef DECLARE_IOVEC
#ifdef _WIN32
#define DECLARE_IOVEC
#endif
/* Define if you have sys/select.h */
#undef HAVE_SYS_SELECT_H
#ifndef _WIN32
#define HAVE_SYS_SELECT_H
#endif
/* Define to sizeof(char) */
#define SIZEOF_CHAR 1
/* Define to sizeof(short) */
#define SIZEOF_SHORT 2
/* Define to sizeof(int) */
#define SIZEOF_INT 4
/* Define to sizeof(char *) */
#define SIZEOF_CHAR_P SIZEOF_INT_P

View File

@ -164,12 +164,7 @@ soread(struct socket *so)
*/
sopreprbuf(so, iov, &n);
#ifdef HAVE_READV
nn = readv(so->s, (struct iovec *)iov, n);
DEBUG_MISC((dfd, " ... read nn = %d bytes\n", nn));
#else
nn = recv(so->s, iov[0].iov_base, iov[0].iov_len,0);
#endif
if (nn <= 0) {
if (nn < 0 && (errno == EINTR || errno == EAGAIN))
return 0;
@ -181,7 +176,6 @@ soread(struct socket *so)
}
}
#ifndef HAVE_READV
/*
* If there was no error, try and read the second time round
* We read again if n = 2 (ie, there's another part of the buffer)
@ -199,7 +193,6 @@ soread(struct socket *so)
}
DEBUG_MISC((dfd, " ... read nn = %d bytes\n", nn));
#endif
/* Update fields */
sb->sb_cc += nn;
@ -391,13 +384,7 @@ sowrite(struct socket *so)
}
/* Check if there's urgent data to send, and if so, send it */
#ifdef HAVE_READV
nn = writev(so->s, (const struct iovec *)iov, n);
DEBUG_MISC((dfd, " ... wrote nn = %d bytes\n", nn));
#else
nn = (int)slirp_send(so, iov[0].iov_base, iov[0].iov_len,0);
#endif
/* This should never happen, but people tell me it does *shrug* */
if (nn < 0 && (errno == EAGAIN || errno == EINTR))
return 0;
@ -410,7 +397,6 @@ sowrite(struct socket *so)
return -1;
}
#ifndef HAVE_READV
if (n == 2 && nn == (int)iov[0].iov_len) {
int ret;
ret = (int)slirp_send(so, iov[1].iov_base, iov[1].iov_len,0);
@ -418,7 +404,6 @@ sowrite(struct socket *so)
nn += ret;
}
DEBUG_MISC((dfd, " ... wrote nn = %d bytes\n", nn));
#endif
/* Update sbuf */
sb->sb_cc -= nn;

View File

@ -87,7 +87,8 @@ struct tcphdr {
#define TCPOPT_TIMESTAMP 8
#define TCPOPT_TSTAMP_HDR \
(TCPOPT_NOP<<24|TCPOPT_NOP<<16|TCPOPT_TIMESTAMP<<8|TCPOLEN_TIMESTAMP)
(TCPOPT_NOP << 24 | TCPOPT_NOP << 16 | TCPOPT_TIMESTAMP << 8 | \
TCPOLEN_TIMESTAMP)
#endif
#ifndef TCPOLEN_MAXSEG
@ -98,17 +99,6 @@ struct tcphdr {
#define TCPOLEN_TSTAMP_APPA (TCPOLEN_TIMESTAMP+2) /* appendix A */
#endif
/*
* Default maximum segment size for TCP.
* With an IP MSS of 576, this is 536,
* but 512 is probably more convenient.
* This should be defined as MIN(512, IP_MSS - sizeof (struct tcpiphdr)).
*
* We make this 1460 because we only care about Ethernet in the qemu context.
*/
#undef TCP_MSS
#define TCP_MSS 1460
#undef TCP_MAXWIN
#define TCP_MAXWIN 65535 /* largest value for (unscaled) window */
@ -167,8 +157,7 @@ struct tcphdr {
* send and receive from initial send and receive
* sequence numbers.
*/
#define tcp_rcvseqinit(tp) \
(tp)->rcv_adv = (tp)->rcv_nxt = (tp)->irs + 1
#define tcp_rcvseqinit(tp) (tp)->rcv_adv = (tp)->rcv_nxt = (tp)->irs + 1
#define tcp_sendseqinit(tp) \
(tp)->snd_una = (tp)->snd_nxt = (tp)->snd_max = (tp)->snd_up = (tp)->iss

View File

@ -412,7 +412,7 @@ findso:
* Reset idle time and keep-alive timer.
*/
tp->t_idle = 0;
if (SO_OPTIONS)
if (slirp_do_keepalive)
tp->t_timer[TCPT_KEEP] = TCPTV_KEEPINTVL;
else
tp->t_timer[TCPT_KEEP] = TCPTV_KEEP_IDLE;

View File

@ -264,7 +264,7 @@ tcp_timers(struct tcpcb *tp, int timer)
if (tp->t_state < TCPS_ESTABLISHED)
goto dropit;
if ((SO_OPTIONS) && tp->t_state <= TCPS_CLOSE_WAIT) {
if ((slirp_do_keepalive) && tp->t_state <= TCPS_CLOSE_WAIT) {
if (tp->t_idle >= TCPTV_KEEP_IDLE + TCP_MAXIDLE)
goto dropit;
/*

View File

@ -86,8 +86,9 @@
*/
#define TCPTV_MSL ( 5*PR_SLOWHZ) /* max seg lifetime (hah!) */
#define TCPTV_SRTTBASE 0 /* base roundtrip time;
if 0, no idea yet */
#define TCPTV_SRTTBASE \
0 /* base roundtrip time; \
if 0, no idea yet */
#define TCPTV_SRTTDFLT ( 3*PR_SLOWHZ) /* assumed RTT if no info */
#define TCPTV_PERSMIN ( 5*PR_SLOWHZ) /* retransmit persistence */
@ -109,20 +110,24 @@
/*
* Force a time value to be in a certain range.
*/
#define TCPT_RANGESET(tv, value, tvmin, tvmax) { \
(tv) = (value); \
if ((tv) < (tvmin)) \
(tv) = (tvmin); \
else if ((tv) > (tvmax)) \
(tv) = (tvmax); \
}
#define TCPT_RANGESET(tv, value, tvmin, tvmax) \
{ \
(tv) = (value); \
if ((tv) < (tvmin)) \
(tv) = (tvmin); \
else if ((tv) > (tvmax)) \
(tv) = (tvmax); \
}
extern const int tcp_backoff[];
struct tcpcb;
/* Process fast time-outs */
void tcp_fasttimo(Slirp *);
/* Process slow time-outs */
void tcp_slowtimo(Slirp *);
/* Cancel all timers for TCP tp */
void tcp_canceltimers(struct tcpcb *);
#endif