]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
slirp-related compilation changes
authorFrode Solheim <frode-code@fengestad.no>
Mon, 28 Jul 2014 20:32:24 +0000 (22:32 +0200)
committerFrode Solheim <frode-code@fengestad.no>
Mon, 28 Jul 2014 20:32:24 +0000 (22:32 +0200)
24 files changed:
ethernet.cpp
include/ethernet.h
include/sana2.h
od-win32/sysconfig.h
od-win32/win32_uaenet.h
sana2.cpp
slirp/bootp.cpp
slirp/cksum.cpp
slirp/if.cpp
slirp/ip_input.cpp
slirp/ip_output.cpp
slirp/libslirp.h
slirp/mbuf.cpp
slirp/misc.cpp
slirp/sbuf.cpp
slirp/slirp_config.h
slirp/slirpdebug.cpp
slirp/socket.cpp
slirp/tcp_input.cpp
slirp/tcp_output.cpp
slirp/tcp_subr.cpp
slirp/tcp_timer.cpp
slirp/tftp.cpp
slirp/udp.cpp

index 8684b0dbaac9fe0add4990e10439eb421e6914dd..862af88cb61fb8f4599a83bffbe17de57bfc786a 100644 (file)
@@ -79,9 +79,11 @@ void ethernet_trigger (void *vsd)
                        }
                }
                return;
+#ifdef WITH_UAENET_PCAP
                case UAENET_PCAP:
                uaenet_trigger (vsd);
                return;
+#endif
        }
 }
 
@@ -107,7 +109,11 @@ int ethernet_open (struct netdriverdata *ndd, void *vsd, void *user, ethernet_go
                                            inet_aton("10.0.2.15", &a);
                                                slirp_redir (0, sr->dstport, a, sr->dstport);
                                        } else {
+#ifdef HAVE_STRUCT_IN_ADDR_S_UN
                                                a.S_un.S_addr = sr->addr;
+#else
+                                               a.s_addr = sr->addr;
+#endif
                                                slirp_redir (sr->proto == 1 ? 0 : 1, sr->dstport, a, sr->srcport);
                                        }
                                }
@@ -130,8 +136,10 @@ int ethernet_open (struct netdriverdata *ndd, void *vsd, void *user, ethernet_go
                        slirp_start ();
                }
                return 1;
+#ifdef WITH_UAENET_PCAP
                case UAENET_PCAP:
                return uaenet_open (vsd, ndd, user, gotfunc, getfunc, promiscuous);
+#endif
        }
        return 0;
 }
@@ -152,14 +160,18 @@ void ethernet_close (struct netdriverdata *ndd, void *vsd)
                        uae_sem_destroy (&slirp_sem2);
                }
                return;
+#ifdef WITH_UAENET_PCAP
                case UAENET_PCAP:
                return uaenet_close (vsd);
+#endif
        }
 }
 
 void ethernet_enumerate_free (void)
 {
+#ifdef WITH_UAENET_PCAP
        uaenet_enumerate_free ();
+#endif
 }
 
 bool ethernet_enumerate (struct netdriverdata **nddp, const TCHAR *name)
@@ -173,8 +185,10 @@ bool ethernet_enumerate (struct netdriverdata **nddp, const TCHAR *name)
                        *nddp = &slirpd;
                if (!_tcsicmp (slirpd2.name, name))
                        *nddp = &slirpd2;
+#ifdef WITH_UAENET_PCAP
                if (*nddp == NULL)
                        *nddp = uaenet_enumerate (name);
+#endif
                if (*nddp) {
                        netmode = (*nddp)->type;
                        return true;
@@ -184,12 +198,14 @@ bool ethernet_enumerate (struct netdriverdata **nddp, const TCHAR *name)
        j = 0;
        nddp[j++] = &slirpd;
        nddp[j++] = &slirpd2;
+#ifdef WITH_UAENET_PCAP
        nd = uaenet_enumerate (NULL);
        if (nd) {
                for (int i = 0; i < nd[i].active; i++) {
                        nddp[j++] = nd;
                }
        }
+#endif
        nddp[j] = NULL;
        return true;
 }
@@ -201,8 +217,10 @@ void ethernet_close_driver (struct netdriverdata *ndd)
                case UAENET_SLIRP:
                case UAENET_SLIRP_INBOUND:
                return;
+#ifdef WITH_UAENET_PCAP
                case UAENET_PCAP:
                return uaenet_close_driver (ndd);
