xref: /onnv-gate/usr/src/lib/libast/common/features/stdio (revision 8462:6e341f5569ba)
14887Schinset	prototyped
24887Schinref	-D_def_map_ast=1
34887Schiniff	SFSTDIO
44887Schincat{
54887Schin	#define __FILE_typedef	1
64887Schin	#define _FILE_DEFINED	1
74887Schin	#define _FILE_defined	1
84887Schin	#define _FILEDEFED	1
94887Schin
104887Schin	#ifndef __FILE_TAG
114887Schin	#define __FILE_TAG	_sfio_s
124887Schin	#endif
134887Schin
144887Schin	#undef	FILE
154887Schin	#undef	_FILE
164887Schin	#undef	fpos_t
174887Schin	#undef	fpos64_t
184887Schin
194887Schin	typedef struct _sfio_s _sfio_FILE;
204887Schin
214887Schin	#define FILE		_sfio_FILE
224887Schin	#define _FILE		FILE
234887Schin
244887Schin	#if !defined(__FILE) && !__CYGWIN__
254887Schin	#undef	__FILE
264887Schin	#define __FILE		FILE
274887Schin	#endif
284887Schin
294887Schin	#if defined(_AST_H) || defined(_SFIO_H)
304887Schin
314887Schin	#define BUFSIZ		SF_BUFSIZE
324887Schin
334887Schin	#else
344887Schin
354887Schin	#ifndef BUFSIZ
364887Schin	#define BUFSIZ		8192
374887Schin	#endif
384887Schin
394887Schin	#ifndef EOF
404887Schin	#define EOF		(-1)
414887Schin	#endif
424887Schin
434887Schin	#ifndef NULL
444887Schin	#define NULL		0
454887Schin	#endif
464887Schin
474887Schin	#ifndef SEEK_SET
484887Schin	#define SEEK_SET	0
494887Schin	#define SEEK_CUR	1
504887Schin	#define SEEK_END	2
514887Schin	#endif
524887Schin
534887Schin	#include <ast_std.h>
544887Schin
554887Schin	#include <sfio_s.h>
564887Schin
574887Schin	#if __cplusplus
584887Schin	#define _sf_(f)		(f)
594887Schin	#else
604887Schin	#define _sf_(f)		((struct _sfio_s*)(f))
614887Schin	#endif
624887Schin
634887Schin	#define _SF_EOF		0000200
644887Schin	#define _SF_ERROR	0000400
654887Schin
664887Schin	#endif
674887Schin
684887Schin	#ifdef _NO_LARGEFILE64_SOURCE
694887Schin	#undef _LARGEFILE64_SOURCE
704887Schin	#endif
714887Schin
724887Schin	#ifdef _LARGEFILE64_SOURCE
734887Schin	#undef	off_t
744887Schin	#endif
754887Schin
764887Schin	#define fpos_t		_ast_fpos_t
774887Schin	#if _typ_int64_t
784887Schin	#define fpos64_t	_ast_fpos_t
794887Schin	#endif
804887Schin
814887Schin	typedef struct _ast_fpos_s
824887Schin	{
834887Schin		intmax_t	_sf_offset;
844887Schin		unsigned char	_sf_state[64 - sizeof(intmax_t)];
854887Schin	} _ast_fpos_t;
864887Schin
874887Schin	#define _base		_data
884887Schin	#define _ptr		_next
894887Schin	#define _IOFBF		0
904887Schin	#define _IONBF		1
914887Schin	#define _IOLBF		2
924887Schin
934887Schin	#if defined(__cplusplus) && defined(__THROW) && !defined(_UWIN)
944887Schin
954887Schin	#undef	FILE
964887Schin	#define FILE            FILE
974887Schin	typedef struct _sfio_s FILE;
984887Schin
994887Schin	#undef	strerror
1004887Schin	extern char*	strerror(int) __THROW;
1014887Schin
1024887Schin	extern int	_doprnt(const char*, va_list, FILE*);
1034887Schin	extern int	_doscan(FILE*, const char*, va_list);
1044887Schin	extern int	asprintf(char**, const char*, ...);
1054887Schin	extern int	clearerr(FILE*);
1064887Schin	extern int	fclose(FILE*);
1074887Schin	extern FILE*	fdopen(int, const char*);
1084887Schin	extern int	feof(FILE*);
1094887Schin	extern int	ferror(FILE*);
1104887Schin	extern int	fflush(FILE*);
1114887Schin	extern int	fgetc(FILE*);
1124887Schin	extern int	fgetpos(FILE*, fpos_t*);
1134887Schin	extern char*	fgets(char*, int, FILE*);
1144887Schin	extern int	fileno(FILE*);
1154887Schin	extern FILE*	fopen(const char*, const char*);
1164887Schin	extern int	fprintf(FILE*, const char*, ...);
1174887Schin	extern int	fpurge(FILE*);
1184887Schin	extern int	fputc(int, FILE*);
1194887Schin	extern int	fputs(const char*, FILE*);
120*8462SApril.Chin@Sun.COM	extern size_t	fread(void*, size_t, size_t, FILE*);
1214887Schin	extern FILE*	freopen(const char*, const char*, FILE*);
1224887Schin	extern int	fscanf(FILE*, const char*, ...);
1234887Schin	extern int	fseek(FILE*, long, int);
1244887Schin	extern int	fseeko(FILE*, off_t, int);
1254887Schin	extern int	fsetpos(FILE*, const fpos_t*);
1264887Schin	extern long	ftell(FILE*);
1274887Schin	extern off_t	ftello(FILE*);
128*8462SApril.Chin@Sun.COM	extern size_t	fwrite(const void*, size_t, size_t, FILE*);
1294887Schin	extern int	getc(FILE*);
1304887Schin	extern int	getchar(void);
1314887Schin	extern char*	gets(char*);
1324887Schin	extern int	getw(FILE*);
1334887Schin	extern int	pclose(FILE*);
1344887Schin	extern FILE*	popen(const char*, const char*);
1354887Schin	extern int	printf(const char*, ...);
1364887Schin	extern int	putc(int, FILE*);
1374887Schin	extern int	putchar(int);
1384887Schin	extern int	puts(const char*);
1394887Schin	extern int	putw(int, FILE*);
1404887Schin	extern void	rewind(FILE*);
1414887Schin	extern int	scanf(const char*, ...);
1424887Schin	extern void	setbuf(FILE*, char*);
1434887Schin	extern int	setbuffer(FILE*, char*, int);
1444887Schin	extern int	setlinebuf(FILE*);
1454887Schin	extern int	setvbuf(FILE*, char*, int, size_t);
1464887Schin	extern int	snprintf(char*, int, const char*, ...);
1474887Schin	extern int	sprintf(char*, const char*, ...);
1484887Schin	extern int	sscanf(const char*, const char*, ...);
1494887Schin	extern FILE*	tmpfile(void);
1504887Schin	extern int	ungetc(int, FILE*);
1514887Schin	extern int	vasprintf(char**, const char*, va_list);
1524887Schin	extern int	vfprintf(FILE*, const char*, va_list);
1534887Schin	extern int	vfscanf(FILE*, const char*, va_list);
1544887Schin	extern int	vprintf(const char*, va_list);
1554887Schin	extern int	vscanf(const char*, va_list);
1564887Schin	extern int	vsnprintf(char*, int, const char*, va_list);
1574887Schin	extern int	vsprintf(char*, const char*, va_list);
1584887Schin	extern int	vsscanf(const char*, const char*, va_list);
1594887Schin
1604887Schin	#if _typ_int64_t
1614887Schin
1624887Schin	extern int		fgetpos64(FILE*, fpos64_t*);
1634887Schin	extern int		fsetpos64(FILE*, const fpos64_t*);
1644887Schin	extern int		fseek64(FILE*, int64_t, int);
1654887Schin	extern int		fseeko64(FILE*, int64_t, int);
1664887Schin	extern int64_t		ftell64(FILE*);
1674887Schin	extern int64_t		ftello64(FILE*);
1684887Schin
1694887Schin	#endif
1704887Schin
1714887Schin	extern void	clearerr_unlocked(FILE*);
1724887Schin	extern int	feof_unlocked(FILE*);
1734887Schin	extern int	ferror_unlocked(FILE*);
1744887Schin	extern int	fflush_unlocked(FILE*);
1754887Schin	extern int	fgetc_unlocked(FILE*);
1764887Schin	extern char*	fgets_unlocked(char*, int, FILE*);
1774887Schin	extern int	fileno_unlocked(FILE*);
1784887Schin	extern int	fputc_unlocked(int, FILE*);
1794887Schin	extern int	fputs_unlocked(char*, FILE*);
1804887Schin	extern size_t	fread_unlocked(void*, size_t, size_t, FILE*);
1814887Schin	extern size_t	fwrite_unlocked(void*, size_t, size_t, FILE*);
1824887Schin	extern int	getc_unlocked(FILE*);
1834887Schin	extern int	getchar_unlocked(void);
1844887Schin	extern int	putc_unlocked(int, FILE*);
1854887Schin	extern int	putchar_unlocked(int);
1864887Schin
187*8462SApril.Chin@Sun.COM	extern void	flockfile(FILE*);
188*8462SApril.Chin@Sun.COM	extern int	ftrylockfile(FILE*);
189*8462SApril.Chin@Sun.COM	extern void	funlockfile(FILE*);
190*8462SApril.Chin@Sun.COM
1914887Schin	#ifdef _USE_GNU
1924887Schin
1934887Schin	extern int	fcloseall(void);
1944887Schin	extern FILE*	fmemopen(void*, size_t, const char*);
1954887Schin	extern ssize_t	__getdelim(char**, size_t*, int, FILE*);
1964887Schin	extern ssize_t	getdelim(char**, size_t*, int, FILE*);
1974887Schin	extern ssize_t	getline(char**, size_t*, FILE*);
1984887Schin
1994887Schin	#endif
2004887Schin
2014887Schin	#endif
2024887Schin}end
2034887Schinoutput{
2044887Schin	#include <stdio.h>
2054887Schin	#ifndef FILENAME_MAX
2064887Schin	#ifndef NAME_MAX
2074887Schin	#ifndef _POSIX_NAME_MAX
2084887Schin	#define _POSIX_NAME_MAX	14
2094887Schin	#endif
2104887Schin	#define NAME_MAX	_POSIX_NAME_MAX
2114887Schin	#endif
2124887Schin	#define FILENAME_MAX	NAME_MAX
2134887Schin	#endif
2144887Schin	#ifndef FOPEN_MAX
2154887Schin	#ifdef STREAM_MAX
2164887Schin	#define FOPEN_MAX	STREAM_MAX
2174887Schin	#else
2184887Schin	#ifndef OPEN_MAX
2194887Schin	#ifndef _POSIX_OPEN_MAX
2204887Schin	#define _POSIX_OPEN_MAX	20
2214887Schin	#endif
2224887Schin	#define OPEN_MAX	_POSIX_OPEN_MAX
2234887Schin	#endif
2244887Schin	#define FOPEN_MAX	OPEN_MAX
2254887Schin	#endif
2264887Schin	#endif
2274887Schin	#ifndef TMP_MAX
2284887Schin	#define TMP_MAX		33520641
2294887Schin	#endif
2304887Schin	int
2314887Schin	main()
2324887Schin	{
2334887Schin		printf("#ifndef FILENAME_MAX\n");
2344887Schin		printf("#define FILENAME_MAX	%d\n", FILENAME_MAX);
2354887Schin		printf("#endif\n");
2364887Schin		printf("#ifndef FOPEN_MAX\n");
2374887Schin		printf("#define FOPEN_MAX	%d\n", FOPEN_MAX);
2384887Schin		printf("#endif\n");
2394887Schin		printf("#ifndef TMP_MAX\n");
2404887Schin		printf("#define TMP_MAX		%d\n", TMP_MAX);
2414887Schin		printf("#endif\n");
2424887Schin	#if !_UWIN
2434887Schin		printf("\n");
2444887Schin		printf("#define _doprnt		_ast_doprnt\n");
2454887Schin		printf("#define _doscan		_ast_doscan\n");
2464887Schin		printf("#define asprintf	_ast_asprintf\n");
2474887Schin		printf("#define clearerr	_ast_clearerr\n");
2484887Schin		printf("#define fclose		_ast_fclose\n");
2494887Schin		printf("#define fdopen		_ast_fdopen\n");
2504887Schin		printf("#define fflush		_ast_fflush\n");
2514887Schin		printf("#define fgetc		_ast_fgetc\n");
2524887Schin		printf("#define fgetpos		_ast_fgetpos\n");
2534887Schin		printf("#define fgetpos64	_ast_fgetpos64\n");
2544887Schin		printf("#define fgets		_ast_fgets\n");
2554887Schin		printf("#define fopen		_ast_fopen\n");
2564887Schin		printf("#define fprintf		_ast_fprintf\n");
2574887Schin		printf("#define fpurge		_ast_fpurge\n");
2584887Schin		printf("#define fputs		_ast_fputs\n");
2594887Schin		printf("#define fread		_ast_fread\n");
2604887Schin		printf("#define freopen		_ast_freopen\n");
2614887Schin		printf("#define fscanf		_ast_fscanf\n");
2624887Schin		printf("#define fseek		_ast_fseek\n");
2634887Schin		printf("#define fseek64		_ast_fseek64\n");
2644887Schin		printf("#define fseeko		_ast_fseeko\n");
2654887Schin		printf("#define fseeko64	_ast_fseeko64\n");
2664887Schin		printf("#define fsetpos		_ast_fsetpos\n");
2674887Schin		printf("#define fsetpos64	_ast_fsetpos64\n");
2684887Schin		printf("#define ftell		_ast_ftell\n");
2694887Schin		printf("#define ftell64		_ast_ftell64\n");
2704887Schin		printf("#define ftello		_ast_ftello\n");
2714887Schin		printf("#define ftello64	_ast_ftello64\n");
2724887Schin		printf("#define fwrite		_ast_fwrite\n");
2734887Schin		printf("#define gets		_ast_gets\n");
2744887Schin		printf("#define getw		_ast_getw\n");
2754887Schin		printf("#define pclose		_ast_pclose\n");
2764887Schin		printf("#define popen		_ast_popen\n");
2774887Schin		printf("#define printf		_ast_printf\n");
2784887Schin		printf("#define puts		_ast_puts\n");
2794887Schin		printf("#define putw		_ast_putw\n");
2804887Schin		printf("#define rewind		_ast_rewind\n");
2814887Schin		printf("#define scanf		_ast_scanf\n");
2824887Schin		printf("#define setbuf		_ast_setbuf\n");
2834887Schin		printf("#undef	setbuffer\n");
2844887Schin		printf("#define setbuffer	_ast_setbuffer\n");
2854887Schin		printf("#define setlinebuf	_ast_setlinebuf\n");
2864887Schin		printf("#define setvbuf		_ast_setvbuf\n");
2874887Schin		printf("#define snprintf	_ast_snprintf\n");
2884887Schin		printf("#define sprintf		_ast_sprintf\n");
2894887Schin		printf("#define sscanf		_ast_sscanf\n");
2904887Schin		printf("#define tmpfile		_ast_tmpfile\n");
2914887Schin		printf("#define ungetc		_ast_ungetc\n");
2924887Schin		printf("#define vasprintf	_ast_vasprintf\n");
2934887Schin		printf("#define vfprintf	_ast_vfprintf\n");
2944887Schin		printf("#define vfscanf		_ast_vfscanf\n");
2954887Schin		printf("#define vprintf		_ast_vprintf\n");
2964887Schin		printf("#define vscanf		_ast_vscanf\n");
2974887Schin		printf("#define vsnprintf	_ast_vsnprintf\n");
2984887Schin		printf("#define vsprintf	_ast_vsprintf\n");
2994887Schin		printf("#define vsscanf		_ast_vsscanf\n");
3004887Schin
3014887Schin		printf("#define fcloseall	_ast_fcloseall\n");
302*8462SApril.Chin@Sun.COM		printf("#define _filbuf		_ast__filbuf\n");
3034887Schin		printf("#define fmemopen	_ast_fmemopen\n");
3044887Schin		printf("#define __getdelim	_ast___getdelim\n");
3054887Schin		printf("#define getdelim	_ast_getdelim\n");
3064887Schin		printf("#define getline		_ast_getline\n");
3074887Schin
3084887Schin		printf("#define clearerr_unlocked _ast_clearerr_unlocked\n");
3094887Schin		printf("#define feof_unlocked	_ast_feof_unlocked\n");
3104887Schin		printf("#define ferror_unlocked	_ast_ferror_unlocked\n");
3114887Schin		printf("#define fflush_unlocked	_ast_fflush_unlocked\n");
3124887Schin		printf("#define fgetc_unlocked	_ast_fgetc_unlocked\n");
3134887Schin		printf("#define fgets_unlocked	_ast_fgets_unlocked\n");
3144887Schin		printf("#define fileno_unlocked	_ast_fileno_unlocked\n");
3154887Schin		printf("#define fputc_unlocked	_ast_fputc_unlocked\n");
3164887Schin		printf("#define fputs_unlocked	_ast_fputs_unlocked\n");
3174887Schin		printf("#define fread_unlocked	_ast_fread_unlocked\n");
3184887Schin		printf("#define fwrite_unlocked	_ast_fwrite_unlocked\n");
3194887Schin		printf("#define getc_unlocked	_ast_getc_unlocked\n");
3204887Schin		printf("#define getchar_unlocked _ast_getchar_unlocked\n");
3214887Schin		printf("#define putc_unlocked	_ast_putc_unlocked\n");
3224887Schin		printf("#define putchar_unlocked _ast_putchar_unlocked\n");
3234887Schin
324*8462SApril.Chin@Sun.COM		printf("#define flockfile	_ast_flockfile\n");
325*8462SApril.Chin@Sun.COM		printf("#define ftrylockfile	_ast_ftrylockfile\n");
326*8462SApril.Chin@Sun.COM		printf("#define funlockfile	_ast_funlockfile\n");
327*8462SApril.Chin@Sun.COM
3284887Schin		printf("\n");
3294887Schin	#endif
3304887Schin		return 0;
3314887Schin	}
3324887Schin}end
3334887Schinmacro{
3344887Schin	<<"#if defined(__STDPP__directive) && defined(__STDPP__initial)">>
3354887Schin	<<"__STDPP__directive pragma pp:initial">>
3364887Schin	<<"#endif">>
3374887Schin	<<"#ifndef P_tmpdir">>
3384887Schin	#ifndef P_tmpdir
3394887Schin	#define P_tmpdir "/usr/tmp/"
3404887Schin	#endif
3414887Schin	<<"#define P_tmpdir">> P_tmpdir <<"/*NOCATLITERAL*/">>
3424887Schin	<<"#endif">>
3434887Schin	<<"#ifndef L_ctermid">>
3444887Schin	#ifndef L_ctermid
3454887Schin	#define L_ctermid 9
3464887Schin	#endif
3474887Schin	<<"#define L_ctermid">> L_ctermid
3484887Schin	<<"#endif">>
3494887Schin	<<"#ifndef L_tmpnam">>
3504887Schin	#ifndef L_tmpnam
3514887Schin	#define L_tmpnam (sizeof(P_tmpdir)+15)
3524887Schin	#endif
3534887Schin	<<"#define L_tmpnam">> L_tmpnam
3544887Schin	<<"#endif">>
3554887Schin	<<"#if defined(__STDPP__directive) && defined(__STDPP__initial)">>
3564887Schin	<<"__STDPP__directive pragma pp:noinitial">>
3574887Schin	<<"#endif">>
3584887Schin}end
3594887Schincat{
3604887Schin	#if defined(__cplusplus) && defined(__THROW)
3614887Schin	extern char*	ctermid(char*) __THROW;
3624887Schin	#else
3634887Schin	extern char*	ctermid(char*);
3644887Schin	#endif
3654887Schin	extern char*	tmpnam(char*);
3664887Schin	extern char*	tempnam(const char*, const char*);
3674887Schin	extern void	perror(const char*);
3684887Schin	#ifndef _AST_STD_H
3694887Schin	#ifndef remove
3704887Schin	extern int	remove(const char*);
3714887Schin	#endif
3724887Schin	#ifndef rename
3734887Schin	extern int	rename(const char*, const char*);
3744887Schin	#endif
3754887Schin	#endif
3764887Schin
3774887Schin	#undef	extern
3784887Schin
3794887Schin	#if _BLD_ast && defined(__EXPORT__)
3804887Schin	#define extern		__EXPORT__
3814887Schin	#endif
3824887Schin
3834887Schin	extern int	_doprnt(const char*, va_list, FILE*);
3844887Schin	extern int	_doscan(FILE*, const char*, va_list);
3854887Schin	extern int	asprintf(char**, const char*, ...);
3864887Schin	extern int	clearerr(FILE*);
3874887Schin	extern int	fclose(FILE*);
3884887Schin	extern FILE*	fdopen(int, const char*);
3894887Schin	extern int	feof(FILE*);
3904887Schin	extern int	ferror(FILE*);
3914887Schin	extern int	fflush(FILE*);
3924887Schin	extern int	fgetc(FILE*);
3934887Schin	extern int	fgetpos(FILE*, fpos_t*);
3944887Schin	extern char*	fgets(char*, int, FILE*);
3954887Schin	extern int	fileno(FILE*);
3964887Schin	extern FILE*	fopen(const char*, const char*);
3974887Schin	extern int	fprintf(FILE*, const char*, ...);
3984887Schin	extern int	fpurge(FILE*);
3994887Schin	extern int	fputc(int, FILE*);
4004887Schin	extern int	fputs(const char*, FILE*);
401*8462SApril.Chin@Sun.COM	extern size_t	fread(void*, size_t, size_t, FILE*);
4024887Schin	extern FILE*	freopen(const char*, const char*, FILE*);
4034887Schin	extern int	fscanf(FILE*, const char*, ...);
4044887Schin	extern int	fseek(FILE*, long, int);
4054887Schin	extern int	fseeko(FILE*, off_t, int);
4064887Schin	extern int	fsetpos(FILE*, const fpos_t*);
4074887Schin	extern long	ftell(FILE*);
4084887Schin	extern off_t	ftello(FILE*);
409*8462SApril.Chin@Sun.COM	extern size_t	fwrite(const void*, size_t, size_t, FILE*);
4104887Schin	extern int	getc(FILE*);
4114887Schin	extern int	getchar(void);
4124887Schin	extern char*	gets(char*);
4134887Schin	extern int	getw(FILE*);
4144887Schin	extern int	pclose(FILE*);
4154887Schin	extern FILE*	popen(const char*, const char*);
4164887Schin	extern int	printf(const char*, ...);
4174887Schin	extern int	putc(int, FILE*);
4184887Schin	extern int	putchar(int);
4194887Schin	extern int	puts(const char*);
4204887Schin	extern int	putw(int, FILE*);
4214887Schin	extern void	rewind(FILE*);
4224887Schin	extern int	scanf(const char*, ...);
4234887Schin	extern void	setbuf(FILE*, char*);
4244887Schin	extern int	setbuffer(FILE*, char*, int);
4254887Schin	extern int	setlinebuf(FILE*);
4264887Schin	extern int	setvbuf(FILE*, char*, int, size_t);
4274887Schin	extern int	snprintf(char*, int, const char*, ...);
4284887Schin	extern int	sprintf(char*, const char*, ...);
4294887Schin	extern int	sscanf(const char*, const char*, ...);
4304887Schin	extern FILE*	tmpfile(void);
4314887Schin	extern int	ungetc(int, FILE*);
4324887Schin	extern int	vasprintf(char**, const char*, va_list);
4334887Schin	extern int	vfprintf(FILE*, const char*, va_list);
4344887Schin	extern int	vfscanf(FILE*, const char*, va_list);
4354887Schin	extern int	vprintf(const char*, va_list);
4364887Schin	extern int	vscanf(const char*, va_list);
4374887Schin	extern int	vsnprintf(char*, int, const char*, va_list);
4384887Schin	extern int	vsprintf(char*, const char*, va_list);
4394887Schin	extern int	vsscanf(const char*, const char*, va_list);
4404887Schin
4414887Schin	#if _typ_int64_t
4424887Schin
4434887Schin	extern int		fgetpos64(FILE*, fpos64_t*);
4444887Schin	extern int		fsetpos64(FILE*, const fpos64_t*);
4454887Schin	extern int		fseek64(FILE*, int64_t, int);
4464887Schin	extern int		fseeko64(FILE*, int64_t, int);
4474887Schin	extern int64_t		ftell64(FILE*);
4484887Schin	extern int64_t		ftello64(FILE*);
4494887Schin
4504887Schin	#ifdef _LARGEFILE64_SOURCE
4514887Schin
4524887Schin	#undef	fpos_t
4534887Schin	#undef	off_t
4544887Schin	#undef	fgetpos
4554887Schin	#undef	fsetpos
4564887Schin	#undef	fseek
4574887Schin	#undef	fseeko
4584887Schin	#undef	ftell
4594887Schin	#undef	ftello
4604887Schin
4614887Schin	#define	fpos_t		fpos64_t
4624887Schin	#if _typ_off64_t
4634887Schin	#define	off_t		off64_t
4644887Schin	#else
4654887Schin	#define	off_t		int64_t
4664887Schin	#endif
4674887Schin
4684887Schin	#define fgetpos		fgetpos64
4694887Schin	#define fsetpos		fsetpos64
4704887Schin	#define	fseek		fseek64
4714887Schin	#define	fseeko		fseeko64
4724887Schin	#define ftell		ftell64
4734887Schin	#define ftello		ftello64
4744887Schin
4754887Schin	#endif
4764887Schin
4774887Schin	#endif
4784887Schin
4794887Schin	extern void	clearerr_unlocked(FILE*);
4804887Schin	extern int	feof_unlocked(FILE*);
4814887Schin	extern int	ferror_unlocked(FILE*);
4824887Schin	extern int	fflush_unlocked(FILE*);
4834887Schin	extern int	fgetc_unlocked(FILE*);
4844887Schin	extern char*	fgets_unlocked(char*, int, FILE*);
4854887Schin	extern int	fileno_unlocked(FILE*);
4864887Schin	extern int	fputc_unlocked(int, FILE*);
4874887Schin	extern int	fputs_unlocked(char*, FILE*);
4884887Schin	extern size_t	fread_unlocked(void*, size_t, size_t, FILE*);
4894887Schin	extern size_t	fwrite_unlocked(void*, size_t, size_t, FILE*);
4904887Schin	extern int	getc_unlocked(FILE*);
4914887Schin	extern int	getchar_unlocked(void);
4924887Schin	extern int	putc_unlocked(int, FILE*);
4934887Schin	extern int	putchar_unlocked(int);
4944887Schin
4954887Schin	#ifdef _USE_GNU
4964887Schin
4974887Schin	extern int	fcloseall(void);
4984887Schin	extern FILE*	fmemopen(void*, size_t, const char*);
4994887Schin	extern ssize_t	__getdelim(char**, size_t*, int, FILE*);
5004887Schin	extern ssize_t	getdelim(char**, size_t*, int, FILE*);
5014887Schin	extern ssize_t	getline(char**, size_t*, FILE*);
5024887Schin
5034887Schin	#endif
5044887Schin
5054887Schin	#undef	extern
5064887Schin
5074887Schin	#if _BLD_DLL && _DLL_INDIRECT_DATA
5084887Schin
5094887Schin	#define stdin		((FILE*)_ast_dll->_ast_stdin)
5104887Schin	#define stdout		((FILE*)_ast_dll->_ast_stdout)
5114887Schin	#define stderr		((FILE*)_ast_dll->_ast_stderr)
5124887Schin
5134887Schin	#else
5144887Schin
5154887Schin	#define	stdin		(&_Sfstdin)
5164887Schin	#define	stdout		(&_Sfstdout)
5174887Schin	#define	stderr		(&_Sfstderr)
5184887Schin
5194887Schin	#endif
5204887Schin
5214887Schin	#if defined(_AST_H) || defined(_SFIO_H)
5224887Schin
5234887Schin	#define feof(f)		sfeof(f)
5244887Schin	#define ferror(f)	sferror(f)
5254887Schin	#define fileno(f)	sffileno(f)
5264887Schin	#define fputc(c,f)	sfputc(f,c)
5274887Schin	#define getc(f)		sfgetc(f)
5284887Schin	#define getchar()	sfgetc(sfstdin)
5294887Schin	#define putc(c,f)	sfputc(f,c)
5304887Schin	#define putchar(c)	sfputc(sfstdout,c)
5314887Schin
5324887Schin	#else
5334887Schin
5344887Schin	#if !_UWIN
5354887Schin	#if _BLD_ast && defined(__EXPORT__)
5364887Schin	#define extern		extern __EXPORT__
5374887Schin	#endif
5384887Schin	#if !_BLD_ast && defined(__IMPORT__)
5394887Schin	#define extern		extern __IMPORT__
5404887Schin	#endif
5414887Schin	#endif
5424887Schin
5434887Schin	extern FILE	_Sfstdin;
5444887Schin	extern FILE	_Sfstdout;
5454887Schin	extern FILE	_Sfstderr;
5464887Schin
5474887Schin	#undef	extern
5484887Schin
5494887Schin	#define feof(f)		(_sf_(f)->_flags&_SF_EOF)
5504887Schin	#define ferror(f)	(_sf_(f)->_flags&_SF_ERROR)
5514887Schin	#define fileno(f)	(_sf_(f)->_file)
5524887Schin	#define fputc(c,f)	(_sf_(f)->_next>=_sf_(f)->_endw?_sfflsbuf(_sf_(f),(int)((unsigned char)(c))):(int)(*_sf_(f)->_next++=(unsigned char)(c)))
5534887Schin	#define getc(f)		(_sf_(f)->_next>=_sf_(f)->_endr?_sffilbuf(_sf_(f),0):(int)(*_sf_(f)->_next++))
5544887Schin	#define getchar()	getc(stdin)
5554887Schin	#define putc(c,f)	fputc(c,f)
5564887Schin	#define putchar(c)	fputc(c,stdout)
5574887Schin
5584887Schin	#if _BLD_ast && defined(__EXPORT__)
5594887Schin	#define extern		__EXPORT__
5604887Schin	#endif
5614887Schin
5624887Schin	extern int		_sffilbuf(FILE*, int);
5634887Schin	extern int		_sfflsbuf(FILE*, int);
5644887Schin
5654887Schin	#undef	extern
5664887Schin
5674887Schin	#endif
5684887Schin}end
569