To send data using HPS, the user passes one or more of the pointers received from an HPS allocation call to one of the send-type calls along with the MSG_MAPIO flag:
int ret, sock;
unsigned long ptrs[15];
struct msghdr hdr;
struct iovec iovec[2];
ret = send(sock, ptrs[0], 4096, MSG_MAPIO);
hdr.msg_name = NULL;
hdr.msg_namelen = 0;
hdr.msg_iov = iovec;
hdr.msg_iovlen = 2;
iovec[0].iov_base = ptrs[0];
iovec[0].iov_len = 4096;
iovec[1].iov_base = ptrs[1];
iovec[1].iov_len = 96;
hdr.msg_control = NULL;
hdr.msg_controllen = 0;
hdr.msg_flags = 0;
ret = sendmsg(sock, &hdr, MSG_MAPIO);
Notes: