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