aboutsummaryrefslogtreecommitdiff
path: root/unix/hlib/libc/libc.h
blob: 83c2f136c53567a0d2cf5f2bca0314bbc6ac462a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
/*
 * LIBC.H -- Definitions which should be included by all C source files which
 * use the IRAF runtime C library.
 */

#ifndef D_libc
#ifndef D_spp
#ifndef import_spp
#include "spp.h"
#endif
#endif

#define	XCHAR		short
#ifdef MACH64
#define	XINT		long
#define	XLONG		long
#else
#define	XINT		int
#define	XLONG		int
#endif
#define	SZ_DEFIOBUF	1024
#define	FIO_MAXFD	4096

#define	FIOCOM		fiocom_		/* [MACHDEP] */
#define	MEMCOM		mem_
#define	XERPSH		xerpsh_
#define	XERPOP		xerpop_
#define	XERPOPI		xerpoi_
#define	c_main		cmain_

/* Error handling.
 */
#define	iferr(stmt)	{XERPSH();stmt;}if(XERPOPI())

/* SPP/C pointer conversions.
 */
extern	char		MEMCOM[];
#define	Memc		(((XCHAR *)MEMCOM)-1)
#define	Memi		(((XINT *)MEMCOM)-1)
#define	Memcptr(addr)	((XCHAR *)(addr) - Memc)
#define	Memiptr(addr)	((XINT *)(addr) - Memi)

/* External names.
 */
#ifndef NOLIBCNAMES

#define	getenv		envget
#define	sys_nerr	u_sysnerr
#define	sys_errlist	u_syserrlist

#define	atof		u_atof
#define	atoi		u_atoi
#define	atol		u_atol
#define	calloc		u_calloc
#define	envget		u_envget
#define	eprintf		u_eprintf
#define	fclose		u_fclose
#define	fdopen		u_fdopen
#define	fflush		u_fflush
#define	fgetc		u_fgetc
#define	fgets		u_fgets
#define	fopen		u_fopen
#define	fprintf		u_fprintf
#define	fputc		u_fputc
#define	fputs		u_fputs
#define	fread		u_fread
#define	freadline	u_readline
#define	free		u_free
#define	freopen		u_freopen
#define	fscanf		u_fscanf
#define	fseek		u_fseek
#define	ftell		u_ftell
#define	fwrite		u_fwrite
#define	gets		u_gets
#define	getw		u_getw
#define	index		u_index
#define	isatty		u_isatty
#define	malloc		u_malloc
#define	mktemp		u_mktemp
#define	perror		u_perror
#define	printf		u_printf
#define	puts		u_puts
#define	putw		u_putw
#define	qsort		u_qsort
#define	realloc		u_realloc
#define	rewind		u_rewind
#define	rindex		u_rindex
#define	scanf		u_scanf
#define	setbuf		u_setbuf
#define	setbuffer	u_setfbf		/* collision	*/
#define	setlinebuf	u_setlinebuf
#define	sprintf		u_sprintf
#define	sscanf		u_sscanf
#define	strcat		u_strcat
#define	strchr		u_index
#define	strcmp		u_strcmp
#define	strdup		u_strdup
#define	strcpy		u_strcpy
#define	strlen		u_strlen
#define	strncat		u_strnt			/* collision	*/
#define	strncmp		u_strnp			/* collision	*/
#define	strncpy		u_strny			/* collision	*/
#define	strrchr		u_rindex
#define	system		u_system
#define	ungetc		u_ungetc

/* C_SPP names not unique in the first seven characters.
 */
#define	c_envgetb	c_envgb
#define	c_envgeti	c_envgi
#define	c_envgets	c_envgs
#define	c_ttyclear	c_ttycr
#define	c_ttyclearln	c_ttycn
#define	c_ttygetb	c_ttygb
#define	c_ttygeti	c_ttygi
#define	c_ttygetr	c_ttygr
#define	c_ttygets	c_ttygs
#define	c_ttyputline	c_ttype
#define	c_ttyputs	c_ttyps
#define c_ungetc	c_ungec
#define c_ungetstr	c_unges


/*
 * Prototype definitions for the IRAF runtime C library.
 */

/*extern long      XERPSH(), XERPOPI();*/	/* standard for iferr use */

extern struct _iobuf  *fdopen (XINT fd, char *mode);
extern struct _iobuf  *fopen (char *fname, char *modestr);
extern struct _iobuf  *freopen (char *fname, char *modestr, struct _iobuf *fp);
extern char    *c_cnvdate (long clktime, char *outstr, int maxch);
extern char    *c_cnvtime (long clktime, char *outstr, int maxch);
extern char    *c_getuid (char *outstr, int maxch);
extern char    *c_salloc (unsigned nbytes);
extern char    *c_strpak (short *sppstr, char *cstr, int maxch);
extern char    *calloc (unsigned int nelems, unsigned int elsize);
extern char    *envget (char *var);
extern char    *fgets (char *buf, int maxch, struct _iobuf *fp);
extern char    *gets (char *buf);
extern char    *index (char *str, int ch);
extern char    *malloc (unsigned nbytes);
extern char    *mktemp (char *template);
extern char    *freadline (char *prompt);
extern char    *realloc (char *buf, unsigned newsize);
extern char    *rindex (char *str, int ch);
extern char    *sprintf (char *str, char *format, ...);
extern char    *strcat (char *s1, char *s2);
extern char    *strdup (char *str);
extern char    *strcpy (char *s1, char *s2);
extern char    *strncat (char *s1, char *s2, int n);
extern char    *strncpy (char *s1, char *s2, int n);
extern int	strncmp (char *s1, char *s2, int n);

