From 4f344e356d2c36c4b1df46917eaef25f82ca79a9 Mon Sep 17 00:00:00 2001 From: landley Date: Thu, 5 Oct 2006 16:18:03 -0400 Subject: Infrastructure, first drop of toy shell, and a bit of work on df. --- toys.h | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) (limited to 'toys.h') diff --git a/toys.h b/toys.h index ec1ad762..4bf29b70 100644 --- a/toys.h +++ b/toys.h @@ -6,43 +6,59 @@ * Licensed under GPL version 2, see file LICENSE in this tarball for details. */ +#include +#include #include +#include +#include #include +#include -/* -name -main() -struct -usage (short long example info) -path (/usr/sbin) -*/ +#include "lib/lib.h" +int cd_main(void); +int exit_main(void); int toybox_main(void); int toysh_main(void); int df_main(void); +#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; int (*toy_main)(void); + int flags; } toy_list[]; -struct toy_list *find_toy_by_name(char *name); +struct toy_list *toy_find(char *name); // Global context for this applet. extern struct toy_context { - struct toy_list *which; + struct toy_list *which; // Which entry in toy_list is this one? + int exitval; // Value error_exit feeds to exit() int argc; char **argv; char buf[4096]; } toys; +struct exit_data {;}; +struct cd_data {;}; struct toybox_data {;}; struct toysh_data {;}; struct df_data {;}; union toy_union { + struct exit_data exit; + struct cd_data cd; struct toybox_data toybox; struct toysh_data toysh; struct df_data df; } toy; +// I need a real config system. +#define CFG_TOYS_FREE 0 -- cgit v1.2.3