patches/alsa-lib-06-async.diff
author jurikm
Sun, 12 Feb 2012 14:04:10 +0000
changeset 8245 383896da4129
parent 2968 55a6e68a55fc
permissions -rw-r--r--
SFEsauerbraten.spec: add IPS package name

diff -ur alsa-lib-1.0.14a.orig/src/control/control_hw.c alsa-lib-1.0.14a/src/control/control_hw.c
--- alsa-lib-1.0.14a.orig/src/control/control_hw.c	2007-06-11 15:53:13.000000000 +0700
+++ alsa-lib-1.0.14a/src/control/control_hw.c	2007-08-11 16:33:34.452035669 +0700
@@ -84,6 +84,7 @@
 	snd_ctl_hw_t *hw = ctl->private_data;
 	int fd = hw->fd;
 
+#ifdef HAVE_FCNTL_ASYNC
 	if ((flags = fcntl(fd, F_GETFL)) < 0) {
 		SYSERR("F_GETFL failed");
 		return -errno;
@@ -96,12 +97,15 @@
 		SYSERR("F_SETFL for O_ASYNC failed");
 		return -errno;
 	}
+#endif /* HAVE_FCNTL_ASYNC */
 	if (sig < 0)
 		return 0;
+#if !defined(sun)
 	if (fcntl(fd, F_SETSIG, (long)sig) < 0) {
 		SYSERR("F_SETSIG failed");
 		return -errno;
 	}
+#endif
 	if (fcntl(fd, F_SETOWN, (long)pid) < 0) {
 		SYSERR("F_SETOWN failed");
 		return -errno;
@@ -376,8 +380,10 @@
 		fmode = O_RDWR;
 	if (mode & SND_CTL_NONBLOCK)
 		fmode |= O_NONBLOCK;
+#ifdef HAVE_FCNTL_ASYNC
 	if (mode & SND_CTL_ASYNC)
 		fmode |= O_ASYNC;
+#endif /* HAVE_FCNTL_ASYNC */
 	fd = snd_open_device(filename, fmode);
 	if (fd < 0) {
 		snd_card_load(card);
diff -ur alsa-lib-1.0.14a.orig/src/timer/timer_hw.c alsa-lib-1.0.14a/src/timer/timer_hw.c
--- alsa-lib-1.0.14a.orig/src/timer/timer_hw.c	2007-06-11 15:53:14.000000000 +0700
+++ alsa-lib-1.0.14a/src/timer/timer_hw.c	2007-08-11 16:32:13.850322154 +0700
@@ -78,6 +78,7 @@
 
 	assert(timer);
 	fd = timer->poll_fd;
+#ifdef HAVE_FCNTL_ASYNC
 	if ((flags = fcntl(fd, F_GETFL)) < 0) {
 		SYSERR("F_GETFL failed");
 		return -errno;
@@ -90,12 +91,15 @@
 		SYSERR("F_SETFL for O_ASYNC failed");
 		return -errno;
 	}
+#endif /* HAVE_FCNTL_ASYNC */
 	if (sig < 0)
 		return 0;
+#if !defined(sun)
 	if (fcntl(fd, F_SETSIG, (long)sig) < 0) {
 		SYSERR("F_SETSIG failed");
 		return -errno;
 	}
+#endif /* !sun */
 	if (fcntl(fd, F_SETOWN, (long)pid) < 0) {
 		SYSERR("F_SETOWN failed");
 		return -errno;
--- alsa-lib-1.0.23.orig/src/pcm/pcm_hw.c	Sun Sep 19 11:32:12 2010
+++ alsa-lib-1.0.23/src/pcm/pcm_hw.c	Sun Sep 19 11:36:07 2010
@@ -223,6 +223,7 @@
 	snd_pcm_hw_t *hw = pcm->private_data;
 	int fd = hw->fd, err;
 
+#ifdef HAVE_FCNTL_ASYNC
 	if ((flags = fcntl(fd, F_GETFL)) < 0) {
 		err = -errno;
 		SYSMSG("F_GETFL failed (%i)", err);
@@ -237,13 +238,16 @@
 		SYSMSG("F_SETFL for O_ASYNC failed (%i)", err);
 		return err;
 	}
+#endif /* HAVE_FCNTL_ASYNC */
 	if (sig < 0)
 		return 0;
+#if !defined(sun)
 	if (fcntl(fd, F_SETSIG, (long)sig) < 0) {
 		err = -errno;
 		SYSMSG("F_SETSIG failed (%i)", err);
 		return err;
 	}
+#endif /* sun */
 	if (fcntl(fd, F_SETOWN, (long)pid) < 0) {
 		err = -errno;
 		SYSMSG("F_SETOWN failed (%i)", err);
@@ -1143,8 +1147,10 @@
 	mode = 0;
 	if (fmode & O_NONBLOCK)
 		mode |= SND_PCM_NONBLOCK;
+#ifdef HAVE_FCNTL_ASYNC
 	if (fmode & O_ASYNC)
 		mode |= SND_PCM_ASYNC;
+#endif /* HAVE_FCNTL_ASYNC */
 
 	if (ioctl(fd, SNDRV_PCM_IOCTL_PVERSION, &ver) < 0) {
 		ret = -errno;
@@ -1289,8 +1289,10 @@
 	fmode = O_RDWR;
 	if (mode & SND_PCM_NONBLOCK)
 		fmode |= O_NONBLOCK;
+#ifdef HAVE_FCNTL_ASYNC
 	if (mode & SND_PCM_ASYNC)
 		fmode |= O_ASYNC;
+#endif /* HAVE_FCNTL_ASYNC */
 	if (mode & SND_PCM_APPEND)
 		fmode |= O_APPEND;
 	fd = snd_open_device(filename, fmode);