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
28 lines
588 B
Modula-2
28 lines
588 B
Modula-2
import "objects/system.def"
|
|
import "objects/kobject.def"
|
|
import "objects/process.def"
|
|
import "objects/thread.def"
|
|
import "objects/channel.def"
|
|
import "objects/endpoint.def"
|
|
import "objects/vma.def"
|
|
|
|
interface syscalls [syscall] {
|
|
uid 01d9b6a948961097
|
|
|
|
expose object system
|
|
expose object kobject
|
|
expose object process
|
|
expose object thread
|
|
expose object channel
|
|
expose object endpoint
|
|
expose object vma
|
|
|
|
# Simple no-op syscall for testing
|
|
function noop
|
|
|
|
# Write a message to the kernel log
|
|
function log {
|
|
param message string
|
|
}
|
|
}
|