diff options
author | Lennart Poettering <lennart@poettering.net> | 2007-09-16 21:57:15 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2007-09-16 21:57:15 +0000 |
commit | ac1ee4e6754f3aa287bb4e3ede03c59d1369cd50 (patch) | |
tree | 41c8a73433adfc5921f2038c8ad39c1c6be94304 | |
parent | fce85071796577ceb59fc0ff413c5188c2e385c1 (diff) |
add new API pa_mempool_block_size_max() to query the maximum tile size
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1831 fefdeb5f-60dc-0310-8127-8f9354f1896f
-rw-r--r-- | src/pulsecore/memblock.c | 9 | ||||
-rw-r--r-- | src/pulsecore/memblock.h | 1 |
2 files changed, 9 insertions, 1 deletions
diff --git a/src/pulsecore/memblock.c b/src/pulsecore/memblock.c index cded2dfc..05fc34d9 100644 --- a/src/pulsecore/memblock.c +++ b/src/pulsecore/memblock.c @@ -300,7 +300,7 @@ pa_memblock *pa_memblock_new_pool(pa_mempool *p, size_t length) { * take the largest size that fits in one of our slots. */ if (length == (size_t) -1) - length = p->block_size - PA_ALIGN(sizeof(struct mempool_slot)) - PA_ALIGN(sizeof(pa_memblock)); + length = pa_mempool_block_size_max(p); if (p->block_size - PA_ALIGN(sizeof(struct mempool_slot)) >= PA_ALIGN(sizeof(pa_memblock)) + length) { @@ -723,6 +723,13 @@ const pa_mempool_stat* pa_mempool_get_stat(pa_mempool *p) { } /* No lock necessary */ +size_t pa_mempool_block_size_max(pa_mempool *p) { + pa_assert(p); + + return p->block_size - PA_ALIGN(sizeof(struct mempool_slot)) - PA_ALIGN(sizeof(pa_memblock)); +} + +/* No lock necessary */ void pa_mempool_vacuum(pa_mempool *p) { struct mempool_slot *slot; pa_flist *list; diff --git a/src/pulsecore/memblock.h b/src/pulsecore/memblock.h index 9bf7d8a5..c704014a 100644 --- a/src/pulsecore/memblock.h +++ b/src/pulsecore/memblock.h @@ -122,6 +122,7 @@ const pa_mempool_stat* pa_mempool_get_stat(pa_mempool *p); void pa_mempool_vacuum(pa_mempool *p); int pa_mempool_get_shm_id(pa_mempool *p, uint32_t *id); int pa_mempool_is_shared(pa_mempool *p); +size_t pa_mempool_block_size_max(pa_mempool *p); /* For recieving blocks from other nodes */ pa_memimport* pa_memimport_new(pa_mempool *p, pa_memimport_release_cb_t cb, void *userdata); |