Inter-process communication#
syscalls_portCreate
#
GETFROMSTACK(ustack, u32 *, port, 0);
Creates new communication queue and returns its identifier in port
variable.
syscalls_portDestroy
#
GETFROMSTACK(ustack, u32, port, 0);
Destroys communication queue identified by port
variable.
syscalls_portRegister
#
GETFROMSTACK(ustack, unsigned int, port, 0);
GETFROMSTACK(ustack, char *, name, 1);
GETFROMSTACK(ustack, oid_t *, oid, 2);
Registers port
in the namespace at name
and returns object identifier oid
identifying this association.
syscalls_msgSend
#
GETFROMSTACK(ustack, u32, port, 0);
GETFROMSTACK(ustack, msg_t *, msg, 1);
Sends message msg
to queue identified by port
. Execution of calling thread is suspended until receiving thread
responds to this message.
syscalls_msgRecv
#
GETFROMSTACK(ustack, u32, port, 0);
GETFROMSTACK(ustack, msg_t *, msg, 1);
GETFROMSTACK(ustack, msg_rid_t *, rid, 2);
Receives message msg
from queue identified by port
. The reception context is stored in variable rid
.
syscalls_msgRespond
#
GETFROMSTACK(ustack, u32, port, 0);
GETFROMSTACK(ustack, msg_t *, msg, 1);
GETFROMSTACK(ustack, msg_rid_t, rid, 2);
Responds to message msg
using reception context rid
.
syscalls_lookup
#
GETFROMSTACK(ustack, char *, name, 0);
GETFROMSTACK(ustack, oid_t *, file, 1);
GETFROMSTACK(ustack, oid_t *, dev, 2);
Lookups for object identifier (port
and resource id
) associated with name
. Object identifier representing file is
returned in file
variable. If file is associated with other object the other object ID is returned in dev
.