/*
Copyright (c) 1993 Xerox Corporation. All rights reserved.
*/
/*
$Id$
$Date$
*
* PCR←ThSpecific.h
*
* Thread-specific data interface.
*/
#include <config/PCR←StdDefs.h>
/*
* Data id & key:
*/
typedef unsigned PCR←ThSpecific←Key;
typedef volatile PCR←ThSpecific←Key * PCR←ThSpecific←KeyPtr;
#define PCR←ThSpecific←Key←none ((PCR←ThSpecific←Key)(-1))
/* not a legal key value */
/*
* Key creation
*/
extern PCR←ERes
PCR←ThSpecific←CreateKey(
void * id,
PCR←ThSpecific←KeyPtr kp,
void (*destructor)(void *)
);
/*
Set *kp to a key corresponding to id.
If id is NIL, a new key is will be created.
If id is non-NIL, and a key has already been created
for id, then that existing key will be returned.
*/
/*
* Data getter/setter functions
*/
extern PCR←ERes
PCR←ThSpecific←Set(PCR←ThSpecific←Key k, void * val);
extern PCR←ERes
PCR←ThSpecific←Get(PCR←ThSpecific←Key k, void ** val);
/*
$Log$
*/