/usr/include/stdio_impl.h


    1 /*
    2  * Copyright (c) 1998 by Sun Microsystems, Inc.
    3  * All rights reserved.
    4  */
    5 
    6 #ifndef _STDIO_IMPL_H
    7 #define	_STDIO_IMPL_H
    8 
    9 #pragma ident	"@(#)stdio_impl.h	1.8	99/06/10 SMI"
   10 
   11 #include <sys/isa_defs.h>
   12 
   13 #ifdef	__cplusplus
   14 extern "C" {
   15 #endif
   16 
   17 #ifndef _SSIZE_T
   18 #define	_SSIZE_T
   19 #if defined(_LP64) || defined(_I32LPx)
   20 typedef long	ssize_t;		/* size of something in bytes or -1 */
   21 #else
   22 typedef int	ssize_t;		/* (historical version) */
   23 #endif
   24 #endif	/* !_SSIZE_T */
   25 
   26 #ifdef	_LP64
   27 
   28 #ifndef	_FILE64_H
   29 
   30 struct __FILE_TAG {
   31 	long	__pad[16];
   32 };
   33 
   34 #endif	/* _FILE64_H */
   35 
   36 #else
   37 
   38 struct __FILE_TAG	/* needs to be binary-compatible with old versions */
   39 {
   40 #ifdef _STDIO_REVERSE
   41 	unsigned char	*_ptr;	/* next character from/to here in buffer */
   42 	ssize_t		_cnt;	/* number of available characters in buffer */
   43 #else
   44 	ssize_t		_cnt;	/* number of available characters in buffer */
   45 	unsigned char	*_ptr;	/* next character from/to here in buffer */
   46 #endif
   47 	unsigned char	*_base;	/* the buffer */
   48 	unsigned char	_flag;	/* the state of the stream */
   49 	unsigned char	_file;	/* UNIX System file descriptor */
   50 	unsigned	__orientation:2; /* the orientation of the stream */
   51 	unsigned	__ionolock:1;	/* turn off implicit locking */
   52 	unsigned	__filler:5;
   53 };
   54 
   55 #endif	/*	_LP64	*/
   56 
   57 #ifdef	__cplusplus
   58 }
   59 #endif
   60 
   61 #endif	/* _STDIO_IMPL_H */