mirror of
https://github.com/justinian/jsix.git
synced 2025-12-10 00:14:32 -08:00
This change adds a new interface DSL for specifying objects (with methods) and interfaces (that expose objects, and optionally have their own methods). Significant changes: - Add the new scripts/definitions Python module to parse the DSL - Add the new definitions directory containing DSL definition files - Use cog to generate syscall-related code in kernel and libj6 - Unify ordering of pointer + length pairs in interfaces
26 lines
892 B
Modula-2
26 lines
892 B
Modula-2
# The base type of all kernel-exposed objects
|
|
object kobject [virtual] {
|
|
uid 667f61fb2cd57bb4
|
|
|
|
# Get the internal kernel object id of an object
|
|
method koid {
|
|
param koid uint64 [out]
|
|
}
|
|
|
|
# Block the current thread waiting for an object to assert
|
|
# one of a set of signals
|
|
method wait {
|
|
param mask uint64 # Bitmap of which signals to wait for
|
|
param signals uint64 [out] # Returns the state of the signals
|
|
}
|
|
|
|
# Block the current thread waiting for an one of multiple
|
|
# objects to assert one of a set of signals
|
|
method wait_many [static] {
|
|
param handles object kobject [list] # The objects to wait on
|
|
param mask uint64 # Bitmap of which signals to wait for
|
|
param handle object kobject [out] # Returns the object that signalled
|
|
param signals uint64 [out] # Returns the state of the signals
|
|
}
|
|
}
|