extern double   atof (char *str);
extern float    c_ttygr (XINT tty, char *cap);
extern int	atoi (char *str);
extern int	c_access (char *fname, int mode, int type);
extern int	c_allocate (char *device);
extern int	c_close (XINT fd);
extern int	c_deallocate (char *device, int rewind);
extern int	c_delete (char *fname);
extern int	c_devowner (char *device, char *owner, int maxch);
extern int	c_envfind (char *var, char *outstr, int maxch);
extern int	c_envfree (int envp, int userfcn);
extern int	c_envgb (char *var);
extern int	c_envgi (char *var);
extern int	c_envgs (char *var, char *outstr, int maxch);
extern int	c_envscan (char *input_source);
extern int	c_errcode (void);
extern int	c_errget (char *outstr, int maxch);
extern int	c_fchdir (char *newdir);
extern int	c_filbuf (struct _iobuf *fp);
extern int	c_flsbuf (unsigned int ch, struct _iobuf *fp);
extern int	c_fmapfn (char *vfn, char *osfn, int maxch);
extern int	c_fmkdir (char *newdir);
extern int	c_fnextn (char *vfn, char *extn, int maxch);
extern int	c_fnldir (char *vfn, char *ldir, int maxch);
extern int	c_fnroot (char *vfn, char *root, int maxch);
extern int	c_fpathname (char *vfn, char *osfn, int maxch);
extern int	c_fprintf (XINT fd, char *format);
extern int	c_fredir (XINT fd, char *fname, int mode, int type);
extern int	c_frediro (XINT fd, XINT newfd);
extern int	c_fstati (XINT fd, int param);
extern int	c_getpid (void);
extern int	c_imaccess (char *imname, int mode);
extern int	c_imdrcur (char *device, float *x, float *y, int *wcs, 
		     int *key, char *strval, int maxch, int d_wcs, int pause);
