/* Copyright (c) 1993 Xerox Corporation. All rights reserved. */ /* $Id$ $Date$ * * PCR - IOGbl glue * * Create procs for IOGbl. */ #ifndef ←←PCR←IOGblGlue←h #define ←←PCR←IOGblGlue←h 1 #include <config/PCR←StdDefs.h> #include <th/PCR←Th.h> #include <io/PCR←IOGbl.h> /* All the following procs create descriptors with local ref cnt == 1. They are initially NIL if not provided. */ typedef PCR←ERes PCR←IOGblGlue←CreateProc( const PCR←sigset←t *sigMask, PCR←Msec wakeup, PCR←IOGbl←DEPtr *gdep, PCR←Any cmd, ... ); extern PCR←IOGblGlue←CreateProc PCR←IOGblGlue←Create; typedef PCR←ERes PCR←IOGblGlue←CreatePairProc( const PCR←sigset←t *sigMask, PCR←Msec wakeup, PCR←IOGbl←DEPtr *gde0p, PCR←IOGbl←DEPtr *gde1p, PCR←Any cmd, ... ); extern PCR←IOGblGlue←CreatePairProc PCR←IOGblGlue←CreatePair; typedef PCR←ERes PCR←IOGblGlue←OpenProc( const char *fileName, int oflag, mode←t mode, const PCR←sigset←t *sigMask, PCR←Msec wakeup, PCR←IOGbl←DEPtr *gdep ); extern PCR←IOGblGlue←OpenProc PCR←IOGblGlue←Open; typedef PCR←ERes PCR←IOGblGlue←PipeProc( const PCR←sigset←t *sigMask, PCR←Msec wakeup, PCR←IOGbl←DEPtr *gde0p, PCR←IOGbl←DEPtr *gde1p ); extern PCR←IOGblGlue←PipeProc PCR←IOGblGlue←Pipe; /* * Glue to allow stdin/stdout/stderr to be handled correctly ... */ PCR←IOGbl←DEPtr (*PCR←IOGBlGlue←getStd)(int fildes); /* ... std descriptors for threads. */ PCR←Any /* info */ (* volatile PCR←IOGblGlue←lockStdHD)(int hd); void (* volatile PCR←IOGblGlue←unlockStdHD)(int hd, PCR←Any info); /* ... for console messages and termination cleanup. ({lock,print,unlock} must be in critical section). */ /* * Initialization -- called from PCR←IOGblImpl.c if defined by * a service provider ... */ PCR←ERes (*PCR←IOGBlGlue←setup)(void); PCR←ERes (*PCR←IOGblGlue←run)(void); #endif /* ! ←←PCR←IOGblGlue←h */ /* $Log$ */