summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--uniso.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/uniso.c b/uniso.c
index 7e1adb6..75e0e69 100644
--- a/uniso.c
+++ b/uniso.c
@@ -24,15 +24,26 @@
#include <stdio.h>
#include <fcntl.h>
#include <wchar.h>
-#include <malloc.h>
#include <unistd.h>
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
-#include <endian.h>
#include <sys/stat.h>
#include <sys/types.h>
+#if defined(__linux__)
+# include <malloc.h>
+# include <endian.h>
+#elif defined(__APPLE__)
+# include <libkern/OSByteOrder.h>
+# define be16toh(x) OSSwapBigToHostInt16(x)
+#endif
+
+#ifndef EMEDIUMTYPE
+#define EMEDIUMTYPE EILSEQ
+#endif
+
+
/**/
#ifndef container_of
@@ -215,6 +226,7 @@ struct uniso_context {
unsigned char *tmpbuf;
};
+#if defined(__linux__)
static int do_splice(struct uniso_context *ctx, int to_fd, int bytes)
{
int r, left;
@@ -230,6 +242,9 @@ static int do_splice(struct uniso_context *ctx, int to_fd, int bytes)
return bytes;
}
+#else
+#define do_splice(ctx,to_fd,bytes) (-1)
+#endif
static int do_read(struct uniso_context *ctx, unsigned char *buf, int bytes)
{