Claim a hardware interrupt for this process.
Connect to a server with the given SID
Connect to a server on behalf of another process. This can be used by a name
resolution server to securely create connections without disclosing a SID.
Create a new server with a random name. This enables other processes to
connect to this server to send messages. A random server ID is generated
by the kernel and returned to the caller. This address can then be registered
to a namserver.
Fetch a random server ID from the kernel. This is used
exclusively by the name server and the suspend/resume server. A random server ID is generated
by the kernel and returned to the caller. This address can then be registered
to a namserver by the caller in their memory space.
Create a new server with the given name. This enables other processes to
connect to this server to send messages. The name is a UTF-8 token that
will be mixed with other random data that is unique to each process.
That way, if a process crashes and is restarted, it can keep the same
name. However, other processes cannot spoof this process.
Create a new server with the given SID. This enables other processes to
connect to this server to send messages. The name is a unique 128-bit SID.
That way, if a process crashes and is restarted, it can keep the same
name. However, other processes cannot spoof this process.
Create a new thread with the given closure.
Get the current process ID
Get the current thread ID
Disconnect the specified connection ID and mark it as free. This
connection ID may be reused by the server in the future, so ensure
no other threads are using the connection ID before disposing of it.
Block the current thread and wait for the specified thread to
return. Returns the return value of the thread.
Map the given physical address to the given virtual address.
The size
field must be page-aligned.
Suspend the current process until a message is received. This thread will
block until a message is received.
Reply to the message, if one exists, and receive the next one.
If no message exists, delegate the call to receive_syscall()
.
Reply to the message, if one exists, and receive the next one.
If no message exists, delegate the call to receive_syscall()
.
Allow specifying the scalar return type.
Map the given physical address to the given virtual address.
The size
field must be page-aligned.
Map the given physical address to the given virtual address.
The size
field must be page-aligned.
Map the given physical address to the given virtual address.
The size
field must be page-aligned.
Map the given physical address to the given virtual address.
The size
field must be page-aligned.
Map the given physical address to the given virtual address.
The size
field must be page-aligned.
Return 5 scalars to the provided message.
Perform a raw syscall and return the result. This will transform
xous::Result::Error(e)
into an Err(e)
.
Send a message to a server. Depending on the mesage type (move or borrow), it
will either block (borrow) or return immediately (move).
If the message type is borrow
, then the memory addresses pointed to will be
unavailable to this process until this function returns.
Connect to a server with the given SID
Retrieve a message from the message queue for the provided server. If no message
is available, returns Ok(None)
without blocking
Send a message to a server. Depending on the mesage type (move or borrow), it
will either block (borrow) or return immediately (move).
If the message type is borrow
, then the memory addresses pointed to will be
unavailable to this process until this function returns.
Map the given physical address to the given virtual address.
The size
field must be page-aligned.
Update the permissions on the given memory range. Note that permissions may
only be stripped here – they may never be added.
Return execution to the kernel and wait for a message or an interrupt.
Wait for a thread to finish
Wait for a thread to finish. This is equivalent to join_thread
Return execution to the kernel. This function may return at any time,
including immediately