lck_debug.h

Go to the documentation of this file.
00001 //      Module  LCK_DEBUG.H     "X-1"
00002 //
00003 //   Copyright © Compaq Computer Corporation, 2000 All Rights Reserved.
00004 //   Unpublished rights reserved under the copyright laws of the United States.
00005 //
00006 //   The software contained on this media is proprietary to and embodies the
00007 //   confidential technology of Compaq Computer Corporation.  Possession, use,
00008 //   duplication or dissemination of the software and media is authorized only
00009 //   pursuant to a valid written license from Compaq Computer Corporation.
00010 //
00011 //   RESTRICTED RIGHTS LEGEND   Use, duplication, or disclosure by the U.S.
00012 //   Government is subject to restrictions as set forth in Subparagraph
00013 //   (c)(1)(ii) of DFARS 252.227-7013, or in FAR 52.227-19, as applicable.
00014 //
00015 //++
00016 //
00017 //  FACILITY:
00018 //
00019 //      OpenVMS Executive (SYS)
00020 //
00021 //  ABSTRACT:
00022 //
00023 //      This module contains constants and structure definitions for the 
00024 //      lock manager tracing utility.
00025 //
00026 //  AUTHOR:
00027 //
00028 //      Christian Moser, August 2000
00029 //
00030 //  MODIFIED BY:
00031 //
00032 //      X-1     CMOS            Christian Moser         21-AUG-2000
00033 //              Initial version.
00034 //
00035 
00036 //
00037 // Define some constants needed for both the debug and the SDA extension
00038 // image
00039 //
00040 #define TRACE_BUFFER_PAGES 128
00041 
00042 #define LCK_NEWLOCK     1
00043 #define LCK_CONVERSION  2
00044 #define LCK_DEQUEUE     3
00045 #define LCK_EXIT        4
00046 #define LCK_ERROR       5
00047 #define LCK_STALL       6
00048 #define LCK_INFO        8
00049 #define LCK_GRANTED     9
00050 
00051 #define TRACE_NEWLOCK    (1 << LCK_NEWLOCK)
00052 #define TRACE_CONVERSION (1 << LCK_CONVERSION)
00053 #define TRACE_DEQUEUE    (1 << LCK_DEQUEUE)
00054 #define TRACE_EXIT       (1 << LCK_EXIT)
00055 #define TRACE_ERROR      (1 << LCK_ERROR)
00056 #define TRACE_STALL      (1 << LCK_STALL)
00057 #define TRACE_INFO       (1 << LCK_INFO)
00058 #define TRACE_GRANTED    (1 << LCK_GRANTED)
00059 
00060 #define DISP_LOCKS      1
00061 #define DISP_RESOURCES  2
00062 #define DISP_TREES      4
00063 
00064 #define OP_LOAD         1
00065 #define OP_REBUILD      2
00066 #define OP_REMASTER     4
00067 
00068 
00069 typedef struct _trace_entry {
00070         int64           timestamp;
00071         int32           flag;
00072         int             pid;
00073         uint64          lkb;
00074         uint64          rsb;
00075         char            resource[32];
00076         uint64          par_lkb;
00077         uint64          par_rsb;
00078         uint32          cpudb;
00079         uint32          status;
00080         uint32          enq_flags;
00081         uint8           rsnlen;
00082         uint8           fill1;
00083         int8            rqmode;
00084         int8            grmode;
00085         } TRACE_ENTRY;
00086 
00087 //
00088 // Define trace header structure
00089 //
00090 typedef struct _trace_hdr {
00091         uint32                  idx;
00092         uint32                  max_idx;
00093         unsigned short int      mbo;    
00094         unsigned char           type;   
00095         unsigned char           subtype;
00096         uint32                  scc;
00097         unsigned __int64        size;     
00098         #pragma __required_pointer_size __save  
00099         #pragma __required_pointer_size __long  
00100         TRACE_ENTRY             *entry_ptr;
00101         #pragma __required_pointer_size __restore 
00102         TRACE_ENTRY             entry[1];
00103         } TRACE_HDR;
00104 
00105 
00106 //
00107 // Define shared structure used as communications area between debug image
00108 // and SDA extension image
00109 //
00110 typedef struct _lckdbg {
00111         int                     (*trace_newlock)();
00112         int                     (*trace_conversion)();
00113         unsigned short int      mbo;    
00114         unsigned char           type;        
00115         unsigned char           subtype;     
00116         int                     (*trace_dequeue)();
00117         unsigned __int64        size;     
00118         int                     (*trace_exit)();
00119         int                     (*trace_error)();
00120         int                     (*trace_stall)();
00121         int                     (*debug_print)();
00122         int                     (*start_trace)();
00123         int                     (*stop_trace)();
00124         #pragma __required_pointer_size __save  
00125         #pragma __required_pointer_size __long
00126         TRACE_HDR               *trace_buffer;          
00127         #pragma __required_pointer_size __restore 
00128         int                     (*trace_granted)();
00129         int                     fill1;
00130         int                     (*rebuild)();
00131         int                     (*remaster)();
00132         int                     (*start_rebuild)();
00133         int                     (*stop_rebuild)();
00134         int                     (*start_remaster)();
00135         int                     (*stop_remaster)();
00136         #pragma __required_pointer_size __save  
00137         #pragma __required_pointer_size __long
00138         TQE64                   *tqe_rebuild;
00139         TQE64                   *tqe_remaster;
00140         #pragma __required_pointer_size __restore 
00141         int                     trace_flags;
00142         int                     fill2;
00143         int                     (*start_regression)();
00144         int                     (*stop_regression)();
00145         int                     regr_flags;
00146         int                     regr_threads;
00147         int                     regr_trees;
00148         int                     regr_locks;
00149         uint64                  regr_ticks;
00150         int64                   scc_b[CPU$C_MAX_CPUS];
00151         int64                   systime_b[CPU$C_MAX_CPUS];
00152         } LCKDBG;
00153 

SourceForge.net Logo
Project space on SourceForge.net