+#endif
        }
        netmode = 0;
 }
@@ -214,8 +232,10 @@ int ethernet_getdatalenght (struct netdriverdata *ndd)
                case UAENET_SLIRP:
                case UAENET_SLIRP_INBOUND:
                return sizeof (struct ethernet_data);
+#ifdef WITH_UAENET_PCAP
                case UAENET_PCAP:
                return uaenet_getdatalenght ();
+#endif
        }
        return 0;
-}
\ No newline at end of file
+}
index 14c398eadcdf4244d47040566d760f7cbfdbbd0e..684d9e27c93f925664ed5fe5ed029195f8829a12 100644 (file)
@@ -1,4 +1,5 @@
-
+#ifndef _UAE_ETHERNET_H_
+#define _UAE_ETHERNET_H_
 
 #define UAENET_NONE 0
 #define UAENET_SLIRP 1
@@ -8,11 +9,11 @@
 struct netdriverdata
 {
        int type;
-    TCHAR *name;
-    TCHAR *desc;
-    int mtu;
-    uae_u8 mac[6];
-    int active;
+       const TCHAR *name;
+       const TCHAR *desc;
+       int mtu;
+       uae_u8 mac[6];
+       int active;
 };
 
 
@@ -32,4 +33,6 @@ extern int ethernet_getdata (struct s2devstruct *dev, uae_u8 *d, int *len);
 extern void ethernet_trigger (void*);
 
 extern bool slirp_start (void);
-extern void slirp_end (void);
\ No newline at end of file
+extern void slirp_end (void);
+
+#endif // _UAE_ETHERNET_H_
index 58787677d6a5b30413e765979a9536e16fb3b9db..db4691d097f9f66d5003a9c746488905c68fd553 100644 (file)
@@ -6,6 +6,8 @@
   * (c) 2007 Toni Wilen
   */
 
+#define MAX_TOTAL_NET_DEVICES 10
+
 uaecptr netdev_startup (uaecptr resaddr);
 void netdev_install (void);
 void netdev_reset (void);
index 6d92f17cf9bd19f0c8ecc6e9fdd5e9056a7b4560..a58a94db0b85263a8fc3c4da9337392802073674 100644 (file)
@@ -86,6 +86,7 @@
 #define WITH_UAENATIVE
 #define WITH_SLIRP
 #define WITH_TABLETLIBRARY
+#define WITH_UAENET_PCAP
 
 #else
 
 
 #define FSDB_DIR_SEPARATOR '\\'
 #define FSDB_DIR_SEPARATOR_S _T("\\")
+
+/* Define to 1 if `S_un' is a member of `struct in_addr'. */
+#define HAVE_STRUCT_IN_ADDR_S_UN 1
index 7b50eb3d1a9b8131f1c0b2423d17a1dd7f7a88a9..493e2354623b6b08952b1563198b04589af7ce2a 100644 (file)
@@ -4,8 +4,6 @@
 typedef void (uaenet_gotfunc)(struct s2devstruct *dev, const uae_u8 *data, int len);
 typedef int (uaenet_getfunc)(struct s2devstruct *dev, uae_u8 *d, int *len);
 
-#define MAX_TOTAL_NET_DEVICES 10
-
 extern struct netdriverdata *uaenet_enumerate (const TCHAR *name);
 extern void uaenet_enumerate_free (void);
 extern void uaenet_close_driver (struct netdriverdata *tc);
@@ -14,7 +12,5 @@ extern int uaenet_getdatalenght (void);
 extern int uaenet_getbytespending (void*);
 extern int uaenet_open (void*, struct netdriverdata*, void*, uaenet_gotfunc*, uaenet_getfunc*, int);
 extern void uaenet_close (void*);
-extern void uaenet_gotdata (struct s2devstruct *dev, const uae_u8 *data, int len);
-extern int uaenet_getdata (struct s2devstruct *dev, uae_u8 *d, int *len);
 extern void uaenet_trigger (void*);
 
index 7408e5bbda2513640355aac7f4ad42719307ff37..65a1b2d91d04c0b3be2640c9afbc6d53d37f32a6 100644 (file)
--- a/sana2.cpp
+++ b/sana2.cpp
 #include "blkdev.h"
 #include "uae.h"
 #include "sana2.h"
+#if defined(_WIN32) && defined(WITH_UAENET_PCAP)
 #include "win32_uaenet.h"
+#else
+#include "ethernet.h"
+#endif
 #include "execio.h"
 
