/*
Copyright (c) 1993 Xerox Corporation.  All rights reserved.
*/
/*
$Id$

$Date$
 *
 */

#ifndef ←←PCR←EmuAstdioFile←h
#define ←←PCR←EmuAstdioFile←h

#include <th/PCR←Th.h>

#include <stdio.h>

#include <emu/PCR←EmuAstdioPvt.h>


struct PCR←StdioFile←StreamRep {

    PCR←Stdio←Stream fstr←str;

    int fstr←fd;
        /* file descriptor -- may be local or global */
    int fstr←gfd;
        /* globalized version of fd -- valid even if fd is local */
    FILE * fstr←lclNext;
    PCR←Th←T * fstr←lclOwner;
        /* per-thread stream list with local fd values */

    unsigned char * fstr←buf;
    int fstr←bufSize;
        /* i/o buffer */
    unsigned char *fstr←readLim;
        /* delimiter for valid input data in i/o buffer */

    PCR←Th←ML fstr←writeLock;
        /* write lock necessary because of flushing */
        
};

typedef struct PCR←StdioFile←StreamRep PCR←StdioFile←Stream;

extern PCR←StdioFile←Stream * PCR←StdioFile←streams;


#endif /* !←←PCR←EmuAstdioFile←h */
/*
$Log$
*/