summaryrefslogtreecommitdiff
path: root/module/loader.m
diff options
context:
space:
mode:
authorCharles.Forsyth <devnull@localhost>2006-12-22 20:52:35 +0000
committerCharles.Forsyth <devnull@localhost>2006-12-22 20:52:35 +0000
commit46439007cf417cbd9ac8049bb4122c890097a0fa (patch)
tree6fdb25e5f3a2b6d5657eb23b35774b631d4d97e4 /module/loader.m
parent37da2899f40661e3e9631e497da8dc59b971cbd0 (diff)
20060303-partial
Diffstat (limited to 'module/loader.m')
-rw-r--r--module/loader.m48
1 files changed, 48 insertions, 0 deletions
diff --git a/module/loader.m b/module/loader.m
new file mode 100644
index 00000000..597e2bab
--- /dev/null
+++ b/module/loader.m
@@ -0,0 +1,48 @@
+#
+# External loader interface
+#
+Nilmod: module
+{
+};
+
+Loader: module
+{
+ PATH: con "$Loader";
+
+ Inst: adt
+ {
+ op: byte;
+ addr: byte;
+ src: int;
+ mid: int;
+ dst: int;
+ };
+
+ Typedesc: adt
+ {
+ size: int;
+ map: array of byte;
+ };
+
+ Link: adt
+ {
+ name: string;
+ sig: int;
+ pc: int;
+ tdesc: int;
+ };
+
+ Niladt: adt
+ {
+ };
+
+ ifetch: fn(mp: Nilmod): array of Inst;
+ tdesc: fn(mp: Nilmod): array of Typedesc;
+ newmod: fn(name: string, ss, nlink: int,
+ inst: array of Inst, data: ref Niladt): Nilmod;
+ tnew: fn(mp: Nilmod, size: int, map: array of byte): int;
+ link: fn(mp: Nilmod): array of Link;
+ ext: fn(mp: Nilmod, idx, pc: int, tdesc: int): int;
+ dnew: fn(size: int, map: array of byte): ref Niladt;
+ compile: fn(mp: Nilmod, flag: int): int;
+};