usbutils semun use proper def for linux which fixes OSX also
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
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);
}