From 25b5ac91bdcddf537e3ccd78c184eda1d8486086 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ni=C3=B1o=20D=C3=ADaz?= Date: Wed, 3 Jul 2024 23:24:29 +0100 Subject: [PATCH 01/13] Fix horizontal mosaic on sprites (#2084) The code itself is correct, but the variable being read is the Y mosaic coordinate, not the X coordinate. --- src/GPU2D_Soft.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GPU2D_Soft.cpp b/src/GPU2D_Soft.cpp index cf168f82..6ad2cd3e 100644 --- a/src/GPU2D_Soft.cpp +++ b/src/GPU2D_Soft.cpp @@ -1507,7 +1507,7 @@ void SoftRenderer::ApplySpriteMosaicX() u32* objLine = OBJLine[CurUnit->Num]; - u8* curOBJXMosaicTable = MosaicTable[CurUnit->OBJMosaicSize[1]].data(); + u8* curOBJXMosaicTable = MosaicTable[CurUnit->OBJMosaicSize[0]].data(); u32 lastcolor = objLine[0]; From 1302cbdd6489ac1c4b0330822774b9b28a5865ef Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Sun, 7 Jul 2024 08:19:49 +0200 Subject: [PATCH 02/13] frontend: Restore linear interpolation for audio output resampling Also, do it smarter this time. This seems to have gone missing with the doublemelon merge. --- src/frontend/qt_sdl/EmuInstanceAudio.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/frontend/qt_sdl/EmuInstanceAudio.cpp b/src/frontend/qt_sdl/EmuInstanceAudio.cpp index 8ca7767b..21b112ea 100644 --- a/src/frontend/qt_sdl/EmuInstanceAudio.cpp +++ b/src/frontend/qt_sdl/EmuInstanceAudio.cpp @@ -40,13 +40,21 @@ int EmuInstance::audioGetNumSamplesOut(int outlen) void EmuInstance::audioResample(s16* inbuf, int inlen, s16* outbuf, int outlen, int volume) { float res_incr = inlen / (float)outlen; - float res_timer = 0; + float res_timer = -0.5; int res_pos = 0; for (int i = 0; i < outlen; i++) { - outbuf[i*2 ] = (inbuf[res_pos*2 ] * volume) >> 8; - outbuf[i*2+1] = (inbuf[res_pos*2+1] * volume) >> 8; + s16 l1 = inbuf[res_pos * 2]; + s16 l2 = inbuf[res_pos * 2 + 2]; + s16 r1 = inbuf[res_pos * 2 + 1]; + s16 r2 = inbuf[res_pos * 2 + 3]; + + float l = (float) l1 + ((l2 - l1) * res_timer); + float r = (float) r1 + ((r2 - r1) * res_timer); + + outbuf[i*2 ] = (s16) (((s32) round(l) * volume) >> 8); + outbuf[i*2+1] = (s16) (((s32) round(r) * volume) >> 8); res_timer += res_incr; while (res_timer >= 1.0) From b55eb431bdcec1c08c0ed9f8b8af9b7adc40a452 Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Sun, 7 Jul 2024 13:45:45 +0200 Subject: [PATCH 03/13] ensure that we actually link the OpenGL library on macOS --- src/frontend/qt_sdl/CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/frontend/qt_sdl/CMakeLists.txt b/src/frontend/qt_sdl/CMakeLists.txt index f4e1f6e8..2ccb92b1 100644 --- a/src/frontend/qt_sdl/CMakeLists.txt +++ b/src/frontend/qt_sdl/CMakeLists.txt @@ -121,6 +121,8 @@ elseif (APPLE) find_library(COCOA_LIB Cocoa) target_link_libraries(melonDS PRIVATE ${COCOA_LIB}) endif() + find_library(OPENGL_LIB OpenGL) + target_link_libraries(melonDS PRIVATE ${OPENGL_LIB}) target_sources(melonDS PRIVATE ../duckstation/gl/context_agl.mm ) From a82b5758bce97c9433cb694d9803c8d76d6b1a10 Mon Sep 17 00:00:00 2001 From: OverdueWeevil2 <67264530+OverdueWeevil2@users.noreply.github.com> Date: Thu, 11 Jul 2024 14:48:27 +0300 Subject: [PATCH 04/13] Update EmuInstance.cpp (#2090) --- src/frontend/qt_sdl/EmuInstance.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/frontend/qt_sdl/EmuInstance.cpp b/src/frontend/qt_sdl/EmuInstance.cpp index 8c041c3c..7de4bdec 100644 --- a/src/frontend/qt_sdl/EmuInstance.cpp +++ b/src/frontend/qt_sdl/EmuInstance.cpp @@ -1110,7 +1110,7 @@ bool EmuInstance::updateConsole(UpdateConsoleNDSArgs&& _ndsargs, UpdateConsoleGB }; auto jitargs = jitopt.GetBool("Enable") ? std::make_optional(_jitargs) : std::nullopt; #else - optional jitargs = std::nullopt; + optional jitargs = std::nullopt; #endif #ifdef GDBSTUB_ENABLED From 841e3eb0608c0a4fbd73902e5bd56ab80d06ca1e Mon Sep 17 00:00:00 2001 From: Jesse Talavera Date: Thu, 11 Jul 2024 08:02:40 -0400 Subject: [PATCH 05/13] Use `CMAKE_CURRENT_SOURCE_DIR` to set some CMake-related paths (#2089) - This prevents dependent projects that pull in melonDS via `FetchContent` from breaking --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 20e37cfd..40583949 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,8 +7,8 @@ endif() set(CMAKE_POLICY_DEFAULT_CMP0069 NEW) -set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) -set(CMAKE_USER_MAKE_RULES_OVERRIDE "${CMAKE_SOURCE_DIR}/cmake/DefaultBuildFlags.cmake") +set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) +set(CMAKE_USER_MAKE_RULES_OVERRIDE "${CMAKE_CURRENT_SOURCE_DIR}/cmake/DefaultBuildFlags.cmake") option(USE_VCPKG "Use vcpkg for dependency packages" OFF) if (USE_VCPKG) From a812a43bda0e0bcb89582e1f00a2f65685630b33 Mon Sep 17 00:00:00 2001 From: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com> Date: Thu, 11 Jul 2024 06:55:06 -0700 Subject: [PATCH 06/13] Fix various issues with firmware generation (#2058) --- src/SPI_Firmware.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/SPI_Firmware.cpp b/src/SPI_Firmware.cpp index c7a0f9d9..472500af 100644 --- a/src/SPI_Firmware.cpp +++ b/src/SPI_Firmware.cpp @@ -80,6 +80,7 @@ void Firmware::WifiAccessPoint::UpdateChecksum() Firmware::ExtendedWifiAccessPoint::ExtendedWifiAccessPoint() { + memset(Bytes, 0, sizeof(Bytes)); Data.Base = WifiAccessPoint(); UpdateChecksum(); @@ -93,6 +94,7 @@ void Firmware::ExtendedWifiAccessPoint::UpdateChecksum() Firmware::FirmwareHeader::FirmwareHeader(int consoletype) { + memset(Bytes, 0, sizeof(Bytes)); if (consoletype == 1) { ConsoleType = FirmwareConsoleType::DSi; @@ -156,7 +158,7 @@ void Firmware::FirmwareHeader::UpdateChecksum() Firmware::UserData::UserData() { - memset(Bytes, 0, 0x74); + memset(Bytes, 0, sizeof(Bytes)); Version = 5; BirthdayMonth = 1; BirthdayDay = 1; @@ -273,7 +275,8 @@ Firmware::Firmware(const u8* data, u32 length) : FirmwareBuffer(nullptr), Firmwa if (data) { FirmwareBuffer = new u8[FirmwareBufferLength]; - memcpy(FirmwareBuffer, data, FirmwareBufferLength); + memset(FirmwareBuffer, 0, FirmwareBufferLength); + memcpy(FirmwareBuffer, data, std::min(length, FirmwareBufferLength)); FirmwareMask = FirmwareBufferLength - 1; } } @@ -345,7 +348,7 @@ const Firmware::UserData& Firmware::GetEffectiveUserData() const { if (userdata0ChecksumOk && userdata1ChecksumOk) { - return userdata[0].UpdateCounter > userdata[1].UpdateCounter ? userdata[0] : userdata[1]; + return userdata[0].UpdateCounter >= userdata[1].UpdateCounter ? userdata[0] : userdata[1]; } else if (userdata0ChecksumOk) { @@ -368,7 +371,7 @@ Firmware::UserData& Firmware::GetEffectiveUserData() { if (userdata0ChecksumOk && userdata1ChecksumOk) { - return userdata[0].UpdateCounter > userdata[1].UpdateCounter ? userdata[0] : userdata[1]; + return userdata[0].UpdateCounter >= userdata[1].UpdateCounter ? userdata[0] : userdata[1]; } else if (userdata0ChecksumOk) { From 94ba7c159427c88b85806a4e099a44287681778c Mon Sep 17 00:00:00 2001 From: Jesse Talavera Date: Sun, 14 Jul 2024 11:03:21 -0400 Subject: [PATCH 07/13] Split networking code into its own target (#2091) --- .gitattributes | 18 ++++++ src/Platform.h | 3 + .../libslirp/fuzzing/IN_icmp6/ndp.pcap | 1 - .../IN_ip-header/DNS_freedesktop_1-1-1-1.pcap | 1 - .../libslirp/fuzzing/IN_ip-header/dhcp.pkt | 1 - .../fuzzing/IN_ip-header/dhcp_capture.pcap | 1 - .../fuzzing/IN_ip-header/icmp_capture.pcap | 1 - .../IN_ip-header/nc-10.0.2.2-8080.pcap | 1 - .../fuzzing/IN_ip-header/nc-ident.pcap | 1 - .../fuzzing/IN_ip-header/ping_10-0-2-2.pcap | 1 - .../fuzzing/IN_ip-header/tcp_qemucapt.pcap | 1 - .../fuzzing/IN_ip-header/tftp-get-blah.pkt | 1 - .../fuzzing/IN_ip-header/tftp_capture.pcap | 1 - .../IN_ip-header/tftp_get_libslirp-txt.pcap | 1 - .../DNS_freedesktop_1-1-1-1.pcap | 1 - .../fuzzing/IN_ip6-header/icmp_capture.pcap | 1 - .../fuzzing/IN_ip6-header/ping_10-0-2-2.pcap | 1 - .../fuzzing/IN_ip6-header/tcp_qemucapt.pcap | 1 - .../fuzzing/IN_ip6-header/tftp_capture.pcap | 1 - .../IN_ip6-header/tftp_get_libslirp-txt.pcap | 1 - src/frontend/libslirp/fuzzing/IN_tcp-d | 1 - src/frontend/libslirp/fuzzing/IN_tcp-h | 1 - src/frontend/libslirp/fuzzing/IN_tcp6-d | 1 - src/frontend/libslirp/fuzzing/IN_tcp6-h | 1 - src/frontend/libslirp/fuzzing/IN_udp-h | 1 - src/frontend/libslirp/fuzzing/IN_udp/dhcp.pkt | 1 - .../libslirp/fuzzing/IN_udp/dhcp_capture.pcap | 1 - .../libslirp/fuzzing/IN_udp/tftp-get-blah.pkt | 1 - .../libslirp/fuzzing/IN_udp/tftp_capture.pcap | 1 - .../fuzzing/IN_udp/tftp_get_libslirp-txt.pcap | 1 - src/frontend/libslirp/fuzzing/IN_udp6-h | 1 - .../fuzzing/IN_udp6/tftp_capture.pcap | 1 - .../IN_udp6/tftp_get_libslirp-txt.pcap | 1 - src/frontend/qt_sdl/CMakeLists.txt | 20 ++---- src/frontend/qt_sdl/Platform.cpp | 8 +++ src/frontend/qt_sdl/WifiSettingsDialog.cpp | 6 +- src/frontend/qt_sdl/main.cpp | 7 +- src/net/CMakeLists.txt | 20 ++++++ src/{frontend/qt_sdl => net}/LocalMP.cpp | 60 ++++++++++-------- src/{frontend/qt_sdl => net}/LocalMP.h | 0 src/{frontend/qt_sdl => net}/Net.cpp | 11 ++-- src/{frontend/qt_sdl => net}/Net.h | 8 ++- src/{frontend/qt_sdl => net}/Net_PCap.cpp | 9 +-- src/{frontend/qt_sdl => net}/Net_PCap.h | 3 +- src/{frontend/qt_sdl => net}/Net_Slirp.cpp | 0 src/{frontend/qt_sdl => net}/Net_Slirp.h | 0 .../qt_sdl => net}/PacketDispatcher.cpp | 28 ++++---- .../qt_sdl => net}/PacketDispatcher.h | 4 +- src/{frontend => net}/libslirp/.clang-format | 0 src/{frontend => net}/libslirp/.gitignore | 0 src/{frontend => net}/libslirp/.gitlab-ci.yml | 0 src/{frontend => net}/libslirp/.gitpublish | 0 src/{frontend => net}/libslirp/CHANGELOG.md | 0 src/{frontend => net}/libslirp/CMakeLists.txt | 0 src/{frontend => net}/libslirp/COPYRIGHT | 0 src/{frontend => net}/libslirp/README.md | 0 .../libslirp/fuzzing/IN_arp/arp.pcap | Bin .../libslirp/fuzzing/IN_dhcp/dhcp.pkt | Bin .../fuzzing/IN_dhcp/dhcp_capture.pcap | Bin .../fuzzing/IN_icmp/icmp_capture.pcap | Bin .../fuzzing/IN_icmp/ping_10-0-2-2.pcap | Bin .../fuzzing/IN_icmp6/icmp_capture.pcap | Bin src/net/libslirp/fuzzing/IN_icmp6/ndp.pcap | 1 + .../fuzzing/IN_icmp6/ping_10-0-2-2.pcap | Bin .../IN_ip-header/DNS_freedesktop_1-1-1-1.pcap | 1 + .../libslirp/fuzzing/IN_ip-header/dhcp.pkt | 1 + .../fuzzing/IN_ip-header/dhcp_capture.pcap | 1 + .../fuzzing/IN_ip-header/icmp_capture.pcap | 1 + .../IN_ip-header/nc-10.0.2.2-8080.pcap | 1 + .../fuzzing/IN_ip-header/nc-ident.pcap | 1 + .../fuzzing/IN_ip-header/ping_10-0-2-2.pcap | 1 + .../fuzzing/IN_ip-header/tcp_qemucapt.pcap | 1 + .../fuzzing/IN_ip-header/tftp-get-blah.pkt | 1 + .../fuzzing/IN_ip-header/tftp_capture.pcap | 1 + .../IN_ip-header/tftp_get_libslirp-txt.pcap | 1 + .../DNS_freedesktop_1-1-1-1.pcap | 1 + .../fuzzing/IN_ip6-header/icmp_capture.pcap | 1 + .../fuzzing/IN_ip6-header/ping_10-0-2-2.pcap | 1 + .../fuzzing/IN_ip6-header/tcp_qemucapt.pcap | 1 + .../fuzzing/IN_ip6-header/tftp_capture.pcap | 1 + .../IN_ip6-header/tftp_get_libslirp-txt.pcap | 1 + .../libslirp/fuzzing/IN_ndp/ndp.pcap | Bin src/net/libslirp/fuzzing/IN_tcp-d | 1 + src/net/libslirp/fuzzing/IN_tcp-h | 1 + .../fuzzing/IN_tcp/nc-10.0.2.2-8080.pcap | Bin .../libslirp/fuzzing/IN_tcp/nc-ident.pcap | Bin .../libslirp/fuzzing/IN_tcp/tcp_qemucapt.pcap | Bin src/net/libslirp/fuzzing/IN_tcp6-d | 1 + src/net/libslirp/fuzzing/IN_tcp6-h | 1 + .../fuzzing/IN_tcp6/tcp_qemucapt.pcap | Bin .../fuzzing/IN_tftp/tftp-get-blah.pkt | Bin .../fuzzing/IN_tftp/tftp_capture.pcap | Bin .../IN_tftp/tftp_get_libslirp-txt.pcap | Bin .../fuzzing/IN_tftp6/tftp_capture.pcap | Bin .../IN_tftp6/tftp_get_libslirp-txt.pcap | Bin src/net/libslirp/fuzzing/IN_udp-h | 1 + .../IN_udp/DNS_freedesktop_1-1-1-1.pcap | Bin src/net/libslirp/fuzzing/IN_udp/dhcp.pkt | 1 + .../libslirp/fuzzing/IN_udp/dhcp_capture.pcap | 1 + .../libslirp/fuzzing/IN_udp/tftp-get-blah.pkt | 1 + .../libslirp/fuzzing/IN_udp/tftp_capture.pcap | 1 + .../fuzzing/IN_udp/tftp_get_libslirp-txt.pcap | 1 + src/net/libslirp/fuzzing/IN_udp6-h | 1 + .../IN_udp6/DNS_freedesktop_1-1-1-1.pcap | Bin .../fuzzing/IN_udp6/tftp_capture.pcap | 1 + .../IN_udp6/tftp_get_libslirp-txt.pcap | 1 + .../libslirp/fuzzing/README.md | 0 .../libslirp/fuzzing/coverage.py | 0 .../libslirp/fuzzing/fuzz-input.options | 0 .../libslirp/fuzzing/fuzz-main.c | 0 .../libslirp/fuzzing/helper.c | 0 .../libslirp/fuzzing/helper.h | 0 .../libslirp/fuzzing/meson.build | 0 .../libslirp/fuzzing/oss-fuzz.sh | 0 .../libslirp/fuzzing/reproducer.c | 0 .../libslirp/fuzzing/slirp_base_fuzz.h | 0 .../libslirp/fuzzing/slirp_fuzz_arp.c | 0 .../libslirp/fuzzing/slirp_fuzz_icmp.c | 0 .../libslirp/fuzzing/slirp_fuzz_icmp6.c | 0 .../libslirp/fuzzing/slirp_fuzz_ip6_header.c | 0 .../libslirp/fuzzing/slirp_fuzz_ip_header.c | 0 .../libslirp/fuzzing/slirp_fuzz_tcp.c | 0 .../libslirp/fuzzing/slirp_fuzz_tcp6.c | 0 .../libslirp/fuzzing/slirp_fuzz_tcp6_data.c | 0 .../libslirp/fuzzing/slirp_fuzz_tcp6_header.c | 0 .../libslirp/fuzzing/slirp_fuzz_tcp_data.c | 0 .../libslirp/fuzzing/slirp_fuzz_tcp_header.c | 0 .../libslirp/fuzzing/slirp_fuzz_udp.c | 0 .../libslirp/fuzzing/slirp_fuzz_udp6.c | 0 .../libslirp/fuzzing/slirp_fuzz_udp6_data.c | 0 .../libslirp/fuzzing/slirp_fuzz_udp6_header.c | 0 .../libslirp/fuzzing/slirp_fuzz_udp_data.c | 0 .../libslirp/fuzzing/slirp_fuzz_udp_header.c | 0 .../libslirp/fuzzing/tftp/toto | Bin src/{frontend => net}/libslirp/glib/glib.c | 0 src/{frontend => net}/libslirp/glib/glib.h | 0 src/{frontend => net}/libslirp/meson.build | 0 .../libslirp/meson_options.txt | 0 .../libslirp/src/arp_table.c | 0 src/{frontend => net}/libslirp/src/bootp.c | 0 src/{frontend => net}/libslirp/src/bootp.h | 0 src/{frontend => net}/libslirp/src/cksum.c | 0 src/{frontend => net}/libslirp/src/debug.h | 0 src/{frontend => net}/libslirp/src/dhcpv6.c | 0 src/{frontend => net}/libslirp/src/dhcpv6.h | 0 .../libslirp/src/dnssearch.c | 0 src/{frontend => net}/libslirp/src/if.c | 0 src/{frontend => net}/libslirp/src/if.h | 0 src/{frontend => net}/libslirp/src/ip.h | 0 src/{frontend => net}/libslirp/src/ip6.h | 0 src/{frontend => net}/libslirp/src/ip6_icmp.c | 0 src/{frontend => net}/libslirp/src/ip6_icmp.h | 0 .../libslirp/src/ip6_input.c | 0 .../libslirp/src/ip6_output.c | 0 src/{frontend => net}/libslirp/src/ip_icmp.c | 0 src/{frontend => net}/libslirp/src/ip_icmp.h | 0 src/{frontend => net}/libslirp/src/ip_input.c | 0 .../libslirp/src/ip_output.c | 0 .../libslirp/src/libslirp-version.h.in | 0 src/{frontend => net}/libslirp/src/libslirp.h | 0 .../libslirp/src/libslirp.map | 0 .../libslirp/src/libslirp.test.map | 0 src/{frontend => net}/libslirp/src/main.h | 0 src/{frontend => net}/libslirp/src/mbuf.c | 0 src/{frontend => net}/libslirp/src/mbuf.h | 0 src/{frontend => net}/libslirp/src/misc.c | 0 src/{frontend => net}/libslirp/src/misc.h | 0 src/{frontend => net}/libslirp/src/ncsi-pkt.h | 0 src/{frontend => net}/libslirp/src/ncsi.c | 0 .../libslirp/src/ndp_table.c | 0 src/{frontend => net}/libslirp/src/sbuf.c | 0 src/{frontend => net}/libslirp/src/sbuf.h | 0 src/{frontend => net}/libslirp/src/slirp.c | 0 src/{frontend => net}/libslirp/src/slirp.h | 0 src/{frontend => net}/libslirp/src/socket.c | 0 src/{frontend => net}/libslirp/src/socket.h | 0 src/{frontend => net}/libslirp/src/state.c | 0 src/{frontend => net}/libslirp/src/stream.c | 0 src/{frontend => net}/libslirp/src/stream.h | 0 src/{frontend => net}/libslirp/src/tcp.h | 0 .../libslirp/src/tcp_input.c | 0 .../libslirp/src/tcp_output.c | 0 src/{frontend => net}/libslirp/src/tcp_subr.c | 0 .../libslirp/src/tcp_timer.c | 0 .../libslirp/src/tcp_timer.h | 0 src/{frontend => net}/libslirp/src/tcp_var.h | 0 src/{frontend => net}/libslirp/src/tcpip.h | 0 src/{frontend => net}/libslirp/src/tftp.c | 0 src/{frontend => net}/libslirp/src/tftp.h | 0 src/{frontend => net}/libslirp/src/udp.c | 0 src/{frontend => net}/libslirp/src/udp.h | 0 src/{frontend => net}/libslirp/src/udp6.c | 0 src/{frontend => net}/libslirp/src/util.c | 0 src/{frontend => net}/libslirp/src/util.h | 0 src/{frontend => net}/libslirp/src/version.c | 0 src/{frontend => net}/libslirp/src/vmstate.c | 0 src/{frontend => net}/libslirp/src/vmstate.h | 0 .../libslirp/test/ncsitest.c | 0 .../libslirp/test/pingtest.c | 0 src/{frontend/qt_sdl => net}/pcap/bluetooth.h | 0 src/{frontend/qt_sdl => net}/pcap/bpf.h | 0 .../qt_sdl => net}/pcap/can_socketcan.h | 0 .../qt_sdl => net}/pcap/compiler-tests.h | 0 src/{frontend/qt_sdl => net}/pcap/dlt.h | 0 src/{frontend/qt_sdl => net}/pcap/funcattrs.h | 0 src/{frontend/qt_sdl => net}/pcap/ipnet.h | 0 src/{frontend/qt_sdl => net}/pcap/namedb.h | 0 src/{frontend/qt_sdl => net}/pcap/nflog.h | 0 .../qt_sdl => net}/pcap/pcap-inttypes.h | 0 src/{frontend/qt_sdl => net}/pcap/pcap.h | 0 src/{frontend/qt_sdl => net}/pcap/sll.h | 0 src/{frontend/qt_sdl => net}/pcap/usb.h | 0 src/{frontend/qt_sdl => net}/pcap/vlan.h | 0 213 files changed, 159 insertions(+), 108 deletions(-) create mode 100644 .gitattributes delete mode 120000 src/frontend/libslirp/fuzzing/IN_icmp6/ndp.pcap delete mode 120000 src/frontend/libslirp/fuzzing/IN_ip-header/DNS_freedesktop_1-1-1-1.pcap delete mode 120000 src/frontend/libslirp/fuzzing/IN_ip-header/dhcp.pkt delete mode 120000 src/frontend/libslirp/fuzzing/IN_ip-header/dhcp_capture.pcap delete mode 120000 src/frontend/libslirp/fuzzing/IN_ip-header/icmp_capture.pcap delete mode 120000 src/frontend/libslirp/fuzzing/IN_ip-header/nc-10.0.2.2-8080.pcap delete mode 120000 src/frontend/libslirp/fuzzing/IN_ip-header/nc-ident.pcap delete mode 120000 src/frontend/libslirp/fuzzing/IN_ip-header/ping_10-0-2-2.pcap delete mode 120000 src/frontend/libslirp/fuzzing/IN_ip-header/tcp_qemucapt.pcap delete mode 120000 src/frontend/libslirp/fuzzing/IN_ip-header/tftp-get-blah.pkt delete mode 120000 src/frontend/libslirp/fuzzing/IN_ip-header/tftp_capture.pcap delete mode 120000 src/frontend/libslirp/fuzzing/IN_ip-header/tftp_get_libslirp-txt.pcap delete mode 120000 src/frontend/libslirp/fuzzing/IN_ip6-header/DNS_freedesktop_1-1-1-1.pcap delete mode 120000 src/frontend/libslirp/fuzzing/IN_ip6-header/icmp_capture.pcap delete mode 120000 src/frontend/libslirp/fuzzing/IN_ip6-header/ping_10-0-2-2.pcap delete mode 120000 src/frontend/libslirp/fuzzing/IN_ip6-header/tcp_qemucapt.pcap delete mode 120000 src/frontend/libslirp/fuzzing/IN_ip6-header/tftp_capture.pcap delete mode 120000 src/frontend/libslirp/fuzzing/IN_ip6-header/tftp_get_libslirp-txt.pcap delete mode 120000 src/frontend/libslirp/fuzzing/IN_tcp-d delete mode 120000 src/frontend/libslirp/fuzzing/IN_tcp-h delete mode 120000 src/frontend/libslirp/fuzzing/IN_tcp6-d delete mode 120000 src/frontend/libslirp/fuzzing/IN_tcp6-h delete mode 120000 src/frontend/libslirp/fuzzing/IN_udp-h delete mode 120000 src/frontend/libslirp/fuzzing/IN_udp/dhcp.pkt delete mode 120000 src/frontend/libslirp/fuzzing/IN_udp/dhcp_capture.pcap delete mode 120000 src/frontend/libslirp/fuzzing/IN_udp/tftp-get-blah.pkt delete mode 120000 src/frontend/libslirp/fuzzing/IN_udp/tftp_capture.pcap delete mode 120000 src/frontend/libslirp/fuzzing/IN_udp/tftp_get_libslirp-txt.pcap delete mode 120000 src/frontend/libslirp/fuzzing/IN_udp6-h delete mode 120000 src/frontend/libslirp/fuzzing/IN_udp6/tftp_capture.pcap delete mode 120000 src/frontend/libslirp/fuzzing/IN_udp6/tftp_get_libslirp-txt.pcap create mode 100644 src/net/CMakeLists.txt rename src/{frontend/qt_sdl => net}/LocalMP.cpp (90%) rename src/{frontend/qt_sdl => net}/LocalMP.h (100%) rename src/{frontend/qt_sdl => net}/Net.cpp (91%) rename src/{frontend/qt_sdl => net}/Net.h (80%) rename src/{frontend/qt_sdl => net}/Net_PCap.cpp (97%) rename src/{frontend/qt_sdl => net}/Net_PCap.h (94%) rename src/{frontend/qt_sdl => net}/Net_Slirp.cpp (100%) rename src/{frontend/qt_sdl => net}/Net_Slirp.h (100%) rename src/{frontend/qt_sdl => net}/PacketDispatcher.cpp (89%) rename src/{frontend/qt_sdl => net}/PacketDispatcher.h (95%) rename src/{frontend => net}/libslirp/.clang-format (100%) rename src/{frontend => net}/libslirp/.gitignore (100%) rename src/{frontend => net}/libslirp/.gitlab-ci.yml (100%) rename src/{frontend => net}/libslirp/.gitpublish (100%) rename src/{frontend => net}/libslirp/CHANGELOG.md (100%) rename src/{frontend => net}/libslirp/CMakeLists.txt (100%) rename src/{frontend => net}/libslirp/COPYRIGHT (100%) rename src/{frontend => net}/libslirp/README.md (100%) rename src/{frontend => net}/libslirp/fuzzing/IN_arp/arp.pcap (100%) rename src/{frontend => net}/libslirp/fuzzing/IN_dhcp/dhcp.pkt (100%) rename src/{frontend => net}/libslirp/fuzzing/IN_dhcp/dhcp_capture.pcap (100%) rename src/{frontend => net}/libslirp/fuzzing/IN_icmp/icmp_capture.pcap (100%) rename src/{frontend => net}/libslirp/fuzzing/IN_icmp/ping_10-0-2-2.pcap (100%) rename src/{frontend => net}/libslirp/fuzzing/IN_icmp6/icmp_capture.pcap (100%) create mode 100644 src/net/libslirp/fuzzing/IN_icmp6/ndp.pcap rename src/{frontend => net}/libslirp/fuzzing/IN_icmp6/ping_10-0-2-2.pcap (100%) create mode 100644 src/net/libslirp/fuzzing/IN_ip-header/DNS_freedesktop_1-1-1-1.pcap create mode 100644 src/net/libslirp/fuzzing/IN_ip-header/dhcp.pkt create mode 100644 src/net/libslirp/fuzzing/IN_ip-header/dhcp_capture.pcap create mode 100644 src/net/libslirp/fuzzing/IN_ip-header/icmp_capture.pcap create mode 100644 src/net/libslirp/fuzzing/IN_ip-header/nc-10.0.2.2-8080.pcap create mode 100644 src/net/libslirp/fuzzing/IN_ip-header/nc-ident.pcap create mode 100644 src/net/libslirp/fuzzing/IN_ip-header/ping_10-0-2-2.pcap create mode 100644 src/net/libslirp/fuzzing/IN_ip-header/tcp_qemucapt.pcap create mode 100644 src/net/libslirp/fuzzing/IN_ip-header/tftp-get-blah.pkt create mode 100644 src/net/libslirp/fuzzing/IN_ip-header/tftp_capture.pcap create mode 100644 src/net/libslirp/fuzzing/IN_ip-header/tftp_get_libslirp-txt.pcap create mode 100644 src/net/libslirp/fuzzing/IN_ip6-header/DNS_freedesktop_1-1-1-1.pcap create mode 100644 src/net/libslirp/fuzzing/IN_ip6-header/icmp_capture.pcap create mode 100644 src/net/libslirp/fuzzing/IN_ip6-header/ping_10-0-2-2.pcap create mode 100644 src/net/libslirp/fuzzing/IN_ip6-header/tcp_qemucapt.pcap create mode 100644 src/net/libslirp/fuzzing/IN_ip6-header/tftp_capture.pcap create mode 100644 src/net/libslirp/fuzzing/IN_ip6-header/tftp_get_libslirp-txt.pcap rename src/{frontend => net}/libslirp/fuzzing/IN_ndp/ndp.pcap (100%) create mode 100644 src/net/libslirp/fuzzing/IN_tcp-d create mode 100644 src/net/libslirp/fuzzing/IN_tcp-h rename src/{frontend => net}/libslirp/fuzzing/IN_tcp/nc-10.0.2.2-8080.pcap (100%) rename src/{frontend => net}/libslirp/fuzzing/IN_tcp/nc-ident.pcap (100%) rename src/{frontend => net}/libslirp/fuzzing/IN_tcp/tcp_qemucapt.pcap (100%) create mode 100644 src/net/libslirp/fuzzing/IN_tcp6-d create mode 100644 src/net/libslirp/fuzzing/IN_tcp6-h rename src/{frontend => net}/libslirp/fuzzing/IN_tcp6/tcp_qemucapt.pcap (100%) rename src/{frontend => net}/libslirp/fuzzing/IN_tftp/tftp-get-blah.pkt (100%) rename src/{frontend => net}/libslirp/fuzzing/IN_tftp/tftp_capture.pcap (100%) rename src/{frontend => net}/libslirp/fuzzing/IN_tftp/tftp_get_libslirp-txt.pcap (100%) rename src/{frontend => net}/libslirp/fuzzing/IN_tftp6/tftp_capture.pcap (100%) rename src/{frontend => net}/libslirp/fuzzing/IN_tftp6/tftp_get_libslirp-txt.pcap (100%) create mode 100644 src/net/libslirp/fuzzing/IN_udp-h rename src/{frontend => net}/libslirp/fuzzing/IN_udp/DNS_freedesktop_1-1-1-1.pcap (100%) create mode 100644 src/net/libslirp/fuzzing/IN_udp/dhcp.pkt create mode 100644 src/net/libslirp/fuzzing/IN_udp/dhcp_capture.pcap create mode 100644 src/net/libslirp/fuzzing/IN_udp/tftp-get-blah.pkt create mode 100644 src/net/libslirp/fuzzing/IN_udp/tftp_capture.pcap create mode 100644 src/net/libslirp/fuzzing/IN_udp/tftp_get_libslirp-txt.pcap create mode 100644 src/net/libslirp/fuzzing/IN_udp6-h rename src/{frontend => net}/libslirp/fuzzing/IN_udp6/DNS_freedesktop_1-1-1-1.pcap (100%) create mode 100644 src/net/libslirp/fuzzing/IN_udp6/tftp_capture.pcap create mode 100644 src/net/libslirp/fuzzing/IN_udp6/tftp_get_libslirp-txt.pcap rename src/{frontend => net}/libslirp/fuzzing/README.md (100%) rename src/{frontend => net}/libslirp/fuzzing/coverage.py (100%) mode change 100755 => 100644 rename src/{frontend => net}/libslirp/fuzzing/fuzz-input.options (100%) rename src/{frontend => net}/libslirp/fuzzing/fuzz-main.c (100%) rename src/{frontend => net}/libslirp/fuzzing/helper.c (100%) rename src/{frontend => net}/libslirp/fuzzing/helper.h (100%) rename src/{frontend => net}/libslirp/fuzzing/meson.build (100%) rename src/{frontend => net}/libslirp/fuzzing/oss-fuzz.sh (100%) mode change 100755 => 100644 rename src/{frontend => net}/libslirp/fuzzing/reproducer.c (100%) rename src/{frontend => net}/libslirp/fuzzing/slirp_base_fuzz.h (100%) rename src/{frontend => net}/libslirp/fuzzing/slirp_fuzz_arp.c (100%) rename src/{frontend => net}/libslirp/fuzzing/slirp_fuzz_icmp.c (100%) rename src/{frontend => net}/libslirp/fuzzing/slirp_fuzz_icmp6.c (100%) rename src/{frontend => net}/libslirp/fuzzing/slirp_fuzz_ip6_header.c (100%) rename src/{frontend => net}/libslirp/fuzzing/slirp_fuzz_ip_header.c (100%) rename src/{frontend => net}/libslirp/fuzzing/slirp_fuzz_tcp.c (100%) rename src/{frontend => net}/libslirp/fuzzing/slirp_fuzz_tcp6.c (100%) rename src/{frontend => net}/libslirp/fuzzing/slirp_fuzz_tcp6_data.c (100%) rename src/{frontend => net}/libslirp/fuzzing/slirp_fuzz_tcp6_header.c (100%) rename src/{frontend => net}/libslirp/fuzzing/slirp_fuzz_tcp_data.c (100%) rename src/{frontend => net}/libslirp/fuzzing/slirp_fuzz_tcp_header.c (100%) rename src/{frontend => net}/libslirp/fuzzing/slirp_fuzz_udp.c (100%) rename src/{frontend => net}/libslirp/fuzzing/slirp_fuzz_udp6.c (100%) rename src/{frontend => net}/libslirp/fuzzing/slirp_fuzz_udp6_data.c (100%) rename src/{frontend => net}/libslirp/fuzzing/slirp_fuzz_udp6_header.c (100%) rename src/{frontend => net}/libslirp/fuzzing/slirp_fuzz_udp_data.c (100%) rename src/{frontend => net}/libslirp/fuzzing/slirp_fuzz_udp_header.c (100%) rename src/{frontend => net}/libslirp/fuzzing/tftp/toto (100%) rename src/{frontend => net}/libslirp/glib/glib.c (100%) rename src/{frontend => net}/libslirp/glib/glib.h (100%) rename src/{frontend => net}/libslirp/meson.build (100%) rename src/{frontend => net}/libslirp/meson_options.txt (100%) rename src/{frontend => net}/libslirp/src/arp_table.c (100%) rename src/{frontend => net}/libslirp/src/bootp.c (100%) rename src/{frontend => net}/libslirp/src/bootp.h (100%) rename src/{frontend => net}/libslirp/src/cksum.c (100%) rename src/{frontend => net}/libslirp/src/debug.h (100%) rename src/{frontend => net}/libslirp/src/dhcpv6.c (100%) rename src/{frontend => net}/libslirp/src/dhcpv6.h (100%) rename src/{frontend => net}/libslirp/src/dnssearch.c (100%) rename src/{frontend => net}/libslirp/src/if.c (100%) rename src/{frontend => net}/libslirp/src/if.h (100%) rename src/{frontend => net}/libslirp/src/ip.h (100%) rename src/{frontend => net}/libslirp/src/ip6.h (100%) rename src/{frontend => net}/libslirp/src/ip6_icmp.c (100%) rename src/{frontend => net}/libslirp/src/ip6_icmp.h (100%) rename src/{frontend => net}/libslirp/src/ip6_input.c (100%) rename src/{frontend => net}/libslirp/src/ip6_output.c (100%) rename src/{frontend => net}/libslirp/src/ip_icmp.c (100%) rename src/{frontend => net}/libslirp/src/ip_icmp.h (100%) rename src/{frontend => net}/libslirp/src/ip_input.c (100%) rename src/{frontend => net}/libslirp/src/ip_output.c (100%) rename src/{frontend => net}/libslirp/src/libslirp-version.h.in (100%) rename src/{frontend => net}/libslirp/src/libslirp.h (100%) rename src/{frontend => net}/libslirp/src/libslirp.map (100%) rename src/{frontend => net}/libslirp/src/libslirp.test.map (100%) rename src/{frontend => net}/libslirp/src/main.h (100%) rename src/{frontend => net}/libslirp/src/mbuf.c (100%) rename src/{frontend => net}/libslirp/src/mbuf.h (100%) rename src/{frontend => net}/libslirp/src/misc.c (100%) rename src/{frontend => net}/libslirp/src/misc.h (100%) rename src/{frontend => net}/libslirp/src/ncsi-pkt.h (100%) rename src/{frontend => net}/libslirp/src/ncsi.c (100%) rename src/{frontend => net}/libslirp/src/ndp_table.c (100%) rename src/{frontend => net}/libslirp/src/sbuf.c (100%) rename src/{frontend => net}/libslirp/src/sbuf.h (100%) rename src/{frontend => net}/libslirp/src/slirp.c (100%) rename src/{frontend => net}/libslirp/src/slirp.h (100%) rename src/{frontend => net}/libslirp/src/socket.c (100%) rename src/{frontend => net}/libslirp/src/socket.h (100%) rename src/{frontend => net}/libslirp/src/state.c (100%) rename src/{frontend => net}/libslirp/src/stream.c (100%) rename src/{frontend => net}/libslirp/src/stream.h (100%) rename src/{frontend => net}/libslirp/src/tcp.h (100%) rename src/{frontend => net}/libslirp/src/tcp_input.c (100%) rename src/{frontend => net}/libslirp/src/tcp_output.c (100%) rename src/{frontend => net}/libslirp/src/tcp_subr.c (100%) rename src/{frontend => net}/libslirp/src/tcp_timer.c (100%) rename src/{frontend => net}/libslirp/src/tcp_timer.h (100%) rename src/{frontend => net}/libslirp/src/tcp_var.h (100%) rename src/{frontend => net}/libslirp/src/tcpip.h (100%) rename src/{frontend => net}/libslirp/src/tftp.c (100%) rename src/{frontend => net}/libslirp/src/tftp.h (100%) rename src/{frontend => net}/libslirp/src/udp.c (100%) rename src/{frontend => net}/libslirp/src/udp.h (100%) rename src/{frontend => net}/libslirp/src/udp6.c (100%) rename src/{frontend => net}/libslirp/src/util.c (100%) rename src/{frontend => net}/libslirp/src/util.h (100%) rename src/{frontend => net}/libslirp/src/version.c (100%) rename src/{frontend => net}/libslirp/src/vmstate.c (100%) rename src/{frontend => net}/libslirp/src/vmstate.h (100%) rename src/{frontend => net}/libslirp/test/ncsitest.c (100%) rename src/{frontend => net}/libslirp/test/pingtest.c (100%) rename src/{frontend/qt_sdl => net}/pcap/bluetooth.h (100%) rename src/{frontend/qt_sdl => net}/pcap/bpf.h (100%) rename src/{frontend/qt_sdl => net}/pcap/can_socketcan.h (100%) rename src/{frontend/qt_sdl => net}/pcap/compiler-tests.h (100%) rename src/{frontend/qt_sdl => net}/pcap/dlt.h (100%) rename src/{frontend/qt_sdl => net}/pcap/funcattrs.h (100%) rename src/{frontend/qt_sdl => net}/pcap/ipnet.h (100%) rename src/{frontend/qt_sdl => net}/pcap/namedb.h (100%) rename src/{frontend/qt_sdl => net}/pcap/nflog.h (100%) rename src/{frontend/qt_sdl => net}/pcap/pcap-inttypes.h (100%) rename src/{frontend/qt_sdl => net}/pcap/pcap.h (100%) rename src/{frontend/qt_sdl => net}/pcap/sll.h (100%) rename src/{frontend/qt_sdl => net}/pcap/usb.h (100%) rename src/{frontend/qt_sdl => net}/pcap/vlan.h (100%) diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..2896f4aa --- /dev/null +++ b/.gitattributes @@ -0,0 +1,18 @@ +# Vendored Dependencies +src/frontend/glad/** linguist-vendored +src/frontend/qt_sdl/gif-h/** linguist-vendored +src/frontend/qt_sdl/toml/** linguist-vendored +src/net/libslirp/** linguist-vendored +src/net/pcap/** linguist-vendored +src/sha1/** linguist-vendored +src/teakra/** linguist-vendored +src/tiny-AES-c/** linguist-vendored +src/xxhash/** linguist-vendored + +# A handful of custom files embedded in the vendored dependencies + +## Ad-hoc CMakeLists.txt for melonDS +!src/net/libslirp/src/CMakeLists.txt -linguist-vendored + +## glib stub +!src/net/libslirp/src/glib/** -linguist-vendored diff --git a/src/Platform.h b/src/Platform.h index ddc31dfd..0dfc04f6 100644 --- a/src/Platform.h +++ b/src/Platform.h @@ -256,6 +256,9 @@ Semaphore* Semaphore_Create(); void Semaphore_Free(Semaphore* sema); void Semaphore_Reset(Semaphore* sema); void Semaphore_Wait(Semaphore* sema); +/// Waits for the semaphore to be signaled, or until the timeout (in milliseconds) expires. +/// If the timeout is 0, then don't wait; return immediately if the semaphore is not signaled. +bool Semaphore_TryWait(Semaphore* sema, int timeout_ms = 0); void Semaphore_Post(Semaphore* sema, int count = 1); struct Mutex; diff --git a/src/frontend/libslirp/fuzzing/IN_icmp6/ndp.pcap b/src/frontend/libslirp/fuzzing/IN_icmp6/ndp.pcap deleted file mode 120000 index 74443f1e..00000000 --- a/src/frontend/libslirp/fuzzing/IN_icmp6/ndp.pcap +++ /dev/null @@ -1 +0,0 @@ -../IN_ndp/ndp.pcap \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_ip-header/DNS_freedesktop_1-1-1-1.pcap b/src/frontend/libslirp/fuzzing/IN_ip-header/DNS_freedesktop_1-1-1-1.pcap deleted file mode 120000 index 09b9ce1c..00000000 --- a/src/frontend/libslirp/fuzzing/IN_ip-header/DNS_freedesktop_1-1-1-1.pcap +++ /dev/null @@ -1 +0,0 @@ -../IN_udp/DNS_freedesktop_1-1-1-1.pcap \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_ip-header/dhcp.pkt b/src/frontend/libslirp/fuzzing/IN_ip-header/dhcp.pkt deleted file mode 120000 index b1a9e045..00000000 --- a/src/frontend/libslirp/fuzzing/IN_ip-header/dhcp.pkt +++ /dev/null @@ -1 +0,0 @@ -../IN_dhcp/dhcp.pkt \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_ip-header/dhcp_capture.pcap b/src/frontend/libslirp/fuzzing/IN_ip-header/dhcp_capture.pcap deleted file mode 120000 index e2d9c0db..00000000 --- a/src/frontend/libslirp/fuzzing/IN_ip-header/dhcp_capture.pcap +++ /dev/null @@ -1 +0,0 @@ -../IN_dhcp/dhcp_capture.pcap \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_ip-header/icmp_capture.pcap b/src/frontend/libslirp/fuzzing/IN_ip-header/icmp_capture.pcap deleted file mode 120000 index a9ec1936..00000000 --- a/src/frontend/libslirp/fuzzing/IN_ip-header/icmp_capture.pcap +++ /dev/null @@ -1 +0,0 @@ -../IN_icmp/icmp_capture.pcap \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_ip-header/nc-10.0.2.2-8080.pcap b/src/frontend/libslirp/fuzzing/IN_ip-header/nc-10.0.2.2-8080.pcap deleted file mode 120000 index c99b568e..00000000 --- a/src/frontend/libslirp/fuzzing/IN_ip-header/nc-10.0.2.2-8080.pcap +++ /dev/null @@ -1 +0,0 @@ -../IN_tcp/nc-10.0.2.2-8080.pcap \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_ip-header/nc-ident.pcap b/src/frontend/libslirp/fuzzing/IN_ip-header/nc-ident.pcap deleted file mode 120000 index 51ecdf0e..00000000 --- a/src/frontend/libslirp/fuzzing/IN_ip-header/nc-ident.pcap +++ /dev/null @@ -1 +0,0 @@ -../IN_tcp/nc-ident.pcap \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_ip-header/ping_10-0-2-2.pcap b/src/frontend/libslirp/fuzzing/IN_ip-header/ping_10-0-2-2.pcap deleted file mode 120000 index 9a71a0e4..00000000 --- a/src/frontend/libslirp/fuzzing/IN_ip-header/ping_10-0-2-2.pcap +++ /dev/null @@ -1 +0,0 @@ -../IN_icmp/ping_10-0-2-2.pcap \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_ip-header/tcp_qemucapt.pcap b/src/frontend/libslirp/fuzzing/IN_ip-header/tcp_qemucapt.pcap deleted file mode 120000 index 8daa990e..00000000 --- a/src/frontend/libslirp/fuzzing/IN_ip-header/tcp_qemucapt.pcap +++ /dev/null @@ -1 +0,0 @@ -../IN_tcp/tcp_qemucapt.pcap \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_ip-header/tftp-get-blah.pkt b/src/frontend/libslirp/fuzzing/IN_ip-header/tftp-get-blah.pkt deleted file mode 120000 index c95e90d9..00000000 --- a/src/frontend/libslirp/fuzzing/IN_ip-header/tftp-get-blah.pkt +++ /dev/null @@ -1 +0,0 @@ -../IN_tftp/tftp-get-blah.pkt \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_ip-header/tftp_capture.pcap b/src/frontend/libslirp/fuzzing/IN_ip-header/tftp_capture.pcap deleted file mode 120000 index cbaf3ab0..00000000 --- a/src/frontend/libslirp/fuzzing/IN_ip-header/tftp_capture.pcap +++ /dev/null @@ -1 +0,0 @@ -../IN_tftp/tftp_capture.pcap \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_ip-header/tftp_get_libslirp-txt.pcap b/src/frontend/libslirp/fuzzing/IN_ip-header/tftp_get_libslirp-txt.pcap deleted file mode 120000 index 8aa1945d..00000000 --- a/src/frontend/libslirp/fuzzing/IN_ip-header/tftp_get_libslirp-txt.pcap +++ /dev/null @@ -1 +0,0 @@ -../IN_tftp/tftp_get_libslirp-txt.pcap \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_ip6-header/DNS_freedesktop_1-1-1-1.pcap b/src/frontend/libslirp/fuzzing/IN_ip6-header/DNS_freedesktop_1-1-1-1.pcap deleted file mode 120000 index 651c2739..00000000 --- a/src/frontend/libslirp/fuzzing/IN_ip6-header/DNS_freedesktop_1-1-1-1.pcap +++ /dev/null @@ -1 +0,0 @@ -../IN_udp6/DNS_freedesktop_1-1-1-1.pcap \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_ip6-header/icmp_capture.pcap b/src/frontend/libslirp/fuzzing/IN_ip6-header/icmp_capture.pcap deleted file mode 120000 index 519f78a7..00000000 --- a/src/frontend/libslirp/fuzzing/IN_ip6-header/icmp_capture.pcap +++ /dev/null @@ -1 +0,0 @@ -../IN_icmp6/icmp_capture.pcap \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_ip6-header/ping_10-0-2-2.pcap b/src/frontend/libslirp/fuzzing/IN_ip6-header/ping_10-0-2-2.pcap deleted file mode 120000 index 632a2868..00000000 --- a/src/frontend/libslirp/fuzzing/IN_ip6-header/ping_10-0-2-2.pcap +++ /dev/null @@ -1 +0,0 @@ -../IN_icmp6/ping_10-0-2-2.pcap \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_ip6-header/tcp_qemucapt.pcap b/src/frontend/libslirp/fuzzing/IN_ip6-header/tcp_qemucapt.pcap deleted file mode 120000 index b444205b..00000000 --- a/src/frontend/libslirp/fuzzing/IN_ip6-header/tcp_qemucapt.pcap +++ /dev/null @@ -1 +0,0 @@ -../IN_tcp6/tcp_qemucapt.pcap \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_ip6-header/tftp_capture.pcap b/src/frontend/libslirp/fuzzing/IN_ip6-header/tftp_capture.pcap deleted file mode 120000 index 308ab28e..00000000 --- a/src/frontend/libslirp/fuzzing/IN_ip6-header/tftp_capture.pcap +++ /dev/null @@ -1 +0,0 @@ -../IN_udp6/tftp_capture.pcap \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_ip6-header/tftp_get_libslirp-txt.pcap b/src/frontend/libslirp/fuzzing/IN_ip6-header/tftp_get_libslirp-txt.pcap deleted file mode 120000 index d3b4e76d..00000000 --- a/src/frontend/libslirp/fuzzing/IN_ip6-header/tftp_get_libslirp-txt.pcap +++ /dev/null @@ -1 +0,0 @@ -../IN_udp6/tftp_get_libslirp-txt.pcap \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_tcp-d b/src/frontend/libslirp/fuzzing/IN_tcp-d deleted file mode 120000 index 1bca80b4..00000000 --- a/src/frontend/libslirp/fuzzing/IN_tcp-d +++ /dev/null @@ -1 +0,0 @@ -IN_tcp \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_tcp-h b/src/frontend/libslirp/fuzzing/IN_tcp-h deleted file mode 120000 index 1bca80b4..00000000 --- a/src/frontend/libslirp/fuzzing/IN_tcp-h +++ /dev/null @@ -1 +0,0 @@ -IN_tcp \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_tcp6-d b/src/frontend/libslirp/fuzzing/IN_tcp6-d deleted file mode 120000 index 2ad34597..00000000 --- a/src/frontend/libslirp/fuzzing/IN_tcp6-d +++ /dev/null @@ -1 +0,0 @@ -IN_tcp6 \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_tcp6-h b/src/frontend/libslirp/fuzzing/IN_tcp6-h deleted file mode 120000 index 2ad34597..00000000 --- a/src/frontend/libslirp/fuzzing/IN_tcp6-h +++ /dev/null @@ -1 +0,0 @@ -IN_tcp6 \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_udp-h b/src/frontend/libslirp/fuzzing/IN_udp-h deleted file mode 120000 index d1958903..00000000 --- a/src/frontend/libslirp/fuzzing/IN_udp-h +++ /dev/null @@ -1 +0,0 @@ -IN_udp \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_udp/dhcp.pkt b/src/frontend/libslirp/fuzzing/IN_udp/dhcp.pkt deleted file mode 120000 index b1a9e045..00000000 --- a/src/frontend/libslirp/fuzzing/IN_udp/dhcp.pkt +++ /dev/null @@ -1 +0,0 @@ -../IN_dhcp/dhcp.pkt \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_udp/dhcp_capture.pcap b/src/frontend/libslirp/fuzzing/IN_udp/dhcp_capture.pcap deleted file mode 120000 index e2d9c0db..00000000 --- a/src/frontend/libslirp/fuzzing/IN_udp/dhcp_capture.pcap +++ /dev/null @@ -1 +0,0 @@ -../IN_dhcp/dhcp_capture.pcap \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_udp/tftp-get-blah.pkt b/src/frontend/libslirp/fuzzing/IN_udp/tftp-get-blah.pkt deleted file mode 120000 index c95e90d9..00000000 --- a/src/frontend/libslirp/fuzzing/IN_udp/tftp-get-blah.pkt +++ /dev/null @@ -1 +0,0 @@ -../IN_tftp/tftp-get-blah.pkt \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_udp/tftp_capture.pcap b/src/frontend/libslirp/fuzzing/IN_udp/tftp_capture.pcap deleted file mode 120000 index cbaf3ab0..00000000 --- a/src/frontend/libslirp/fuzzing/IN_udp/tftp_capture.pcap +++ /dev/null @@ -1 +0,0 @@ -../IN_tftp/tftp_capture.pcap \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_udp/tftp_get_libslirp-txt.pcap b/src/frontend/libslirp/fuzzing/IN_udp/tftp_get_libslirp-txt.pcap deleted file mode 120000 index 8aa1945d..00000000 --- a/src/frontend/libslirp/fuzzing/IN_udp/tftp_get_libslirp-txt.pcap +++ /dev/null @@ -1 +0,0 @@ -../IN_tftp/tftp_get_libslirp-txt.pcap \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_udp6-h b/src/frontend/libslirp/fuzzing/IN_udp6-h deleted file mode 120000 index 4d7837b0..00000000 --- a/src/frontend/libslirp/fuzzing/IN_udp6-h +++ /dev/null @@ -1 +0,0 @@ -IN_udp6 \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_udp6/tftp_capture.pcap b/src/frontend/libslirp/fuzzing/IN_udp6/tftp_capture.pcap deleted file mode 120000 index 9bd68303..00000000 --- a/src/frontend/libslirp/fuzzing/IN_udp6/tftp_capture.pcap +++ /dev/null @@ -1 +0,0 @@ -../IN_tftp6/tftp_capture.pcap \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_udp6/tftp_get_libslirp-txt.pcap b/src/frontend/libslirp/fuzzing/IN_udp6/tftp_get_libslirp-txt.pcap deleted file mode 120000 index 39fc722b..00000000 --- a/src/frontend/libslirp/fuzzing/IN_udp6/tftp_get_libslirp-txt.pcap +++ /dev/null @@ -1 +0,0 @@ -../IN_tftp6/tftp_get_libslirp-txt.pcap \ No newline at end of file diff --git a/src/frontend/qt_sdl/CMakeLists.txt b/src/frontend/qt_sdl/CMakeLists.txt index 2ccb92b1..7409d056 100644 --- a/src/frontend/qt_sdl/CMakeLists.txt +++ b/src/frontend/qt_sdl/CMakeLists.txt @@ -31,11 +31,6 @@ set(SOURCES_QT_SDL ROMInfoDialog.cpp RAMInfoDialog.cpp TitleManagerDialog.cpp - PacketDispatcher.cpp - Net.cpp - Net_PCap.cpp - Net_Slirp.cpp - LocalMP.cpp OSD_shaders.h font.h Platform.cpp @@ -93,16 +88,11 @@ add_compile_definitions(ARCHIVE_SUPPORT_ENABLED) add_executable(melonDS ${SOURCES_QT_SDL}) -option(USE_SYSTEM_LIBSLIRP "Use system libslirp instead of the bundled version" OFF) -if (USE_SYSTEM_LIBSLIRP) - pkg_check_modules(Slirp REQUIRED IMPORTED_TARGET slirp) - target_link_libraries(melonDS PRIVATE PkgConfig::Slirp) -else() - add_subdirectory("../libslirp" - "${CMAKE_BINARY_DIR}/libslirp" - EXCLUDE_FROM_ALL) - target_link_libraries(melonDS PRIVATE slirp) -endif() +add_subdirectory("../../net" + "${CMAKE_BINARY_DIR}/net" +) + +target_link_libraries(melonDS PRIVATE net-utils) if (WIN32) target_link_libraries(melonDS PUBLIC opengl32) diff --git a/src/frontend/qt_sdl/Platform.cpp b/src/frontend/qt_sdl/Platform.cpp index eea96820..605d80f9 100644 --- a/src/frontend/qt_sdl/Platform.cpp +++ b/src/frontend/qt_sdl/Platform.cpp @@ -351,6 +351,14 @@ void Semaphore_Wait(Semaphore* sema) ((QSemaphore*) sema)->acquire(); } +bool Semaphore_TryWait(Semaphore* sema, int timeout_ms) +{ + if (!timeout_ms) + return ((QSemaphore*)sema)->tryAcquire(1); + + return ((QSemaphore*)sema)->tryAcquire(1, timeout_ms); +} + void Semaphore_Post(Semaphore* sema, int count) { ((QSemaphore*) sema)->release(count); diff --git a/src/frontend/qt_sdl/WifiSettingsDialog.cpp b/src/frontend/qt_sdl/WifiSettingsDialog.cpp index fabce6a9..183fd9e7 100644 --- a/src/frontend/qt_sdl/WifiSettingsDialog.cpp +++ b/src/frontend/qt_sdl/WifiSettingsDialog.cpp @@ -25,6 +25,7 @@ #include "main.h" #include "Net.h" +#include "Net_PCap.h" #include "WifiSettingsDialog.h" #include "ui_WifiSettingsDialog.h" @@ -109,7 +110,10 @@ void WifiSettingsDialog::done(int r) } Net_PCap::DeInit(); - Net::Init(); + Config::Table cfg = Config::GetGlobalTable(); + bool direct = cfg.GetBool("LAN.DirectMode"); + std::string devicename = cfg.GetString("LAN.Device"); + Net::Init(direct, devicename.c_str()); QDialog::done(r); diff --git a/src/frontend/qt_sdl/main.cpp b/src/frontend/qt_sdl/main.cpp index fb11d3b6..69285e97 100644 --- a/src/frontend/qt_sdl/main.cpp +++ b/src/frontend/qt_sdl/main.cpp @@ -274,7 +274,12 @@ int main(int argc, char** argv) } LocalMP::Init(); - Net::Init(); + { + Config::Table cfg = Config::GetGlobalTable(); + bool direct = cfg.GetBool("LAN.DirectMode"); + std::string devicename = cfg.GetString("LAN.Device"); + Net::Init(direct, devicename.c_str()); + } createEmuInstance(); diff --git a/src/net/CMakeLists.txt b/src/net/CMakeLists.txt new file mode 100644 index 00000000..f1a9eaf7 --- /dev/null +++ b/src/net/CMakeLists.txt @@ -0,0 +1,20 @@ +add_library(net-utils STATIC + Net.cpp + Net_PCap.cpp + Net_Slirp.cpp + PacketDispatcher.cpp + LocalMP.cpp +) + +target_include_directories(net-utils PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") +target_include_directories(net-utils PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/..") + + +option(USE_SYSTEM_LIBSLIRP "Use system libslirp instead of the bundled version" OFF) +if (USE_SYSTEM_LIBSLIRP) + pkg_check_modules(Slirp REQUIRED IMPORTED_TARGET slirp) + target_link_libraries(net-utils PRIVATE PkgConfig::Slirp) +else() + add_subdirectory(libslirp EXCLUDE_FROM_ALL) + target_link_libraries(net-utils PRIVATE slirp) +endif() diff --git a/src/frontend/qt_sdl/LocalMP.cpp b/src/net/LocalMP.cpp similarity index 90% rename from src/frontend/qt_sdl/LocalMP.cpp rename to src/net/LocalMP.cpp index 1cc4280f..89f98c8c 100644 --- a/src/frontend/qt_sdl/LocalMP.cpp +++ b/src/net/LocalMP.cpp @@ -17,11 +17,10 @@ */ #include -#include -#include #include "LocalMP.h" #include "Platform.h" +#include "types.h" using namespace melonDS; using namespace melonDS::Platform; @@ -54,7 +53,7 @@ const u32 kPacketQueueSize = 0x10000; const u32 kReplyQueueSize = 0x10000; const u32 kMaxFrameSize = 0x948; -QMutex MPQueueLock; +Mutex* MPQueueLock; MPStatusData MPStatus; u8 MPPacketQueue[kPacketQueueSize]; u8 MPReplyQueue[kReplyQueueSize]; @@ -66,39 +65,37 @@ int RecvTimeout; int LastHostID; -QSemaphore SemPool[32]; +Semaphore* SemPool[32]; void SemPoolInit() { for (int i = 0; i < 32; i++) { - SemPool[i].acquire(SemPool[i].available()); + SemPool[i] = Semaphore_Create(); } } bool SemPost(int num) { - SemPool[num].release(1); + Semaphore_Post(SemPool[num]); return true; } bool SemWait(int num, int timeout) { - if (!timeout) - return SemPool[num].tryAcquire(1); - - return SemPool[num].tryAcquire(1, timeout); + return Semaphore_TryWait(SemPool[num], timeout); } void SemReset(int num) { - SemPool[num].acquire(SemPool[num].available()); + Semaphore_Reset(SemPool[num]); } bool Init() { - MPQueueLock.lock(); + MPQueueLock = Mutex_Create(); + Mutex_Lock(MPQueueLock); memset(MPPacketQueue, 0, kPacketQueueSize); memset(MPReplyQueue, 0, kReplyQueueSize); @@ -106,7 +103,7 @@ bool Init() memset(PacketReadOffset, 0, sizeof(PacketReadOffset)); memset(ReplyReadOffset, 0, sizeof(ReplyReadOffset)); - MPQueueLock.unlock(); + Mutex_Unlock(MPQueueLock); // prepare semaphores // semaphores 0-15: regular frames; semaphore I is posted when instance I needs to process a new frame @@ -125,6 +122,13 @@ bool Init() void DeInit() { + for (int i = 0; i < 32; i++) + { + Semaphore_Free(SemPool[i]); + SemPool[i] = nullptr; + } + + Mutex_Free(MPQueueLock); } void SetRecvTimeout(int timeout) @@ -134,20 +138,20 @@ void SetRecvTimeout(int timeout) void Begin(int inst) { - MPQueueLock.lock(); + Mutex_Lock(MPQueueLock); PacketReadOffset[inst] = MPStatus.PacketWriteOffset; ReplyReadOffset[inst] = MPStatus.ReplyWriteOffset; SemReset(inst); SemReset(16+inst); MPStatus.ConnectedBitmask |= (1 << inst); - MPQueueLock.unlock(); + Mutex_Unlock(MPQueueLock); } void End(int inst) { - MPQueueLock.lock(); + Mutex_Lock(MPQueueLock); MPStatus.ConnectedBitmask &= ~(1 << inst); - MPQueueLock.unlock(); + Mutex_Unlock(MPQueueLock); } void FIFORead(int inst, int fifo, void* buf, int len) @@ -228,7 +232,7 @@ int SendPacketGeneric(int inst, u32 type, u8* packet, int len, u64 timestamp) return 0; } - MPQueueLock.lock(); + Mutex_Lock(MPQueueLock); u16 mask = MPStatus.ConnectedBitmask; @@ -261,7 +265,7 @@ int SendPacketGeneric(int inst, u32 type, u8* packet, int len, u64 timestamp) MPStatus.MPReplyBitmask |= (1 << inst); } - MPQueueLock.unlock(); + Mutex_Unlock(MPQueueLock); if (type == 2) { @@ -288,7 +292,7 @@ int RecvPacketGeneric(int inst, u8* packet, bool block, u64* timestamp) return 0; } - MPQueueLock.lock(); + Mutex_Lock(MPQueueLock); MPPacketHeader pktheader; FIFORead(inst, 0, &pktheader, sizeof(pktheader)); @@ -298,7 +302,7 @@ int RecvPacketGeneric(int inst, u8* packet, bool block, u64* timestamp) Log(LogLevel::Warn, "PACKET FIFO OVERFLOW\n"); PacketReadOffset[inst] = MPStatus.PacketWriteOffset; SemReset(inst); - MPQueueLock.unlock(); + Mutex_Unlock(MPQueueLock); return 0; } @@ -309,7 +313,7 @@ int RecvPacketGeneric(int inst, u8* packet, bool block, u64* timestamp) if (PacketReadOffset[inst] >= kPacketQueueSize) PacketReadOffset[inst] -= kPacketQueueSize; - MPQueueLock.unlock(); + Mutex_Unlock(MPQueueLock); continue; } @@ -322,7 +326,7 @@ int RecvPacketGeneric(int inst, u8* packet, bool block, u64* timestamp) } if (timestamp) *timestamp = pktheader.Timestamp; - MPQueueLock.unlock(); + Mutex_Unlock(MPQueueLock); return pktheader.Length; } } @@ -388,7 +392,7 @@ u16 RecvReplies(int inst, u8* packets, u64 timestamp, u16 aidmask) return ret; } - MPQueueLock.lock(); + Mutex_Lock(MPQueueLock); MPPacketHeader pktheader; FIFORead(inst, 1, &pktheader, sizeof(pktheader)); @@ -398,7 +402,7 @@ u16 RecvReplies(int inst, u8* packets, u64 timestamp, u16 aidmask) Log(LogLevel::Warn, "REPLY FIFO OVERFLOW\n"); ReplyReadOffset[inst] = MPStatus.ReplyWriteOffset; SemReset(16+inst); - MPQueueLock.unlock(); + Mutex_Unlock(MPQueueLock); return 0; } @@ -410,7 +414,7 @@ u16 RecvReplies(int inst, u8* packets, u64 timestamp, u16 aidmask) if (ReplyReadOffset[inst] >= kReplyQueueSize) ReplyReadOffset[inst] -= kReplyQueueSize; - MPQueueLock.unlock(); + Mutex_Unlock(MPQueueLock); continue; } @@ -427,11 +431,11 @@ u16 RecvReplies(int inst, u8* packets, u64 timestamp, u16 aidmask) { // all the clients have sent their reply - MPQueueLock.unlock(); + Mutex_Unlock(MPQueueLock); return ret; } - MPQueueLock.unlock(); + Mutex_Unlock(MPQueueLock); } } diff --git a/src/frontend/qt_sdl/LocalMP.h b/src/net/LocalMP.h similarity index 100% rename from src/frontend/qt_sdl/LocalMP.h rename to src/net/LocalMP.h diff --git a/src/frontend/qt_sdl/Net.cpp b/src/net/Net.cpp similarity index 91% rename from src/frontend/qt_sdl/Net.cpp rename to src/net/Net.cpp index 7c3c18a1..52131676 100644 --- a/src/frontend/qt_sdl/Net.cpp +++ b/src/net/Net.cpp @@ -18,11 +18,11 @@ #include #include -#include #include "Net.h" +#include "Net_PCap.h" +#include "Net_Slirp.h" #include "PacketDispatcher.h" #include "Platform.h" -#include "Config.h" using namespace melonDS; @@ -38,18 +38,17 @@ bool DirectMode; PacketDispatcher Dispatcher; -bool Init() +bool Init(bool direct, const char* devicename) { if (Inited) DeInit(); Dispatcher.clear(); - Config::Table cfg = Config::GetGlobalTable(); - DirectMode = cfg.GetBool("LAN.DirectMode"); + DirectMode = direct; bool ret = false; if (DirectMode) - ret = Net_PCap::Init(); + ret = Net_PCap::Init(devicename); else ret = Net_Slirp::Init(); diff --git a/src/frontend/qt_sdl/Net.h b/src/net/Net.h similarity index 80% rename from src/frontend/qt_sdl/Net.h rename to src/net/Net.h index a0a98242..31418831 100644 --- a/src/frontend/qt_sdl/Net.h +++ b/src/net/Net.h @@ -20,14 +20,16 @@ #define NET_H #include "types.h" -#include "Net_PCap.h" -#include "Net_Slirp.h" namespace Net { using namespace melonDS; -bool Init(); +/// +/// @param direct Whether to use direct or indirect mode +/// @param devicename The name of the network device to use; ignored if direct is false +/// @return true if initialization succeeded +bool Init(bool direct, const char* devicename); void DeInit(); void RegisterInstance(int inst); diff --git a/src/frontend/qt_sdl/Net_PCap.cpp b/src/net/Net_PCap.cpp similarity index 97% rename from src/frontend/qt_sdl/Net_PCap.cpp rename to src/net/Net_PCap.cpp index edcddd6f..f6ce59e6 100644 --- a/src/frontend/qt_sdl/Net_PCap.cpp +++ b/src/net/Net_PCap.cpp @@ -19,9 +19,8 @@ #include #include #include "Net.h" -#include "Config.h" +#include "Net_PCap.h" #include "Platform.h" -#include "main.h" #ifdef __WIN32__ #include @@ -299,7 +298,7 @@ bool InitAdapterList() return true; } -bool Init() +bool Init(std::string_view devicename) { if (!PCapLib) PCapAdapter = nullptr; if (PCapAdapter) pcap_close(PCapAdapter); @@ -307,12 +306,10 @@ bool Init() InitAdapterList(); // open pcap device - Config::Table cfg = Config::GetGlobalTable(); - std::string devicename = cfg.GetString("LAN.Device"); PCapAdapterData = &Adapters[0]; for (int i = 0; i < NumAdapters; i++) { - if (!strncmp(Adapters[i].DeviceName, devicename.c_str(), 128)) + if (!strncmp(Adapters[i].DeviceName, devicename.data(), 128)) PCapAdapterData = &Adapters[i]; } diff --git a/src/frontend/qt_sdl/Net_PCap.h b/src/net/Net_PCap.h similarity index 94% rename from src/frontend/qt_sdl/Net_PCap.h rename to src/net/Net_PCap.h index 47df6437..bf2ad882 100644 --- a/src/frontend/qt_sdl/Net_PCap.h +++ b/src/net/Net_PCap.h @@ -19,6 +19,7 @@ #ifndef NET_PCAP_H #define NET_PCAP_H +#include #include "types.h" namespace Net_PCap @@ -41,7 +42,7 @@ extern int NumAdapters; bool InitAdapterList(); -bool Init(); +bool Init(std::string_view devicename); void DeInit(); int SendPacket(u8* data, int len); diff --git a/src/frontend/qt_sdl/Net_Slirp.cpp b/src/net/Net_Slirp.cpp similarity index 100% rename from src/frontend/qt_sdl/Net_Slirp.cpp rename to src/net/Net_Slirp.cpp diff --git a/src/frontend/qt_sdl/Net_Slirp.h b/src/net/Net_Slirp.h similarity index 100% rename from src/frontend/qt_sdl/Net_Slirp.h rename to src/net/Net_Slirp.h diff --git a/src/frontend/qt_sdl/PacketDispatcher.cpp b/src/net/PacketDispatcher.cpp similarity index 89% rename from src/frontend/qt_sdl/PacketDispatcher.cpp rename to src/net/PacketDispatcher.cpp index d4e8ede0..61deed81 100644 --- a/src/frontend/qt_sdl/PacketDispatcher.cpp +++ b/src/net/PacketDispatcher.cpp @@ -31,7 +31,7 @@ struct PacketHeader const u32 kPacketMagic = 0x4B504C4D; -PacketDispatcher::PacketDispatcher() +PacketDispatcher::PacketDispatcher() : mutex(Platform::Mutex_Create()) { instanceMask = 0; memset(packetQueues, 0, sizeof(packetQueues)); @@ -39,34 +39,34 @@ PacketDispatcher::PacketDispatcher() PacketDispatcher::~PacketDispatcher() { - // + Platform::Mutex_Free(mutex); } void PacketDispatcher::registerInstance(int inst) { - mutex.lock(); + Mutex_Lock(mutex); instanceMask |= (1 << inst); packetQueues[inst] = new PacketQueue(); - mutex.unlock(); + Mutex_Unlock(mutex); } void PacketDispatcher::unregisterInstance(int inst) { - mutex.lock(); + Mutex_Lock(mutex); instanceMask &= ~(1 << inst); delete packetQueues[inst]; - mutex.unlock(); + Mutex_Unlock(mutex); } void PacketDispatcher::clear() { - mutex.lock(); + Mutex_Lock(mutex); for (int i = 0; i < 16; i++) { if (!(instanceMask & (1 << i))) @@ -75,7 +75,7 @@ void PacketDispatcher::clear() PacketQueue* queue = packetQueues[i]; queue->Clear(); } - mutex.unlock(); + Mutex_Unlock(mutex); } @@ -99,7 +99,7 @@ void PacketDispatcher::sendPacket(const void* header, int headerlen, const void* int totallen = sizeof(phdr) + headerlen + datalen; - mutex.lock(); + Mutex_Lock(mutex); for (int i = 0; i < 16; i++) { if (!(recv_mask & (1 << i))) @@ -119,7 +119,7 @@ void PacketDispatcher::sendPacket(const void* header, int headerlen, const void* if (headerlen) queue->Write(header, headerlen); if (datalen) queue->Write(data, datalen); } - mutex.unlock(); + Mutex_Unlock(mutex); } bool PacketDispatcher::recvPacket(void *header, int *headerlen, void *data, int *datalen, int receiver) @@ -127,19 +127,19 @@ bool PacketDispatcher::recvPacket(void *header, int *headerlen, void *data, int if ((!header) && (!data)) return false; if (receiver < 0 || receiver > 15) return false; - mutex.lock(); + Mutex_Lock(mutex); PacketQueue* queue = packetQueues[receiver]; PacketHeader phdr; if (!queue->Read(&phdr, sizeof(phdr))) { - mutex.unlock(); + Mutex_Unlock(mutex); return false; } if (phdr.magic != kPacketMagic) { - mutex.unlock(); + Mutex_Unlock(mutex); return false; } @@ -157,6 +157,6 @@ bool PacketDispatcher::recvPacket(void *header, int *headerlen, void *data, int else queue->Skip(phdr.dataLength); } - mutex.unlock(); + Mutex_Unlock(mutex); return true; } diff --git a/src/frontend/qt_sdl/PacketDispatcher.h b/src/net/PacketDispatcher.h similarity index 95% rename from src/frontend/qt_sdl/PacketDispatcher.h rename to src/net/PacketDispatcher.h index bc9f0948..92df9941 100644 --- a/src/frontend/qt_sdl/PacketDispatcher.h +++ b/src/net/PacketDispatcher.h @@ -19,7 +19,7 @@ #ifndef PACKETDISPATCHER_H #define PACKETDISPATCHER_H -#include +#include "Platform.h" #include "types.h" #include "FIFO.h" @@ -40,7 +40,7 @@ public: bool recvPacket(void* header, int* headerlen, void* data, int* datalen, int receiver); private: - QMutex mutex; + melonDS::Platform::Mutex* mutex; melonDS::u16 instanceMask; PacketQueue* packetQueues[16]; }; diff --git a/src/frontend/libslirp/.clang-format b/src/net/libslirp/.clang-format similarity index 100% rename from src/frontend/libslirp/.clang-format rename to src/net/libslirp/.clang-format diff --git a/src/frontend/libslirp/.gitignore b/src/net/libslirp/.gitignore similarity index 100% rename from src/frontend/libslirp/.gitignore rename to src/net/libslirp/.gitignore diff --git a/src/frontend/libslirp/.gitlab-ci.yml b/src/net/libslirp/.gitlab-ci.yml similarity index 100% rename from src/frontend/libslirp/.gitlab-ci.yml rename to src/net/libslirp/.gitlab-ci.yml diff --git a/src/frontend/libslirp/.gitpublish b/src/net/libslirp/.gitpublish similarity index 100% rename from src/frontend/libslirp/.gitpublish rename to src/net/libslirp/.gitpublish diff --git a/src/frontend/libslirp/CHANGELOG.md b/src/net/libslirp/CHANGELOG.md similarity index 100% rename from src/frontend/libslirp/CHANGELOG.md rename to src/net/libslirp/CHANGELOG.md diff --git a/src/frontend/libslirp/CMakeLists.txt b/src/net/libslirp/CMakeLists.txt similarity index 100% rename from src/frontend/libslirp/CMakeLists.txt rename to src/net/libslirp/CMakeLists.txt diff --git a/src/frontend/libslirp/COPYRIGHT b/src/net/libslirp/COPYRIGHT similarity index 100% rename from src/frontend/libslirp/COPYRIGHT rename to src/net/libslirp/COPYRIGHT diff --git a/src/frontend/libslirp/README.md b/src/net/libslirp/README.md similarity index 100% rename from src/frontend/libslirp/README.md rename to src/net/libslirp/README.md diff --git a/src/frontend/libslirp/fuzzing/IN_arp/arp.pcap b/src/net/libslirp/fuzzing/IN_arp/arp.pcap similarity index 100% rename from src/frontend/libslirp/fuzzing/IN_arp/arp.pcap rename to src/net/libslirp/fuzzing/IN_arp/arp.pcap diff --git a/src/frontend/libslirp/fuzzing/IN_dhcp/dhcp.pkt b/src/net/libslirp/fuzzing/IN_dhcp/dhcp.pkt similarity index 100% rename from src/frontend/libslirp/fuzzing/IN_dhcp/dhcp.pkt rename to src/net/libslirp/fuzzing/IN_dhcp/dhcp.pkt diff --git a/src/frontend/libslirp/fuzzing/IN_dhcp/dhcp_capture.pcap b/src/net/libslirp/fuzzing/IN_dhcp/dhcp_capture.pcap similarity index 100% rename from src/frontend/libslirp/fuzzing/IN_dhcp/dhcp_capture.pcap rename to src/net/libslirp/fuzzing/IN_dhcp/dhcp_capture.pcap diff --git a/src/frontend/libslirp/fuzzing/IN_icmp/icmp_capture.pcap b/src/net/libslirp/fuzzing/IN_icmp/icmp_capture.pcap similarity index 100% rename from src/frontend/libslirp/fuzzing/IN_icmp/icmp_capture.pcap rename to src/net/libslirp/fuzzing/IN_icmp/icmp_capture.pcap diff --git a/src/frontend/libslirp/fuzzing/IN_icmp/ping_10-0-2-2.pcap b/src/net/libslirp/fuzzing/IN_icmp/ping_10-0-2-2.pcap similarity index 100% rename from src/frontend/libslirp/fuzzing/IN_icmp/ping_10-0-2-2.pcap rename to src/net/libslirp/fuzzing/IN_icmp/ping_10-0-2-2.pcap diff --git a/src/frontend/libslirp/fuzzing/IN_icmp6/icmp_capture.pcap b/src/net/libslirp/fuzzing/IN_icmp6/icmp_capture.pcap similarity index 100% rename from src/frontend/libslirp/fuzzing/IN_icmp6/icmp_capture.pcap rename to src/net/libslirp/fuzzing/IN_icmp6/icmp_capture.pcap diff --git a/src/net/libslirp/fuzzing/IN_icmp6/ndp.pcap b/src/net/libslirp/fuzzing/IN_icmp6/ndp.pcap new file mode 100644 index 00000000..74443f1e --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_icmp6/ndp.pcap @@ -0,0 +1 @@ +../IN_ndp/ndp.pcap \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_icmp6/ping_10-0-2-2.pcap b/src/net/libslirp/fuzzing/IN_icmp6/ping_10-0-2-2.pcap similarity index 100% rename from src/frontend/libslirp/fuzzing/IN_icmp6/ping_10-0-2-2.pcap rename to src/net/libslirp/fuzzing/IN_icmp6/ping_10-0-2-2.pcap diff --git a/src/net/libslirp/fuzzing/IN_ip-header/DNS_freedesktop_1-1-1-1.pcap b/src/net/libslirp/fuzzing/IN_ip-header/DNS_freedesktop_1-1-1-1.pcap new file mode 100644 index 00000000..09b9ce1c --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_ip-header/DNS_freedesktop_1-1-1-1.pcap @@ -0,0 +1 @@ +../IN_udp/DNS_freedesktop_1-1-1-1.pcap \ No newline at end of file diff --git a/src/net/libslirp/fuzzing/IN_ip-header/dhcp.pkt b/src/net/libslirp/fuzzing/IN_ip-header/dhcp.pkt new file mode 100644 index 00000000..b1a9e045 --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_ip-header/dhcp.pkt @@ -0,0 +1 @@ +../IN_dhcp/dhcp.pkt \ No newline at end of file diff --git a/src/net/libslirp/fuzzing/IN_ip-header/dhcp_capture.pcap b/src/net/libslirp/fuzzing/IN_ip-header/dhcp_capture.pcap new file mode 100644 index 00000000..e2d9c0db --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_ip-header/dhcp_capture.pcap @@ -0,0 +1 @@ +../IN_dhcp/dhcp_capture.pcap \ No newline at end of file diff --git a/src/net/libslirp/fuzzing/IN_ip-header/icmp_capture.pcap b/src/net/libslirp/fuzzing/IN_ip-header/icmp_capture.pcap new file mode 100644 index 00000000..a9ec1936 --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_ip-header/icmp_capture.pcap @@ -0,0 +1 @@ +../IN_icmp/icmp_capture.pcap \ No newline at end of file diff --git a/src/net/libslirp/fuzzing/IN_ip-header/nc-10.0.2.2-8080.pcap b/src/net/libslirp/fuzzing/IN_ip-header/nc-10.0.2.2-8080.pcap new file mode 100644 index 00000000..c99b568e --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_ip-header/nc-10.0.2.2-8080.pcap @@ -0,0 +1 @@ +../IN_tcp/nc-10.0.2.2-8080.pcap \ No newline at end of file diff --git a/src/net/libslirp/fuzzing/IN_ip-header/nc-ident.pcap b/src/net/libslirp/fuzzing/IN_ip-header/nc-ident.pcap new file mode 100644 index 00000000..51ecdf0e --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_ip-header/nc-ident.pcap @@ -0,0 +1 @@ +../IN_tcp/nc-ident.pcap \ No newline at end of file diff --git a/src/net/libslirp/fuzzing/IN_ip-header/ping_10-0-2-2.pcap b/src/net/libslirp/fuzzing/IN_ip-header/ping_10-0-2-2.pcap new file mode 100644 index 00000000..9a71a0e4 --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_ip-header/ping_10-0-2-2.pcap @@ -0,0 +1 @@ +../IN_icmp/ping_10-0-2-2.pcap \ No newline at end of file diff --git a/src/net/libslirp/fuzzing/IN_ip-header/tcp_qemucapt.pcap b/src/net/libslirp/fuzzing/IN_ip-header/tcp_qemucapt.pcap new file mode 100644 index 00000000..8daa990e --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_ip-header/tcp_qemucapt.pcap @@ -0,0 +1 @@ +../IN_tcp/tcp_qemucapt.pcap \ No newline at end of file diff --git a/src/net/libslirp/fuzzing/IN_ip-header/tftp-get-blah.pkt b/src/net/libslirp/fuzzing/IN_ip-header/tftp-get-blah.pkt new file mode 100644 index 00000000..c95e90d9 --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_ip-header/tftp-get-blah.pkt @@ -0,0 +1 @@ +../IN_tftp/tftp-get-blah.pkt \ No newline at end of file diff --git a/src/net/libslirp/fuzzing/IN_ip-header/tftp_capture.pcap b/src/net/libslirp/fuzzing/IN_ip-header/tftp_capture.pcap new file mode 100644 index 00000000..cbaf3ab0 --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_ip-header/tftp_capture.pcap @@ -0,0 +1 @@ +../IN_tftp/tftp_capture.pcap \ No newline at end of file diff --git a/src/net/libslirp/fuzzing/IN_ip-header/tftp_get_libslirp-txt.pcap b/src/net/libslirp/fuzzing/IN_ip-header/tftp_get_libslirp-txt.pcap new file mode 100644 index 00000000..8aa1945d --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_ip-header/tftp_get_libslirp-txt.pcap @@ -0,0 +1 @@ +../IN_tftp/tftp_get_libslirp-txt.pcap \ No newline at end of file diff --git a/src/net/libslirp/fuzzing/IN_ip6-header/DNS_freedesktop_1-1-1-1.pcap b/src/net/libslirp/fuzzing/IN_ip6-header/DNS_freedesktop_1-1-1-1.pcap new file mode 100644 index 00000000..651c2739 --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_ip6-header/DNS_freedesktop_1-1-1-1.pcap @@ -0,0 +1 @@ +../IN_udp6/DNS_freedesktop_1-1-1-1.pcap \ No newline at end of file diff --git a/src/net/libslirp/fuzzing/IN_ip6-header/icmp_capture.pcap b/src/net/libslirp/fuzzing/IN_ip6-header/icmp_capture.pcap new file mode 100644 index 00000000..519f78a7 --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_ip6-header/icmp_capture.pcap @@ -0,0 +1 @@ +../IN_icmp6/icmp_capture.pcap \ No newline at end of file diff --git a/src/net/libslirp/fuzzing/IN_ip6-header/ping_10-0-2-2.pcap b/src/net/libslirp/fuzzing/IN_ip6-header/ping_10-0-2-2.pcap new file mode 100644 index 00000000..632a2868 --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_ip6-header/ping_10-0-2-2.pcap @@ -0,0 +1 @@ +../IN_icmp6/ping_10-0-2-2.pcap \ No newline at end of file diff --git a/src/net/libslirp/fuzzing/IN_ip6-header/tcp_qemucapt.pcap b/src/net/libslirp/fuzzing/IN_ip6-header/tcp_qemucapt.pcap new file mode 100644 index 00000000..b444205b --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_ip6-header/tcp_qemucapt.pcap @@ -0,0 +1 @@ +../IN_tcp6/tcp_qemucapt.pcap \ No newline at end of file diff --git a/src/net/libslirp/fuzzing/IN_ip6-header/tftp_capture.pcap b/src/net/libslirp/fuzzing/IN_ip6-header/tftp_capture.pcap new file mode 100644 index 00000000..308ab28e --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_ip6-header/tftp_capture.pcap @@ -0,0 +1 @@ +../IN_udp6/tftp_capture.pcap \ No newline at end of file diff --git a/src/net/libslirp/fuzzing/IN_ip6-header/tftp_get_libslirp-txt.pcap b/src/net/libslirp/fuzzing/IN_ip6-header/tftp_get_libslirp-txt.pcap new file mode 100644 index 00000000..d3b4e76d --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_ip6-header/tftp_get_libslirp-txt.pcap @@ -0,0 +1 @@ +../IN_udp6/tftp_get_libslirp-txt.pcap \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_ndp/ndp.pcap b/src/net/libslirp/fuzzing/IN_ndp/ndp.pcap similarity index 100% rename from src/frontend/libslirp/fuzzing/IN_ndp/ndp.pcap rename to src/net/libslirp/fuzzing/IN_ndp/ndp.pcap diff --git a/src/net/libslirp/fuzzing/IN_tcp-d b/src/net/libslirp/fuzzing/IN_tcp-d new file mode 100644 index 00000000..1bca80b4 --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_tcp-d @@ -0,0 +1 @@ +IN_tcp \ No newline at end of file diff --git a/src/net/libslirp/fuzzing/IN_tcp-h b/src/net/libslirp/fuzzing/IN_tcp-h new file mode 100644 index 00000000..1bca80b4 --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_tcp-h @@ -0,0 +1 @@ +IN_tcp \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_tcp/nc-10.0.2.2-8080.pcap b/src/net/libslirp/fuzzing/IN_tcp/nc-10.0.2.2-8080.pcap similarity index 100% rename from src/frontend/libslirp/fuzzing/IN_tcp/nc-10.0.2.2-8080.pcap rename to src/net/libslirp/fuzzing/IN_tcp/nc-10.0.2.2-8080.pcap diff --git a/src/frontend/libslirp/fuzzing/IN_tcp/nc-ident.pcap b/src/net/libslirp/fuzzing/IN_tcp/nc-ident.pcap similarity index 100% rename from src/frontend/libslirp/fuzzing/IN_tcp/nc-ident.pcap rename to src/net/libslirp/fuzzing/IN_tcp/nc-ident.pcap diff --git a/src/frontend/libslirp/fuzzing/IN_tcp/tcp_qemucapt.pcap b/src/net/libslirp/fuzzing/IN_tcp/tcp_qemucapt.pcap similarity index 100% rename from src/frontend/libslirp/fuzzing/IN_tcp/tcp_qemucapt.pcap rename to src/net/libslirp/fuzzing/IN_tcp/tcp_qemucapt.pcap diff --git a/src/net/libslirp/fuzzing/IN_tcp6-d b/src/net/libslirp/fuzzing/IN_tcp6-d new file mode 100644 index 00000000..2ad34597 --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_tcp6-d @@ -0,0 +1 @@ +IN_tcp6 \ No newline at end of file diff --git a/src/net/libslirp/fuzzing/IN_tcp6-h b/src/net/libslirp/fuzzing/IN_tcp6-h new file mode 100644 index 00000000..2ad34597 --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_tcp6-h @@ -0,0 +1 @@ +IN_tcp6 \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_tcp6/tcp_qemucapt.pcap b/src/net/libslirp/fuzzing/IN_tcp6/tcp_qemucapt.pcap similarity index 100% rename from src/frontend/libslirp/fuzzing/IN_tcp6/tcp_qemucapt.pcap rename to src/net/libslirp/fuzzing/IN_tcp6/tcp_qemucapt.pcap diff --git a/src/frontend/libslirp/fuzzing/IN_tftp/tftp-get-blah.pkt b/src/net/libslirp/fuzzing/IN_tftp/tftp-get-blah.pkt similarity index 100% rename from src/frontend/libslirp/fuzzing/IN_tftp/tftp-get-blah.pkt rename to src/net/libslirp/fuzzing/IN_tftp/tftp-get-blah.pkt diff --git a/src/frontend/libslirp/fuzzing/IN_tftp/tftp_capture.pcap b/src/net/libslirp/fuzzing/IN_tftp/tftp_capture.pcap similarity index 100% rename from src/frontend/libslirp/fuzzing/IN_tftp/tftp_capture.pcap rename to src/net/libslirp/fuzzing/IN_tftp/tftp_capture.pcap diff --git a/src/frontend/libslirp/fuzzing/IN_tftp/tftp_get_libslirp-txt.pcap b/src/net/libslirp/fuzzing/IN_tftp/tftp_get_libslirp-txt.pcap similarity index 100% rename from src/frontend/libslirp/fuzzing/IN_tftp/tftp_get_libslirp-txt.pcap rename to src/net/libslirp/fuzzing/IN_tftp/tftp_get_libslirp-txt.pcap diff --git a/src/frontend/libslirp/fuzzing/IN_tftp6/tftp_capture.pcap b/src/net/libslirp/fuzzing/IN_tftp6/tftp_capture.pcap similarity index 100% rename from src/frontend/libslirp/fuzzing/IN_tftp6/tftp_capture.pcap rename to src/net/libslirp/fuzzing/IN_tftp6/tftp_capture.pcap diff --git a/src/frontend/libslirp/fuzzing/IN_tftp6/tftp_get_libslirp-txt.pcap b/src/net/libslirp/fuzzing/IN_tftp6/tftp_get_libslirp-txt.pcap similarity index 100% rename from src/frontend/libslirp/fuzzing/IN_tftp6/tftp_get_libslirp-txt.pcap rename to src/net/libslirp/fuzzing/IN_tftp6/tftp_get_libslirp-txt.pcap diff --git a/src/net/libslirp/fuzzing/IN_udp-h b/src/net/libslirp/fuzzing/IN_udp-h new file mode 100644 index 00000000..d1958903 --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_udp-h @@ -0,0 +1 @@ +IN_udp \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_udp/DNS_freedesktop_1-1-1-1.pcap b/src/net/libslirp/fuzzing/IN_udp/DNS_freedesktop_1-1-1-1.pcap similarity index 100% rename from src/frontend/libslirp/fuzzing/IN_udp/DNS_freedesktop_1-1-1-1.pcap rename to src/net/libslirp/fuzzing/IN_udp/DNS_freedesktop_1-1-1-1.pcap diff --git a/src/net/libslirp/fuzzing/IN_udp/dhcp.pkt b/src/net/libslirp/fuzzing/IN_udp/dhcp.pkt new file mode 100644 index 00000000..b1a9e045 --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_udp/dhcp.pkt @@ -0,0 +1 @@ +../IN_dhcp/dhcp.pkt \ No newline at end of file diff --git a/src/net/libslirp/fuzzing/IN_udp/dhcp_capture.pcap b/src/net/libslirp/fuzzing/IN_udp/dhcp_capture.pcap new file mode 100644 index 00000000..e2d9c0db --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_udp/dhcp_capture.pcap @@ -0,0 +1 @@ +../IN_dhcp/dhcp_capture.pcap \ No newline at end of file diff --git a/src/net/libslirp/fuzzing/IN_udp/tftp-get-blah.pkt b/src/net/libslirp/fuzzing/IN_udp/tftp-get-blah.pkt new file mode 100644 index 00000000..c95e90d9 --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_udp/tftp-get-blah.pkt @@ -0,0 +1 @@ +../IN_tftp/tftp-get-blah.pkt \ No newline at end of file diff --git a/src/net/libslirp/fuzzing/IN_udp/tftp_capture.pcap b/src/net/libslirp/fuzzing/IN_udp/tftp_capture.pcap new file mode 100644 index 00000000..cbaf3ab0 --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_udp/tftp_capture.pcap @@ -0,0 +1 @@ +../IN_tftp/tftp_capture.pcap \ No newline at end of file diff --git a/src/net/libslirp/fuzzing/IN_udp/tftp_get_libslirp-txt.pcap b/src/net/libslirp/fuzzing/IN_udp/tftp_get_libslirp-txt.pcap new file mode 100644 index 00000000..8aa1945d --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_udp/tftp_get_libslirp-txt.pcap @@ -0,0 +1 @@ +../IN_tftp/tftp_get_libslirp-txt.pcap \ No newline at end of file diff --git a/src/net/libslirp/fuzzing/IN_udp6-h b/src/net/libslirp/fuzzing/IN_udp6-h new file mode 100644 index 00000000..4d7837b0 --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_udp6-h @@ -0,0 +1 @@ +IN_udp6 \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/IN_udp6/DNS_freedesktop_1-1-1-1.pcap b/src/net/libslirp/fuzzing/IN_udp6/DNS_freedesktop_1-1-1-1.pcap similarity index 100% rename from src/frontend/libslirp/fuzzing/IN_udp6/DNS_freedesktop_1-1-1-1.pcap rename to src/net/libslirp/fuzzing/IN_udp6/DNS_freedesktop_1-1-1-1.pcap diff --git a/src/net/libslirp/fuzzing/IN_udp6/tftp_capture.pcap b/src/net/libslirp/fuzzing/IN_udp6/tftp_capture.pcap new file mode 100644 index 00000000..9bd68303 --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_udp6/tftp_capture.pcap @@ -0,0 +1 @@ +../IN_tftp6/tftp_capture.pcap \ No newline at end of file diff --git a/src/net/libslirp/fuzzing/IN_udp6/tftp_get_libslirp-txt.pcap b/src/net/libslirp/fuzzing/IN_udp6/tftp_get_libslirp-txt.pcap new file mode 100644 index 00000000..39fc722b --- /dev/null +++ b/src/net/libslirp/fuzzing/IN_udp6/tftp_get_libslirp-txt.pcap @@ -0,0 +1 @@ +../IN_tftp6/tftp_get_libslirp-txt.pcap \ No newline at end of file diff --git a/src/frontend/libslirp/fuzzing/README.md b/src/net/libslirp/fuzzing/README.md similarity index 100% rename from src/frontend/libslirp/fuzzing/README.md rename to src/net/libslirp/fuzzing/README.md diff --git a/src/frontend/libslirp/fuzzing/coverage.py b/src/net/libslirp/fuzzing/coverage.py old mode 100755 new mode 100644 similarity index 100% rename from src/frontend/libslirp/fuzzing/coverage.py rename to src/net/libslirp/fuzzing/coverage.py diff --git a/src/frontend/libslirp/fuzzing/fuzz-input.options b/src/net/libslirp/fuzzing/fuzz-input.options similarity index 100% rename from src/frontend/libslirp/fuzzing/fuzz-input.options rename to src/net/libslirp/fuzzing/fuzz-input.options diff --git a/src/frontend/libslirp/fuzzing/fuzz-main.c b/src/net/libslirp/fuzzing/fuzz-main.c similarity index 100% rename from src/frontend/libslirp/fuzzing/fuzz-main.c rename to src/net/libslirp/fuzzing/fuzz-main.c diff --git a/src/frontend/libslirp/fuzzing/helper.c b/src/net/libslirp/fuzzing/helper.c similarity index 100% rename from src/frontend/libslirp/fuzzing/helper.c rename to src/net/libslirp/fuzzing/helper.c diff --git a/src/frontend/libslirp/fuzzing/helper.h b/src/net/libslirp/fuzzing/helper.h similarity index 100% rename from src/frontend/libslirp/fuzzing/helper.h rename to src/net/libslirp/fuzzing/helper.h diff --git a/src/frontend/libslirp/fuzzing/meson.build b/src/net/libslirp/fuzzing/meson.build similarity index 100% rename from src/frontend/libslirp/fuzzing/meson.build rename to src/net/libslirp/fuzzing/meson.build diff --git a/src/frontend/libslirp/fuzzing/oss-fuzz.sh b/src/net/libslirp/fuzzing/oss-fuzz.sh old mode 100755 new mode 100644 similarity index 100% rename from src/frontend/libslirp/fuzzing/oss-fuzz.sh rename to src/net/libslirp/fuzzing/oss-fuzz.sh diff --git a/src/frontend/libslirp/fuzzing/reproducer.c b/src/net/libslirp/fuzzing/reproducer.c similarity index 100% rename from src/frontend/libslirp/fuzzing/reproducer.c rename to src/net/libslirp/fuzzing/reproducer.c diff --git a/src/frontend/libslirp/fuzzing/slirp_base_fuzz.h b/src/net/libslirp/fuzzing/slirp_base_fuzz.h similarity index 100% rename from src/frontend/libslirp/fuzzing/slirp_base_fuzz.h rename to src/net/libslirp/fuzzing/slirp_base_fuzz.h diff --git a/src/frontend/libslirp/fuzzing/slirp_fuzz_arp.c b/src/net/libslirp/fuzzing/slirp_fuzz_arp.c similarity index 100% rename from src/frontend/libslirp/fuzzing/slirp_fuzz_arp.c rename to src/net/libslirp/fuzzing/slirp_fuzz_arp.c diff --git a/src/frontend/libslirp/fuzzing/slirp_fuzz_icmp.c b/src/net/libslirp/fuzzing/slirp_fuzz_icmp.c similarity index 100% rename from src/frontend/libslirp/fuzzing/slirp_fuzz_icmp.c rename to src/net/libslirp/fuzzing/slirp_fuzz_icmp.c diff --git a/src/frontend/libslirp/fuzzing/slirp_fuzz_icmp6.c b/src/net/libslirp/fuzzing/slirp_fuzz_icmp6.c similarity index 100% rename from src/frontend/libslirp/fuzzing/slirp_fuzz_icmp6.c rename to src/net/libslirp/fuzzing/slirp_fuzz_icmp6.c diff --git a/src/frontend/libslirp/fuzzing/slirp_fuzz_ip6_header.c b/src/net/libslirp/fuzzing/slirp_fuzz_ip6_header.c similarity index 100% rename from src/frontend/libslirp/fuzzing/slirp_fuzz_ip6_header.c rename to src/net/libslirp/fuzzing/slirp_fuzz_ip6_header.c diff --git a/src/frontend/libslirp/fuzzing/slirp_fuzz_ip_header.c b/src/net/libslirp/fuzzing/slirp_fuzz_ip_header.c similarity index 100% rename from src/frontend/libslirp/fuzzing/slirp_fuzz_ip_header.c rename to src/net/libslirp/fuzzing/slirp_fuzz_ip_header.c diff --git a/src/frontend/libslirp/fuzzing/slirp_fuzz_tcp.c b/src/net/libslirp/fuzzing/slirp_fuzz_tcp.c similarity index 100% rename from src/frontend/libslirp/fuzzing/slirp_fuzz_tcp.c rename to src/net/libslirp/fuzzing/slirp_fuzz_tcp.c diff --git a/src/frontend/libslirp/fuzzing/slirp_fuzz_tcp6.c b/src/net/libslirp/fuzzing/slirp_fuzz_tcp6.c similarity index 100% rename from src/frontend/libslirp/fuzzing/slirp_fuzz_tcp6.c rename to src/net/libslirp/fuzzing/slirp_fuzz_tcp6.c diff --git a/src/frontend/libslirp/fuzzing/slirp_fuzz_tcp6_data.c b/src/net/libslirp/fuzzing/slirp_fuzz_tcp6_data.c similarity index 100% rename from src/frontend/libslirp/fuzzing/slirp_fuzz_tcp6_data.c rename to src/net/libslirp/fuzzing/slirp_fuzz_tcp6_data.c diff --git a/src/frontend/libslirp/fuzzing/slirp_fuzz_tcp6_header.c b/src/net/libslirp/fuzzing/slirp_fuzz_tcp6_header.c similarity index 100% rename from src/frontend/libslirp/fuzzing/slirp_fuzz_tcp6_header.c rename to src/net/libslirp/fuzzing/slirp_fuzz_tcp6_header.c diff --git a/src/frontend/libslirp/fuzzing/slirp_fuzz_tcp_data.c b/src/net/libslirp/fuzzing/slirp_fuzz_tcp_data.c similarity index 100% rename from src/frontend/libslirp/fuzzing/slirp_fuzz_tcp_data.c rename to src/net/libslirp/fuzzing/slirp_fuzz_tcp_data.c diff --git a/src/frontend/libslirp/fuzzing/slirp_fuzz_tcp_header.c b/src/net/libslirp/fuzzing/slirp_fuzz_tcp_header.c similarity index 100% rename from src/frontend/libslirp/fuzzing/slirp_fuzz_tcp_header.c rename to src/net/libslirp/fuzzing/slirp_fuzz_tcp_header.c diff --git a/src/frontend/libslirp/fuzzing/slirp_fuzz_udp.c b/src/net/libslirp/fuzzing/slirp_fuzz_udp.c similarity index 100% rename from src/frontend/libslirp/fuzzing/slirp_fuzz_udp.c rename to src/net/libslirp/fuzzing/slirp_fuzz_udp.c diff --git a/src/frontend/libslirp/fuzzing/slirp_fuzz_udp6.c b/src/net/libslirp/fuzzing/slirp_fuzz_udp6.c similarity index 100% rename from src/frontend/libslirp/fuzzing/slirp_fuzz_udp6.c rename to src/net/libslirp/fuzzing/slirp_fuzz_udp6.c diff --git a/src/frontend/libslirp/fuzzing/slirp_fuzz_udp6_data.c b/src/net/libslirp/fuzzing/slirp_fuzz_udp6_data.c similarity index 100% rename from src/frontend/libslirp/fuzzing/slirp_fuzz_udp6_data.c rename to src/net/libslirp/fuzzing/slirp_fuzz_udp6_data.c diff --git a/src/frontend/libslirp/fuzzing/slirp_fuzz_udp6_header.c b/src/net/libslirp/fuzzing/slirp_fuzz_udp6_header.c similarity index 100% rename from src/frontend/libslirp/fuzzing/slirp_fuzz_udp6_header.c rename to src/net/libslirp/fuzzing/slirp_fuzz_udp6_header.c diff --git a/src/frontend/libslirp/fuzzing/slirp_fuzz_udp_data.c b/src/net/libslirp/fuzzing/slirp_fuzz_udp_data.c similarity index 100% rename from src/frontend/libslirp/fuzzing/slirp_fuzz_udp_data.c rename to src/net/libslirp/fuzzing/slirp_fuzz_udp_data.c diff --git a/src/frontend/libslirp/fuzzing/slirp_fuzz_udp_header.c b/src/net/libslirp/fuzzing/slirp_fuzz_udp_header.c similarity index 100% rename from src/frontend/libslirp/fuzzing/slirp_fuzz_udp_header.c rename to src/net/libslirp/fuzzing/slirp_fuzz_udp_header.c diff --git a/src/frontend/libslirp/fuzzing/tftp/toto b/src/net/libslirp/fuzzing/tftp/toto similarity index 100% rename from src/frontend/libslirp/fuzzing/tftp/toto rename to src/net/libslirp/fuzzing/tftp/toto diff --git a/src/frontend/libslirp/glib/glib.c b/src/net/libslirp/glib/glib.c similarity index 100% rename from src/frontend/libslirp/glib/glib.c rename to src/net/libslirp/glib/glib.c diff --git a/src/frontend/libslirp/glib/glib.h b/src/net/libslirp/glib/glib.h similarity index 100% rename from src/frontend/libslirp/glib/glib.h rename to src/net/libslirp/glib/glib.h diff --git a/src/frontend/libslirp/meson.build b/src/net/libslirp/meson.build similarity index 100% rename from src/frontend/libslirp/meson.build rename to src/net/libslirp/meson.build diff --git a/src/frontend/libslirp/meson_options.txt b/src/net/libslirp/meson_options.txt similarity index 100% rename from src/frontend/libslirp/meson_options.txt rename to src/net/libslirp/meson_options.txt diff --git a/src/frontend/libslirp/src/arp_table.c b/src/net/libslirp/src/arp_table.c similarity index 100% rename from src/frontend/libslirp/src/arp_table.c rename to src/net/libslirp/src/arp_table.c diff --git a/src/frontend/libslirp/src/bootp.c b/src/net/libslirp/src/bootp.c similarity index 100% rename from src/frontend/libslirp/src/bootp.c rename to src/net/libslirp/src/bootp.c diff --git a/src/frontend/libslirp/src/bootp.h b/src/net/libslirp/src/bootp.h similarity index 100% rename from src/frontend/libslirp/src/bootp.h rename to src/net/libslirp/src/bootp.h diff --git a/src/frontend/libslirp/src/cksum.c b/src/net/libslirp/src/cksum.c similarity index 100% rename from src/frontend/libslirp/src/cksum.c rename to src/net/libslirp/src/cksum.c diff --git a/src/frontend/libslirp/src/debug.h b/src/net/libslirp/src/debug.h similarity index 100% rename from src/frontend/libslirp/src/debug.h rename to src/net/libslirp/src/debug.h diff --git a/src/frontend/libslirp/src/dhcpv6.c b/src/net/libslirp/src/dhcpv6.c similarity index 100% rename from src/frontend/libslirp/src/dhcpv6.c rename to src/net/libslirp/src/dhcpv6.c diff --git a/src/frontend/libslirp/src/dhcpv6.h b/src/net/libslirp/src/dhcpv6.h similarity index 100% rename from src/frontend/libslirp/src/dhcpv6.h rename to src/net/libslirp/src/dhcpv6.h diff --git a/src/frontend/libslirp/src/dnssearch.c b/src/net/libslirp/src/dnssearch.c similarity index 100% rename from src/frontend/libslirp/src/dnssearch.c rename to src/net/libslirp/src/dnssearch.c diff --git a/src/frontend/libslirp/src/if.c b/src/net/libslirp/src/if.c similarity index 100% rename from src/frontend/libslirp/src/if.c rename to src/net/libslirp/src/if.c diff --git a/src/frontend/libslirp/src/if.h b/src/net/libslirp/src/if.h similarity index 100% rename from src/frontend/libslirp/src/if.h rename to src/net/libslirp/src/if.h diff --git a/src/frontend/libslirp/src/ip.h b/src/net/libslirp/src/ip.h similarity index 100% rename from src/frontend/libslirp/src/ip.h rename to src/net/libslirp/src/ip.h diff --git a/src/frontend/libslirp/src/ip6.h b/src/net/libslirp/src/ip6.h similarity index 100% rename from src/frontend/libslirp/src/ip6.h rename to src/net/libslirp/src/ip6.h diff --git a/src/frontend/libslirp/src/ip6_icmp.c b/src/net/libslirp/src/ip6_icmp.c similarity index 100% rename from src/frontend/libslirp/src/ip6_icmp.c rename to src/net/libslirp/src/ip6_icmp.c diff --git a/src/frontend/libslirp/src/ip6_icmp.h b/src/net/libslirp/src/ip6_icmp.h similarity index 100% rename from src/frontend/libslirp/src/ip6_icmp.h rename to src/net/libslirp/src/ip6_icmp.h diff --git a/src/frontend/libslirp/src/ip6_input.c b/src/net/libslirp/src/ip6_input.c similarity index 100% rename from src/frontend/libslirp/src/ip6_input.c rename to src/net/libslirp/src/ip6_input.c diff --git a/src/frontend/libslirp/src/ip6_output.c b/src/net/libslirp/src/ip6_output.c similarity index 100% rename from src/frontend/libslirp/src/ip6_output.c rename to src/net/libslirp/src/ip6_output.c diff --git a/src/frontend/libslirp/src/ip_icmp.c b/src/net/libslirp/src/ip_icmp.c similarity index 100% rename from src/frontend/libslirp/src/ip_icmp.c rename to src/net/libslirp/src/ip_icmp.c diff --git a/src/frontend/libslirp/src/ip_icmp.h b/src/net/libslirp/src/ip_icmp.h similarity index 100% rename from src/frontend/libslirp/src/ip_icmp.h rename to src/net/libslirp/src/ip_icmp.h diff --git a/src/frontend/libslirp/src/ip_input.c b/src/net/libslirp/src/ip_input.c similarity index 100% rename from src/frontend/libslirp/src/ip_input.c rename to src/net/libslirp/src/ip_input.c diff --git a/src/frontend/libslirp/src/ip_output.c b/src/net/libslirp/src/ip_output.c similarity index 100% rename from src/frontend/libslirp/src/ip_output.c rename to src/net/libslirp/src/ip_output.c diff --git a/src/frontend/libslirp/src/libslirp-version.h.in b/src/net/libslirp/src/libslirp-version.h.in similarity index 100% rename from src/frontend/libslirp/src/libslirp-version.h.in rename to src/net/libslirp/src/libslirp-version.h.in diff --git a/src/frontend/libslirp/src/libslirp.h b/src/net/libslirp/src/libslirp.h similarity index 100% rename from src/frontend/libslirp/src/libslirp.h rename to src/net/libslirp/src/libslirp.h diff --git a/src/frontend/libslirp/src/libslirp.map b/src/net/libslirp/src/libslirp.map similarity index 100% rename from src/frontend/libslirp/src/libslirp.map rename to src/net/libslirp/src/libslirp.map diff --git a/src/frontend/libslirp/src/libslirp.test.map b/src/net/libslirp/src/libslirp.test.map similarity index 100% rename from src/frontend/libslirp/src/libslirp.test.map rename to src/net/libslirp/src/libslirp.test.map diff --git a/src/frontend/libslirp/src/main.h b/src/net/libslirp/src/main.h similarity index 100% rename from src/frontend/libslirp/src/main.h rename to src/net/libslirp/src/main.h diff --git a/src/frontend/libslirp/src/mbuf.c b/src/net/libslirp/src/mbuf.c similarity index 100% rename from src/frontend/libslirp/src/mbuf.c rename to src/net/libslirp/src/mbuf.c diff --git a/src/frontend/libslirp/src/mbuf.h b/src/net/libslirp/src/mbuf.h similarity index 100% rename from src/frontend/libslirp/src/mbuf.h rename to src/net/libslirp/src/mbuf.h diff --git a/src/frontend/libslirp/src/misc.c b/src/net/libslirp/src/misc.c similarity index 100% rename from src/frontend/libslirp/src/misc.c rename to src/net/libslirp/src/misc.c diff --git a/src/frontend/libslirp/src/misc.h b/src/net/libslirp/src/misc.h similarity index 100% rename from src/frontend/libslirp/src/misc.h rename to src/net/libslirp/src/misc.h diff --git a/src/frontend/libslirp/src/ncsi-pkt.h b/src/net/libslirp/src/ncsi-pkt.h similarity index 100% rename from src/frontend/libslirp/src/ncsi-pkt.h rename to src/net/libslirp/src/ncsi-pkt.h diff --git a/src/frontend/libslirp/src/ncsi.c b/src/net/libslirp/src/ncsi.c similarity index 100% rename from src/frontend/libslirp/src/ncsi.c rename to src/net/libslirp/src/ncsi.c diff --git a/src/frontend/libslirp/src/ndp_table.c b/src/net/libslirp/src/ndp_table.c similarity index 100% rename from src/frontend/libslirp/src/ndp_table.c rename to src/net/libslirp/src/ndp_table.c diff --git a/src/frontend/libslirp/src/sbuf.c b/src/net/libslirp/src/sbuf.c similarity index 100% rename from src/frontend/libslirp/src/sbuf.c rename to src/net/libslirp/src/sbuf.c diff --git a/src/frontend/libslirp/src/sbuf.h b/src/net/libslirp/src/sbuf.h similarity index 100% rename from src/frontend/libslirp/src/sbuf.h rename to src/net/libslirp/src/sbuf.h diff --git a/src/frontend/libslirp/src/slirp.c b/src/net/libslirp/src/slirp.c similarity index 100% rename from src/frontend/libslirp/src/slirp.c rename to src/net/libslirp/src/slirp.c diff --git a/src/frontend/libslirp/src/slirp.h b/src/net/libslirp/src/slirp.h similarity index 100% rename from src/frontend/libslirp/src/slirp.h rename to src/net/libslirp/src/slirp.h diff --git a/src/frontend/libslirp/src/socket.c b/src/net/libslirp/src/socket.c similarity index 100% rename from src/frontend/libslirp/src/socket.c rename to src/net/libslirp/src/socket.c diff --git a/src/frontend/libslirp/src/socket.h b/src/net/libslirp/src/socket.h similarity index 100% rename from src/frontend/libslirp/src/socket.h rename to src/net/libslirp/src/socket.h diff --git a/src/frontend/libslirp/src/state.c b/src/net/libslirp/src/state.c similarity index 100% rename from src/frontend/libslirp/src/state.c rename to src/net/libslirp/src/state.c diff --git a/src/frontend/libslirp/src/stream.c b/src/net/libslirp/src/stream.c similarity index 100% rename from src/frontend/libslirp/src/stream.c rename to src/net/libslirp/src/stream.c diff --git a/src/frontend/libslirp/src/stream.h b/src/net/libslirp/src/stream.h similarity index 100% rename from src/frontend/libslirp/src/stream.h rename to src/net/libslirp/src/stream.h diff --git a/src/frontend/libslirp/src/tcp.h b/src/net/libslirp/src/tcp.h similarity index 100% rename from src/frontend/libslirp/src/tcp.h rename to src/net/libslirp/src/tcp.h diff --git a/src/frontend/libslirp/src/tcp_input.c b/src/net/libslirp/src/tcp_input.c similarity index 100% rename from src/frontend/libslirp/src/tcp_input.c rename to src/net/libslirp/src/tcp_input.c diff --git a/src/frontend/libslirp/src/tcp_output.c b/src/net/libslirp/src/tcp_output.c similarity index 100% rename from src/frontend/libslirp/src/tcp_output.c rename to src/net/libslirp/src/tcp_output.c diff --git a/src/frontend/libslirp/src/tcp_subr.c b/src/net/libslirp/src/tcp_subr.c similarity index 100% rename from src/frontend/libslirp/src/tcp_subr.c rename to src/net/libslirp/src/tcp_subr.c diff --git a/src/frontend/libslirp/src/tcp_timer.c b/src/net/libslirp/src/tcp_timer.c similarity index 100% rename from src/frontend/libslirp/src/tcp_timer.c rename to src/net/libslirp/src/tcp_timer.c diff --git a/src/frontend/libslirp/src/tcp_timer.h b/src/net/libslirp/src/tcp_timer.h similarity index 100% rename from src/frontend/libslirp/src/tcp_timer.h rename to src/net/libslirp/src/tcp_timer.h diff --git a/src/frontend/libslirp/src/tcp_var.h b/src/net/libslirp/src/tcp_var.h similarity index 100% rename from src/frontend/libslirp/src/tcp_var.h rename to src/net/libslirp/src/tcp_var.h diff --git a/src/frontend/libslirp/src/tcpip.h b/src/net/libslirp/src/tcpip.h similarity index 100% rename from src/frontend/libslirp/src/tcpip.h rename to src/net/libslirp/src/tcpip.h diff --git a/src/frontend/libslirp/src/tftp.c b/src/net/libslirp/src/tftp.c similarity index 100% rename from src/frontend/libslirp/src/tftp.c rename to src/net/libslirp/src/tftp.c diff --git a/src/frontend/libslirp/src/tftp.h b/src/net/libslirp/src/tftp.h similarity index 100% rename from src/frontend/libslirp/src/tftp.h rename to src/net/libslirp/src/tftp.h diff --git a/src/frontend/libslirp/src/udp.c b/src/net/libslirp/src/udp.c similarity index 100% rename from src/frontend/libslirp/src/udp.c rename to src/net/libslirp/src/udp.c diff --git a/src/frontend/libslirp/src/udp.h b/src/net/libslirp/src/udp.h similarity index 100% rename from src/frontend/libslirp/src/udp.h rename to src/net/libslirp/src/udp.h diff --git a/src/frontend/libslirp/src/udp6.c b/src/net/libslirp/src/udp6.c similarity index 100% rename from src/frontend/libslirp/src/udp6.c rename to src/net/libslirp/src/udp6.c diff --git a/src/frontend/libslirp/src/util.c b/src/net/libslirp/src/util.c similarity index 100% rename from src/frontend/libslirp/src/util.c rename to src/net/libslirp/src/util.c diff --git a/src/frontend/libslirp/src/util.h b/src/net/libslirp/src/util.h similarity index 100% rename from src/frontend/libslirp/src/util.h rename to src/net/libslirp/src/util.h diff --git a/src/frontend/libslirp/src/version.c b/src/net/libslirp/src/version.c similarity index 100% rename from src/frontend/libslirp/src/version.c rename to src/net/libslirp/src/version.c diff --git a/src/frontend/libslirp/src/vmstate.c b/src/net/libslirp/src/vmstate.c similarity index 100% rename from src/frontend/libslirp/src/vmstate.c rename to src/net/libslirp/src/vmstate.c diff --git a/src/frontend/libslirp/src/vmstate.h b/src/net/libslirp/src/vmstate.h similarity index 100% rename from src/frontend/libslirp/src/vmstate.h rename to src/net/libslirp/src/vmstate.h diff --git a/src/frontend/libslirp/test/ncsitest.c b/src/net/libslirp/test/ncsitest.c similarity index 100% rename from src/frontend/libslirp/test/ncsitest.c rename to src/net/libslirp/test/ncsitest.c diff --git a/src/frontend/libslirp/test/pingtest.c b/src/net/libslirp/test/pingtest.c similarity index 100% rename from src/frontend/libslirp/test/pingtest.c rename to src/net/libslirp/test/pingtest.c diff --git a/src/frontend/qt_sdl/pcap/bluetooth.h b/src/net/pcap/bluetooth.h similarity index 100% rename from src/frontend/qt_sdl/pcap/bluetooth.h rename to src/net/pcap/bluetooth.h diff --git a/src/frontend/qt_sdl/pcap/bpf.h b/src/net/pcap/bpf.h similarity index 100% rename from src/frontend/qt_sdl/pcap/bpf.h rename to src/net/pcap/bpf.h diff --git a/src/frontend/qt_sdl/pcap/can_socketcan.h b/src/net/pcap/can_socketcan.h similarity index 100% rename from src/frontend/qt_sdl/pcap/can_socketcan.h rename to src/net/pcap/can_socketcan.h diff --git a/src/frontend/qt_sdl/pcap/compiler-tests.h b/src/net/pcap/compiler-tests.h similarity index 100% rename from src/frontend/qt_sdl/pcap/compiler-tests.h rename to src/net/pcap/compiler-tests.h diff --git a/src/frontend/qt_sdl/pcap/dlt.h b/src/net/pcap/dlt.h similarity index 100% rename from src/frontend/qt_sdl/pcap/dlt.h rename to src/net/pcap/dlt.h diff --git a/src/frontend/qt_sdl/pcap/funcattrs.h b/src/net/pcap/funcattrs.h similarity index 100% rename from src/frontend/qt_sdl/pcap/funcattrs.h rename to src/net/pcap/funcattrs.h diff --git a/src/frontend/qt_sdl/pcap/ipnet.h b/src/net/pcap/ipnet.h similarity index 100% rename from src/frontend/qt_sdl/pcap/ipnet.h rename to src/net/pcap/ipnet.h diff --git a/src/frontend/qt_sdl/pcap/namedb.h b/src/net/pcap/namedb.h similarity index 100% rename from src/frontend/qt_sdl/pcap/namedb.h rename to src/net/pcap/namedb.h diff --git a/src/frontend/qt_sdl/pcap/nflog.h b/src/net/pcap/nflog.h similarity index 100% rename from src/frontend/qt_sdl/pcap/nflog.h rename to src/net/pcap/nflog.h diff --git a/src/frontend/qt_sdl/pcap/pcap-inttypes.h b/src/net/pcap/pcap-inttypes.h similarity index 100% rename from src/frontend/qt_sdl/pcap/pcap-inttypes.h rename to src/net/pcap/pcap-inttypes.h diff --git a/src/frontend/qt_sdl/pcap/pcap.h b/src/net/pcap/pcap.h similarity index 100% rename from src/frontend/qt_sdl/pcap/pcap.h rename to src/net/pcap/pcap.h diff --git a/src/frontend/qt_sdl/pcap/sll.h b/src/net/pcap/sll.h similarity index 100% rename from src/frontend/qt_sdl/pcap/sll.h rename to src/net/pcap/sll.h diff --git a/src/frontend/qt_sdl/pcap/usb.h b/src/net/pcap/usb.h similarity index 100% rename from src/frontend/qt_sdl/pcap/usb.h rename to src/net/pcap/usb.h diff --git a/src/frontend/qt_sdl/pcap/vlan.h b/src/net/pcap/vlan.h similarity index 100% rename from src/frontend/qt_sdl/pcap/vlan.h rename to src/net/pcap/vlan.h From d92c9fcd902244eb8f7f1932281da401b2e0f559 Mon Sep 17 00:00:00 2001 From: Arisotura Date: Mon, 15 Jul 2024 12:57:18 +0200 Subject: [PATCH 08/13] do not immediately create a core when creating an EmuInstance. fixes some nasty potential bugs. watch out for bugs this may introduce though... --- src/frontend/qt_sdl/EmuInstance.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/frontend/qt_sdl/EmuInstance.cpp b/src/frontend/qt_sdl/EmuInstance.cpp index 7de4bdec..4666c1d1 100644 --- a/src/frontend/qt_sdl/EmuInstance.cpp +++ b/src/frontend/qt_sdl/EmuInstance.cpp @@ -92,7 +92,7 @@ EmuInstance::EmuInstance(int inst) : instanceID(inst), mpAudioMode = globalCfg.GetInt("MP.AudioMode"); nds = nullptr; - updateConsole(nullptr, nullptr); + //updateConsole(nullptr, nullptr); audioInit(); inputInit(); From 2031f491f04a76df9f00471667d1ded851f4730c Mon Sep 17 00:00:00 2001 From: Arisotura Date: Mon, 15 Jul 2024 13:00:40 +0200 Subject: [PATCH 09/13] fix some Qt6 bugs (buttonClicked -> idClicked) --- src/frontend/qt_sdl/AudioSettingsDialog.cpp | 4 ++++ src/frontend/qt_sdl/TitleManagerDialog.cpp | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/frontend/qt_sdl/AudioSettingsDialog.cpp b/src/frontend/qt_sdl/AudioSettingsDialog.cpp index 1ca5c1ce..37f856ac 100644 --- a/src/frontend/qt_sdl/AudioSettingsDialog.cpp +++ b/src/frontend/qt_sdl/AudioSettingsDialog.cpp @@ -103,7 +103,11 @@ AudioSettingsDialog::AudioSettingsDialog(QWidget* parent) : QDialog(parent), ui( grpMicMode->addButton(ui->rbMicExternal, micInputType_External); grpMicMode->addButton(ui->rbMicNoise, micInputType_Noise); grpMicMode->addButton(ui->rbMicWav, micInputType_Wav); +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) connect(grpMicMode, SIGNAL(buttonClicked(int)), this, SLOT(onChangeMicMode(int))); +#else + connect(grpMicMode, SIGNAL(idClicked(int)), this, SLOT(onChangeMicMode(int))); +#endif grpMicMode->button(mictype)->setChecked(true); ui->txtMicWavPath->setText(cfg.GetQString("Mic.WavPath")); diff --git a/src/frontend/qt_sdl/TitleManagerDialog.cpp b/src/frontend/qt_sdl/TitleManagerDialog.cpp index 91464888..908ae70f 100644 --- a/src/frontend/qt_sdl/TitleManagerDialog.cpp +++ b/src/frontend/qt_sdl/TitleManagerDialog.cpp @@ -397,7 +397,11 @@ TitleImportDialog::TitleImportDialog(QWidget* parent, QString& apppath, const DS grpTmdSource = new QButtonGroup(this); grpTmdSource->addButton(ui->rbTmdFromFile, 0); grpTmdSource->addButton(ui->rbTmdFromNUS, 1); +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) connect(grpTmdSource, SIGNAL(buttonClicked(int)), this, SLOT(onChangeTmdSource(int))); +#else + connect(grpTmdSource, SIGNAL(idClicked(int)), this, SLOT(onChangeTmdSource(int))); +#endif grpTmdSource->button(0)->setChecked(true); } From 6d2ad2a3f04e2659b6b2afe4d503610eb269d8b1 Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Mon, 15 Jul 2024 13:57:21 +0200 Subject: [PATCH 10/13] Ignore touch events originating from trackpads Fixes multi-finger gestures causing spurious touch screen presses Also fix some deprecations when we're at it anyway --- src/frontend/qt_sdl/Screen.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/frontend/qt_sdl/Screen.cpp b/src/frontend/qt_sdl/Screen.cpp index f1a3ad7c..3974ffc7 100644 --- a/src/frontend/qt_sdl/Screen.cpp +++ b/src/frontend/qt_sdl/Screen.cpp @@ -302,15 +302,18 @@ void ScreenPanel::tabletEvent(QTabletEvent* event) void ScreenPanel::touchEvent(QTouchEvent* event) { + if (event->deviceType() == QInputDevice::DeviceType::TouchPad) + return; + event->accept(); switch(event->type()) { case QEvent::TouchBegin: case QEvent::TouchUpdate: - if (event->touchPoints().length() > 0) + if (event->points().length() > 0) { - QPointF lastPosition = event->touchPoints().first().lastPos(); + QPointF lastPosition = event->points().first().lastPosition(); int x = (int)lastPosition.x(); int y = (int)lastPosition.y(); From 71f4d7b222f5c2e086f4ead8921dc9df61a7d2f2 Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Mon, 15 Jul 2024 14:04:40 +0200 Subject: [PATCH 11/13] deviceType doesn't exist in Qt5 apparently --- src/frontend/qt_sdl/Screen.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/frontend/qt_sdl/Screen.cpp b/src/frontend/qt_sdl/Screen.cpp index 3974ffc7..29e0663a 100644 --- a/src/frontend/qt_sdl/Screen.cpp +++ b/src/frontend/qt_sdl/Screen.cpp @@ -302,7 +302,7 @@ void ScreenPanel::tabletEvent(QTabletEvent* event) void ScreenPanel::touchEvent(QTouchEvent* event) { - if (event->deviceType() == QInputDevice::DeviceType::TouchPad) + if (event->device()->type() == QInputDevice::DeviceType::TouchPad) return; event->accept(); From 4b17de7e8cd5a9b82100cf0e720db16b37a3bfba Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Mon, 15 Jul 2024 14:37:37 +0200 Subject: [PATCH 12/13] Fix annoying Qt touch event deprecations for real this time --- src/frontend/qt_sdl/Screen.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/frontend/qt_sdl/Screen.cpp b/src/frontend/qt_sdl/Screen.cpp index 29e0663a..c302d546 100644 --- a/src/frontend/qt_sdl/Screen.cpp +++ b/src/frontend/qt_sdl/Screen.cpp @@ -276,8 +276,13 @@ void ScreenPanel::tabletEvent(QTabletEvent* event) case QEvent::TabletPress: case QEvent::TabletMove: { +#if QT_VERSION_MAJOR == 6 + int x = event->position().x(); + int y = event->position().y(); +#else int x = event->x(); int y = event->y(); +#endif if (layout.GetTouchCoords(x, y, event->type()==QEvent::TabletMove)) { @@ -302,8 +307,10 @@ void ScreenPanel::tabletEvent(QTabletEvent* event) void ScreenPanel::touchEvent(QTouchEvent* event) { +#if QT_VERSION_MAJOR == 6 if (event->device()->type() == QInputDevice::DeviceType::TouchPad) return; +#endif event->accept(); @@ -311,9 +318,15 @@ void ScreenPanel::touchEvent(QTouchEvent* event) { case QEvent::TouchBegin: case QEvent::TouchUpdate: +#if QT_VERSION_MAJOR == 6 if (event->points().length() > 0) { QPointF lastPosition = event->points().first().lastPosition(); +#else + if (event->touchPoints().length() > 0) + { + QPointF lastPosition = event->touchPoints().first().lastPos(); +#endif int x = (int)lastPosition.x(); int y = (int)lastPosition.y(); From 5eadd67df6da429891fdfba02bf650f4fefe4ab6 Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Wed, 17 Jul 2024 15:44:47 +0200 Subject: [PATCH 13/13] EmuInstance: Use GetLocalFilePath to get the wfcsettings path Fixes the file being created in the current working directory. --- src/frontend/qt_sdl/EmuInstance.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/frontend/qt_sdl/EmuInstance.cpp b/src/frontend/qt_sdl/EmuInstance.cpp index 4666c1d1..96e1ef59 100644 --- a/src/frontend/qt_sdl/EmuInstance.cpp +++ b/src/frontend/qt_sdl/EmuInstance.cpp @@ -518,7 +518,7 @@ std::string EmuInstance::getEffectiveFirmwareSavePath() { if (!globalCfg.GetBool("Emu.ExternalBIOSEnable")) { - return kWifiSettingsPath; + return GetLocalFilePath(kWifiSettingsPath); } if (consoleType == 1) { @@ -1261,7 +1261,7 @@ void EmuInstance::reset() } else { - newsave = kWifiSettingsPath + instanceFileSuffix(); + newsave = GetLocalFilePath(kWifiSettingsPath + instanceFileSuffix()); } if (oldsave != newsave)