No comments on this one. Reviewed-by: David Henningsson <david.henningsson at canonical.com> On 2016-02-12 01:15, Ahmed S. Darwish wrote: > Signed-off-by: Ahmed S. Darwish <darwish.07 at gmail.com> > --- > src/pulsecore/memblock.c | 24 ++++-------------------- > src/pulsecore/memblock.h | 5 +++-- > src/pulsecore/pstream.c | 4 ++++ > src/tests/memblock-test.c | 9 +++++---- > 4 files changed, 16 insertions(+), 26 deletions(-) > > diff --git a/src/pulsecore/memblock.c b/src/pulsecore/memblock.c > index 959453e..af27ba5 100644 > --- a/src/pulsecore/memblock.c > +++ b/src/pulsecore/memblock.c > @@ -1116,8 +1116,8 @@ finish: > } > > /* Self-locked */ > -static pa_memblock* NEW_API_pa_memimport_get(pa_memimport *i, pa_mem_type_t type, uint32_t block_id, uint32_t shm_id, > - size_t offset, size_t size, bool writable) { > +pa_memblock* pa_memimport_get(pa_memimport *i, pa_mem_type_t type, uint32_t block_id, uint32_t shm_id, > + size_t offset, size_t size, bool writable) { > pa_memblock *b = NULL; > pa_memimport_segment *seg; > > @@ -1177,11 +1177,6 @@ finish: > return b; > } > > -pa_memblock* pa_memimport_get(pa_memimport *i, uint32_t block_id, uint32_t shm_id, > - size_t offset, size_t size, bool writable) { > - return NEW_API_pa_memimport_get(i, PA_MEM_TYPE_SHARED_POSIX, block_id, shm_id, offset, size, writable); > -} > - > int pa_memimport_process_revoke(pa_memimport *i, uint32_t id) { > pa_memblock *b; > int ret = 0; > @@ -1338,8 +1333,8 @@ static pa_memblock *memblock_shared_copy(pa_mempool *p, pa_memblock *b) { > } > > /* Self-locked */ > -static int NEW_API_pa_memexport_put(pa_memexport *e, pa_memblock *b, pa_mem_type_t *type, uint32_t *block_id, > - uint32_t *shm_id, size_t *offset, size_t * size) { > +int pa_memexport_put(pa_memexport *e, pa_memblock *b, pa_mem_type_t *type, uint32_t *block_id, > + uint32_t *shm_id, size_t *offset, size_t * size) { > pa_shm *memory; > struct memexport_slot *slot; > void *data; > @@ -1402,14 +1397,3 @@ static int NEW_API_pa_memexport_put(pa_memexport *e, pa_memblock *b, pa_mem_type > > return 0; > } > - > -int pa_memexport_put(pa_memexport *e, pa_memblock *b, uint32_t *block_id, uint32_t *shm_id, > - size_t *offset, size_t *size) { > - pa_mem_type_t type; > - int ret; > - > - if (!(ret = NEW_API_pa_memexport_put(e, b, &type, block_id, shm_id, offset, size))) > - pa_assert(type == PA_MEM_TYPE_SHARED_POSIX); > - > - return ret; > -} > diff --git a/src/pulsecore/memblock.h b/src/pulsecore/memblock.h > index 776b017..059538f 100644 > --- a/src/pulsecore/memblock.h > +++ b/src/pulsecore/memblock.h > @@ -140,14 +140,15 @@ pa_memimport* pa_memimport_new(pa_mempool *p, pa_memimport_release_cb_t cb, void > void pa_memimport_free(pa_memimport *i); > int pa_memimport_add_permanent_shmid_to_memfd_mapping(pa_memimport *i, uint32_t shm_id, int memfd_fd, > bool writable); > -pa_memblock* pa_memimport_get(pa_memimport *i, uint32_t block_id, uint32_t shm_id, > +pa_memblock* pa_memimport_get(pa_memimport *i, pa_mem_type_t type, uint32_t block_id, uint32_t shm_id, > size_t offset, size_t size, bool writable); > int pa_memimport_process_revoke(pa_memimport *i, uint32_t block_id); > > /* For sending blocks to other nodes */ > pa_memexport* pa_memexport_new(pa_mempool *p, pa_memexport_revoke_cb_t cb, void *userdata); > void pa_memexport_free(pa_memexport *e); > -int pa_memexport_put(pa_memexport *e, pa_memblock *b, uint32_t *block_id, uint32_t *shm_id, size_t *offset, size_t *size); > +int pa_memexport_put(pa_memexport *e, pa_memblock *b, pa_mem_type_t *type, uint32_t *block_id, > + uint32_t *shm_id, size_t *offset, size_t * size); > int pa_memexport_process_release(pa_memexport *e, uint32_t id); > > #endif > diff --git a/src/pulsecore/pstream.c b/src/pulsecore/pstream.c > index 98a8382..ef2bbf9 100644 > --- a/src/pulsecore/pstream.c > +++ b/src/pulsecore/pstream.c > @@ -536,6 +536,7 @@ static void prepare_next_write_item(pa_pstream *p) { > flags = (uint32_t) (p->write.current->seek_mode & PA_FLAG_SEEKMASK); > > if (p->use_shm) { > + pa_mem_type_t type; > uint32_t block_id, shm_id; > size_t offset, length; > uint32_t *shm_info = (uint32_t *) &p->write.minibuf[PA_PSTREAM_DESCRIPTOR_SIZE]; > @@ -550,10 +551,12 @@ static void prepare_next_write_item(pa_pstream *p) { > > if (pa_memexport_put(current_export, > p->write.current->chunk.memblock, > + &type, > &block_id, > &shm_id, > &offset, > &length) >= 0) { > + pa_assert(type == PA_MEM_TYPE_SHARED_POSIX); > > flags |= PA_FLAG_SHMDATA; > if (pa_mempool_is_remote_writable(current_pool)) > @@ -890,6 +893,7 @@ static int do_read(pa_pstream *p, struct pstream_read *re) { > pa_assert(p->import); > > if (!(b = pa_memimport_get(p->import, > + PA_MEM_TYPE_SHARED_POSIX, > ntohl(re->shm_info[PA_PSTREAM_SHM_BLOCKID]), > ntohl(re->shm_info[PA_PSTREAM_SHM_SHMID]), > ntohl(re->shm_info[PA_PSTREAM_SHM_INDEX]), > diff --git a/src/tests/memblock-test.c b/src/tests/memblock-test.c > index 58eae7b..5cd795c 100644 > --- a/src/tests/memblock-test.c > +++ b/src/tests/memblock-test.c > @@ -74,6 +74,7 @@ START_TEST (memblock_test) { > pa_memblock *mb_a, *mb_b, *mb_c; > int r, i; > pa_memblock* blocks[5]; > + pa_mem_type_t mem_type; > uint32_t id, shm_id; > size_t offset, size; > char *x; > @@ -122,22 +123,22 @@ START_TEST (memblock_test) { > import_c = pa_memimport_new(pool_c, release_cb, (void*) "C"); > fail_unless(import_b != NULL); > > - r = pa_memexport_put(export_a, mb_a, &id, &shm_id, &offset, &size); > + r = pa_memexport_put(export_a, mb_a, &mem_type, &id, &shm_id, &offset, &size); > fail_unless(r >= 0); > fail_unless(shm_id == id_a); > > pa_log("A: Memory block exported as %u", id); > > - mb_b = pa_memimport_get(import_b, id, shm_id, offset, size, false); > + mb_b = pa_memimport_get(import_b, PA_MEM_TYPE_SHARED_POSIX, id, shm_id, offset, size, false); > fail_unless(mb_b != NULL); > - r = pa_memexport_put(export_b, mb_b, &id, &shm_id, &offset, &size); > + r = pa_memexport_put(export_b, mb_b, &mem_type, &id, &shm_id, &offset, &size); > fail_unless(r >= 0); > fail_unless(shm_id == id_a || shm_id == id_b); > pa_memblock_unref(mb_b); > > pa_log("B: Memory block exported as %u", id); > > - mb_c = pa_memimport_get(import_c, id, shm_id, offset, size, false); > + mb_c = pa_memimport_get(import_c, PA_MEM_TYPE_SHARED_POSIX, id, shm_id, offset, size, false); > fail_unless(mb_c != NULL); > x = pa_memblock_acquire(mb_c); > pa_log_debug("1 data=%s", x); > > Regards, > -- David Henningsson, Canonical Ltd. https://launchpad.net/~diwic