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 22PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN 23 24extern const char defifsvar[] ALIGN1; /* "IFS= \t\n" */ 25#define defifs (defifsvar + 4) 26 27extern const char defoptindvar[] ALIGN1; /* "OPTIND=1" */ 28 29/* Builtins */ 30 31struct 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}; 42enum { 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 51const char* FAST_FUNC 52shell_builtin_read(struct builtin_read_params *params); 53 54int FAST_FUNC 55shell_builtin_ulimit(char **argv); 56 57POP_SAVED_FUNCTION_VISIBILITY 58 59#endif 60