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