+typedef int (*initcall_t)(void);
+typedef void (*exitcall_t)(void);
+
+#define __init __attribute__((__used__,__section__(".mad.init")))
+#define __exit __attribute__((__used__,__section__(".mad.exit")))
+
+#define module_init(fn) static initcall_t __init_##fn __init = fn;
+#define module_exit(fn) static exitcall_t __exit_##fn __exit = fn;
+
+/* common.c */
+extern sig_atomic_t cleanexit;
+extern sig_atomic_t sigint;
+extern sig_atomic_t sighup;
+
+void common_sighandler(int sig);
+void common_initialize(void);
+void common_shutdown(void);
+