gint32
get_bytes_in_buffer (int fd, gboolean input)
{
+#if defined(__HAIKU__)
+ /* FIXME: Haiku doesn't support TIOCOUTQ nor FIONREAD on fds */
+ return -1;
+#define TIOCOUTQ 0
+#endif
gint32 retval;
if (ioctl (fd, input ? FIONREAD : TIOCOUTQ, &retval) == -1) {
int
Mono_Posix_Syscall_mlock (void *start, mph_size_t len)
{
+/* FIXME: Haiku lacks support for m(un)lock and mincore */
+#if defined(__HAIKU__)
+ return ENOSYS;
+#else
mph_return_if_size_t_overflow (len);
return mlock (start, (size_t) len);
+#endif
}
int
Mono_Posix_Syscall_munlock (void *start, mph_size_t len)
{
+#if defined(__HAIKU__)
+ return ENOSYS;
+#else
mph_return_if_size_t_overflow (len);
return munlock (start, (size_t) len);
+#endif
}
#ifdef HAVE_MREMAP
int
Mono_Posix_Syscall_mincore (void *start, mph_size_t length, unsigned char *vec)
{
+#if defined(__HAIKU__)
+ return ENOSYS;
+#else
mph_return_if_size_t_overflow (length);
return mincore (start, (size_t) length, (void*)vec);
+#endif
}
#ifdef HAVE_POSIX_MADVISE
struct Mono_Posix_Timeval *tv,
struct Mono_Posix_Timezone *tz)
{
+#if defined(__HAIKU__)
+ /* FIXME: Haiku doesn't support this either, consider
+ using set_real_time_clock instead? */
+ return -1;
+#else
struct timeval _tv = {0};
struct timeval *ptv = NULL;
struct timezone _tz = {0};
r = settimeofday (ptv, ptz);
return r;
+#endif
}
static inline struct timeval*