twizzler-operating-system / twizzler

The Twizzler Operating System
BSD 3-Clause "New" or "Revised" License
75 stars 16 forks source link

Add implementation of thread_sync syscall. #38

Closed dbittman closed 2 years ago

dbittman commented 2 years ago

This branch adds the thread sync system call implementation, which has some changes throughout:

  1. Changes to rust port to support new thread_sync semantics in the sync primitives (and fixing some bugs)
  2. Full implementation of the thread_sync system call, requiring some cross-kernel changes to support waiting on object words and such.
  3. Removal of the spin crate, as this crate does not have interrupt safe spinlocks (our are, so now we use those everywhere, and spin was really just there at the start to get some things going more easily).
  4. Addition of a kernel API for Once (thread-safe single initialization of value)
  5. Addition of a kernel thread to handle soft timeout processing (invoked from hardtick if needed to run a timeout callback).
  6. Addition of a kernel condvar primitive.
  7. Implementation of kernel_console_read system call.
  8. Various minor tweaks to twizzler_abi to support new functionality.