Function: map_mem

C Prototype

aclError aclrtMapMem(void *virPtr, size_t size, size_t offset, aclrtDrvMemHandle handle, uint64_t flags)

Python Function

ret = acl.rt.map_mem(vir_ptr, size, offset, handle, flags)

Function Usage

Maps virtual memory to physical memory.

This API needs to work with other APIs to allocate virtual memory with consecutive addresses and maximize the use of physical memory.
  1. Call acl.rt.reserve_mem_address to allocate virtual memory.
  2. Call acl.rt.malloc_physical to allocate physical memory.
  3. Call acl.rt.map_mem to map the virtual memory to the physical memory.
  4. Call specific task APIs to execute tasks.
  5. Call acl.rt.unmap_mem to unmap the virtual memory from the physical memory.
  6. Call acl.rt.free_physical to free the physical memory.
  7. Call acl.rt.release_mem_address to free the virtual memory.

Input Description

vir_ptr: int, virtual address to be mapped. The address may not be the start address. You can also offset the address based on the start address and then map the address. The virtual address must be 2-MB aligned.

size: indicates the size of the memory to be mapped, in bytes. Its value is an integer. The size must be 2-MB aligned.

offset: offset of the physical memory. This parameter can only be set to 0.

handle: address of the physical memory pointer.

flags: reserved. This parameter can only be set to 0.

Return Value

ret: int, error code.

Restrictions

This API is not supported in Ascend RC form.