+void uaenet_gotdata (struct s2devstruct *dev, const uae_u8 *data, int len);
+int uaenet_getdata (struct s2devstruct *dev, uae_u8 *d, int *len);
+
 #define SANA2NAME _T("uaenet.device")
 
 #define MAX_ASYNC_REQUESTS 200
@@ -149,7 +156,7 @@ static uaecptr ROM_netdev_resname = 0,
        ROM_netdev_resid = 0,
        ROM_netdev_init = 0;
 
-static TCHAR *getdevname (void)
+static const TCHAR *getdevname (void)
 {
        return _T("uaenet.device");
 }
@@ -881,7 +888,7 @@ static struct s2packet *createwritepacket (TrapContext *ctx, uaecptr request)
        return s2p;
 }
 
-static int uaenet_getdata (struct s2devstruct *dev, uae_u8 *d, int *len)
+int uaenet_getdata (struct s2devstruct *dev, uae_u8 *d, int *len)
 {
        int gotit;
        struct asyncreq *ar;
index a51b80c95baea27fc1fb2fcff6209acb13cc41b4..45b3556c5c6b4547544aa3fd6cc8ec13574f1979 100644 (file)
@@ -21,7 +21,7 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include <slirp.h>
+#include "slirp.h"
 
 /* XXX: only DHCP is supported */
 
index aabf88b1e72926f25f4d7e002e724ec7bfe4152d..6184b64aa2337e372afdba58501df9c13e3e0268 100644 (file)
@@ -30,7 +30,7 @@
  * in_cksum.c,v 1.2 1994/08/02 07:48:16 davidg Exp
  */
 
-#include <slirp.h>
+#include "slirp.h"
 
 /*
  * Checksum routine for Internet Protocol family headers (Portable Version).
index 0147574a8d9380405fd5413b09b584b5049c40e5..65d398be69549967d3b309f6ff4f8d896b3397ca 100644 (file)
@@ -5,7 +5,7 @@
  * terms and conditions of the copyright.
  */
 
-#include <slirp.h>
+#include "slirp.h"
 
 int if_mtu, if_mru;
 int if_comp;
index efcc98effba2ce7c05431acdbb1e883e565b3475..9105166c566c2343fe7e723af429e68bb119e1d1 100644 (file)
@@ -38,7 +38,7 @@
  * terms and conditions of the copyright.
  */
 
-#include <slirp.h>
+#include "slirp.h"
 #include "ip_icmp.h"
 
 int ip_defttl;
index 3718413e2312dc6240e5ae15e0dcae275ae0adcf..114a56d13c8e3cf3514e3f58db1bccaed5a5ed50 100644 (file)
@@ -38,7 +38,7 @@
  * terms and conditions of the copyright.
  */
 
-#include <slirp.h>
+#include "slirp.h"
 
 u_int16_t ip_id;
 
index 62047ec671454545d1e64cbc2dcc0b2c75e9f9c9..424a18a01efe27c50d401091157d5ec538d56877 100644 (file)
@@ -32,7 +32,6 @@ int slirp_redir(int is_udp, int host_port,
 int slirp_add_exec(int do_pty, const char *args, int addr_low_byte, 
                    int guest_port);
 
-extern const char *tftp_prefix;
 extern char slirp_hostname[33];
 
 #ifdef __cplusplus
index c578eb330ac8199add114429f254366c6a2d8754..41ea3e4d28f4e3c4be64888278d3d718aeabf2f2 100644 (file)
@@ -16,7 +16,7 @@
  */
 
 #include <stdlib.h>
-#include <slirp.h>
+#include "slirp.h"
 
 struct mbuf *mbutl;
 char   *mclrefcnt;
index 13e0bc834f47eedc19d3293d458efad2d2e15c36..dc47d06e8c05c868e56fafc2a64fdbe6574bd9b5 100644 (file)
@@ -7,7 +7,7 @@
 
 #define WANT_SYS_IOCTL_H
 #include <stdlib.h>
-#include <slirp.h>
+#include "slirp.h"
 
 u_int curtime, time_fasttimo, last_slowtimo, detach_time;
 u_int detach_wait = 600000;    /* 10 minutes */
@@ -212,8 +212,7 @@ fork_exec(struct socket *so, char *ex, int do_pty)
 #else
 
 int
-slirp_openpty(amaster, aslave)
-     int *amaster, *aslave;
+slirp_openpty(int *amaster, int *aslave)
 {
        register int master, slave;
 
@@ -288,10 +287,7 @@ slirp_openpty(amaster, aslave)
  * do_ptr = 2   Fork/exec using pty
  */
 int
-fork_exec(so, ex, do_pty)
-       struct socket *so;
-       char *ex;
-       int do_pty;
+fork_exec(struct socket *so, char *ex, int do_pty)
 {
        int s;
        struct sockaddr_in addr;
index 4cc8ea21f0011fb9156e7a6536e334f222bfe7f0..4ccc008a1f18cc6bd26bf6c751b162a2d0648b9f 100644 (file)
@@ -6,7 +6,7 @@
  */
 
 #include <stdlib.h>
-#include <slirp.h>
+#include "slirp.h"
 
 /* Done as a macro in socket.h */
 /* int
index e583dcc80a4407bac1d5c0d6fee2b222adb384b0..0ec4a457a6934f92da91636285f04b82496734b4 100644 (file)
 #undef HAVE_DRAND48
 
 /* Define if you have memmove */
+#ifndef HAVE_MEMMOVE
 #define HAVE_MEMMOVE
+#endif
 
 /* Define if you have gethostid */
 #undef HAVE_GETHOSTID
index ee90b89bf832b2aca5e4b2b31453f8e8f3229264..ebe7b5f0b82ea01471721dd0fef144511f98efe1 100644 (file)
@@ -6,7 +6,7 @@
  * terms and conditions of the copyright.
  */
 
-#include <slirp.h>
+#include "slirp.h"
 
 FILE *dfd = NULL;
 #ifdef DEBUG
index b44ed4aada0aa25a89517ca5cef808f8afb12382..4fce2d39d5965cef094cc64dda1308b89e42ff6b 100644 (file)
@@ -7,7 +7,7 @@
 
 #define WANT_SYS_IOCTL_H
 #include <stdlib.h>
-#include <slirp.h>
+#include "slirp.h"
 #include "ip_icmp.h"
 #include "main.h"
 #ifdef __sun__
index f3878055954200996aab713a9932874ac8170954..a7a405f7526ba9a96ab0e48073b388f012f2ddce 100644 (file)
@@ -39,7 +39,7 @@
  */
 
 #include <stdlib.h>
-#include <slirp.h>
+#include "slirp.h"
 #include "ip_icmp.h"
 
 struct socket tcb;
index 2256fb44212cd01d9e2933c4f7e238318f3674ed..4b53b5544a583641bd39499c12e3eca8e852f2a2 100644 (file)
@@ -38,7 +38,7 @@
  * terms and conditions of the copyright.
  */
 
-#include <slirp.h>
+#include "slirp.h"
 
 /*
  * Since this is only used in "stats socket", we give meaning
index 90d456decebdb6d79de724181087e7f29cf6d94c..238925171e54c878d61dfde0afb0977e5e6860cc 100644 (file)
@@ -40,7 +40,7 @@
 
 #define WANT_SYS_IOCTL_H
 #include <stdlib.h>
-#include <slirp.h>
+#include "slirp.h"
 
 /* patchable/settable parameters for tcp */
 int    tcp_mssdflt = TCP_MSS;
index 527544a71b150cf998f0a1ed9209bd209b63c28f..4e3a37adef1bcae0a24dfbe55d0b87c46ac2af1c 100644 (file)
@@ -30,7 +30,7 @@
  * tcp_timer.c,v 1.2 1994/08/02 07:49:10 davidg Exp
  */
 
-#include <slirp.h>
+#include "slirp.h"
 
 int    tcp_keepidle = TCPTV_KEEP_IDLE;
 int    tcp_keepintvl = TCPTV_KEEPINTVL;
index 8f19df6b0b5a7c308611bd976d751b8de358a4e8..16e08bb3d0201c54a6aba0e08f2a541434a8e6b7 100644 (file)
  * THE SOFTWARE.
  */
 
-#include <slirp.h>
+#include "slirp.h"
+#ifdef _WIN32
 #include <io.h>
+#endif
 
 struct tftp_session {
     int in_use;
index 508c64075deeffd2a5999c462b08a98ed0690f57..bb2949a23ebc0468b9d17ffc9ba1ce089f7e7465 100644 (file)
@@ -39,7 +39,7 @@
  */
 
 #include <stdlib.h>
-#include <slirp.h>
+#include "slirp.h"
 #include "ip_icmp.h"
 
 struct udpstat udpstat;