OpenAFS
OpenAFS distributed network file system
|
00001 /* 00002 * Copyright 2000, International Business Machines Corporation and others. 00003 * All Rights Reserved. 00004 * 00005 * This software has been released under the terms of the IBM Public 00006 * License. For details, see the LICENSE file in the top-level source 00007 * directory or online at http://www.openafs.org/dl/license10.html 00008 */ 00009 00010 /* Copyright (C) 1994 Cazamar Systems, Inc. */ 00011 00012 #ifndef OPENAFS_WINNT_CLIENT_OSI_OSIDB_H 00013 #define OPENAFS_WINNT_CLIENT_OSI_OSIDB_H 1 00014 00015 /* mapped over remote debugging integer array for rwlock and mutexes 00016 * mutexes only have writers 00017 */ 00018 typedef struct osi_remLockInfo { 00019 /* the type: rwlock or mutex */ 00020 long type; 00021 00022 /* the addr */ 00023 LONG_PTR lockAddr; 00024 00025 /* raw state */ 00026 long readers; 00027 long writers; /* should be 0 or 1 */ 00028 long waiters; /* non-zero means someone waiting */ 00029 long owner; /* one tid, not complete if >1 readers, 0 if unknown */ 00030 00031 /* raw statistics, times in ms. For mutexes, we only 00032 * fill in the write times. 00033 */ 00034 long writeLockedCount; 00035 long writeLockedTime; 00036 long writeBlockedCount; 00037 long writeBlockedTime; 00038 long readLockedCount; 00039 long readLockedTime; 00040 long readBlockedCount; 00041 long readBlockedTime; 00042 } osi_remLockInfo_t; 00043 00044 /* mapped over remote debugging integer array */ 00045 typedef struct osi_remSleepInfo { 00046 thread_t tid; /* thread id of the blocked thread */ 00047 LONG_PTR sleepValue; /* the value we're sleeping at */ 00048 } osi_remSleepInfo_t; 00049 00050 #define OSI_MAXRPCCALLS 2 /* one for osidb, one for AFS RPC */ 00051 00052 extern long osi_InitDebug(osi_uid_t *); 00053 00054 /* only available within the OSI package */ 00055 extern long osi_maxCalls; 00056 00057 /* use this from outside of the OSI package */ 00058 extern long *osi_maxCallsp; 00059 00060 #endif /* OPENAFS_WINNT_CLIENT_OSI_OSIDB_H */ 00061