Module xous::syscall[][src]

Enums

SysCall
SysCallNumber

Functions

claim_interrupt

Claim a hardware interrupt for this process.

connect

Connect to a server with the given SID

connect_for_process

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_process
create_process_as_thread

Create a new process by running it in its own thread

create_server

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.

create_server_id

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_server_with_address

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_server_with_sid

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_thread

Create a new thread with the given closure.

create_thread_0
create_thread_1
create_thread_2
create_thread_3
create_thread_4
create_thread_simpleDeprecated
current_pid

Get the current process ID

current_tid

Get the current thread ID

destroy_server
disconnect
map_memory

Map the given physical address to the given virtual address. The size field must be page-aligned.

receive_message

Suspend the current process until a message is received. This thread will block until a message is received.

return_memory

Map the given physical address to the given virtual address. The size field must be page-aligned.

return_memory_offset

Map the given physical address to the given virtual address. The size field must be page-aligned.

return_memory_offset_valid

Map the given physical address to the given virtual address. The size field must be page-aligned.

return_scalar

Map the given physical address to the given virtual address. The size field must be page-aligned.

return_scalar2

Map the given physical address to the given virtual address. The size field must be page-aligned.

rsyscall
send_message

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.

terminate_process
try_connect

Connect to a server with the given SID

try_receive_message

Retrieve a message from the message queue for the provided server. If no message is available, returns Ok(None) without blocking

try_send_message

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.

unmap_memory

Map the given physical address to the given virtual address. The size field must be page-aligned.

wait_event

Return execution to the kernel and wait for a message or an interrupt.

wait_process

Wait for a thread to finish

wait_process_as_thread

Wait for a thread to finish

wait_thread

Wait for a thread to finish

yield_slice

Return execution to the kernel. This function may return at any time, including immediately