anchor.diff:  implementation), except for `odp_shm_lookup()` and `odp_shm_free()`.
   ODP implementations may use this flag as a hint for performance optimization,
   or may as well ignore this flag.
  +
  +==== ODP_SHM_SINGLE_VA
  +This flag is used to guarantee the uniqueness of the address at which
  +the shared memory is mapped: without this flag, a given memory block may be
  +mapped at different virtual addresses (assuming the target have virtual
  +addresses) by different ODP threads. This means that the value returned by
  +`odp_shm_addr()` would be different in different threads, in this case.
  +Setting this flag guarantees that all ODP threads sharing this memory
  +block will see it at the same address (`odp_shm_addr()` would return the
  +same value on all ODP threads, for a given memory block, in this case)
  +Note that ODP implementations may have restrictions of the amount of memory
  +which can be allocated with this flag.
   
   == Queues
   Queues are the fundamental event sequencing mechanism provided by ODP and all
  
positive.code: }
  ----
  
  === Memory creation flags
  The last argument to odp_shm_reserve() is a set of ORed flags.
  Two flags are supported:
  
  ==== ODP_SHM_PROC
  When this flag is given, the allocated shared memory will become visible
  
negative.code: 'shm_open()' and 'mmap' (for linux).
  Each ODP implementation should provide a description on exactly how
  this mapping should be done on that specific platform.
  
  ==== ODP_SHM_EXPORT
  When this flag is given, the allocated shared memory will become visible
  to other ODP instances running on the same OS.
  Other ODP instances willing to see this exported memory should use the
  `odp_shm_import()` ODP function.
  
  ==== ODP_SHM_SW_ONLY
  This flag tells ODP that the shared memory will be used by the ODP application
  