Crate hermit_abi
source ·Expand description
hermit-abi
is small interface to call functions from the
Hermit unikernel.
Modules
tcplistener
provide an interface to establish tcp socket server.tcpstream
provide an interface to establish tcp socket client.
Structs
- A handle, identifying a socket
- A four-octet IPv4 address.
- A sixteen-octet IPv6 address.
- Priority of a thread
timespec
is used byclock_gettime
to retrieve the current time
Enums
- An internetworking address.
- Internet protocol version.
Constants
- Maximum number of priorities
- The largest number
rand
will return
Functions
- cause abnormal termination
- bind⚠bind a name to a socket
- Add current task to the queue of blocked tasks. After calling
block_current_task
, callyield_now
to switch to another task. - Add current task to the queue of blocked tasks, but wake it when
timeout
milliseconds have elapsed. - get current time
- close a file descriptor
- dup⚠duplicate an existing file descriptor
- exit⚠cause normal termination and return
arg
to the host system - fstat
- If the value at address matches the expected value, park the current thread until it is either woken up with
futex_wake
(returns 0) or an optional timeout elapses (returns -ETIMEDOUT). - Wake
count
threads waiting on the futex ataddress
. Returns the number of threads woken up (saturates toi32::MAX
). Ifcount
isi32::MAX
, wake up all matching waiting threads. Ifcount
is negative oraddress
is null, returns -EINVAL. - Determine the priority of the current thread
- determines the number of activated processors
- Determines the id of the current thread
- returns true if file descriptor
fd
is a tty - join⚠join with a terminated thread
- listen for connections on a socket
- lstat
- ‘mkdir’ attempts to create a directory, it returns 0 on success and -1 on error
- initialize the network stack
- open⚠open and possibly create a file
- open a directory
- poll⚠
- read⚠read from a file descriptor
- Fill
len
bytes inbuf
with cryptographically secure random data. - ‘readdir’ returns a pointer to a dirent structure representing the next directory entry in the directory stream pointed to by the file descriptor
- recv⚠receive() a message from a socket
- receive() a message from a socket
- remove directory it refers to
name
- sem_destroy() frees the unnamed semaphore at the address pointed to by
sem
. - sem_init() initializes the unnamed semaphore at the address pointed to by
sem
. Thevalue
argument specifies the initial value for the semaphore. - sem_post() increments the semaphore pointed to by
sem
. If the semaphore’s value consequently becomes greater than zero, then another thread blocked in a sem_wait call will be woken up and proceed to lock the semaphore. - decrement a semaphore
- try to decrement a semaphore
- send⚠
- Determine the priority of the current thread
- shut down part of a full-duplex connection
- spawn a new thread
- spawn a new thread with user-specified stack size
- stat⚠stat
- delete the file it refers to
name
- suspend execution for microsecond intervals
- Wakeup task with the thread id
tid
- write to a file descriptor
- yield the processor
Type Aliases
- A thread handle type