sh.decls.h revision 231990
1331722Seadler/* $Header: /p/tcsh/cvsroot/tcsh/sh.decls.h,v 3.62 2011/02/25 23:58:34 christos Exp $ */
21590Srgrimes/*
31590Srgrimes * sh.decls.h	 External declarations from sh*.c
41590Srgrimes */
51590Srgrimes/*-
61590Srgrimes * Copyright (c) 1980, 1991 The Regents of the University of California.
71590Srgrimes * All rights reserved.
81590Srgrimes *
91590Srgrimes * Redistribution and use in source and binary forms, with or without
101590Srgrimes * modification, are permitted provided that the following conditions
111590Srgrimes * are met:
121590Srgrimes * 1. Redistributions of source code must retain the above copyright
131590Srgrimes *    notice, this list of conditions and the following disclaimer.
141590Srgrimes * 2. Redistributions in binary form must reproduce the above copyright
151590Srgrimes *    notice, this list of conditions and the following disclaimer in the
161590Srgrimes *    documentation and/or other materials provided with the distribution.
171590Srgrimes * 3. Neither the name of the University nor the names of its contributors
181590Srgrimes *    may be used to endorse or promote products derived from this software
191590Srgrimes *    without specific prior written permission.
201590Srgrimes *
211590Srgrimes * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
221590Srgrimes * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
231590Srgrimes * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
241590Srgrimes * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
251590Srgrimes * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
261590Srgrimes * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
271590Srgrimes * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
281590Srgrimes * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
291590Srgrimes * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
301590Srgrimes * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
3174769Smikeh * SUCH DAMAGE.
3288150Smikeh */
3374769Smikeh#ifndef _h_sh_decls
341590Srgrimes#define _h_sh_decls
3599112Sobrien
3699112Sobrien/*
371590Srgrimes * sh.c
381590Srgrimes */
391590Srgrimesextern	Char	 	 *gethdir	(const Char *);
401590Srgrimesextern	void		  dosource	(Char **, struct command *);
411590Srgrimesextern	void		  exitstat	(void);
421590Srgrimesextern	void		  goodbye	(Char **, struct command *);
431590Srgrimesextern	void		  importpath	(Char *);
441590Srgrimesextern	void		  initdesc	(void);
451590Srgrimesextern	void		  pintr		(void);
461590Srgrimesextern	void		  pintr1	(int);
471590Srgrimesextern	void		  phup		(void);
481590Srgrimesextern	void		  process	(int);
491590Srgrimesextern	void		  untty		(void);
501590Srgrimes#ifdef PROF
511590Srgrimesextern	void		  done		(int) __attribute__((__noreturn__));
52216564Scharnier#else
531590Srgrimesextern	void		  xexit		(int) __attribute__((__noreturn__));
541590Srgrimes#endif
5577274Smikehextern	int		  grabpgrp	(int, pid_t);
561590Srgrimes
571590Srgrimes/*
5874769Smikeh * sh.dir.c
5977274Smikeh */
6074769Smikehextern	void		  dinit		(Char *);
6177274Smikehextern	void		  dodirs	(Char **, struct command *);
6277274Smikehextern	Char		 *dcanon	(Char *, Char *);
6377274Smikehextern	void		  dtildepr	(Char *);
6477274Smikehextern	void		  dtilde	(void);
6577274Smikehextern	void		  dochngd	(Char **, struct command *);
661590Srgrimesextern	Char		 *dnormalize	(const Char *, int);
6777274Smikehextern	void		  dopushd	(Char **, struct command *);
681590Srgrimesextern	void		  dopopd	(Char **, struct command *);
691590Srgrimesextern	void		  dfree		(struct directory *);
701590Srgrimesextern	void		  dsetstack	(void);
711590Srgrimesextern	const Char	 *getstakd	(int);
721590Srgrimesextern	void		  recdirs	(Char *, int);
731590Srgrimesextern	void		  loaddirs	(Char *);
741590Srgrimes
75216564Scharnier/*
761590Srgrimes * sh.dol.c
771590Srgrimes */
7877274Smikehextern	void		  Dfix		(struct command *);
791590Srgrimesextern	Char		 *Dfix1		(Char *);
8077274Smikehextern	void		  heredoc	(Char *);
8177274Smikeh
8277274Smikeh/*
8377274Smikeh * sh.err.c
8477274Smikeh */
8577274Smikehextern	void		  reset		(void) __attribute__((__noreturn__));
861590Srgrimesextern	void		  cleanup_push_internal(void *, void (*fn) (void *)
871590Srgrimes#ifdef CLEANUP_DEBUG
881590Srgrimes						, const char *, size_t
891590Srgrimes#define cleanup_push(v, f) cleanup_push_internal(v, f, __FILE__, __LINE__)
901590Srgrimes#else
911590Srgrimes#define cleanup_push(v, f) cleanup_push_internal(v, f)
921590Srgrimes#endif
93216564Scharnier);
941590Srgrimesextern	int		  cleanup_reset(void);
951590Srgrimesextern	void		  cleanup_ignore(void *);
9674769Smikehextern	void		  cleanup_until(void *);
9777274Smikehextern	void		  cleanup_until_mark(void);
9877274Smikehextern	size_t		  cleanup_push_mark(void);
991590Srgrimesextern	void		  cleanup_pop_mark(size_t);
1001590Srgrimesextern	void		  open_cleanup(void *);
1011590Srgrimesextern	void		  opendir_cleanup(void *);
10274769Smikehextern	void		  sigint_cleanup(void *);
10377274Smikehextern	void		  sigprocmask_cleanup(void *);
1041590Srgrimesextern	void		  xfree_indirect(void *);
1051590Srgrimesextern	void		  errinit	(void);
1061590Srgrimesextern	void		  seterror	(unsigned int, ...);
1071590Srgrimesextern	void		  fixerror	(void);
10877274Smikehextern	void		  stderror	(unsigned int, ...)
1091590Srgrimes    __attribute__((__noreturn__));
1101590Srgrimes
11174769Smikeh/*
11274769Smikeh * sh.exec.c
11374769Smikeh */
1141590Srgrimesextern	void		  doexec	(struct command *, int);
1151590Srgrimesextern	void		  dohash	(Char **, struct command *);
1161590Srgrimesextern	void		  dounhash	(Char **, struct command *);
1171590Srgrimesextern	void		  execash	(Char **, struct command *);
1181590Srgrimesextern	void		  hashstat	(Char **, struct command *);
1191590Srgrimesextern	void		  xechoit	(Char **);
1201590Srgrimesextern	int		  executable	(const Char *, const Char *, int);
1211590Srgrimesextern	int		  tellmewhat	(struct wordent *, Char **);
1221590Srgrimesextern	void		  dowhere	(Char **, struct command *);
1231590Srgrimesextern	int		  find_cmd	(Char *, int);
1241590Srgrimes
1251590Srgrimes/*
1261590Srgrimes * sh.exp.c
1271590Srgrimes */
1281590Srgrimesextern  Char		 *filetest      (Char *, Char ***, int);
1291590Srgrimesextern	tcsh_number_t 	  expr		(Char ***);
1301590Srgrimesextern	tcsh_number_t	  exp0		(Char ***, int);
1311590Srgrimes
1321590Srgrimes/*
13377274Smikeh * sh.file.c
1341590Srgrimes */
13574769Smikeh#if defined(FILEC) && defined(TIOCSTI)
13674769Smikehextern	size_t		  tenex		(Char *, size_t);
13774769Smikeh#endif
13874769Smikeh
13977274Smikeh/*
1401590Srgrimes * sh.func.c
1411590Srgrimes */
1421590Srgrimesextern	void		  tsetenv	(const Char *, const Char *);
1431590Srgrimesextern	void		  Unsetenv	(Char *);
1441590Srgrimesextern	void		  doalias	(Char **, struct command *);
1451590Srgrimesextern	void		  dobreak	(Char **, struct command *);
1461590Srgrimesextern	void		  docontin	(Char **, struct command *);
147216564Scharnierextern	void		  doecho	(Char **, struct command *);
1481590Srgrimesextern	void		  doelse	(Char **, struct command *);
14977274Smikehextern	void		  doend		(Char **, struct command *);
15077274Smikehextern	void		  doeval	(Char **, struct command *);
1511590Srgrimesextern	void		  doexit	(Char **, struct command *);
1521590Srgrimesextern	void		  doforeach	(Char **, struct command *);
15374769Smikehextern	void		  doglob	(Char **, struct command *);
15477274Smikehextern	void		  dogoto	(Char **, struct command *);
1551590Srgrimesextern	void		  doif		(Char **, struct command *);
1561590Srgrimesextern	void		  dolimit	(Char **, struct command *);
1571590Srgrimesextern	void		  dologin	(Char **, struct command *);
15877274Smikehextern	void		  dologout	(Char **, struct command *);
15977274Smikeh#ifdef NEWGRP
1601590Srgrimesextern	void		  donewgrp	(Char **, struct command *);
1611590Srgrimes#endif
1621590Srgrimesextern	void		  donohup	(Char **, struct command *);
1631590Srgrimesextern	void		  dohup		(Char **, struct command *);
1641590Srgrimesextern	void		  doonintr	(Char **, struct command *);
1651590Srgrimesextern	void		  doprintenv	(Char **, struct command *);
166216564Scharnierextern	void		  dorepeat	(Char **, struct command *);
1671590Srgrimesextern	void		  dofiletest	(Char **, struct command *);
1681590Srgrimesextern	void		  dosetenv	(Char **, struct command *);
1691590Srgrimesextern	void		  dosuspend	(Char **, struct command *);
17077274Smikehextern	void		  doswbrk	(Char **, struct command *);
17177274Smikehextern	void		  doswitch	(Char **, struct command *);
17277274Smikehextern	void		  doumask	(Char **, struct command *);
1731590Srgrimesextern	void		  dounlimit	(Char **, struct command *);
17474769Smikehextern	void		  dounsetenv	(Char **, struct command *);
17577274Smikehextern	void		  dowhile	(Char **, struct command *);
17677274Smikehextern	void		  dozip		(Char **, struct command *);
1771590Srgrimesextern	void		  func		(struct command *,
17874769Smikeh					 const struct biltins *);
17977274Smikehextern	void		  gotolab	(Char *);
1801590Srgrimesextern const struct biltins *isbfunc	(struct command *);
18177274Smikehextern	void		  prvars	(void);
1821590Srgrimesextern	int		  srchx		(Char *);
1831590Srgrimesextern	void		  unalias	(Char **, struct command *);
1841590Srgrimesextern	void		  wfree		(void);
185216564Scharnierextern	void		  dobuiltins	(Char **, struct command *);
1861590Srgrimesextern	void		  reexecute	(struct command *);
18798805Smikeh
18832189Sjoerg/*
1891590Srgrimes * sh.glob.c
19032189Sjoerg */
1911590Srgrimesextern	Char	 	 *globequal	(Char *);
1921590Srgrimesextern	Char		**dobackp	(Char *, int);
1931590Srgrimesextern	Char		 *globone	(Char *, int);
1941590Srgrimesextern	int		  Gmatch	(const Char *, const Char *);
1951590Srgrimesextern	int		  Gnmatch	(const Char *, const Char *,
1961590Srgrimes					 const Char **);
1971590Srgrimesextern	Char		**globall	(Char **, int);
198216564Scharnierextern	Char		**glob_all_or_error(Char **);
1991590Srgrimesextern	void		  rscan		(Char **, void (*)(Char));
2001590Srgrimesextern	int		  tglob		(Char **);
2011590Srgrimesextern	void		  trim		(Char **);
2021590Srgrimes
2031590Srgrimes#if !defined(WINNT_NATIVE) && defined(NLS_CATALOGS)
2041590Srgrimesextern	char		 *xcatgets	(nl_catd, int, int, const char *);
2051590Srgrimes#if defined(HAVE_ICONV) && defined(HAVE_NL_LANGINFO)
2061590Srgrimesextern	char		 *iconv_catgets	(nl_catd, int, int, const char *);
2071590Srgrimes#endif
20877274Smikeh#endif
2091590Srgrimesextern	void		  nlsinit	(void);
2101590Srgrimesextern	void	          nlsclose	(void);
2111590Srgrimesextern  int	  	  t_pmatch	(const Char *, const Char *,
2121590Srgrimes					 const Char **, int);
21377274Smikeh
2141590Srgrimes/*
21577274Smikeh * sh.hist.c
2161590Srgrimes */
21777274Smikehextern	void	 	  dohist	(Char **, struct command *);
2181590Srgrimesextern  struct Hist 	 *enthist	(int, struct wordent *, int, int, int);
2191590Srgrimesextern	void	 	  savehist	(struct wordent *, int);
22077274Smikehextern	char		 *fmthist	(int, ptr_t);
2211590Srgrimesextern	void		  rechist	(Char *, int);
2221590Srgrimesextern	void		  loadhist	(Char *, int);
2231590Srgrimesextern	void		  displayHistStats(const char *);
2241590Srgrimes
2251590Srgrimes/*
2261590Srgrimes * sh.init.c
2271590Srgrimes */
22877274Smikehextern	void		  mesginit	(void);
2291590Srgrimes
23077274Smikeh/*
2311590Srgrimes * sh.lex.c
23277274Smikeh */
23377274Smikehextern	void		  addla		(Char *);
2341590Srgrimesextern	void		  bseek		(struct Ain *);
2351590Srgrimesextern	void		  btell		(struct Ain *);
2361590Srgrimesextern	void		  btoeof	(void);
2371590Srgrimesextern	void		  copylex	(struct wordent *, struct wordent *);
23877274Smikehextern	Char		 *domod		(Char *, Char);
2391590Srgrimesextern	void		  freelex	(struct wordent *);
2401590Srgrimesextern	int		  lex		(struct wordent *);
24177274Smikehextern	void		  lex_cleanup	(void *);
2421590Srgrimesextern	void		  prlex		(struct wordent *);
2431590Srgrimesextern	eChar		  readc		(int);
2441590Srgrimesextern	void		  settell	(void);
24577274Smikehextern	void		  unreadc	(Char);
2461590Srgrimes
2471590Srgrimes
2481590Srgrimes/*
24977274Smikeh * sh.misc.c
25077274Smikeh */
25177274Smikehextern	int		  any		(const char *, Char);
25278193Smikehextern	Char		**blkcpy	(Char **, Char **);
25332189Sjoergextern	void		  blkfree	(Char **);
2541590Srgrimesextern	void		  blk_cleanup	(void *);
25577274Smikehextern	void		  blk_indirect_cleanup(void *);
2561590Srgrimesextern	int		  blklen	(Char **);
2571590Srgrimesextern	void		  blkpr		(Char *const *);
2581590Srgrimesextern	Char		 *blkexpand	(Char *const *);
2591590Srgrimesextern	Char		**blkspl	(Char **, Char **);
2601590Srgrimesextern	void		  closem	(void);
2611590Srgrimes#ifndef CLOSE_ON_EXEC
2621590Srgrimesextern  void 		  closech	(void);
263216564Scharnier#endif /* !CLOSE_ON_EXEC */
2641590Srgrimesextern	Char		**copyblk	(Char **);
2651590Srgrimesextern	int		  dcopy		(int, int);
2661590Srgrimesextern	int		  dmove		(int, int);
26777274Smikehextern	void		  donefds	(void);
26877274Smikehextern	Char		  lastchr	(Char *);
2691590Srgrimesextern	void		  lshift	(Char **, int);
2701590Srgrimesextern	int		  number	(Char *);
2711590Srgrimesextern	int		  prefix	(const Char *, const Char *);
27277274Smikehextern	Char		**saveblk	(Char **);
2731590Srgrimesextern	void		  setzero	(void *, size_t);
27474769Smikehextern	Char		 *strip		(Char *);
27577274Smikehextern	Char		 *quote		(Char *);
2761590Srgrimesextern	const Char	 *quote_meta	(struct Strbuf *, const Char *);
2771590Srgrimes#ifndef SHORT_STRINGS
2781590Srgrimesextern	char		 *strnsave	(const char *, size_t);
2791590Srgrimes#endif
2801590Srgrimesextern	char		 *strsave	(const char *);
2811590Srgrimesextern	void		  udvar		(Char *) __attribute__((__noreturn__));
2821590Srgrimes#ifndef POSIX
283216564Scharnierextern  char   	  	 *strstr	(const char *, const char *);
2841590Srgrimes#endif /* !POSIX */
28577274Smikehextern	char		 *strspl	(const char *, const char *);
28677274Smikehextern	char		 *strend	(const char *);
2871590Srgrimesextern	char		 *areadlink	(const char *);
2881590Srgrimesextern	void		  xclose	(int);
2891590Srgrimesextern	void		  xclosedir	(DIR *);
29077274Smikehextern	int		  xcreat	(const char *, mode_t);
2911590Srgrimesextern	struct group	 *xgetgrgid	(gid_t);
29229574Sphkextern	struct passwd	 *xgetpwnam	(const char *);
2931590Srgrimesextern	struct passwd	 *xgetpwuid	(uid_t);
2941590Srgrimesextern	int		  xopen		(const char *, int, ...);
2951590Srgrimesextern	ssize_t		  xread		(int, void *, size_t);
2961590Srgrimesextern	int		  xtcsetattr	(int, int, const struct termios *);
2971590Srgrimesextern	ssize_t		  xwrite	(int, const void *, size_t);
2981590Srgrimes
29977274Smikeh/*
3001590Srgrimes * sh.parse.c
3011590Srgrimes */
3021590Srgrimesextern	void		  alias		(struct wordent *);
3031590Srgrimesextern	void		  freesyn	(struct command *);
3041590Srgrimesextern struct command 	 *syntax	(const struct wordent *,
3051590Srgrimes					 const struct wordent *, int);
306216564Scharnierextern	void		  syntax_cleanup(void *);
3071590Srgrimes
30877274Smikeh/*
3091590Srgrimes * sh.print.c
31029574Sphk */
3111590Srgrimesextern	void		  drainoline	(void);
3121590Srgrimesextern	void		  flush		(void);
3131590Srgrimes#ifdef BSDTIMES
3141590Srgrimesextern	void		  pcsecs	(unsigned long);
31577274Smikeh#else /* !BSDTIMES */
3161590Srgrimes# ifdef POSIX
3171590Srgrimesextern	void		  pcsecs	(clock_t);
3181590Srgrimes# else /* !POSIX */
3191590Srgrimesextern	void		  pcsecs	(time_t);
3201590Srgrimes# endif /* !POSIX */
3211590Srgrimes#endif /* BSDTIMES */
322216564Scharnier#ifdef BSDLIMIT
3231590Srgrimesextern	void		  psecs		(unsigned long);
32477274Smikeh#endif /* BSDLIMIT */
32577274Smikehextern	int		  putpure	(int);
3261590Srgrimesextern	int		  putraw	(int);
32729574Sphkextern	void		  xputchar	(int);
3281590Srgrimes#ifdef WIDE_STRINGS
3291590Srgrimesextern	void		  putwraw	(Char);
33037453Sbdeextern	void		  xputwchar	(Char);
3311590Srgrimes#else
33277274Smikeh# define putwraw(C) putraw(C)
3331590Srgrimes# define xputwchar(C) xputchar(C)
3341590Srgrimes#endif
3351590Srgrimesextern	void		  output_raw_restore(void *);
3361590Srgrimes
3371590Srgrimes
3381590Srgrimes/*
3391590Srgrimes * sh.proc.c
340216564Scharnier */
3411590Srgrimesextern	void		  dobg		(Char **, struct command *);
3421590Srgrimesextern	void		  dobg1		(Char **, struct command *);
34377274Smikehextern	void		  dofg		(Char **, struct command *);
34488150Smikehextern	void		  dofg1		(Char **, struct command *);
3451590Srgrimesextern	void		  dojobs	(Char **, struct command *);
3461590Srgrimesextern	void		  dokill	(Char **, struct command *);
3471590Srgrimesextern	void		  donotify	(Char **, struct command *);
3481590Srgrimesextern	void		  dostop	(Char **, struct command *);
3491590Srgrimesextern	void		  dowait	(Char **, struct command *);
3501590Srgrimesextern	void		  palloc	(pid_t, struct command *);
3511590Srgrimesextern	void		  panystop	(int);
3521590Srgrimesextern	void		  pchild	(void);
353216564Scharnierextern	void		  pendjob	(void);
3541590Srgrimesextern	pid_t		  pfork		(struct command *, int);
35577274Smikehextern	void		  pgetty	(int, pid_t);
35677274Smikehextern	void		  pjwait	(struct process *);
3571590Srgrimesextern	void		  pnote		(void);
3581590Srgrimesextern	void		  psavejob	(void);
3591590Srgrimesextern	void		  psavejob_cleanup(void *);
36077274Smikehextern	int		  pstart	(struct process *, int);
3611590Srgrimesextern	void		  pwait		(void);
36277274Smikehextern  struct process   *pfind		(Char *);
3631590Srgrimes
36477274Smikeh/*
3651590Srgrimes * sh.sem.c
36677274Smikeh */
3671590Srgrimesextern	void		  execute	(struct command *, volatile int, int *,
36877274Smikeh					 int *, int);
3691590Srgrimesextern	void		  mypipe	(int *);
37077274Smikeh
3711590Srgrimes/*
37277274Smikeh * sh.set.c
3731590Srgrimes */
3741590Srgrimesextern	struct varent 	 *adrof1	(const Char *, struct varent *);
37577274Smikehextern	void		  doset		(Char **, struct command *);
3761590Srgrimesextern	void		  dolet		(Char **, struct command *);
3771590Srgrimesextern	Char		 *putn		(tcsh_number_t);
37874769Smikehextern	tcsh_number_t	  getn		(const Char *);
3791590Srgrimesextern	Char		 *value1	(Char *, struct varent *);
3801590Srgrimesextern	void		  setcopy	(const Char *, const Char *, int);
3811590Srgrimesextern	void		  setv		(const Char *, Char *, int);
3821590Srgrimesextern	void		  set1		(const Char *, Char **,
3831590Srgrimes					 struct varent *, int);
3841590Srgrimesextern	void		  setq		(const Char *, Char **,
3851590Srgrimes					 struct varent *, int);
3861590Srgrimesextern	void		  unset		(Char **, struct command *);
3871590Srgrimesextern	void		  unset1	(Char *[], struct varent *);
3881590Srgrimesextern	void		  unsetv	(Char *);
3891590Srgrimesextern	void		  setNS		(const Char *);
3901590Srgrimesextern	void		  shift		(Char **, struct command *);
3911590Srgrimesextern	void		  plist		(struct varent *, int);
39277274Smikehextern	Char		 *unparse	(struct command *);
3931590Srgrimes#if defined(DSPMBYTE)
3941590Srgrimesextern	void 		  update_dspmbyte_vars	(void);
3951590Srgrimesextern	void		  autoset_dspmbyte	(const Char *);
3961590Srgrimes#endif
3971590Srgrimes#if defined(AUTOSET_KANJI)
3981590Srgrimesextern	void		  autoset_kanji	(void);
399216564Scharnier#endif
4001590Srgrimes
40177274Smikeh/*
4021590Srgrimes * sh.time.c
4031590Srgrimes */
4041590Srgrimesextern	void		  donice	(Char **, struct command *);
4051590Srgrimesextern	void		  dotime	(Char **, struct command *);
40677274Smikeh#ifdef BSDTIMES
40777274Smikehextern	void		  prusage	(struct sysrusage *,
40888150Smikeh					 struct sysrusage *,
40988150Smikeh					 timeval_t *, timeval_t *);
41088150Smikehextern	void		  ruadd		(struct sysrusage *,
4111590Srgrimes					 struct sysrusage *);
4121590Srgrimes#else /* BSDTIMES */
4131590Srgrimes# ifdef _SEQUENT_
4141590Srgrimesextern	void		  prusage	(struct process_stats *,
4151590Srgrimes					 struct process_stats *,
4161590Srgrimes					 timeval_t *, timeval_t *);
4171590Srgrimesextern	void		  ruadd		(struct process_stats *,
4181590Srgrimes					 struct process_stats *);
4191590Srgrimes# else /* !_SEQUENT_ */
4201590Srgrimes#  ifdef POSIX
42177274Smikehextern	void		  prusage	(struct tms *, struct tms *,
4221590Srgrimes					 clock_t, clock_t);
4231590Srgrimes#  else	/* !POSIX */
4241590Srgrimesextern	void		  prusage	(struct tms *, struct tms *,
4251590Srgrimes					 time_t, time_t);
4261590Srgrimes#  endif /* !POSIX */
4271590Srgrimes# endif	/* !_SEQUENT_ */
4281590Srgrimes#endif /* BSDTIMES */
42977274Smikehextern	void		  settimes	(void);
4301590Srgrimes#if defined(BSDTIMES) || defined(_SEQUENT_)
43177274Smikehextern	void		  tvsub		(struct timeval *,
4321590Srgrimes					 struct timeval *,
4331590Srgrimes					 struct timeval *);
4341590Srgrimes#endif /* BSDTIMES || _SEQUENT_ */
4351590Srgrimes
4361590Srgrimes/*
4371590Srgrimes * tw.parse.c
438216564Scharnier */
4391590Srgrimesextern	 void		  copyn			(Char *, const Char *, size_t);
44077274Smikehextern	 void		  catn			(Char *, const Char *, int);
44177274Smikeh
4421590Srgrimes#endif /* _h_sh_decls */
44377274Smikeh