1*7c478bd9Sstevel@tonic-gate /*- 2*7c478bd9Sstevel@tonic-gate * See the file LICENSE for redistribution information. 3*7c478bd9Sstevel@tonic-gate * 4*7c478bd9Sstevel@tonic-gate * Copyright (c) 1996, 1997, 1998 5*7c478bd9Sstevel@tonic-gate * Sleepycat Software. All rights reserved. 6*7c478bd9Sstevel@tonic-gate */ 7*7c478bd9Sstevel@tonic-gate 8*7c478bd9Sstevel@tonic-gate #include "config.h" 9*7c478bd9Sstevel@tonic-gate 10*7c478bd9Sstevel@tonic-gate #ifndef lint 11*7c478bd9Sstevel@tonic-gate static const char sccsid[] = "@(#)lock_conflict.c 10.4 (Sleepycat) 11/20/98"; 12*7c478bd9Sstevel@tonic-gate #endif /* not lint */ 13*7c478bd9Sstevel@tonic-gate 14*7c478bd9Sstevel@tonic-gate #ifndef NO_SYSTEM_INCLUDES 15*7c478bd9Sstevel@tonic-gate #include <sys/types.h> 16*7c478bd9Sstevel@tonic-gate #endif 17*7c478bd9Sstevel@tonic-gate 18*7c478bd9Sstevel@tonic-gate #include "db_int.h" 19*7c478bd9Sstevel@tonic-gate 20*7c478bd9Sstevel@tonic-gate /* 21*7c478bd9Sstevel@tonic-gate * The conflict arrays are set up such that the row is the lock you 22*7c478bd9Sstevel@tonic-gate * are holding and the column is the lock that is desired. 23*7c478bd9Sstevel@tonic-gate */ 24*7c478bd9Sstevel@tonic-gate const u_int8_t db_rw_conflicts[] = { 25*7c478bd9Sstevel@tonic-gate /* N R W */ 26*7c478bd9Sstevel@tonic-gate /* N */ 0, 0, 0, 27*7c478bd9Sstevel@tonic-gate /* R */ 0, 0, 1, 28*7c478bd9Sstevel@tonic-gate /* W */ 0, 1, 1 29*7c478bd9Sstevel@tonic-gate }; 30*7c478bd9Sstevel@tonic-gate 31*7c478bd9Sstevel@tonic-gate const u_int8_t db_riw_conflicts[] = { 32*7c478bd9Sstevel@tonic-gate /* N S X IX IS SIX */ 33*7c478bd9Sstevel@tonic-gate /* N */ 0, 0, 0, 0, 0, 0, 34*7c478bd9Sstevel@tonic-gate /* S */ 0, 0, 1, 1, 0, 1, 35*7c478bd9Sstevel@tonic-gate /* X */ 1, 1, 1, 1, 1, 1, 36*7c478bd9Sstevel@tonic-gate /* IX */ 0, 1, 1, 0, 0, 0, 37*7c478bd9Sstevel@tonic-gate /* IS */ 0, 0, 1, 0, 0, 0, 38*7c478bd9Sstevel@tonic-gate /* SIX */ 0, 1, 1, 0, 0, 0 39*7c478bd9Sstevel@tonic-gate }; 40