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