/*************************************************************************/ /* */ /* 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