if ((fd = open(filename, O_RDWR)) < 0)
return -errno;
}
+#if 0
+ /*
+ * this is bogus, an application have to care about open filedescriptors
+ */
if (fcntl(fd, F_SETFD, FD_CLOEXEC) != 0) {
SYSERR("fcntl FD_CLOEXEC failed");
err = -errno;
close(fd);
return err;
}
+#endif
if (ioctl(fd, SNDRV_CTL_IOCTL_PVERSION, &ver) < 0) {
err = -errno;
close(fd);
if ((fd = open(filename, mode)) < 0)
return -errno;
}
+#if 0
+ /*
+ * this is bogus, an application have to care about open filedescriptors
+ */
if (fcntl(fd, F_SETFD, FD_CLOEXEC) != 0) {
SYSERR("fcntl FD_CLOEXEC failed");
ret = -errno;
close(fd);
return ret;
}
+#endif
if (ioctl(fd, SNDRV_HWDEP_IOCTL_PVERSION, &ver) < 0) {
ret = -errno;
close(fd);
*dst = *src;
}
+/**
+ * \brief Set boundary for ring pointers inside a software configuration container
+ * \param pcm PCM handle
+ * \param params Software configuration container
+ * \param val boundary in frames
+ * \return 0 otherwise a negative error code
+ */
+#ifndef DOXYGEN
+int snd_pcm_sw_params_set_boundary(snd_pcm_t *pcm ATTRIBUTE_UNUSED, snd_pcm_sw_params_t *params, snd_pcm_uframes_t val)
+#else
+int snd_pcm_sw_params_set_boundary(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, snd_pcm_uframes_t val)
+#endif
+{
+ assert(pcm && params);
+ params->boundary = val;
+ return 0;
+}
+
+/**
+ * \brief Get boundary for ring pointers from a software configuration container
+ * \param params Software configuration container
+ * \param val Returned boundary in frames
+ * \return 0 otherwise a negative error code
+ */
+int snd_pcm_sw_params_get_boundary(const snd_pcm_sw_params_t *params, snd_pcm_uframes_t *val)
+{
+ assert(params);
+ *val = params->boundary;
+ return 0;
+}
+
/**
* \brief (DEPRECATED) Set start mode inside a software configuration container
* \param pcm PCM handle
if (fmode & O_ASYNC)
mode |= SND_PCM_ASYNC;
+#if 0
+ /*
+ * this is bogus, an application have to care about open filedescriptors
+ */
if (fcntl(fd, F_SETFD, FD_CLOEXEC) != 0) {
ret = -errno;
SYSERR("fcntl FD_CLOEXEC failed");
close(fd);
return ret;
}
+#endif
if (ioctl(fd, SNDRV_PCM_IOCTL_PVERSION, &ver) < 0) {
ret = -errno;
return -errno;
}
}
+#if 0
+ /*
+ * this is bogus, an application have to care about open filedescriptors
+ */
if (fcntl(fd, F_SETFD, FD_CLOEXEC) != 0) {
SYSERR("fcntl FD_CLOEXEC failed");
ret = -errno;
close(fd);
return ret;
}
+#endif
if (ioctl(fd, SNDRV_RAWMIDI_IOCTL_PVERSION, &ver) < 0) {
ret = -errno;
SYSERR("SNDRV_RAWMIDI_IOCTL_PVERSION failed");
return -errno;
}
}
+#if 0
+ /*
+ * this is bogus, an application have to care about open filedescriptors
+ */
if (fcntl(fd, F_SETFD, FD_CLOEXEC) != 0) {
SYSERR("fcntl FD_CLOEXEC failed");
ret = -errno;
close(fd);
return ret;
}
+#endif
if (ioctl(fd, SNDRV_SEQ_IOCTL_PVERSION, &ver) < 0) {
SYSERR("SNDRV_SEQ_IOCTL_PVERSION failed");
ret = -errno;
tmode |= O_NONBLOCK;
if ((fd = open(SNDRV_FILE_TIMER, tmode)) < 0)
return -errno;
+#if 0
+ /*
+ * this is bogus, an application have to care about open filedescriptors
+ */
if (fcntl(fd, F_SETFD, FD_CLOEXEC) != 0) {
SYSERR("fcntl FD_CLOEXEC failed");
ret = -errno;
close(fd);
return ret;
}
+#endif
if (ioctl(fd, SNDRV_TIMER_IOCTL_PVERSION, &ver) < 0) {
ret = -errno;
close(fd);