On 10/09/2015 01:59 PM, Maxim Uvarov wrote: > Signed-off-by: Maxim Uvarov <maxim.uva...@linaro.org> > --- > platform/linux-generic/Makefile.am | 2 + > .../linux-generic/include/odp_buffer_internal.h | 3 + > .../linux-generic/include/odp_packet_io_internal.h | 35 + > .../include/odp_packet_io_ipc_internal.h | 51 ++ > platform/linux-generic/include/odp_shm_internal.h | 20 + > platform/linux-generic/odp_packet_io.c | 1 + > platform/linux-generic/odp_pool.c | 11 +- > platform/linux-generic/odp_shared_memory.c | 10 +- > platform/linux-generic/pktio/io_ops.c | 1 + > platform/linux-generic/pktio/ipc.c | 720 > +++++++++++++++++++++ > platform/linux-generic/pktio/ring.c | 1 + > 11 files changed, 851 insertions(+), 4 deletions(-) > create mode 100644 > platform/linux-generic/include/odp_packet_io_ipc_internal.h > create mode 100644 platform/linux-generic/include/odp_shm_internal.h > create mode 100644 platform/linux-generic/pktio/ipc.c > create mode 120000 platform/linux-generic/pktio/ring.c > > diff --git a/platform/linux-generic/Makefile.am > b/platform/linux-generic/Makefile.am > index b9ed3b0..71353dd 100644 > --- a/platform/linux-generic/Makefile.am > +++ b/platform/linux-generic/Makefile.am > @@ -151,9 +151,11 @@ __LIB__libodp_la_SOURCES = \ > odp_packet_flags.c \ > odp_packet_io.c \ > pktio/io_ops.c \ > + pktio/ipc.c \ > pktio/loop.c \ > pktio/socket.c \ > pktio/socket_mmap.c \ > + pktio/ring.c \ > odp_pool.c \ > odp_queue.c \ > odp_rwlock.c \ > diff --git a/platform/linux-generic/include/odp_buffer_internal.h > b/platform/linux-generic/include/odp_buffer_internal.h > index 4cacca1..a078e52 100644 > --- a/platform/linux-generic/include/odp_buffer_internal.h > +++ b/platform/linux-generic/include/odp_buffer_internal.h > @@ -132,6 +132,9 @@ struct odp_buffer_hdr_t { > uint32_t uarea_size; /* size of user area */ > uint32_t segcount; /* segment count */ > uint32_t segsize; /* segment size */ > + /* ipc mapped process can not walk over pointers, > + * offset has to be used */ > + uint64_t ipc_addr_offset[ODP_BUFFER_MAX_SEG]; > void *addr[ODP_BUFFER_MAX_SEG]; /* block addrs */ > uint64_t order; /* sequence for ordered queues */ > queue_entry_t *origin_qe; /* ordered queue origin */ I haven't been through everything yet but should this be an union with the addr ? The odp_buffer_hdr_t is already quite large as it is.
Nicolas _______________________________________________ lng-odp mailing list lng-odp@lists.linaro.org https://lists.linaro.org/mailman/listinfo/lng-odp