$NetBSD: patch-bg,v 1.3 2016/04/15 08:47:50 wiz Exp $ --- src/timer/timer_hw.c.orig 2016-03-07 10:09:24.000000000 +0000 +++ src/timer/timer_hw.c @@ -66,11 +66,14 @@ static int snd_timer_hw_nonblock(snd_tim static int snd_timer_hw_async(snd_timer_t *timer, int sig, pid_t pid) { +#ifndef __sun long flags; +#endif int fd; assert(timer); fd = timer->poll_fd; +#ifndef __sun if ((flags = fcntl(fd, F_GETFL)) < 0) { SYSERR("F_GETFL failed"); return -errno; @@ -83,13 +86,21 @@ static int snd_timer_hw_async(snd_timer_ SYSERR("F_SETFL for O_ASYNC failed"); return -errno; } +#endif if (sig < 0) return 0; +#ifndef __sun #ifdef F_SETSIG if (fcntl(fd, F_SETSIG, (long)sig) < 0) { SYSERR("F_SETSIG failed"); return -errno; - } + } +#else + if (fcntl(fd, F_SETFL, O_ASYNC) < 0) { + SYSERR("F_SETFL failed"); + return -errno; + } +#endif #endif if (fcntl(fd, F_SETOWN, (long)pid) < 0) { SYSERR("F_SETOWN failed");