about summary refs log tree commit diff
path: root/Src/zsh.h
diff options
context:
space:
mode:
authorTanaka Akira <akr@users.sourceforge.net>1999-11-24 16:20:58 +0000
committerTanaka Akira <akr@users.sourceforge.net>1999-11-24 16:20:58 +0000
commitf8b0dee88051065d4667fe41dd1bc81905c2b07c (patch)
treed305a5589d775d1fa38f7486a2b58bfc567d9379 /Src/zsh.h
parentf853592fa0e6dc1246c8c23932bbd3265e537728 (diff)
downloadzsh-f8b0dee88051065d4667fe41dd1bc81905c2b07c.tar.gz
zsh-f8b0dee88051065d4667fe41dd1bc81905c2b07c.tar.xz
zsh-f8b0dee88051065d4667fe41dd1bc81905c2b07c.zip
zsh-workers/8770
Diffstat (limited to 'Src/zsh.h')
-rw-r--r--Src/zsh.h19
1 files changed, 18 insertions, 1 deletions
diff --git a/Src/zsh.h b/Src/zsh.h
index 2cf632abf..a9e8e00ed 100644
--- a/Src/zsh.h
+++ b/Src/zsh.h
@@ -300,6 +300,7 @@ typedef struct funcwrap  *FuncWrap;
 typedef struct builtin   *Builtin;
 typedef struct nameddir  *Nameddir;
 typedef struct module    *Module;
+typedef struct linkedmod *Linkedmod;
 
 typedef struct patprog   *Patprog;
 typedef struct process   *Process;
@@ -917,7 +918,10 @@ struct builtin {
 struct module {
     char *nam;
     int flags;
-    void *handle;
+    union {
+	void *handle;
+	Linkedmod linked;
+    } u;
     LinkList deps;
     int wrapper;
 };
@@ -925,6 +929,19 @@ struct module {
 #define MOD_BUSY    (1<<0)
 #define MOD_UNLOAD  (1<<1)
 #define MOD_SETUP   (1<<2)
+#define MOD_LINKED  (1<<3)
+#define MOD_INIT_S  (1<<4)
+#define MOD_INIT_B  (1<<5)
+
+typedef int (*Module_func) _((Module));
+
+struct linkedmod {
+    char *name;
+    Module_func setup;
+    Module_func boot;
+    Module_func cleanup;
+    Module_func finish;
+};
 
 /* C-function hooks */