1 2/* : : generated by proto : : */ 3/*********************************************************************** 4* * 5* This software is part of the ast package * 6* Copyright (c) 1985-2010 AT&T Intellectual Property * 7* and is licensed under the * 8* Common Public License, Version 1.0 * 9* by AT&T Intellectual Property * 10* * 11* A copy of the License is available at * 12* http://www.opensource.org/licenses/cpl1.0.txt * 13* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * 14* * 15* Information and Software Systems Research * 16* AT&T Research * 17* Florham Park NJ * 18* * 19* Glenn Fowler <gsf@research.att.com> * 20* David Korn <dgk@research.att.com> * 21* Phong Vo <kpv@research.att.com> * 22* * 23***********************************************************************/ 24 25 26/* 27 * ksh builtin command api 28 */ 29 30#ifndef _SHCMD_H 31#if !defined(__PROTO__) 32#include <prototyped.h> 33#endif 34#if !defined(__LINKAGE__) 35#define __LINKAGE__ /* 2004-08-11 transition */ 36#endif 37 38#define _SHCMD_H 1 39 40#ifndef SH_VERSION 41# define Shell_t void 42#endif 43#ifndef NV_DEFAULT 44# define Namval_t void 45#endif 46#ifndef ERROR_NOTIFY 47# define ERROR_NOTIFY 1 48#endif 49 50typedef int (*Shbltin_f) __PROTO__((int, char**, __V_*)); 51 52#undef Shbltin_t 53typedef struct Shbltin_s 54{ 55 Shell_t *shp; 56 __V_ *ptr; 57 int version; 58 int (*shrun) __PROTO__((int, char**)); 59 int (*shtrap) __PROTO__((const char*, int)); 60 void (*shexit) __PROTO__((int)); 61 Namval_t *(*shbltin) __PROTO__((const char*, Shbltin_f, __V_*)); 62 unsigned char notify; 63 unsigned char sigset; 64 unsigned char nosfio; 65 Namval_t *bnode; 66 Namval_t *vnode; 67 char *data; 68 int flags; 69 char *(*shgetenv) __PROTO__((const char*)); 70 char *(*shsetenv) __PROTO__((const char*)); 71 int invariant; 72} Shbltin_t; 73 74#if defined(SH_VERSION) || defined(_SH_PRIVATE) 75# undef Shell_t 76# undef Namval_t 77#else 78# define sh_context(c) ((Shbltin_t*)(c)) 79# define sh_run(c, ac, av) ((c)?(*sh_context(c)->shrun)(ac,av):-1) 80# define sh_system(c,str) ((c)?(*sh_context(c)->shtrap)(str,0):system(str)) 81# define sh_exit(c,n) ((c)?(*sh_context(c)->shexit)(n):exit(n)) 82# define sh_checksig(c) ((c) && sh_context(c)->sigset) 83# if defined(SFIO_VERSION) || defined(_AST_H) 84# define LIB_INIT(c) 85# else 86# define LIB_INIT(c) ((c) && (sh_context(c)->nosfio = 1)) 87# endif 88# ifndef _CMD_H 89# define cmdinit(ac,av,c,cat,flg) do { if((ac)<=0) return(0); \ 90 (sh_context(c)->notify = ((flg)&ERROR_NOTIFY)?1:0);} while(0) 91# endif 92#endif 93 94#if _BLD_ast && defined(__EXPORT__) 95#undef __MANGLE__ 96#define __MANGLE__ __LINKAGE__ __EXPORT__ 97#endif 98 99extern __MANGLE__ int astintercept __PROTO__((Shbltin_t*, int)); 100 101#undef __MANGLE__ 102#define __MANGLE__ __LINKAGE__ 103 104#endif 105