changeset 1546:1a09422b87a5

Get Windows build working again. MegaWiFi code probably needs more work before it will actually work on Windows, but at least it doesn't break the build now
author Michael Pavone <pavone@retrodev.com>
date Mon, 26 Mar 2018 21:25:40 -0700
parents 3faf917bab56
children cb12667aa83e
files Makefile megawifi.c net_win.c
diffstat 3 files changed, 29 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile	Mon Mar 26 09:49:03 2018 -0700
+++ b/Makefile	Mon Mar 26 21:25:40 2018 -0700
@@ -17,6 +17,7 @@
 MEM:=mem_win.o
 TERMINAL:=terminal_win.o
 FONT:=nuklear_ui/font_win.o
+NET:=net_win.o
 EXE:=.exe
 CC:=i686-w64-mingw32-gcc-win32
 CFLAGS:=-std=gnu99 -Wreturn-type -Werror=return-type -Werror=implicit-function-declaration -I"$(SDL2_PREFIX)/include/SDL2" -I"$(GLEW_PREFIX)/include" -DGLEW_STATIC
@@ -27,6 +28,7 @@
 
 MEM:=mem.o
 TERMINAL:=terminal.o
+NET:=net.o
 EXE:=
 
 ifeq ($(OS),Darwin)
@@ -146,7 +148,7 @@
 endif
 
 MAINOBJS=blastem.o system.o genesis.o debug.o gdb_remote.o vdp.o $(RENDEROBJS) io.o romdb.o hash.o menu.o xband.o \
-	realtec.o i2c.o nor.o sega_mapper.o multi_game.o megawifi.o net.o serialize.o $(TERMINAL) $(CONFIGOBJS) gst.o \
+	realtec.o i2c.o nor.o sega_mapper.o multi_game.o megawifi.o $(NET) serialize.o $(TERMINAL) $(CONFIGOBJS) gst.o \
 	$(M68KOBJS) $(TRANSOBJS) $(AUDIOOBJS) saves.o zip.o 
 	
 ifdef NONUKLEAR
--- a/megawifi.c	Mon Mar 26 09:49:03 2018 -0700
+++ b/megawifi.c	Mon Mar 26 21:25:40 2018 -0700
@@ -2,9 +2,15 @@
 #include <stdint.h>
 #include <string.h>
 #include <sys/types.h>
+#ifdef _WIN32
+#define WINVER 0x501
+#include <winsock2.h>
+#include <ws2tcpip.h>
+#else
 #include <sys/socket.h>
 #include <unistd.h>
 #include <netinet/in.h>
+#endif
 #include <errno.h>
 #include <fcntl.h>
 #include "genesis.h"
@@ -125,7 +131,10 @@
 		int res = accept(mw->sock_fds[channel], NULL, NULL);
 		if (res >= 0) {
 			close(mw->sock_fds[channel]);
+#ifndef _WIN32
+//FIXME: Set nonblocking on Windows too
 			fcntl(res, F_SETFL, O_NONBLOCK);
+#endif
 			mw->sock_fds[channel] = res;
 			mw->channel_state[channel] = 2;
 			mw->channel_flags |= 1 << (channel + 1);
@@ -284,7 +293,10 @@
 			} else {
 				mw->channel_flags |= 1 << (channel + 1);
 				mw->channel_state[channel] = 1;
+#ifndef _WIN32
+//FIXME: Set nonblocking on Windows too
 				fcntl(mw->sock_fds[channel], F_SETFL, O_NONBLOCK);
+#endif
 			}
 			end_reply(mw);
 			break;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/net_win.c	Mon Mar 26 21:25:40 2018 -0700
@@ -0,0 +1,14 @@
+#include "net.h"
+
+uint8_t get_host_address(iface_info *out)
+{
+	out->ip[0] = 127;
+	out->ip[1] = 0;
+	out->ip[2] = 0;
+	out->ip[3] = 1;
+	out->net_mask[0] = 255;
+	out->net_mask[0] = 255;
+	out->net_mask[0] = 255;
+	out->net_mask[0] = 0;
+	return 1;
+}