Crate hermit_abi

source ·
Expand description

hermit-abi is small interface to call functions from the Hermit unikernel.



  • tcplistener provide an interface to establish tcp socket server.
  • tcpstream provide an interface to establish tcp socket client.





  • cause abnormal termination
  • bind
    bind a name to a socket
  • Add current task to the queue of blocked tasks. After calling block_current_task, call yield_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
  • eventfd creates an linux-like “eventfd object” that can be used as an event wait/notify mechanism by user-space applications, and by the kernel to notify user-space applications of events. The object contains an unsigned 64-bit integer counter that is maintained by the kernel. This counter is initialized with the value specified in the argument initval.
  • 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 at address. Returns the number of threads woken up (saturates to i32::MAX). If count is i32::MAX, wake up all matching waiting threads. If count is negative or address is null, returns -EINVAL.
  • Get the last error number from the thread local storage
  • Determine the priority of the current thread
  • determines the number of activated processors
  • getdents64 reads directory entries from the directory referenced by the file descriptor fd into the buffer pointed to by buf.
  • 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
    The unix-like poll waits for one of a set of file descriptors to become ready to perform I/O. The set of file descriptors to be monitored is specified in the fds argument, which is an array of structures of pollfd.
  • read
    read from a file descriptor
  • Fill len bytes in buf with cryptographically secure random data.
  • 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. The value 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
  • 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§