From 4b1eb71e81192cd15b5103e48c22796257a065aa Mon Sep 17 00:00:00 2001 From: Trevor Johnson Date: Mon, 9 Apr 2001 23:26:47 +0000 Subject: Add forgotten patch file. Submitted by: maintainer --- audio/vorbis-tools/files/patch-ogg123_buffer.c | 66 ++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 audio/vorbis-tools/files/patch-ogg123_buffer.c (limited to 'audio/vorbis-tools/files') 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 000000000000..9c89a82719de --- /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 ++#if HAVE_SMMAP ++#include ++#else + #include + #include +-#include ++#endif + #include + #include /* for fork and pipe*/ + #include + +-#ifndef DARWIN +-#include +-#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 -- cgit v1.2.3