extern int	c_kimapchan (int chan, char *nodename, int maxch);
extern int	c_lexnum (char *str, int *toklen);
extern int	c_mktemp (char *root, char *temp_filename, int maxch);
extern int	c_ndopen (char *fname, int mode);
extern int	c_open (char *fname, int mode, int type);
extern int	c_oscmd (char *cmd, char *infile, char *outfile, char *errfile);
extern int	c_poll (XINT fds, int nfds, int timeout);
extern int	c_poll_get_nfds (XINT fds);
extern XINT	c_poll_open (void);
extern int	c_poll_test (XINT fds, XINT fd, int type);
extern int	c_prchdir (int pid, char *newdir);
extern int	c_prcldpr (unsigned job);
extern int	c_prclose (unsigned int pid);
extern int	c_prdone (unsigned job);
extern int	c_prenvfree (int pid, int envp);
extern int	c_prenvset (int pid, char *envvar, char *value);
extern int	c_printf (char *format);
extern int	c_prkill (unsigned job);
extern int	c_prredir (unsigned pid, int stream, int new_fd);
extern int	c_prsignal (unsigned pid, int signal);
extern int	c_prstati (int pid, int param);
extern int	c_rcursor (int fd, char *outstr, int maxch);
extern int	c_rdukey (char *obuf, int maxch);
extern int	c_read (XINT fd, char *buf, int maxbytes);
extern int	c_rename (char *old_fname, char *new_fname);
extern int	c_reopen (XINT fd, int mode);
extern int	c_seek (XINT fd, long offset);
extern int	c_stggetline (XINT fd, char *buf, int maxch);
extern int	c_stgputline (XINT fd, char *buf);
extern int	c_stropen (short *obuf, int maxch, int mode);
extern int	c_ttstati (XINT fd, int param);
extern int	c_ttstats (XINT fd, int param, char *outstr, int maxch);
extern int	c_ttyctrl (XINT fd, XINT tty, char *cap, int afflncnt);
extern int	c_ttygb (XINT tty, char *cap);
extern XINT	c_ttygi (XINT tty, char *cap);
extern int	c_ttygs (XINT tty, char *cap, char *outstr, int maxch);
extern XINT	c_ttyodes (char *ttyname);
extern int	c_ttyps (XINT fd, XINT tty, char *cap, int afflncnt);
extern XINT	c_ttystati (XINT tty, int param);
extern int	c_ungec (XINT fd, int ch);
extern int	c_ungetline (XINT fd, char *str);
extern int	c_write (XINT fd, char *buf, int nbytes);
extern int	fclose (struct _iobuf *fp);
extern int	fflush (struct _iobuf *fp);
extern int	fgetc (struct _iobuf *fp);
extern int	fputc (char ch, struct _iobuf *fp);
extern int	fread (char *bp, int szelem, int nelem, struct _iobuf *fp);
extern int	fscanf (struct _iobuf *fp, char *format, ...);
extern int	fseek (struct _iobuf *fp, long offset, int mode);
extern int	fwrite (char *bp, int szelem, int nelem, struct _iobuf *fp);
extern int	getw (struct _iobuf *fp);
extern int	isatty (XINT fd);
extern int	puts (char *str);
extern int	putw (int word, struct _iobuf *fp);
extern int	scanf (char *format, ...);
extern int	spf_open (char *buf, int maxch);
extern int	sscanf (char *str, char *format, ...);
extern int	strcmp (char *s1, char *s2);
extern int	strlen (char *s);
extern int	system (char *cmd);
extern int	ungetc (int ch, struct _iobuf *fp);
extern long	atol (char *str);
extern long	c_clktime (long reftime);
extern long	c_cputime (long reftime);
extern long	c_note (XINT fd);
extern long	ftell (struct _iobuf *fp);
extern long	rewind (struct _iobuf *fp);
extern short   *c_sppstr (char *str);
extern short   *c_strupk (char *str, short *outstr, int maxch);
extern unsigned int c_propdpr (char *process, char *bkgfile, char *bkgmsg);
extern unsigned int c_propen (char *process, int *in, int *out);
extern void	c_devstatus (char *device, int out);
extern void	c_envlist (XINT fd, char *prefix, int show_redefs);
extern void	c_envmark (XINT *envp);
extern void	c_envputs (char *var, char *value);
extern void	c_envreset (char *var, char *value);
extern void	c_erract (int action);
extern void	c_error (int errcode, char *errmsg);
extern void	c_flush (XINT fd);
extern void	c_fseti (XINT fd, int param, int value);
extern void	c_gflush (int stream);
extern void	c_pargb (int ival);
extern void	c_pargc (int ival);
extern void	c_pargd (double dval);
extern void	c_pargi (int ival);
extern void	c_pargl (long lval);
extern void	c_pargr (float rval);
extern void	c_pargs (short sval);
extern void	c_pargstr (char *strval);
extern void	c_poll_clear (XINT fds, XINT fd, int type);
extern void	c_poll_close (XINT fds);
extern void	c_poll_print (XINT fds);
extern void	c_poll_set (XINT fds, XINT fd, int type);
extern void	c_poll_zero (XINT fds);
extern void	c_sfree (int sp);
extern void	c_smark (int *sp);
extern void	c_sttyco (char *args, XINT ttin, XINT ttout, XINT outfd);
extern void	c_tsleep (int nseconds);
extern void	c_ttseti (XINT fd, int param, int value);
extern void	c_ttsets (XINT fd, int param, char *value);
extern void	c_ttycdes (XINT tty);
extern void	c_ttycn (XINT fd, XINT tty);
extern void	c_ttycr (XINT fd, XINT tty);
extern void	c_ttygoto (XINT fd, XINT tty, int col, int line);
extern void	c_ttyinit (XINT fd, XINT tty);
extern void	c_ttype (XINT fd, XINT tty, char *line, int map_cc);
extern void	c_ttyseti (XINT tty, int param, int value);
extern void	c_ttyso (XINT fd, XINT tty, int onoff);
extern void	c_vfnbrk (char *vfn, int *root, int *extn);
extern void	c_wmsec (int msec);
extern void	c_xgmes (int *oscode, char *oserrmsg, int maxch);
extern void	c_xonerr (int errcode);
extern void	c_xttysize (int *ncols, int *nlines);
extern void	eprintf (char *format, ...);
extern void	fprintf (struct _iobuf *fp, char *format, ...);
extern void	fputs (char *str, struct _iobuf *fp);
extern void	free (char *buf);
extern void	perror (char *prefix);
extern void	printf (char *format, ...);
extern void	qsort (char *base, int n, int size, int  (*compar) (void));
extern void	setbuf (struct _iobuf *fp, char *buf);
extern void	setfbf (struct _iobuf *fp, char *buf, int size);
extern void	setlinebuf (struct _iobuf *fp);
extern void	spf_close (XINT fd);

/*  The following have conflicts because of the order in which the
**  include files are done in iraf.h.  Commented out for now.
extern int	c_finfo (char *fname, struct _finfo *fi);
extern void	c_xwhen (int exception, PFI new_handler, PFI *old_handler);
*/

#endif

/*
*/
#include "/iraf/iraf/unix/bin/f2c.h"
#include "/iraf/iraf/unix/hlib/libc/vosproto.h"

#define	D_libc
#define	D_libc_proto
#endif