diff options
Diffstat (limited to 'usr/src/ucbhead/stdio.h')
-rw-r--r-- | usr/src/ucbhead/stdio.h | 339 |
1 files changed, 339 insertions, 0 deletions
diff --git a/usr/src/ucbhead/stdio.h b/usr/src/ucbhead/stdio.h new file mode 100644 index 0000000000..7130b93169 --- /dev/null +++ b/usr/src/ucbhead/stdio.h @@ -0,0 +1,339 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License, Version 1.0 only + * (the "License"). You may not use this file except in compliance + * with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ +/* All Rights Reserved */ + +/* + * University Copyright- Copyright (c) 1982, 1986, 1988 + * The Regents of the University of California + * All Rights Reserved + * + * University Acknowledgment- Portions of this document are derived from + * software developed by the University of California, Berkeley, and its + * contributors. + */ + +/* + * User-visible pieces of the ANSI C standard I/O package. + */ + +#ifndef _STDIO_H +#define _STDIO_H + +#pragma ident "%Z%%M% %I% %E% SMI" + +#include <sys/feature_tests.h> +#include <sys/va_list.h> +#include <stdio_tag.h> +#include <stdio_impl.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef BSD +#define BSD +#endif + +#ifndef _SIZE_T +#define _SIZE_T +#if !defined(_LP64) && defined(__cplusplus) +typedef unsigned int size_t; +#else +typedef unsigned long size_t; +#endif +#endif + +#ifndef _SSIZE_T +#define _SSIZE_T +#if !defined(_LP64) && defined(__cplusplus) +typedef int ssize_t; +#else +typedef long ssize_t; +#endif +#endif + +typedef long fpos_t; + +#ifndef NULL +#define NULL 0 +#endif + +#if defined(__STDC__) + +#if #machine(pdp11) +#define BUFSIZ 512 +#define _STDIO_REVERSE +#elif #machine(u370) +#define BUFSIZ 4096 +#define _STDIO_REVERSE +#define _STDIO_ALLOCATE +#else +#define BUFSIZ 1024 +#endif + +#else /* !defined(__STDC__) */ + +#if pdp11 || u370 + +#if pdp11 +#define BUFSIZ 512 +#define _STDIO_REVERSE +#else /* u370 */ +#define BUFSIZ 4096 +#define _STDIO_REVERSE +#define _STDIO_ALLOCATE +#endif + +#else +#define BUFSIZ 1024 +#endif + +#endif /* __STDC__ */ + +#if defined(__i386) +#define _NFILE 60 /* initial number of streams: Intel x86 ABI */ +#else +#define _NFILE 20 /* initial number of streams: SPARC ABI and default */ +#endif + +#define _SBFSIZ 8 /* compatibility with shared libs */ + +#define _IOFBF 0000 /* full buffered */ +#define _IOLBF 0100 /* line buffered */ +#define _IONBF 0004 /* not buffered */ +#define _IOEOF 0020 /* EOF reached on read */ +#define _IOERR 0040 /* I/O error from system */ + +#define _IOREAD 0001 /* currently reading */ +#define _IOWRT 0002 /* currently writing */ +#define _IORW 0200 /* opened for reading and writing */ +#define _IOMYBUF 0010 /* stdio malloc()'d buffer */ + +#ifndef EOF +#define EOF (-1) +#endif + +#define FOPEN_MAX _NFILE +#define FILENAME_MAX 1024 /* max # of characters in a path name */ + +#define SEEK_SET 0 +#define SEEK_CUR 1 +#define SEEK_END 2 +#define TMP_MAX 17576 /* 26 * 26 * 26 */ + +#if !defined(_STRICT_STDC) || defined(_POSIX_SOURCE) || defined(_XOPEN_SOURCE) +#define L_ctermid 9 +#define L_cuserid 9 +#define P_tmpdir "/var/tmp/" +#endif + +#define L_tmpnam 25 /* (sizeof(P_tmpdir) + 15) */ + +#if defined(__STDC__) +#define stdin (&__iob[0]) +#define stdout (&__iob[1]) +#define stderr (&__iob[2]) +#else +#define stdin (&_iob[0]) +#define stdout (&_iob[1]) +#define stderr (&_iob[2]) +#endif + +#ifndef _FILEDEFED +#define _FILEDEFED +typedef __FILE FILE; +#endif + +#if defined(__STDC__) +extern FILE __iob[_NFILE]; +#else +extern FILE _iob[_NFILE]; +#endif +extern FILE *_lastbuf; +extern unsigned char *_bufendtab[]; +#ifndef _STDIO_ALLOCATE +extern unsigned char _sibuf[], _sobuf[]; +#endif + +/* Large file interfaces */ +/* transition back from explicit 64-bit offset to implicit (64-bit) offset */ +#if defined(_LP64) && defined(_LARGEFILE64_SOURCE) +#ifdef __PRAGMA_REDEFINE_EXTNAME +#pragma redefine_extname fopen64 fopen +#pragma redefine_extname freopen64 freopen +#else +#define fopen64 fopen +#define freopen64 freopen +#endif +#endif + +/* transition from 32-bit offset to explicit 64-bit offset */ +#if !defined(_LP64) && (_FILE_OFFSET_BITS == 64) +#ifdef __PRAGMA_REDEFINE_EXTNAME +#pragma redefine_extname fopen fopen64 +#pragma redefine_extname freopen freopen64 +#else +#define fopen fopen64 +#define freopen freopen64 +#endif +#endif + +#if defined(__STDC__) + +extern int remove(const char *); +extern int rename(const char *, const char *); +extern int fclose(FILE *); +extern int fflush(FILE *); +extern FILE *fopen(const char *, const char *); +extern FILE *freopen(const char *, const char *, FILE *); +extern void setbuf(FILE *, char *); +extern void setbuffer(FILE *, char *, int); +extern int setlinebuf(FILE *); +extern int setvbuf(FILE *, char *, int, size_t); +/* PRINTFLIKE2 */ +extern int fprintf(FILE *, const char *, ...); +/* SCANFLIKE2 */ +extern int fscanf(FILE *, const char *, ...); +/* PRINTFLIKE1 */ +extern int printf(const char *, ...); +/* SCANFLIKE1 */ +extern int scanf(const char *, ...); +/* PRINTFLIKE2 */ +extern char *sprintf(const char *, const char *, ...); +/* SCANFLIKE2 */ +extern int sscanf(const char *, const char *, ...); +extern int vfprintf(FILE *, const char *, __va_list); +extern int vprintf(const char *, __va_list); +extern char *vsprintf(char *, char *, __va_list); +extern int fgetc(FILE *); +extern char *fgets(char *, int, FILE *); +extern int fputc(int, FILE *); +extern int fputs(const char *, FILE *); +extern int getc(FILE *); +extern int getchar(void); +extern char *gets(char *); +extern int putc(int, FILE *); +extern int putchar(int); +extern int puts(const char *); +extern int ungetc(int, FILE *); +extern size_t fread(void *, size_t, size_t, FILE *); +extern size_t fwrite(const void *, size_t, size_t, FILE *); +extern int fgetpos(FILE *, fpos_t *); +extern int fseek(FILE *, long, int); +extern int fsetpos(FILE *, const fpos_t *); +extern long ftell(FILE *); +extern void rewind(FILE *); +extern void clearerr(FILE *); +extern int feof(FILE *); +extern int ferror(FILE *); +extern void perror(const char *); + +extern int __filbuf(FILE *); +extern int __flsbuf(int, FILE *); + +#if !defined(_STRICT_STDC) || defined(_POSIX_SOURCE) || defined(_XOPEN_SOURCE) + /* non-ANSI standard compilation */ + +extern FILE *fdopen(int, const char *); +extern FILE *popen(const char *, const char *); +extern char *ctermid(char *); +extern char *cuserid(char *); +extern char *tempnam(const char *, const char *); +extern int getw(FILE *); +extern int putw(int, FILE *); +extern int pclose(FILE *); +extern int system(const char *); +extern int fileno(FILE *); + +#endif /* !defined(_STRICT_STDC) */ + +#else /* !defined __STDC__ */ +#define _bufend(p) _bufendtab[fileno(p)] +#define _bufsiz(p) (_bufend(p) - (p)->_base) + +extern FILE *fopen(), *fdopen(), *freopen(), *popen(); +extern long ftell(); +extern void rewind(), setbuf(), setbuffer(); +extern int setlinebuf(); +extern char *ctermid(), *cuserid(), *fgets(), *gets(), *sprintf(), + *vsprintf(); +extern int fclose(), fflush(), fread(), fwrite(), fseek(), fgetc(), + getw(), pclose(), printf(), fprintf(), + vprintf(), vfprintf(), fputc(), putw(), + puts(), fputs(), scanf(), fscanf(), sscanf(), + setvbuf(), system(), ungetc(); +extern int fileno(); +extern int getc(), getchar(), putc(), putchar(), feof(), ferror(); +extern void clearerr(); + +#endif /* __STDC__ */ + +#ifndef __lint + +#ifndef _LP64 + +#ifdef __STDC__ + +#define getc(p) (--(p)->_cnt < 0 ? __filbuf(p) : (int)*(p)->_ptr++) +#define putc(x, p) (--(p)->_cnt < 0 ? __flsbuf((x), (p)) \ + : (int)(*(p)->_ptr++ = (x))) + +#else /* __STDC__ */ + +#define getc(p) (--(p)->_cnt < 0 ? _filbuf(p) : (int)*(p)->_ptr++) +#define putc(x, p) (--(p)->_cnt < 0 ? \ + _flsbuf((unsigned char) (x), (p)) : \ + (int)(*(p)->_ptr++ = (unsigned char)(x))) +#endif /* __STDC__ */ + +#define clearerr(p) ((void) ((p)->_flag &= ~(_IOERR | _IOEOF))) +#define feof(p) ((p)->_flag & _IOEOF) +#define ferror(p) ((p)->_flag & _IOERR) + +#endif /* _LP64 */ + +#define getchar() getc(stdin) +#define putchar(x) putc((x), stdout) + +#endif /* __lint */ + +#if defined(_LARGEFILE64_SOURCE) && !((_FILE_OFFSET_BITS == 64) && \ + !defined(__PRAGMA_REDEFINE_EXTNAME)) +#if defined(__STDC__) +extern FILE *fopen64(const char *, const char *); +extern FILE *freopen64(const char *, const char *, FILE *); +#else +extern FILE *fopen64(), *freopen64(); +#endif +#endif /* _LARGEFILE64_SOURCE... */ + +#ifdef __cplusplus +} +#endif + +#endif /* _STDIO_H */ |