OpenAFS
OpenAFS distributed network file system
/cygdrive/c/src/openafs/openafs.git/repo/src/WINNT/client_osi/osidb.h
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 
 All Data Structures Files Functions Variables