Intel® FPGA SDK for OpenCL™ Pro Edition: Custom Platform Toolkit User Guide

ID 683085
Date 3/28/2022
Public
Document Table of Contents

2.3.23. aocl_mmd_shared_alloc

Shared allocations can migrate between the host and one or more associated device. The same pointer to a shared allocation can be used on the host and the supported device. They have address equivalence.

Syntax

void * aocl_mmd_shared_alloc (int handle,
                              size_t size,
                              size_t alignment,
                              aocl_mmd_mem_properties_t* properties,
                              int* error);

Function Arguments

  • handle—Device that needs access to this memory.
  • size—The size of the memory region.
  • alignment—The alignment (in bytes) of the allocation.
  • properties—Specifies additional information about the allocated memory described by a property type name and its corresponding value. Each property type name is immediately followed by the corresponding desired value. The list is terminated with a zero. Supported values are described above. For example, [<property1>, <value1>, <property2>, <value2>, 0]
  • error—The error code defined by AOCL_MMD_ERROR*.
    • AOCL_MMD_ERROR_SUCCESS—No error occurred.
    • AOCL_MMD_ERROR_INVALID_HANDLE—The device handle provided is invalid.
    • AOCL_MMD_ERROR_OUT_OF_MEMORY—Ran out of memory.
    • AOCL_MMD_ERROR_UNSUPPORTED_ALIGNMENT—The device does not support the provided alignment.
    • AOCL_MMD_ERROR_UNSUPPORTED_PROPERTY—The device does not support the provided property.

Return Values

If the aocl_mmd_shared_alloc function executes successfully, the return value is a valid pointer value. Otherwise, the return value is NULL.