diff options
Diffstat (limited to '')
-rw-r--r-- | public/sdk/inc/crt/stdio.h | 528 |
1 files changed, 528 insertions, 0 deletions
diff --git a/public/sdk/inc/crt/stdio.h b/public/sdk/inc/crt/stdio.h new file mode 100644 index 000000000..36c2db9ac --- /dev/null +++ b/public/sdk/inc/crt/stdio.h @@ -0,0 +1,528 @@ +/*** +*stdio.h - definitions/declarations for standard I/O routines +* +* Copyright (c) 1985-1996, Microsoft Corporation. All rights reserved. +* +*Purpose: +* This file defines the structures, values, macros, and functions +* used by the level 2 I/O ("standard I/O") routines. +* [ANSI/System V] +* +* [Public] +* +****/ + +#if _MSC_VER > 1000 +#pragma once +#endif + +#ifndef _INC_STDIO +#define _INC_STDIO + +#if !defined(_WIN32) && !defined(_MAC) +#error ERROR: Only Mac or Win32 targets supported! +#endif + + +#ifdef _MSC_VER +/* + * Currently, all MS C compilers for Win32 platforms default to 8 byte + * alignment. + */ +#pragma pack(push,8) +#endif /* _MSC_VER */ + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Define _CRTAPI1 (for compatibility with the NT SDK) */ + +#ifndef _CRTAPI1 +#if _MSC_VER >= 800 && _M_IX86 >= 300 +#define _CRTAPI1 __cdecl +#else +#define _CRTAPI1 +#endif +#endif + + +/* Define _CRTAPI2 (for compatibility with the NT SDK) */ + +#ifndef _CRTAPI2 +#if _MSC_VER >= 800 && _M_IX86 >= 300 +#define _CRTAPI2 __cdecl +#else +#define _CRTAPI2 +#endif +#endif + + +/* Define _CRTIMP */ + +#ifndef _CRTIMP +#ifdef _NTSDK +/* definition compatible with NT SDK */ +#define _CRTIMP +#else /* ndef _NTSDK */ +/* current definition */ +#ifdef _DLL +#define _CRTIMP __declspec(dllimport) +#else /* ndef _DLL */ +#define _CRTIMP +#endif /* _DLL */ +#endif /* _NTSDK */ +#endif /* _CRTIMP */ + + +/* Define __cdecl for non-Microsoft compilers */ + +#if ( !defined(_MSC_VER) && !defined(__cdecl) ) +#define __cdecl +#endif + + +#ifndef _SIZE_T_DEFINED +typedef unsigned int size_t; +#define _SIZE_T_DEFINED +#endif + + +#ifndef _MAC +#ifndef _WCHAR_T_DEFINED +typedef unsigned short wchar_t; +#define _WCHAR_T_DEFINED +#endif + + +#ifndef _WCTYPE_T_DEFINED +typedef wchar_t wint_t; +typedef wchar_t wctype_t; +#define _WCTYPE_T_DEFINED +#endif +#endif /* ndef _MAC */ + + +#ifndef _VA_LIST_DEFINED +#ifdef _M_ALPHA +typedef struct { + char *a0; /* pointer to first homed integer argument */ + int offset; /* byte offset of next parameter */ +} va_list; +#else +typedef char * va_list; +#endif +#define _VA_LIST_DEFINED +#endif + + +/* Buffered I/O macros */ + +#if defined(_M_MPPC) +#define BUFSIZ 4096 +#else /* defined (_M_MPPC) */ +#define BUFSIZ 512 +#endif /* defined (_M_MPPC) */ + + +/* + * Default number of supported streams. _NFILE is confusing and obsolete, but + * supported anyway for backwards compatibility. + */ +#define _NFILE _NSTREAM_ + +#ifdef _WIN32 + +#define _NSTREAM_ 512 + +/* + * Number of entries in _iob[] (declared below). Note that _NSTREAM_ must be + * greater than or equal to _IOB_ENTRIES. + */ +#define _IOB_ENTRIES 20 + +#else /* ndef _WIN32 */ + +#ifdef _DLL +#define _NSTREAM_ 128 +#else +#ifdef _MT +#define _NSTREAM_ 40 +#else +#define _NSTREAM_ 20 +#endif +#endif /* _DLL */ + +#endif /* ndef _MAC */ + +#define EOF (-1) + + +#ifndef _FILE_DEFINED +struct _iobuf { + char *_ptr; + int _cnt; + char *_base; + int _flag; + int _file; + int _charbuf; + int _bufsiz; + char *_tmpfname; + }; +typedef struct _iobuf FILE; +#define _FILE_DEFINED +#endif + +#if !defined(_M_MPPC) && !defined(_M_M68K) + +/* Directory where temporary files may be created. */ + +#ifdef _POSIX_ +#define _P_tmpdir "/" +#define _wP_tmpdir L"/" +#else +#define _P_tmpdir "\\" +#define _wP_tmpdir L"\\" +#endif + + +/* L_tmpnam = size of P_tmpdir + * + 1 (in case P_tmpdir does not end in "/") + * + 12 (for the filename string) + * + 1 (for the null terminator) + */ +#define L_tmpnam sizeof(_P_tmpdir)+12 +#else /* defined(_M_M68K) || defined(_M_MPPC) */ +#define L_tmpnam 255 +#endif /* !defined(_M_M68K) && defined(_M_MPPC) */ + + +#ifdef _POSIX_ +#define L_ctermid 9 +#define L_cuserid 32 +#endif + + +/* Seek method constants */ + +#define SEEK_CUR 1 +#define SEEK_END 2 +#define SEEK_SET 0 + + +#define FILENAME_MAX 260 +#define FOPEN_MAX 20 +#define _SYS_OPEN 20 +#define TMP_MAX 32767 + + +/* Define NULL pointer value */ + +#ifndef NULL +#ifdef __cplusplus +#define NULL 0 +#else +#define NULL ((void *)0) +#endif +#endif + + +/* Declare _iob[] array */ + +#ifndef _STDIO_DEFINED + +#ifdef _NTSDK + +#ifdef _DLL +extern FILE * _iob; +#else +extern FILE _iob[]; +#endif + +#else /* ndef _NTSDK */ + +#if defined(_DLL) && defined(_M_IX86) + +#define _iob (__p__iob()) +_CRTIMP extern FILE * __cdecl __p__iob(void); + +#else /* !(defined(_DLL) && defined(_M_IX86)) */ + +_CRTIMP extern FILE _iob[]; + +#endif /* defined(_DLL) && defined(_M_IX86) */ + +#endif /* _NTSDK */ + +#endif /* _STDIO_DEFINED */ + + +/* Define file position type */ + +#ifndef _FPOS_T_DEFINED + +#if defined(_M_MPPC) || defined(_M_M68K) || defined(_POSIX_) + +typedef long fpos_t; + +#else /* !defined(_M_MPPC) && !defined(_M_M68K) */ + +#if !__STDC__ && _INTEGRAL_MAX_BITS >= 64 +typedef __int64 fpos_t; +#else +typedef struct fpos_t { + unsigned int lopart; + int hipart; + } fpos_t; +#endif + +#endif /* defined(_M_MPPC) || defined(_M_68K) */ + +#define _FPOS_T_DEFINED +#endif + + +#define stdin (&_iob[0]) +#define stdout (&_iob[1]) +#define stderr (&_iob[2]) + + +#define _IOREAD 0x0001 +#define _IOWRT 0x0002 + +#define _IOFBF 0x0000 +#define _IOLBF 0x0040 +#define _IONBF 0x0004 + +#define _IOMYBUF 0x0008 +#define _IOEOF 0x0010 +#define _IOERR 0x0020 +#define _IOSTRG 0x0040 +#define _IORW 0x0080 +#ifdef _POSIX_ +#define _IOAPPEND 0x0200 +#endif + + +/* Function prototypes */ + +#ifndef _STDIO_DEFINED + +_CRTIMP int __cdecl _filbuf(FILE *); +_CRTIMP int __cdecl _flsbuf(int, FILE *); + +#ifdef _POSIX_ +_CRTIMP FILE * __cdecl _fsopen(const char *, const char *); +#else +_CRTIMP FILE * __cdecl _fsopen(const char *, const char *, int); +#endif + +_CRTIMP void __cdecl clearerr(FILE *); +_CRTIMP int __cdecl fclose(FILE *); +_CRTIMP int __cdecl _fcloseall(void); + +#ifdef _POSIX_ +_CRTIMP FILE * __cdecl fdopen(int, const char *); +#else +_CRTIMP FILE * __cdecl _fdopen(int, const char *); +#endif + +_CRTIMP int __cdecl feof(FILE *); +_CRTIMP int __cdecl ferror(FILE *); +_CRTIMP int __cdecl fflush(FILE *); +_CRTIMP int __cdecl fgetc(FILE *); +_CRTIMP int __cdecl _fgetchar(void); +_CRTIMP int __cdecl fgetpos(FILE *, fpos_t *); +_CRTIMP char * __cdecl fgets(char *, int, FILE *); + +#ifdef _POSIX_ +_CRTIMP int __cdecl fileno(FILE *); +#else +_CRTIMP int __cdecl _fileno(FILE *); +#endif + +_CRTIMP int __cdecl _flushall(void); +_CRTIMP FILE * __cdecl fopen(const char *, const char *); +_CRTIMP int __cdecl fprintf(FILE *, const char *, ...); +_CRTIMP int __cdecl fputc(int, FILE *); +_CRTIMP int __cdecl _fputchar(int); +_CRTIMP int __cdecl fputs(const char *, FILE *); +_CRTIMP size_t __cdecl fread(void *, size_t, size_t, FILE *); +_CRTIMP FILE * __cdecl freopen(const char *, const char *, FILE *); +_CRTIMP int __cdecl fscanf(FILE *, const char *, ...); +_CRTIMP int __cdecl fsetpos(FILE *, const fpos_t *); +_CRTIMP int __cdecl fseek(FILE *, long, int); +_CRTIMP long __cdecl ftell(FILE *); +_CRTIMP size_t __cdecl fwrite(const void *, size_t, size_t, FILE *); +_CRTIMP int __cdecl getc(FILE *); +_CRTIMP int __cdecl getchar(void); +_CRTIMP int __cdecl _getmaxstdio(void); +_CRTIMP char * __cdecl gets(char *); +_CRTIMP int __cdecl _getw(FILE *); +_CRTIMP void __cdecl perror(const char *); +_CRTIMP int __cdecl _pclose(FILE *); +_CRTIMP FILE * __cdecl _popen(const char *, const char *); +_CRTIMP int __cdecl printf(const char *, ...); +_CRTIMP int __cdecl putc(int, FILE *); +_CRTIMP int __cdecl putchar(int); +_CRTIMP int __cdecl puts(const char *); +_CRTIMP int __cdecl _putw(int, FILE *); +_CRTIMP int __cdecl remove(const char *); +_CRTIMP int __cdecl rename(const char *, const char *); +_CRTIMP void __cdecl rewind(FILE *); +_CRTIMP int __cdecl _rmtmp(void); +_CRTIMP int __cdecl scanf(const char *, ...); +_CRTIMP void __cdecl setbuf(FILE *, char *); +_CRTIMP int __cdecl _setmaxstdio(int); +_CRTIMP int __cdecl setvbuf(FILE *, char *, int, size_t); +_CRTIMP int __cdecl _snprintf(char *, size_t, const char *, ...); +_CRTIMP int __cdecl sprintf(char *, const char *, ...); +_CRTIMP int __cdecl sscanf(const char *, const char *, ...); +_CRTIMP char * __cdecl _tempnam(const char *, const char *); +_CRTIMP FILE * __cdecl tmpfile(void); +_CRTIMP char * __cdecl tmpnam(char *); +_CRTIMP int __cdecl ungetc(int, FILE *); +_CRTIMP int __cdecl _unlink(const char *); +_CRTIMP int __cdecl vfprintf(FILE *, const char *, va_list); +_CRTIMP int __cdecl vprintf(const char *, va_list); +_CRTIMP int __cdecl _vsnprintf(char *, size_t, const char *, va_list); +_CRTIMP int __cdecl vsprintf(char *, const char *, va_list); + +#ifndef _MAC +#ifndef _WSTDIO_DEFINED + +/* wide function prototypes, also declared in wchar.h */ + +#ifndef WEOF +#define WEOF (wint_t)(0xFFFF) +#endif + +#ifdef _POSIX_ +_CRTIMP FILE * __cdecl _wfsopen(const wchar_t *, const wchar_t *); +#else +_CRTIMP FILE * __cdecl _wfsopen(const wchar_t *, const wchar_t *, int); +#endif + +_CRTIMP wint_t __cdecl fgetwc(FILE *); +_CRTIMP wint_t __cdecl _fgetwchar(void); +_CRTIMP wint_t __cdecl fputwc(wint_t, FILE *); +_CRTIMP wint_t __cdecl _fputwchar(wint_t); +_CRTIMP wint_t __cdecl getwc(FILE *); +_CRTIMP wint_t __cdecl getwchar(void); +_CRTIMP wint_t __cdecl putwc(wint_t, FILE *); +_CRTIMP wint_t __cdecl putwchar(wint_t); +_CRTIMP wint_t __cdecl ungetwc(wint_t, FILE *); + +_CRTIMP wchar_t * __cdecl fgetws(wchar_t *, int, FILE *); +_CRTIMP int __cdecl fputws(const wchar_t *, FILE *); +_CRTIMP wchar_t * __cdecl _getws(wchar_t *); +_CRTIMP int __cdecl _putws(const wchar_t *); + +_CRTIMP int __cdecl fwprintf(FILE *, const wchar_t *, ...); +_CRTIMP int __cdecl wprintf(const wchar_t *, ...); +_CRTIMP int __cdecl _snwprintf(wchar_t *, size_t, const wchar_t *, ...); +_CRTIMP int __cdecl swprintf(wchar_t *, const wchar_t *, ...); +_CRTIMP int __cdecl vfwprintf(FILE *, const wchar_t *, va_list); +_CRTIMP int __cdecl vwprintf(const wchar_t *, va_list); +_CRTIMP int __cdecl _vsnwprintf(wchar_t *, size_t, const wchar_t *, va_list); +_CRTIMP int __cdecl vswprintf(wchar_t *, const wchar_t *, va_list); +_CRTIMP int __cdecl fwscanf(FILE *, const wchar_t *, ...); +_CRTIMP int __cdecl swscanf(const wchar_t *, const wchar_t *, ...); +_CRTIMP int __cdecl wscanf(const wchar_t *, ...); + +#define getwchar() fgetwc(stdin) +#define putwchar(_c) fputwc((_c),stdout) +#define getwc(_stm) fgetwc(_stm) +#define putwc(_c,_stm) fputwc(_c,_stm) + +_CRTIMP FILE * __cdecl _wfdopen(int, const wchar_t *); +_CRTIMP FILE * __cdecl _wfopen(const wchar_t *, const wchar_t *); +_CRTIMP FILE * __cdecl _wfreopen(const wchar_t *, const wchar_t *, FILE *); +_CRTIMP void __cdecl _wperror(const wchar_t *); +_CRTIMP FILE * __cdecl _wpopen(const wchar_t *, const wchar_t *); +_CRTIMP int __cdecl _wremove(const wchar_t *); +_CRTIMP wchar_t * __cdecl _wtempnam(const wchar_t *, const wchar_t *); +_CRTIMP wchar_t * __cdecl _wtmpnam(wchar_t *); + + +#define _WSTDIO_DEFINED +#endif /* _WSTDIO_DEFINED */ +#endif /* ndef _MAC */ + +#define _STDIO_DEFINED +#endif /* _STDIO_DEFINED */ + + +/* Macro definitions */ + +#define feof(_stream) ((_stream)->_flag & _IOEOF) +#define ferror(_stream) ((_stream)->_flag & _IOERR) +#define _fileno(_stream) ((_stream)->_file) +#define getc(_stream) (--(_stream)->_cnt >= 0 \ + ? 0xff & *(_stream)->_ptr++ : _filbuf(_stream)) +#define putc(_c,_stream) (--(_stream)->_cnt >= 0 \ + ? 0xff & (*(_stream)->_ptr++ = (char)(_c)) : _flsbuf((_c),(_stream))) +#define getchar() getc(stdin) +#define putchar(_c) putc((_c),stdout) + + + +#ifdef _MT +#undef getc +#undef putc +#undef getchar +#undef putchar +#endif + + + +#if !__STDC__ && !defined(_POSIX_) + +/* Non-ANSI names for compatibility */ + +#define P_tmpdir _P_tmpdir +#define SYS_OPEN _SYS_OPEN + +#ifdef _NTSDK + +#define fcloseall _fcloseall +#define fdopen _fdopen +#define fgetchar _fgetchar +#define fileno _fileno +#define flushall _flushall +#define fputchar _fputchar +#define getw _getw +#define putw _putw +#define rmtmp _rmtmp +#define tempnam _tempnam +#define unlink _unlink + +#else /* ndef _NTSDK */ + +_CRTIMP int __cdecl fcloseall(void); +_CRTIMP FILE * __cdecl fdopen(int, const char *); +_CRTIMP int __cdecl fgetchar(void); +_CRTIMP int __cdecl fileno(FILE *); +_CRTIMP int __cdecl flushall(void); +_CRTIMP int __cdecl fputchar(int); +_CRTIMP int __cdecl getw(FILE *); +_CRTIMP int __cdecl putw(int, FILE *); +_CRTIMP int __cdecl rmtmp(void); +_CRTIMP char * __cdecl tempnam(const char *, const char *); +_CRTIMP int __cdecl unlink(const char *); + +#endif /* _NTSDK */ + +#endif /* __STDC__ */ + +#ifdef __cplusplus +} +#endif + + +#ifdef _MSC_VER +#pragma pack(pop) +#endif /* _MSC_VER */ + +#endif /* _INC_STDIO */ |