[project] Generate syscalls from new interface DSL

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
This commit is contained in:
Justin C. Miller
2021-08-30 01:05:32 -07:00
parent 80f815c020
commit 186724e751
52 changed files with 4025 additions and 206 deletions

View File

@@ -0,0 +1,33 @@
# Mailboxes are objects that enable asynchronous IPC via event notification.
# This is a second line of documentation
object mailbox {
uid 99934ad04ece1e07
# Create an unbound mailbox
method create [constructor]
method close [destructor]
method bind {
param index uint
param source object kobject
param event uint
}
method unbind {
param index uint
}
method notify {
param index uint
}
method wait {
param bitmap uint64 [out]
}
method ack {
param bitmap uint64
}
}