$NetBSD: patch-af,v 1.2 2010/03/14 14:19:19 martin Exp $ --- src/xfermem.c.orig 2009-12-05 21:26:24.000000000 +0100 +++ src/xfermem.c 2010-02-06 20:14:14.000000000 +0100 @@ -37,6 +37,13 @@ #ifdef HAVE_MMAP # ifdef MAP_ANON + +#if defined(__NetBSD__) && (__NetBSD_Version__ >= 104030000) + if(madvise((void *)xf, (regsize - sizeof(txfermem)), + MADV_SEQUENTIAL) < 0) + fprintf(stderr,"madvise failed, continuing anyway...\n"); +#endif + if ((*xf = (txfermem *) mmap(0, regsize, PROT_READ | PROT_WRITE, MAP_ANON | MAP_SHARED, -1, 0)) == (txfermem *) -1) { perror ("mmap()"); @@ -92,7 +99,13 @@ if(!xf) return; #ifdef HAVE_MMAP - munmap ((caddr_t) xf, xf->size + xf->metasize + sizeof(txfermem)); + munmap ((void *) xf, xf->size + xf->metasize + sizeof(txfermem)); + +#if defined(__NetBSD__) && (__NetBSD_Version__ >= 104030000) + if(madvise((void *)xf, (xf->size + xf->metasize), MADV_FREE) < 0) + fprintf(stderr,"madvise failed, continuing anyways..\n"); +#endif + #else if (shmdt((void *) xf) == -1) { perror ("shmdt()");