On 01/26 10:16:11, Petri Savolainen wrote: > Added initial version of couple of ABI specification files. These files > define > types/values that are implementation specific in the API spec. For ABI > compatibility, application and implementation need to use these definitions > (based on the target architecture). ABI is defined by CPU ISA (including > version, endianism, etc) and SW environment (OS and compiler). Six different > ABIs are initially defined - all are Linux based and assume the default > endianism. > > Some unused types were found for API spec. Those will be removed once this > patch set is merged with api-next. > > v2: > * Use strong types as default handle types > > v3: > * Rebased. Updated helper test Makefile. > > > Petri Savolainen (8): > abi: event: added the first ABI spec file > abi: buffer: added initial definitions > abi: classifier: added initial definitions > abi: crypto: added initial definitions > abi: packet: added initial definitions > abi: pool: added initial definitions > abi: queue: added initial definitions > abi: shm: added initial definitions > > configure.ac | 22 ++++++++++ > example/Makefile.inc | 1 + > example/timer/odp_timer_test.c | 2 +- > helper/Makefile.am | 1 + > helper/test/Makefile.am | 1 + > include/odp/arch/arm32-linux/odp/api/abi/buffer.h | 7 ++++ > .../arch/arm32-linux/odp/api/abi/classification.h | 7 ++++ > include/odp/arch/arm32-linux/odp/api/abi/crypto.h | 7 ++++ > include/odp/arch/arm32-linux/odp/api/abi/event.h | 7 ++++ > include/odp/arch/arm32-linux/odp/api/abi/packet.h | 7 ++++ > include/odp/arch/arm32-linux/odp/api/abi/pool.h | 7 ++++ > include/odp/arch/arm32-linux/odp/api/abi/queue.h | 7 ++++ > .../arch/arm32-linux/odp/api/abi/shared_memory.h | 7 ++++ > include/odp/arch/arm64-linux/odp/api/abi/buffer.h | 7 ++++ > .../arch/arm64-linux/odp/api/abi/classification.h | 7 ++++ > include/odp/arch/arm64-linux/odp/api/abi/crypto.h | 7 ++++ > include/odp/arch/arm64-linux/odp/api/abi/event.h | 7 ++++ > include/odp/arch/arm64-linux/odp/api/abi/packet.h | 7 ++++ > include/odp/arch/arm64-linux/odp/api/abi/pool.h | 7 ++++ > include/odp/arch/arm64-linux/odp/api/abi/queue.h | 7 ++++ > .../arch/arm64-linux/odp/api/abi/shared_memory.h | 7 ++++ > include/odp/arch/default/api/abi/buffer.h | 38 +++++++++++++++++ > include/odp/arch/default/api/abi/classification.h | 40 ++++++++++++++++++ > include/odp/arch/default/api/abi/crypto.h | 36 +++++++++++++++++ > include/odp/arch/default/api/abi/event.h | 42 +++++++++++++++++++ > include/odp/arch/default/api/abi/packet.h | 47 > ++++++++++++++++++++++ > include/odp/arch/default/api/abi/pool.h | 43 ++++++++++++++++++++ > include/odp/arch/default/api/abi/queue.h | 35 ++++++++++++++++ > include/odp/arch/default/api/abi/shared_memory.h | 35 ++++++++++++++++ > include/odp/arch/mips64-linux/odp/api/abi/buffer.h | 7 ++++ > .../arch/mips64-linux/odp/api/abi/classification.h | 7 ++++ > include/odp/arch/mips64-linux/odp/api/abi/crypto.h | 7 ++++ > include/odp/arch/mips64-linux/odp/api/abi/event.h | 7 ++++ > include/odp/arch/mips64-linux/odp/api/abi/packet.h | 7 ++++ > include/odp/arch/mips64-linux/odp/api/abi/pool.h | 7 ++++ > include/odp/arch/mips64-linux/odp/api/abi/queue.h | 7 ++++ > .../arch/mips64-linux/odp/api/abi/shared_memory.h | 7 ++++ > .../odp/arch/power64-linux/odp/api/abi/buffer.h | 7 ++++ > .../power64-linux/odp/api/abi/classification.h | 7 ++++ > .../odp/arch/power64-linux/odp/api/abi/crypto.h | 7 ++++ > include/odp/arch/power64-linux/odp/api/abi/event.h | 7 ++++ > .../odp/arch/power64-linux/odp/api/abi/packet.h | 7 ++++ > include/odp/arch/power64-linux/odp/api/abi/pool.h | 7 ++++ > include/odp/arch/power64-linux/odp/api/abi/queue.h | 7 ++++ > .../arch/power64-linux/odp/api/abi/shared_memory.h | 7 ++++ > include/odp/arch/x86_32-linux/odp/api/abi/buffer.h | 7 ++++ > .../arch/x86_32-linux/odp/api/abi/classification.h | 7 ++++ > include/odp/arch/x86_32-linux/odp/api/abi/crypto.h | 7 ++++ > include/odp/arch/x86_32-linux/odp/api/abi/event.h | 7 ++++ > include/odp/arch/x86_32-linux/odp/api/abi/packet.h | 7 ++++ > include/odp/arch/x86_32-linux/odp/api/abi/pool.h | 7 ++++ > include/odp/arch/x86_32-linux/odp/api/abi/queue.h | 7 ++++ > .../arch/x86_32-linux/odp/api/abi/shared_memory.h | 7 ++++ > include/odp/arch/x86_64-linux/odp/api/abi/buffer.h | 7 ++++ > .../arch/x86_64-linux/odp/api/abi/classification.h | 7 ++++ > include/odp/arch/x86_64-linux/odp/api/abi/crypto.h | 7 ++++ > include/odp/arch/x86_64-linux/odp/api/abi/event.h | 7 ++++ > include/odp/arch/x86_64-linux/odp/api/abi/packet.h | 7 ++++ > include/odp/arch/x86_64-linux/odp/api/abi/pool.h | 7 ++++ > include/odp/arch/x86_64-linux/odp/api/abi/queue.h | 7 ++++ > .../arch/x86_64-linux/odp/api/abi/shared_memory.h | 7 ++++ > platform/Makefile.inc | 22 ++++++++++ > platform/linux-generic/Makefile.am | 1 + > .../linux-generic/include/odp/api/classification.h | 9 ++++- > .../include/odp/api/plat/buffer_types.h | 23 ++++++----- > .../include/odp/api/plat/classification_types.h | 34 ++++++---------- > .../include/odp/api/plat/crypto_types.h | 21 ++++------ > .../include/odp/api/plat/event_types.h | 19 ++++----- > .../include/odp/api/plat/packet_types.h | 26 ++++-------- > .../include/odp/api/plat/pool_types.h | 21 +++++----- > .../include/odp/api/plat/queue_types.h | 25 ++++-------- > .../include/odp/api/plat/shared_memory_types.h | 16 ++++---- > platform/linux-generic/include/odp/api/queue.h | 4 ++ > .../include/odp_classification_datamodel.h | 4 -- > platform/linux-generic/include/odp_pool_internal.h | 1 + > platform/linux-generic/odp_buffer.c | 5 +++ > platform/linux-generic/odp_classification.c | 12 +++++- > platform/linux-generic/odp_crypto.c | 10 +++++ > platform/linux-generic/odp_event.c | 5 +++ > platform/linux-generic/odp_packet.c | 10 +++++ > platform/linux-generic/odp_queue.c | 5 +++ > platform/linux-generic/odp_shared_memory.c | 6 +++ > platform/linux-generic/odp_traffic_mngr.c | 5 ++- > test/Makefile.inc | 1 + > test/linux-generic/Makefile.inc | 1 + > 85 files changed, 849 insertions(+), 116 deletions(-) > create mode 100644 include/odp/arch/arm32-linux/odp/api/abi/buffer.h
Will the types in the ABI spec be the same for Linux and another OS? > create mode 100644 include/odp/arch/arm32-linux/odp/api/abi/classification.h > create mode 100644 include/odp/arch/arm32-linux/odp/api/abi/crypto.h > create mode 100644 include/odp/arch/arm32-linux/odp/api/abi/event.h > create mode 100644 include/odp/arch/arm32-linux/odp/api/abi/packet.h > create mode 100644 include/odp/arch/arm32-linux/odp/api/abi/pool.h > create mode 100644 include/odp/arch/arm32-linux/odp/api/abi/queue.h > create mode 100644 include/odp/arch/arm32-linux/odp/api/abi/shared_memory.h > create mode 100644 include/odp/arch/arm64-linux/odp/api/abi/buffer.h If there is 'arm32' and 'arm64', where do types go for ARMv8 AArch32/A32 ? > create mode 100644 include/odp/arch/arm64-linux/odp/api/abi/classification.h > create mode 100644 include/odp/arch/arm64-linux/odp/api/abi/crypto.h > create mode 100644 include/odp/arch/arm64-linux/odp/api/abi/event.h > create mode 100644 include/odp/arch/arm64-linux/odp/api/abi/packet.h > create mode 100644 include/odp/arch/arm64-linux/odp/api/abi/pool.h > create mode 100644 include/odp/arch/arm64-linux/odp/api/abi/queue.h > create mode 100644 include/odp/arch/arm64-linux/odp/api/abi/shared_memory.h > create mode 100644 include/odp/arch/default/api/abi/buffer.h > create mode 100644 include/odp/arch/default/api/abi/classification.h > create mode 100644 include/odp/arch/default/api/abi/crypto.h > create mode 100644 include/odp/arch/default/api/abi/event.h > create mode 100644 include/odp/arch/default/api/abi/packet.h > create mode 100644 include/odp/arch/default/api/abi/pool.h > create mode 100644 include/odp/arch/default/api/abi/queue.h > create mode 100644 include/odp/arch/default/api/abi/shared_memory.h > create mode 100644 include/odp/arch/mips64-linux/odp/api/abi/buffer.h > create mode 100644 include/odp/arch/mips64-linux/odp/api/abi/classification.h > create mode 100644 include/odp/arch/mips64-linux/odp/api/abi/crypto.h > create mode 100644 include/odp/arch/mips64-linux/odp/api/abi/event.h > create mode 100644 include/odp/arch/mips64-linux/odp/api/abi/packet.h > create mode 100644 include/odp/arch/mips64-linux/odp/api/abi/pool.h > create mode 100644 include/odp/arch/mips64-linux/odp/api/abi/queue.h > create mode 100644 include/odp/arch/mips64-linux/odp/api/abi/shared_memory.h > create mode 100644 include/odp/arch/power64-linux/odp/api/abi/buffer.h > create mode 100644 > include/odp/arch/power64-linux/odp/api/abi/classification.h > create mode 100644 include/odp/arch/power64-linux/odp/api/abi/crypto.h > create mode 100644 include/odp/arch/power64-linux/odp/api/abi/event.h > create mode 100644 include/odp/arch/power64-linux/odp/api/abi/packet.h > create mode 100644 include/odp/arch/power64-linux/odp/api/abi/pool.h > create mode 100644 include/odp/arch/power64-linux/odp/api/abi/queue.h > create mode 100644 include/odp/arch/power64-linux/odp/api/abi/shared_memory.h > create mode 100644 include/odp/arch/x86_32-linux/odp/api/abi/buffer.h > create mode 100644 include/odp/arch/x86_32-linux/odp/api/abi/classification.h > create mode 100644 include/odp/arch/x86_32-linux/odp/api/abi/crypto.h > create mode 100644 include/odp/arch/x86_32-linux/odp/api/abi/event.h > create mode 100644 include/odp/arch/x86_32-linux/odp/api/abi/packet.h > create mode 100644 include/odp/arch/x86_32-linux/odp/api/abi/pool.h > create mode 100644 include/odp/arch/x86_32-linux/odp/api/abi/queue.h > create mode 100644 include/odp/arch/x86_32-linux/odp/api/abi/shared_memory.h > create mode 100644 include/odp/arch/x86_64-linux/odp/api/abi/buffer.h > create mode 100644 include/odp/arch/x86_64-linux/odp/api/abi/classification.h > create mode 100644 include/odp/arch/x86_64-linux/odp/api/abi/crypto.h > create mode 100644 include/odp/arch/x86_64-linux/odp/api/abi/event.h > create mode 100644 include/odp/arch/x86_64-linux/odp/api/abi/packet.h > create mode 100644 include/odp/arch/x86_64-linux/odp/api/abi/pool.h > create mode 100644 include/odp/arch/x86_64-linux/odp/api/abi/queue.h > create mode 100644 include/odp/arch/x86_64-linux/odp/api/abi/shared_memory.h Will the types in the ABI spec be the same for 'arm32', 'arm64', 'default', 'mips64', 'power64', 'x86_32', 'x86_64' and other archs? If the types will be the same, do we need all of this duplicated code? Are the types the same in the code that exists today? > > -- > 2.8.1 >