Commit 8c1366113c22ea4e8a5340c154c6328bbf6dfee8

Kano 2013-06-01T07:53:29

usbutils semun use proper def for linux which fixes OSX also

diff --git a/usbutils.c b/usbutils.c
index 1e479e5..9c3edf1 100644
--- a/usbutils.c
+++ b/usbutils.c
@@ -2569,15 +2569,18 @@ void usb_initialise()
 #include <sys/types.h>
 #include <sys/ipc.h>
 #include <sys/sem.h>
-#include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
 
+#ifndef __APPLE__
 union semun {
-	int sem;
-	struct semid_ds *seminfo;
-	ushort *all;
+	int val;
+	struct semid_ds *buf;
+	unsigned short *array;
+	struct seminfo *__buf;
 };
+#endif
+
 #else
 static LPSECURITY_ATTRIBUTES unsec(LPSECURITY_ATTRIBUTES sec)
 {
@@ -2766,7 +2769,7 @@ fail:
 			return false;
 		}
 
-		opt.seminfo = &seminfo;
+		opt.buf = &seminfo;
 		count = 0;
 		while (++count) {
 			// Should NEVER take 100ms
@@ -2782,7 +2785,7 @@ fail:
 					dname, sem, name, count, errno, strerror(errno));
 				return false;
 			}
-			if (opt.seminfo->sem_otime != 0)
+			if (opt.buf->sem_otime != 0)
 				break;
 			nmsleep(1);
 		}