$OpenBSD: patch-src_snd_oss_c,v 1.3 2008/06/28 02:50:59 jakemsr Exp $ --- src/snd_oss.c.orig Sun Mar 14 18:25:43 2004 +++ src/snd_oss.c Thu May 29 23:49:13 2008 @@ -239,6 +239,15 @@ qboolean SNDDMA_Init(struct sndinfo * s) { return 0; } + int sel; + /* make sure we're using a power of two blocksize */ + sel = 0x7fff000b; /* as many 2048 byte blocks as possible */ + if (ioctl(audio_fd, SNDCTL_DSP_SETFRAGMENT, &sel)==-1) + { + perror("SETFRAGMENT"); + si->Com_Printf("SNDDMA_Init: SETFRAGMENT ioctl failed.\n"); + } + if (ioctl(audio_fd, SNDCTL_DSP_GETOSPACE, &info)==-1) { perror("GETOSPACE"); @@ -358,7 +367,7 @@ qboolean SNDDMA_Init(struct sndinfo * s) { if (!si->dma->buffer) { si->dma->buffer = (unsigned char *) mmap(NULL, info.fragstotal * info.fragsize, -#if defined(__FreeBSD__) && (__FreeBSD_version < 500000) +#if defined(__FreeBSD__) && (__FreeBSD_version < 500000) || defined (__OpenBSD__) PROT_READ|PROT_WRITE, #else PROT_WRITE,