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

$Date$
 *
 */


#ifndef	←←PCR←ThDataGlue←h
#define ←←PCR←ThDataGlue←h 1


#include <config/PCR←Arch.h>
#include <config/PCR←StdTypes.h>
#include <sig/PCR←SigTypes.h>
#include <th/PCR←ThData.h>


/*
 * Field create/destroy procs ...
 *
 * Create proc is called from parent thread to initialize
 *   field of child thread's ThData←T.
 * Signals are blocked. ??? or maybe disabled ???
 *
 * Destroy proc is called either 
 *   (1) from parent thread to back out of Fork() after
 *   failure of (e.g.) one of the create procs, or
 *   (2) from thread itself as part of thread exit (in
 *   this case the argument is NIL).
 * Signals are blocked. ??? or maybe disabled ???
 */

PCR←ERes (*PCR←ThDataGlue←sigDataCreate)(PCR←ThData←T *td);
void (*PCR←ThDataGlue←sigDataDestroy)(PCR←ThData←T *td);

PCR←ERes (*PCR←ThDataGlue←ioDataCreate)(PCR←ThData←T *td);
void (*PCR←ThDataGlue←ioDataDestroy)(PCR←ThData←T *td);

PCR←ERes (*PCR←ThDataGlue←emuIDataCreate)(PCR←ThData←T *td);
void (*PCR←ThDataGlue←emuDataDestroy)(PCR←ThData←T *td);

PCR←ERes (*PCR←ThDataGlue←propDataCreate)(PCR←ThData←T *td);
void (*PCR←ThDataGlue←propDataDestroy)(PCR←ThData←T *td);

#endif /* ! ←←PCR←ThDataGlue←h */

/*
$Log$
*/