import "objects/object.def" import "objects/channel.def" import "objects/event.def" import "objects/mailbox.def" import "objects/process.def" import "objects/system.def" import "objects/thread.def" import "objects/vma.def" interface syscalls [syscall] { uid 01d9b6a948961097 expose ref object expose ref system expose ref event expose ref process expose ref thread expose ref mailbox expose ref channel expose ref vma # Simple no-op syscall for testing function noop # Write a message to the kernel log function log { param message string } # Get a list of handles owned by this process. If the # supplied list is not big enough, will set the size # needed in `size` and return j6_err_insufficient function handle_list { param handles struct handle_descriptor [list inout zero_ok] # A list of handles to be filled } # Create a clone of an existing handle, possibly with # some capabilities masked out. function handle_clone { param orig ref object [handle cap:clone] # The handle to clone param clone ref object [out] # The new handle param mask uint32 # The capability bitmask } # Testing mode only: Have the kernel finish and exit QEMU with the given exit code function test_finish [test] { param exit_code uint32 } }