1 /* $Header: /src/pub/tcsh/tc.decls.h,v 3.57 2005/01/18 20:24:51 christos Exp $ */ 2 /* 3 * tc.decls.h: Function declarations from all the tcsh modules 4 */ 5 /*- 6 * Copyright (c) 1980, 1991 The Regents of the University of California. 7 * All rights reserved. 8 * 9 * Redistribution and use in source and binary forms, with or without 10 * modification, are permitted provided that the following conditions 11 * are met: 12 * 1. Redistributions of source code must retain the above copyright 13 * notice, this list of conditions and the following disclaimer. 14 * 2. Redistributions in binary form must reproduce the above copyright 15 * notice, this list of conditions and the following disclaimer in the 16 * documentation and/or other materials provided with the distribution. 17 * 3. Neither the name of the University nor the names of its contributors 18 * may be used to endorse or promote products derived from this software 19 * without specific prior written permission. 20 * 21 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 */ 33 #ifndef _h_tc_decls 34 #define _h_tc_decls 35 36 /* 37 * tc.alloc.c 38 */ 39 #ifndef SYSMALLOC 40 #ifndef WINNT_NATIVE 41 extern void free __P((ptr_t)); 42 extern memalign_t malloc __P((size_t)); 43 extern memalign_t realloc __P((ptr_t, size_t)); 44 extern memalign_t calloc __P((size_t, size_t)); 45 #endif /* !WINNT_NATIVE */ 46 #else /* SYSMALLOC */ 47 extern void sfree __P((ptr_t)); 48 extern memalign_t smalloc __P((size_t)); 49 extern memalign_t srealloc __P((ptr_t, size_t)); 50 extern memalign_t scalloc __P((size_t, size_t)); 51 #endif /* SYSMALLOC */ 52 extern void showall __P((Char **, struct command *)); 53 54 /* 55 * tc.bind.c 56 */ 57 extern void dobindkey __P((Char **, struct command *)); 58 #ifdef OBSOLETE 59 extern void dobind __P((Char **, struct command *)); 60 #endif /* OBSOLETE */ 61 62 /* 63 * tc.defs.c: 64 */ 65 extern void getmachine __P((void)); 66 67 68 /* 69 * tc.disc.c 70 */ 71 extern int setdisc __P((int)); 72 extern int resetdisc __P((int)); 73 74 /* 75 * tc.func.c 76 */ 77 extern Char *expand_lex __P((Char *, size_t, struct wordent *, 78 int, int)); 79 extern Char *sprlex __P((Char *, size_t, struct wordent *)); 80 extern Char *Itoa __P((int, Char *, int, int)); 81 extern void dolist __P((Char **, struct command *)); 82 extern void dotermname __P((Char **, struct command *)); 83 extern void dotelltc __P((Char **, struct command *)); 84 extern void doechotc __P((Char **, struct command *)); 85 extern void dosettc __P((Char **, struct command *)); 86 extern int cmd_expand __P((Char *, Char *)); 87 extern void dowhich __P((Char **, struct command *)); 88 extern struct process *find_stop_ed __P((void)); 89 extern void fg_proc_entry __P((struct process *)); 90 extern RETSIGTYPE alrmcatch __P((int)); 91 extern void precmd __P((void)); 92 extern void postcmd __P((void)); 93 extern void cwd_cmd __P((void)); 94 extern void beep_cmd __P((void)); 95 extern void period_cmd __P((void)); 96 extern void job_cmd __P((Char *)); 97 extern void aliasrun __P((int, Char *, Char *)); 98 extern void setalarm __P((int)); 99 extern void rmstar __P((struct wordent *)); 100 extern void continue_jobs __P((struct wordent *)); 101 extern Char *gettilde __P((Char *)); 102 extern Char *getusername __P((Char **)); 103 #ifdef OBSOLETE 104 extern void doaliases __P((Char **, struct command *)); 105 #endif /* OBSOLETE */ 106 extern void shlvl __P((int)); 107 extern int fixio __P((int, int)); 108 extern int collate __P((const Char *, const Char *)); 109 #ifdef HASHBANG 110 extern int hashbang __P((int, Char ***)); 111 #endif /* HASHBANG */ 112 #ifdef REMOTEHOST 113 extern void remotehost __P((void)); 114 #endif /* REMOTEHOST */ 115 116 117 /* 118 * tc.os.c 119 */ 120 #ifdef MACH 121 extern void dosetpath __P((Char **, struct command *)); 122 #endif /* MACH */ 123 124 #ifdef TCF 125 extern void dogetxvers __P((Char **, struct command *)); 126 extern void dosetxvers __P((Char **, struct command *)); 127 extern void dogetspath __P((Char **, struct command *)); 128 extern void dosetspath __P((Char **, struct command *)); 129 extern char *sitename __P((pid_t)); 130 extern void domigrate __P((Char **, struct command *)); 131 #endif /* TCF */ 132 133 #ifdef WARP 134 extern void dowarp __P((Char **, struct command *)); 135 #endif /* WARP */ 136 137 #if defined(_CRAY) && !defined(_CRAYMPP) 138 extern void dodmmode __P((Char **, struct command *)); 139 #endif /* _CRAY && !_CRAYMPP */ 140 141 #if defined(masscomp) || defined(hcx) 142 extern void douniverse __P((Char **, struct command *)); 143 #endif /* masscomp */ 144 145 #if defined(_OSD_POSIX) /* BS2000 */ 146 extern void dobs2cmd __P((Char **, struct command *)); 147 #endif /* _OSD_POSIX */ 148 149 #if defined(hcx) 150 extern void doatt __P((Char **, struct command *)); 151 extern void doucb __P((Char **, struct command *)); 152 #endif /* hcx */ 153 154 #ifdef _SEQUENT_ 155 extern void pr_stat_sub __P((struct process_stats *, 156 struct process_stats *, 157 struct process_stats *)); 158 #endif /* _SEQUENT_ */ 159 160 #ifdef NEEDtcgetpgrp 161 extern int xtcgetpgrp __P((int)); 162 extern int xtcsetpgrp __P((int, int)); 163 # undef tcgetpgrp 164 # define tcgetpgrp(a) xtcgetpgrp(a) 165 # undef tcsetpgrp 166 # define tcsetpgrp(a, b) xtcsetpgrp((a), (b)) 167 #endif /* NEEDtcgetpgrp */ 168 169 #ifdef YPBUGS 170 extern void fix_yp_bugs __P((void)); 171 #endif /* YPBUGS */ 172 #ifdef STRCOLLBUG 173 extern void fix_strcoll_bug __P((void)); 174 #endif /* STRCOLLBUG */ 175 176 extern void osinit __P((void)); 177 178 #ifndef HAVE_MEMMOVE 179 extern ptr_t xmemmove __P((ptr_t, const ptr_t, size_t)); 180 # define memmove(a, b, c) xmemmove(a, b, c) 181 #endif /* !HAVE_MEMMOVE */ 182 183 #ifndef HAVE_MEMSET 184 extern ptr_t xmemset __P((ptr_t, int, size_t)); 185 # define memset(a, b, c) xmemset(a, b, c) 186 #endif /* !HAVE_MEMSET */ 187 188 189 #ifndef HAVE_GETCWD 190 extern char *xgetcwd __P((char *, size_t)); 191 # undef getcwd 192 # define getcwd(a, b) xgetcwd(a, b) 193 #endif /* !HAVE_GETCWD */ 194 195 #ifndef HAVE_GETHOSTNAME 196 extern int xgethostname __P((char *, int)); 197 # undef gethostname 198 # define gethostname(a, b) xgethostname(a, b) 199 #endif /* !HAVE_GETHOSTNAME */ 200 201 #ifndef HAVE_NICE 202 extern int xnice __P((int)); 203 # undef nice 204 # define nice(a) xnice(a) 205 #endif /* !HAVE_NICE */ 206 207 #ifndef HAVE_STRERROR 208 extern char *xstrerror __P((int)); 209 # undef strerror 210 # define strerror(a) xstrerror(a) 211 #endif /* !HAVE_STRERROR */ 212 213 #ifdef apollo 214 extern void doinlib __P((Char **, struct command *)); 215 extern void dover __P((Char **, struct command *)); 216 extern void dorootnode __P((Char **, struct command *)); 217 extern int getv __P((Char *)); 218 #endif /* apollo */ 219 220 221 /* 222 * tc.printf.h 223 */ 224 extern pret_t xprintf __P((const char *, ...)); 225 extern pret_t xsnprintf __P((char *, size_t, const char *, ...)); 226 extern pret_t xvprintf __P((const char *, va_list)); 227 extern pret_t xvsnprintf __P((char *, size_t, const char *, 228 va_list)); 229 230 /* 231 * tc.prompt.c 232 */ 233 extern void dateinit __P((void)); 234 extern void printprompt __P((int, const char *)); 235 extern Char *expdollar __P((Char **, const Char **, size_t *, 236 int)); 237 extern void tprintf __P((int, Char *, const Char *, size_t, 238 const char *, time_t, ptr_t)); 239 240 /* 241 * tc.sched.c 242 */ 243 extern time_t sched_next __P((void)); 244 extern void dosched __P((Char **, struct command *)); 245 extern void sched_run __P((int)); 246 247 /* 248 * tc.sig.c 249 */ 250 #ifndef BSDSIGS 251 # ifdef UNRELSIGS 252 # ifdef COHERENT 253 extern RETSIGTYPE (*xsignal __P((int, RETSIGTYPE (*)(int)))) (); 254 # define signal(x,y) xsignal(x,y) 255 # endif /* COHERENT */ 256 extern RETSIGTYPE (*xsigset __P((int, RETSIGTYPE (*)(int)))) (); 257 # define sigset(x,y) xsigset(x,y) 258 extern void xsigrelse __P((int)); 259 # define sigrelse(x) xsigrelse(x) 260 extern void xsighold __P((int)); 261 # define sighold(x) xsighold(x) 262 extern void xsigignore __P((int)); 263 # define sigignore(x) xsigignore(x) 264 extern void xsigpause __P((int)); 265 # define sigpause(x) xsigpause(x) 266 extern pid_t ourwait __P((int *)); 267 # endif /* UNRELSIGS */ 268 # ifdef SXA 269 extern void sigpause __P((int)); 270 # endif /* SXA */ 271 #endif /* !BSDSIGS */ 272 273 #ifdef NEEDsignal 274 extern RETSIGTYPE (*xsignal __P((int, RETSIGTYPE (*)(int)))) (); 275 # define signal(a, b) xsignal(a, b) 276 #endif /* NEEDsignal */ 277 #if defined(_SEQUENT_) || ((SYSVREL > 3 || defined(_DGUX_SOURCE)) && defined(POSIXSIGS)) || ((defined(_AIX) || defined(__CYGWIN__)) && defined(POSIXSIGS)) || defined(WINNT_NATIVE) 278 extern sigmask_t sigsetmask __P((sigmask_t)); 279 # if !defined(DGUX) || (defined(DGUX) && defined(__ix86)) 280 extern sigmask_t sigblock __P((sigmask_t)); 281 # endif /* !DGUX */ 282 extern void bsd_sigpause __P((sigmask_t)); 283 extern RETSIGTYPE (*bsd_signal __P((int, RETSIGTYPE (*)(int)))) __P((int)); 284 #endif /* _SEQUENT_ */ 285 #ifdef SIGSYNCH 286 extern RETSIGTYPE synch_handler __P((int)); 287 #endif /* SIGSYNCH */ 288 289 290 /* 291 * tc.str.c: 292 */ 293 #ifdef WIDE_STRINGS 294 extern size_t one_mbtowc __P((wchar_t *, const char *, size_t)); 295 extern size_t one_wctomb __P((char *, wchar_t)); 296 #else 297 #define one_mbtowc(PWC, S, N) \ 298 ((void)(N), *(PWC) = (unsigned char)*(S), (size_t)1) 299 #define one_wctomb(S, WCHAR) (*(S) = (WCHAR), (size_t)1) 300 #endif 301 #ifdef SHORT_STRINGS 302 extern int rt_mbtowc __P((wchar_t *, const char *, size_t)); 303 extern Char *s_strchr __P((const Char *, int)); 304 extern Char *s_strrchr __P((const Char *, int)); 305 extern Char *s_strcat __P((Char *, const Char *)); 306 # ifdef NOTUSED 307 extern Char *s_strncat __P((Char *, const Char *, size_t)); 308 # endif /* NOTUSED */ 309 extern Char *s_strcpy __P((Char *, const Char *)); 310 extern Char *s_strncpy __P((Char *, const Char *, size_t)); 311 extern Char *s_strspl __P((const Char *, const Char *)); 312 extern size_t s_strlen __P((const Char *)); 313 extern int s_strcmp __P((const Char *, const Char *)); 314 extern int s_strncmp __P((const Char *, const Char *, 315 size_t)); 316 extern int s_strcasecmp __P((const Char *, const Char *)); 317 extern Char *s_strsave __P((const Char *)); 318 extern Char *s_strend __P((const Char *)); 319 extern Char *s_strstr __P((const Char *, const Char *)); 320 extern Char *str2short __P((const char *)); 321 extern Char **blk2short __P((char **)); 322 extern char *short2str __P((const Char *)); 323 extern char **short2blk __P((Char **)); 324 #endif /* SHORT_STRINGS */ 325 extern char *short2qstr __P((const Char *)); 326 327 328 /* 329 * tc.vers.c: 330 */ 331 extern void fix_version __P((void)); 332 333 /* 334 * tc.who.c 335 */ 336 #if defined (HAVE_UTMP_H) || defined (HAVE_UTMPX_H) || defined (WINNT_NATIVE) 337 extern void initwatch __P((void)); 338 extern void resetwatch __P((void)); 339 extern void watch_login __P((int)); 340 extern const char *who_info __P((ptr_t, int, char *, size_t)); 341 extern void dolog __P((Char **, struct command *)); 342 # ifdef HAVE_STRUCT_UTMP_UT_HOST 343 extern char *utmphost __P((void)); 344 extern size_t utmphostsize __P((void)); 345 # endif /* HAVE_STRUCT_UTMP_UT_HOST */ 346 #else 347 # define HAVENOUTMP 348 #endif 349 350 #endif /* _h_tc_decls */ 351