| 1 | /* externs.h -- extern function declarations which do not appear in their
|
|---|
| 2 | own header file. */
|
|---|
| 3 |
|
|---|
| 4 | /* Copyright (C) 1993-2005 Free Software Foundation, Inc.
|
|---|
| 5 |
|
|---|
| 6 | This file is part of GNU Bash, the Bourne Again SHell.
|
|---|
| 7 |
|
|---|
| 8 | Bash is free software; you can redistribute it and/or modify it under
|
|---|
| 9 | the terms of the GNU General Public License as published by the Free
|
|---|
| 10 | Software Foundation; either version 2, or (at your option) any later
|
|---|
| 11 | version.
|
|---|
| 12 |
|
|---|
| 13 | Bash is distributed in the hope that it will be useful, but WITHOUT ANY
|
|---|
| 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|---|
| 15 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|---|
| 16 | for more details.
|
|---|
| 17 |
|
|---|
| 18 | You should have received a copy of the GNU General Public License along
|
|---|
| 19 | with Bash; see the file COPYING. If not, write to the Free Software
|
|---|
| 20 | Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
|
|---|
| 21 |
|
|---|
| 22 | /* Make sure that this is included *after* config.h! */
|
|---|
| 23 |
|
|---|
| 24 | #if !defined (_EXTERNS_H_)
|
|---|
| 25 | # define _EXTERNS_H_
|
|---|
| 26 |
|
|---|
| 27 | #include "stdc.h"
|
|---|
| 28 |
|
|---|
| 29 | /* Functions from expr.c. */
|
|---|
| 30 | extern intmax_t evalexp __P((char *, int *));
|
|---|
| 31 |
|
|---|
| 32 | /* Functions from print_cmd.c. */
|
|---|
| 33 | extern char *make_command_string __P((COMMAND *));
|
|---|
| 34 | extern char *named_function_string __P((char *, COMMAND *, int));
|
|---|
| 35 |
|
|---|
| 36 | extern void print_command __P((COMMAND *));
|
|---|
| 37 | extern void print_simple_command __P((SIMPLE_COM *));
|
|---|
| 38 | extern void print_word_list __P((WORD_LIST *, char *));
|
|---|
| 39 |
|
|---|
| 40 | /* debugger support */
|
|---|
| 41 | extern void print_for_command_head __P((FOR_COM *));
|
|---|
| 42 | #if defined (SELECT_COMMAND)
|
|---|
| 43 | extern void print_select_command_head __P((SELECT_COM *));
|
|---|
| 44 | #endif
|
|---|
| 45 | extern void print_case_command_head __P((CASE_COM *));
|
|---|
| 46 | #if defined (DPAREN_ARITHMETIC)
|
|---|
| 47 | extern void print_arith_command __P((WORD_LIST *));
|
|---|
| 48 | #endif
|
|---|
| 49 | #if defined (COND_COMMAND)
|
|---|
| 50 | extern void print_cond_command __P((COND_COM *));
|
|---|
| 51 | #endif
|
|---|
| 52 |
|
|---|
| 53 | /* set -x support */
|
|---|
| 54 | extern char *indirection_level_string __P((void));
|
|---|
| 55 | extern void xtrace_print_assignment __P((char *, char *, int, int));
|
|---|
| 56 | extern void xtrace_print_word_list __P((WORD_LIST *, int));
|
|---|
| 57 | extern void xtrace_print_for_command_head __P((FOR_COM *));
|
|---|
| 58 | #if defined (SELECT_COMMAND)
|
|---|
| 59 | extern void xtrace_print_select_command_head __P((SELECT_COM *));
|
|---|
| 60 | #endif
|
|---|
| 61 | extern void xtrace_print_case_command_head __P((CASE_COM *));
|
|---|
| 62 | #if defined (DPAREN_ARITHMETIC)
|
|---|
| 63 | extern void xtrace_print_arith_cmd __P((WORD_LIST *));
|
|---|
| 64 | #endif
|
|---|
| 65 | #if defined (COND_COMMAND)
|
|---|
| 66 | extern void xtrace_print_cond_term __P((int, int, WORD_DESC *, char *, char *));
|
|---|
| 67 | #endif
|
|---|
| 68 |
|
|---|
| 69 | /* Functions from shell.c. */
|
|---|
| 70 | extern void exit_shell __P((int)) __attribute__((__noreturn__));
|
|---|
| 71 | extern void sh_exit __P((int)) __attribute__((__noreturn__));
|
|---|
| 72 | extern void disable_priv_mode __P((void));
|
|---|
| 73 | extern void unbind_args __P((void));
|
|---|
| 74 |
|
|---|
| 75 | #if defined (RESTRICTED_SHELL)
|
|---|
| 76 | extern int shell_is_restricted __P((char *));
|
|---|
| 77 | extern int maybe_make_restricted __P((char *));
|
|---|
| 78 | #endif
|
|---|
| 79 |
|
|---|
| 80 | extern void unset_bash_input __P((int));
|
|---|
| 81 | extern void get_current_user_info __P((void));
|
|---|
| 82 |
|
|---|
| 83 | /* Functions from eval.c. */
|
|---|
| 84 | extern int reader_loop __P((void));
|
|---|
| 85 | extern int parse_command __P((void));
|
|---|
| 86 | extern int read_command __P((void));
|
|---|
| 87 |
|
|---|
| 88 | /* Functions from braces.c. */
|
|---|
| 89 | #if defined (BRACE_EXPANSION)
|
|---|
| 90 | extern char **brace_expand __P((char *));
|
|---|
| 91 | #endif
|
|---|
| 92 |
|
|---|
| 93 | /* Miscellaneous functions from parse.y */
|
|---|
| 94 | extern int yyparse __P((void));
|
|---|
| 95 | extern int return_EOF __P((void));
|
|---|
| 96 | extern void reset_parser __P((void));
|
|---|
| 97 | extern WORD_LIST *parse_string_to_word_list __P((char *, int, const char *));
|
|---|
| 98 |
|
|---|
| 99 | extern void free_pushed_string_input __P((void));
|
|---|
| 100 |
|
|---|
| 101 | extern char *decode_prompt_string __P((char *));
|
|---|
| 102 |
|
|---|
| 103 | extern int get_current_prompt_level __P((void));
|
|---|
| 104 | extern void set_current_prompt_level __P((int));
|
|---|
| 105 |
|
|---|
| 106 | #if defined (HISTORY)
|
|---|
| 107 | extern char *history_delimiting_chars __P((void));
|
|---|
| 108 | #endif
|
|---|
| 109 |
|
|---|
| 110 | /* Declarations for functions defined in locale.c */
|
|---|
| 111 | extern void set_default_locale __P((void));
|
|---|
| 112 | extern void set_default_locale_vars __P((void));
|
|---|
| 113 | extern int set_locale_var __P((char *, char *));
|
|---|
| 114 | extern int set_lang __P((char *, char *));
|
|---|
| 115 | extern char *get_locale_var __P((char *));
|
|---|
| 116 | extern char *localetrans __P((char *, int, int *));
|
|---|
| 117 | extern char *mk_msgstr __P((char *, int *));
|
|---|
| 118 | extern char *localeexpand __P((char *, int, int, int, int *));
|
|---|
| 119 |
|
|---|
| 120 | /* Declarations for functions defined in list.c. */
|
|---|
| 121 | extern void list_walk __P((GENERIC_LIST *, sh_glist_func_t *));
|
|---|
| 122 | extern void wlist_walk __P((WORD_LIST *, sh_icpfunc_t *));
|
|---|
| 123 | extern GENERIC_LIST *list_reverse ();
|
|---|
| 124 | extern int list_length ();
|
|---|
| 125 | extern GENERIC_LIST *list_append ();
|
|---|
| 126 | extern GENERIC_LIST *list_remove ();
|
|---|
| 127 |
|
|---|
| 128 | /* Declarations for functions defined in stringlib.c */
|
|---|
| 129 | extern int find_string_in_alist __P((char *, STRING_INT_ALIST *, int));
|
|---|
| 130 | extern char *find_token_in_alist __P((int, STRING_INT_ALIST *, int));
|
|---|
| 131 | extern int find_index_in_alist __P((char *, STRING_INT_ALIST *, int));
|
|---|
| 132 |
|
|---|
| 133 | extern char *substring __P((char *, int, int));
|
|---|
| 134 | extern char *strsub __P((char *, char *, char *, int));
|
|---|
| 135 | extern char *strcreplace __P((char *, int, char *, int));
|
|---|
| 136 | extern void strip_leading __P((char *));
|
|---|
| 137 | extern void strip_trailing __P((char *, int, int));
|
|---|
| 138 | extern void xbcopy __P((char *, char *, int));
|
|---|
| 139 |
|
|---|
| 140 | /* Functions from version.c. */
|
|---|
| 141 | extern char *shell_version_string __P((void));
|
|---|
| 142 | extern void show_shell_version __P((int));
|
|---|
| 143 |
|
|---|
| 144 | /* Functions from the bash library, lib/sh/libsh.a. These should really
|
|---|
| 145 | go into a separate include file. */
|
|---|
| 146 |
|
|---|
| 147 | /* declarations for functions defined in lib/sh/clktck.c */
|
|---|
| 148 | extern long get_clk_tck __P((void));
|
|---|
| 149 |
|
|---|
| 150 | /* declarations for functions defined in lib/sh/clock.c */
|
|---|
| 151 | extern void clock_t_to_secs ();
|
|---|
| 152 | extern void print_clock_t ();
|
|---|
| 153 |
|
|---|
| 154 | /* Declarations for functions defined in lib/sh/fmtulong.c */
|
|---|
| 155 | #define FL_PREFIX 0x01 /* add 0x, 0X, or 0 prefix as appropriate */
|
|---|
| 156 | #define FL_ADDBASE 0x02 /* add base# prefix to converted value */
|
|---|
| 157 | #define FL_HEXUPPER 0x04 /* use uppercase when converting to hex */
|
|---|
| 158 | #define FL_UNSIGNED 0x08 /* don't add any sign */
|
|---|
| 159 |
|
|---|
| 160 | extern char *fmtulong __P((unsigned long int, int, char *, size_t, int));
|
|---|
| 161 |
|
|---|
| 162 | /* Declarations for functions defined in lib/sh/fmtulong.c */
|
|---|
| 163 | #if defined (HAVE_LONG_LONG)
|
|---|
| 164 | extern char *fmtullong __P((unsigned long long int, int, char *, size_t, int));
|
|---|
| 165 | #endif
|
|---|
| 166 |
|
|---|
| 167 | /* Declarations for functions defined in lib/sh/fmtumax.c */
|
|---|
| 168 | extern char *fmtumax __P((uintmax_t, int, char *, size_t, int));
|
|---|
| 169 |
|
|---|
| 170 | /* Declarations for functions defined in lib/sh/getcwd.c */
|
|---|
| 171 | #if !defined (HAVE_GETCWD)
|
|---|
| 172 | extern char *getcwd __P((char *, size_t));
|
|---|
| 173 | #endif
|
|---|
| 174 |
|
|---|
| 175 | /* Declarations for functions defined in lib/sh/itos.c */
|
|---|
| 176 | extern char *inttostr __P((intmax_t, char *, size_t));
|
|---|
| 177 | extern char *itos __P((intmax_t));
|
|---|
| 178 | extern char *uinttostr __P((uintmax_t, char *, size_t));
|
|---|
| 179 | extern char *uitos __P((uintmax_t));
|
|---|
| 180 |
|
|---|
| 181 | /* declarations for functions defined in lib/sh/makepath.c */
|
|---|
| 182 | #define MP_DOTILDE 0x01
|
|---|
| 183 | #define MP_DOCWD 0x02
|
|---|
| 184 | #define MP_RMDOT 0x04
|
|---|
| 185 |
|
|---|
| 186 | extern char *sh_makepath __P((const char *, const char *, int));
|
|---|
| 187 |
|
|---|
| 188 | /* declarations for functions defined in lib/sh/netconn.c */
|
|---|
| 189 | extern int isnetconn __P((int));
|
|---|
| 190 |
|
|---|
| 191 | /* declarations for functions defined in lib/sh/netopen.c */
|
|---|
| 192 | extern int netopen __P((char *));
|
|---|
| 193 |
|
|---|
| 194 | /* Declarations for functions defined in lib/sh/oslib.c */
|
|---|
| 195 |
|
|---|
| 196 | #if !defined (HAVE_DUP2) || defined (DUP2_BROKEN)
|
|---|
| 197 | extern int dup2 __P((int, int));
|
|---|
| 198 | #endif
|
|---|
| 199 |
|
|---|
| 200 | #if !defined (HAVE_GETDTABLESIZE)
|
|---|
| 201 | extern int getdtablesize __P((void));
|
|---|
| 202 | #endif /* !HAVE_GETDTABLESIZE */
|
|---|
| 203 |
|
|---|
| 204 | #if !defined (HAVE_GETHOSTNAME)
|
|---|
| 205 | extern int gethostname __P((char *, int));
|
|---|
| 206 | #endif /* !HAVE_GETHOSTNAME */
|
|---|
| 207 |
|
|---|
| 208 | extern int getmaxgroups __P((void));
|
|---|
| 209 | extern long getmaxchild __P((void));
|
|---|
| 210 |
|
|---|
| 211 | /* declarations for functions defined in lib/sh/pathcanon.c */
|
|---|
| 212 | #define PATH_CHECKDOTDOT 0x0001
|
|---|
| 213 | #define PATH_CHECKEXISTS 0x0002
|
|---|
| 214 | #define PATH_HARDPATH 0x0004
|
|---|
| 215 | #define PATH_NOALLOC 0x0008
|
|---|
| 216 |
|
|---|
| 217 | extern char *sh_canonpath __P((char *, int));
|
|---|
| 218 |
|
|---|
| 219 | /* declarations for functions defined in lib/sh/pathphys.c */
|
|---|
| 220 | extern char *sh_physpath __P((char *, int));
|
|---|
| 221 | extern char *sh_realpath __P((const char *, char *));
|
|---|
| 222 |
|
|---|
| 223 | /* declarations for functions defined in lib/sh/setlinebuf.c */
|
|---|
| 224 | #ifdef NEED_SH_SETLINEBUF_DECL
|
|---|
| 225 | extern int sh_setlinebuf __P((FILE *));
|
|---|
| 226 | #endif
|
|---|
| 227 |
|
|---|
| 228 | /* declarations for functions defined in lib/sh/shmatch.c */
|
|---|
| 229 | extern int sh_regmatch __P((const char *, const char *, int));
|
|---|
| 230 |
|
|---|
| 231 | /* defines for flags argument to sh_regmatch. */
|
|---|
| 232 | #define SHMAT_SUBEXP 0x001 /* save subexpressions in SH_REMATCH */
|
|---|
| 233 | #define SHMAT_PWARN 0x002 /* print a warning message on invalid regexp */
|
|---|
| 234 |
|
|---|
| 235 | /* declarations for functions defined in lib/sh/shquote.c */
|
|---|
| 236 | extern char *sh_single_quote __P((char *));
|
|---|
| 237 | extern char *sh_double_quote __P((char *));
|
|---|
| 238 | extern char *sh_mkdoublequoted __P((const char *, int, int));
|
|---|
| 239 | extern char *sh_un_double_quote __P((char *));
|
|---|
| 240 | extern char *sh_backslash_quote __P((char *));
|
|---|
| 241 | extern char *sh_backslash_quote_for_double_quotes __P((char *));
|
|---|
| 242 | extern int sh_contains_shell_metas __P((char *));
|
|---|
| 243 |
|
|---|
| 244 | /* declarations for functions defined in lib/sh/spell.c */
|
|---|
| 245 | extern int spname __P((char *, char *));
|
|---|
| 246 |
|
|---|
| 247 | /* declarations for functions defined in lib/sh/strcasecmp.c */
|
|---|
| 248 | #if !defined (HAVE_STRCASECMP)
|
|---|
| 249 | extern int strncasecmp __P((const char *, const char *, int));
|
|---|
| 250 | extern int strcasecmp __P((const char *, const char *));
|
|---|
| 251 | #endif /* HAVE_STRCASECMP */
|
|---|
| 252 |
|
|---|
| 253 | /* declarations for functions defined in lib/sh/strerror.c */
|
|---|
| 254 | #if !defined (strerror)
|
|---|
| 255 | extern char *strerror __P((int));
|
|---|
| 256 | #endif
|
|---|
| 257 |
|
|---|
| 258 | /* declarations for functions defined in lib/sh/strftime.c */
|
|---|
| 259 | #if !defined (HAVE_STRFTIME) && defined (NEED_STRFTIME_DECL)
|
|---|
| 260 | extern size_t strftime __P((char *, size_t, const char *, const struct tm *));
|
|---|
| 261 | #endif
|
|---|
| 262 |
|
|---|
| 263 | /* declarations for functions defined in lib/sh/strindex.c */
|
|---|
| 264 | extern char *strindex __P((const char *, const char *));
|
|---|
| 265 |
|
|---|
| 266 | /* declarations for functions and structures defined in lib/sh/stringlist.c */
|
|---|
| 267 |
|
|---|
| 268 | /* This is a general-purpose argv-style array struct. */
|
|---|
| 269 | typedef struct _list_of_strings {
|
|---|
| 270 | char **list;
|
|---|
| 271 | int list_size;
|
|---|
| 272 | int list_len;
|
|---|
| 273 | } STRINGLIST;
|
|---|
| 274 |
|
|---|
| 275 | typedef int sh_strlist_map_func_t __P((char *));
|
|---|
| 276 |
|
|---|
| 277 | extern STRINGLIST *strlist_create __P((int));
|
|---|
| 278 | extern STRINGLIST *strlist_resize __P((STRINGLIST *, int));
|
|---|
| 279 | extern void strlist_flush __P((STRINGLIST *));
|
|---|
| 280 | extern void strlist_dispose __P((STRINGLIST *));
|
|---|
| 281 | extern int strlist_remove __P((STRINGLIST *, char *));
|
|---|
| 282 | extern STRINGLIST *strlist_copy __P((STRINGLIST *));
|
|---|
| 283 | extern STRINGLIST *strlist_merge __P((STRINGLIST *, STRINGLIST *));
|
|---|
| 284 | extern STRINGLIST *strlist_append __P((STRINGLIST *, STRINGLIST *));
|
|---|
| 285 | extern STRINGLIST *strlist_prefix_suffix __P((STRINGLIST *, char *, char *));
|
|---|
| 286 | extern void strlist_print __P((STRINGLIST *, char *));
|
|---|
| 287 | extern void strlist_walk __P((STRINGLIST *, sh_strlist_map_func_t *));
|
|---|
| 288 | extern void strlist_sort __P((STRINGLIST *));
|
|---|
| 289 |
|
|---|
| 290 | /* declarations for functions defined in lib/sh/stringvec.c */
|
|---|
| 291 |
|
|---|
| 292 | extern char **strvec_create __P((int));
|
|---|
| 293 | extern char **strvec_resize __P((char **, int));
|
|---|
| 294 | extern void strvec_flush __P((char **));
|
|---|
| 295 | extern void strvec_dispose __P((char **));
|
|---|
| 296 | extern int strvec_remove __P((char **, char *));
|
|---|
| 297 | extern int strvec_len __P((char **));
|
|---|
| 298 | extern int strvec_search __P((char **, char *));
|
|---|
| 299 | extern char **strvec_copy __P((char **));
|
|---|
| 300 | extern int strvec_strcmp __P((char **, char **));
|
|---|
| 301 | extern void strvec_sort __P((char **));
|
|---|
| 302 |
|
|---|
| 303 | extern char **strvec_from_word_list __P((WORD_LIST *, int, int, int *));
|
|---|
| 304 | extern WORD_LIST *strvec_to_word_list __P((char **, int, int));
|
|---|
| 305 |
|
|---|
| 306 | /* declarations for functions defined in lib/sh/strnlen.c */
|
|---|
| 307 | #if !defined (HAVE_STRNLEN)
|
|---|
| 308 | extern size_t strnlen __P((const char *, size_t));
|
|---|
| 309 | #endif
|
|---|
| 310 |
|
|---|
| 311 | /* declarations for functions defined in lib/sh/strpbrk.c */
|
|---|
| 312 | #if !defined (HAVE_STRPBRK)
|
|---|
| 313 | extern char *strpbrk __P((const char *, const char *));
|
|---|
| 314 | #endif
|
|---|
| 315 |
|
|---|
| 316 | /* declarations for functions defined in lib/sh/strtod.c */
|
|---|
| 317 | #if !defined (HAVE_STRTOD)
|
|---|
| 318 | extern double strtod __P((const char *, char **));
|
|---|
| 319 | #endif
|
|---|
| 320 |
|
|---|
| 321 | /* declarations for functions defined in lib/sh/strtol.c */
|
|---|
| 322 | #if !HAVE_DECL_STRTOL
|
|---|
| 323 | extern long strtol __P((const char *, char **, int));
|
|---|
| 324 | #endif
|
|---|
| 325 |
|
|---|
| 326 | /* declarations for functions defined in lib/sh/strtoll.c */
|
|---|
| 327 | #if defined (HAVE_LONG_LONG) && !HAVE_DECL_STRTOLL
|
|---|
| 328 | extern long long strtoll __P((const char *, char **, int));
|
|---|
| 329 | #endif
|
|---|
| 330 |
|
|---|
| 331 | /* declarations for functions defined in lib/sh/strtoul.c */
|
|---|
| 332 | #if !HAVE_DECL_STRTOUL
|
|---|
| 333 | extern unsigned long strtoul __P((const char *, char **, int));
|
|---|
| 334 | #endif
|
|---|
| 335 |
|
|---|
| 336 | /* declarations for functions defined in lib/sh/strtoull.c */
|
|---|
| 337 | #if defined (HAVE_LONG_LONG) && !HAVE_DECL_STRTOULL
|
|---|
| 338 | extern unsigned long long strtoull __P((const char *, char **, int));
|
|---|
| 339 | #endif
|
|---|
| 340 |
|
|---|
| 341 | /* declarations for functions defined in lib/sh/strimax.c */
|
|---|
| 342 | #if !HAVE_DECL_STRTOIMAX
|
|---|
| 343 | extern intmax_t strtoimax __P((const char *, char **, int));
|
|---|
| 344 | #endif
|
|---|
| 345 |
|
|---|
| 346 | /* declarations for functions defined in lib/sh/strumax.c */
|
|---|
| 347 | #if !HAVE_DECL_STRTOUMAX
|
|---|
| 348 | extern uintmax_t strtoumax __P((const char *, char **, int));
|
|---|
| 349 | #endif
|
|---|
| 350 |
|
|---|
| 351 | /* declarations for functions defined in lib/sh/strtrans.c */
|
|---|
| 352 | extern char *ansicstr __P((char *, int, int, int *, int *));
|
|---|
| 353 | extern char *ansic_quote __P((char *, int, int *));
|
|---|
| 354 | extern int ansic_shouldquote __P((const char *));
|
|---|
| 355 | extern char *ansiexpand __P((char *, int, int, int *));
|
|---|
| 356 |
|
|---|
| 357 | /* declarations for functions defined in lib/sh/timeval.c. No prototypes
|
|---|
| 358 | so we don't have to count on having a definition of struct timeval in
|
|---|
| 359 | scope when this file is included. */
|
|---|
| 360 | extern void timeval_to_secs ();
|
|---|
| 361 | extern void print_timeval ();
|
|---|
| 362 |
|
|---|
| 363 | /* declarations for functions defined in lib/sh/tmpfile.c */
|
|---|
| 364 | #define MT_USETMPDIR 0x0001
|
|---|
| 365 | #define MT_READWRITE 0x0002
|
|---|
| 366 | #define MT_USERANDOM 0x0004
|
|---|
| 367 |
|
|---|
| 368 | extern char *sh_mktmpname __P((char *, int));
|
|---|
| 369 | extern int sh_mktmpfd __P((char *, int, char **));
|
|---|
| 370 | /* extern FILE *sh_mktmpfp __P((char *, int, char **)); */
|
|---|
| 371 |
|
|---|
| 372 | /* declarations for functions defined in lib/sh/winsize.c */
|
|---|
| 373 | extern void get_new_window_size __P((int, int *, int *));
|
|---|
| 374 |
|
|---|
| 375 | /* declarations for functions defined in lib/sh/xstrchr.c */
|
|---|
| 376 | #undef xstrchr
|
|---|
| 377 | extern char *xstrchr __P((const char *, int));
|
|---|
| 378 |
|
|---|
| 379 | /* declarations for functions defined in lib/sh/zcatfd.c */
|
|---|
| 380 | extern int zcatfd __P((int, int, char *));
|
|---|
| 381 |
|
|---|
| 382 | /* declarations for functions defined in lib/sh/zread.c */
|
|---|
| 383 | extern ssize_t zread __P((int, char *, size_t));
|
|---|
| 384 | extern ssize_t zreadintr __P((int, char *, size_t));
|
|---|
| 385 | extern ssize_t zreadc __P((int, char *));
|
|---|
| 386 | extern void zreset __P((void));
|
|---|
| 387 | extern void zsyncfd __P((int));
|
|---|
| 388 |
|
|---|
| 389 | /* declarations for functions defined in lib/sh/zwrite.c */
|
|---|
| 390 | extern int zwrite __P((int, char *, size_t));
|
|---|
| 391 |
|
|---|
| 392 | #endif /* _EXTERNS_H_ */
|
|---|