AROS: it is called IoctlSocket/CloseSocket and WaitSelect on AROS.
authorRonnie Sahlberg <ronniesahlberg@gmail.com>
Fri, 12 Apr 2013 13:12:58 +0000 (06:12 -0700)
committerRonnie Sahlberg <ronniesahlberg@gmail.com>
Fri, 12 Apr 2013 13:12:58 +0000 (06:12 -0700)
Additionally add a aros_init_socket() function to open the bsd socket library and set up networking

aros/aros_compat.c
aros/aros_compat.h
examples/nfsclient-listservers.c
lib/init.c

index 7f46a469ed67185d8d1ad20a2a7aebe77fefb1aa..202f614779514feb7b172f3031ade07ffcfa9609 100644 (file)
@@ -17,6 +17,9 @@
 
 #ifdef AROS
 
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdring.h>
 #include <sys/types.h>
 #include <sys/time.h>
 #include "aros_compat.h"
@@ -33,6 +36,16 @@ int minor(int i)
   return 2;
 }
 
+struct Library * SocketBase = NULL;
+
+void aros_init_socket(void)
+{
+  if (!(SocketBase = OpenLibrary("bsdsocket.library", 4))) {
+    printf("No TCP/IP stack available.\n");
+    exit(10);
+  }
+}
+
 int aros_poll(struct pollfd *fds, unsigned int nfds, int timo)
 {
   struct timeval timeout, *toptr;
@@ -72,7 +85,7 @@ int aros_poll(struct pollfd *fds, unsigned int nfds, int timo)
     timeout.tv_usec = (timo - timeout.tv_sec * 1000) * 1000;
   }
 
-  rc = select(0, ip, op, &efds, toptr);
+  rc = WaitSelect(0, ip, op, &efds, toptr, NULL);
 
   if(rc <= 0)
     return rc;
index 9568299ea6caf21e758a87a845281721fc4bdb34..d5b2d73274ee0a85f045a1acd8d6eb4675838a40 100644 (file)
@@ -4,8 +4,15 @@
 #include <netinet/in.h>
 #include <sys/mount.h>
 #include <proto/socket.h>
+#include <proto/exec.h>
 
 #define statvfs statfs
+#define ioctl IoctlSocket
+#define close CloseSocket
+
+extern struct Library * SocketBase;
+
+void aros_init_socket(void);
 
 #define f_flag    f_flags
 #define f_favail  f_ffree
index c4fc41e76c9ae52c1269f53afe53604aa17cddb3..9bec6a75c819c6c8c40057f88ce4f87a094b6447 100644 (file)
 #include "libnfs-zdr.h"
 #include "libnfs.h"
 
+#ifdef AROS
+#include "aros_compat.h"
+#endif
 
 int main(int argc _U_, char *argv[] _U_)
 {
        struct nfs_server_list *srvrs;
        struct nfs_server_list *srv;
 
+#ifdef AROS
+       aros_init_socket();
+#endif
+
        srvrs = nfs_find_local_servers();       
        for (srv=srvrs; srv; srv = srv->next) {
                printf("NFS SERVER @ %s\n", srv->addr);
index 06f6e4bbb156d8e021d775ecdf6a234bd23663ce..80368c2915f99e9f5171d6590fcab66a96144022 100644 (file)
 #include "libnfs-raw.h"
 #include "libnfs-private.h"
 
+#ifdef AROS
+#include "aros_compat.h"
+#endif
+
 struct rpc_context *rpc_init_context(void)
 {
        struct rpc_context *rpc;