diff toys.h @ 237:7cb15eae1664

Zap toylist.h, moving contents of global structures into DEFINE_GLOBALS() macros in each C file, and making generated/globals.h from that. Rename "toy" to "this" along the way to avoid toy/toys confusion.
author Rob Landley <rob@landley.net>
date Sun, 20 Jan 2008 17:25:44 -0600
parents 163498bf547b
children 3fe66e630944
line wrap: on
line diff
--- a/toys.h	Sat Jan 19 17:55:45 2008 -0600
+++ b/toys.h	Sun Jan 20 17:25:44 2008 -0600
@@ -39,13 +39,13 @@
 
 #include "lib/lib.h"
 #include "toys/e2fs.h"
-#include "toys/toylist.h"
 
 // Get list of function prototypes for all enabled command_main() functions.
 
 #define NEWTOY(name, opts, flags) void name##_main(void);
 #define OLDTOY(name, oldname, opts, flags)
 #include "generated/newtoys.h"
+#include "generated/globals.h"
 
 // These live in main.c
 
@@ -53,6 +53,22 @@
 void toy_init(struct toy_list *which, char *argv[]);
 void toy_exec(char *argv[]);
 
+// List of available applets
+
+#define TOYFLAG_USR      (1<<0)
+#define TOYFLAG_BIN      (1<<1)
+#define TOYFLAG_SBIN     (1<<2)
+#define TOYMASK_LOCATION ((1<<4)-1)
+
+#define TOYFLAG_NOFORK   (1<<4)
+
+extern struct toy_list {
+        char *name;
+        void (*toy_main)(void);
+        char *options;
+        int flags;
+} toy_list[];
+
 // Global context for any applet.
 
 extern struct toy_context {
@@ -67,3 +83,5 @@
 // One big temporary buffer, for use by applets (not library functions).
 
 extern char toybuf[4096];
+
+#define DEFINE_GLOBALS(...)