blob: f06417f177b842a7fb19162e9caee1d588b83dd7 [file] [log] [blame]
/*************************************************************************/
/* */
/* Copyright (c) 1994 Stanford University */
/* */
/* All rights reserved. */
/* */
/* Permission is given to use, copy, and modify this software for any */
/* non-commercial purpose as long as this copyright notice is not */
/* removed. All other uses, including redistribution in whole or in */
/* part, are forbidden without prior written permission. */
/* */
/* This software is provided with absolutely no warranty and no */
/* support. */
/* */
/*************************************************************************/
/**************************************************************
*
* Definitions relevant to parallel processing
*
***************************************************************/
#ifndef _PARALLEL_H
#define _PARALLEL_H
/***************************************************************************
*
* Shared lock variable
*
* Some machines provide only a limited number of lock variables. This
* data structure allows sharing of these lock variables.
* The shared locks are divided into 2 segments so that different types of
* objects are given different locks.
*
****************************************************************************/
typedef struct
{
LOCKDEC(lock)
} Shared_Lock ;
#define SHARED_LOCK_SEG_SIZE (MAX_SHARED_LOCK / 2)
#define SHARED_LOCK_SEG0 (0)
#define SHARED_LOCK_SEG1 (1)
#define SHARED_LOCK_SEGANY (2)
/****************************************************************************
*
* Memory Consistency Model of the machine
*
* Some macro changes its behavior based on the memory consistency model
*
*
*****************************************************************************/
/* Set one(1) to the model used in the machine. Set only one of these
at a time */
#define MEM_CONSISTENCY_RELEASE (0)
#define MEM_CONSISTENCY_WEAK (0)
#define MEM_CONSISTENCY_PROCESSOR (1)
#endif