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
> 

Reply via email to