aboutsummaryrefslogtreecommitdiffstats
path: root/audio
diff options
context:
space:
mode:
authortrevor <trevor@FreeBSD.org>2001-04-10 07:26:47 +0800
committertrevor <trevor@FreeBSD.org>2001-04-10 07:26:47 +0800
commitb292c5c2e27b53f360a66c326c4fd24693b087f0 (patch)
treea88afd4f9260129223d597e9b6e8bbf55dec2be6 /audio
parent69cfb1ac3180f03b6948291dd5bb7ce65676e9b3 (diff)
downloadfreebsd-ports-graphics-b292c5c2e27b53f360a66c326c4fd24693b087f0.tar.gz
freebsd-ports-graphics-b292c5c2e27b53f360a66c326c4fd24693b087f0.tar.zst
freebsd-ports-graphics-b292c5c2e27b53f360a66c326c4fd24693b087f0.zip
Add forgotten patch file.
Submitted by: maintainer
Diffstat (limited to 'audio')
-rw-r--r--audio/vorbis-tools/files/patch-ogg123_buffer.c66
1 files changed, 66 insertions, 0 deletions
diff --git a/audio/vorbis-tools/files/patch-ogg123_buffer.c b/audio/vorbis-tools/files/patch-ogg123_buffer.c
new file mode 100644
index 00000000000..9c89a82719d
--- /dev/null
+++ b/audio/vorbis-tools/files/patch-ogg123_buffer.c
@@ -0,0 +1,66 @@
+$FreeBSD$
+--- ogg123/buffer.c.orig Tue Jan 30 11:42:48 2001
++++ ogg123/buffer.c Sat Mar 17 17:12:02 2001
+@@ -6,17 +6,16 @@
+ */
+
+ #include <sys/types.h>
++#if HAVE_SMMAP
++#include <sys/mman.h>
++#else
+ #include <sys/ipc.h>
+ #include <sys/shm.h>
+-#include <sys/stat.h>
++#endif
+ #include <sys/time.h>
+ #include <unistd.h> /* for fork and pipe*/
+ #include <fcntl.h>
+
+-#ifndef DARWIN
+-#include <malloc.h>
+-#endif
+-
+ #include "ogg123.h"
+ #include "buffer.h"
+
+@@ -73,10 +72,26 @@ buf_t *fork_writer (long size, devices_t
+ int childpid;
+ buf_t *buf;
+
++#if HAVE_SMMAP
++ int fd;
++
++ if ((fd = open("/dev/zero", O_RDWR)) < 0)
++ {
++ perror ("cannot open /dev/zero");
++ exit (1);
++ }
++ if ((buf = (buf_t *) mmap (0, sizeof(buf_t) + sizeof (chunk_t) * (size - 1),
++ PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0)) < 0)
++ {
++ perror("mmap");
++ exit(1);
++ }
++ close(fd);
++#else
+ /* Get the shared memory segment. */
+ int shmid = shmget (IPC_PRIVATE,
+ sizeof(buf_t) + sizeof (chunk_t) * (size - 1),
+- IPC_CREAT|S_IREAD|S_IWRITE);
++ IPC_CREAT|SHM_R|SHM_W);
+
+ if (shmid == -1)
+ {
+@@ -92,7 +107,11 @@ buf_t *fork_writer (long size, devices_t
+ perror ("shmat");
+ exit (1);
+ }
+-
++
++ /* Remove segment after last process detaches it or terminates. */
++ shmctl(shmid, IPC_RMID, 0);
++#endif /* HAVE_SMMAP */
++
+ buffer_init (buf, size);
+
+ /* Create a pipe for communication between the two processes. Unlike