add new pa_memchunk_will_need() API, similar to pa_memblock_will_need()
authorLennart Poettering <lennart@poettering.net>
Sun, 2 Sep 2007 20:37:55 +0000 (20:37 +0000)
committerLennart Poettering <lennart@poettering.net>
Sun, 2 Sep 2007 20:37:55 +0000 (20:37 +0000)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1747 fefdeb5f-60dc-0310-8127-8f9354f1896f

src/pulsecore/memchunk.c
src/pulsecore/memchunk.h

index 20ddb11..319767f 100644 (file)
 #include <stdlib.h>
 #include <assert.h>
 #include <string.h>
+#include <errno.h>
 
 #include <pulse/xmalloc.h>
+#include <pulsecore/macro.h>
+#include <pulsecore/core-util.h>
 
 #include "memchunk.h"
 
@@ -72,3 +75,19 @@ pa_memchunk* pa_memchunk_reset(pa_memchunk *c) {
 
     return c;
 }
+
+pa_memchunk *pa_memchunk_will_need(pa_memchunk *c) {
+    void *p;
+
+    pa_assert(c);
+    pa_assert(c->memblock);
+
+    /* A version of pa_memblock_will_need() that works on memchunks
+     * instead of memblocks */
+
+    p = (uint8_t*) pa_memblock_acquire(c->memblock) + c->index;
+    pa_will_need(p, c->length);
+    pa_memblock_release(c->memblock);
+
+    return c;
+}
index 10cab2b..17e5f75 100644 (file)
@@ -44,4 +44,7 @@ pa_memchunk* pa_memchunk_make_writable(pa_memchunk *c, size_t min);
  * but sets all members to zero. */
 pa_memchunk* pa_memchunk_reset(pa_memchunk *c);
 
+/* Map a memory chunk back into memory if it was swapped out */
+pa_memchunk *pa_memchunk_will_need(pa_memchunk *c);
+
 #endif