1 /* vi: set sw=4 ts=4: */ 2 /* 3 * Adapted from ash applet code 4 * 5 * This code is derived from software contributed to Berkeley by 6 * Kenneth Almquist. 7 * 8 * Copyright (c) 1989, 1991, 1993, 1994 9 * The Regents of the University of California. All rights reserved. 10 * 11 * Copyright (c) 1997-2005 Herbert Xu <herbert@gondor.apana.org.au> 12 * was re-ported from NetBSD and debianized. 13 * 14 * Copyright (c) 2010 Denys Vlasenko 15 * Split from ash.c 16 * 17 * Licensed under GPLv2 or later, see file LICENSE in this source tree. 18 */ 19 #ifndef SHELL_COMMON_H 20 #define SHELL_COMMON_H 1 21 22 PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN 23 24 extern const char defifsvar[] ALIGN1; /* "IFS= \t\n" */ 25 #define defifs (defifsvar + 4) 26 27 extern const char defoptindvar[] ALIGN1; /* "OPTIND=1" */ 28 29 /* Builtins */ 30 31 struct builtin_read_params { 32 int read_flags; 33 void FAST_FUNC (*setvar)(const char *name, const char *val); 34 char **argv; 35 const char *ifs; 36 const char *opt_n; 37 const char *opt_p; 38 const char *opt_t; 39 const char *opt_u; 40 const char *opt_d; 41 }; 42 enum { 43 BUILTIN_READ_SILENT = 1 << 0, 44 BUILTIN_READ_RAW = 1 << 1, 45 }; 46 //TODO? do not provide bashisms if not asked for: 47 //#if !ENABLE_HUSH_BASH_COMPAT && !ENABLE_ASH_BASH_COMPAT 48 //#define shell_builtin_read(setvar,argv,ifs,read_flags,n,p,t,u,d) 49 // shell_builtin_read(setvar,argv,ifs,read_flags) 50 //#endif 51 const char* FAST_FUNC 52 shell_builtin_read(struct builtin_read_params *params); 53 54 int FAST_FUNC 55 shell_builtin_ulimit(char **argv); 56 57 POP_SAVED_FUNCTION_VISIBILITY 58 59 #endif 60