The destination is a bit easier since all the appropriate values will be sent in the incoming message from the process manager's task call:
struct vir_addr dst; dst.proc_nr_e = (extract this from the message) dst.segment = D; dst.offset = (vir_bytes) (extract this from the message) Note: vir_bytes is defined as unsigned int in my Minix 3.