diff options
author | trevor <trevor@FreeBSD.org> | 2001-04-10 07:26:47 +0800 |
---|---|---|
committer | trevor <trevor@FreeBSD.org> | 2001-04-10 07:26:47 +0800 |
commit | b292c5c2e27b53f360a66c326c4fd24693b087f0 (patch) | |
tree | a88afd4f9260129223d597e9b6e8bbf55dec2be6 /audio | |
parent | 69cfb1ac3180f03b6948291dd5bb7ce65676e9b3 (diff) | |
download | freebsd-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.c | 66 |
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 |