Tool/software:
background:
In my project, it not support unix socket communication between two processes.
we want to send the vx_image object to another process var fd may be limited by IPC.
as TI mentioned:
In Linux, we can only transfer fd (not physical or virtual) as the buffer is created using the dma-buf framework in Linux, which could only retrieve both phy and virt address from fd.
In QNX, we send fd (just to keep the code same) but internally this fd is nothing but the physical address that is being sent across the process.
so we want to use physical address in QNX OS to exchange vx_images between two processes.
here are two question need comfirm:
1. after I got the vx_image object buffer's physical address, can I transfer this physical address var socket TCP(or other IPC like UDP) instead of unix socket。
(fd must transfer with unix socket, is transfer physical address also need unix socket)
2. if I can use other IPC like socket TCP to transfer physical address to another process, how can I translate the physical address to a vx_image?
in demo, it use below two APIs to translate fd to a vx_image, is there other APIs can translate physical address to vx_images?
tivxMemTranslateFd(uint64_t dmaBufFd, uint32_t size, void **virtAddr, void **phyAddr)
tivxReferenceImportHandle(vx_reference ref, const void *addr[], const uint32_t size[], uint32_t num_entries)