00001 // Module TQE_DEBUG.H "X-1" 00002 // 00003 // 00004 // Copyright 2001 Compaq Computer Corporation 00005 // 00006 // Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office. 00007 // 00008 // Confidential computer software. Valid license from Compaq required for 00009 // possession, use or copying. Consistent with FAR 12.211 and 12.212, 00010 // Commercial Computer Software, Computer Software Documentation, and 00011 // Technical Data for Commercial Items are licensed to the U.S. Government 00012 // under vendors standard commercial license. 00013 // 00014 //++ 00015 // 00016 // FACILITY: 00017 // 00018 // OpenVMS Executive (SYS) 00019 // 00020 // ABSTRACT: 00021 // 00022 // This module contains constants and structure definitions for the 00023 // timer queue tracing utility. 00024 // 00025 // AUTHOR: 00026 // 00027 // Christian Moser, August 2001 00028 // 00029 // MODIFIED BY: 00030 // 00031 // X-1 CMOS Christian Moser 21-AUG-2001 00032 // Initial version. 00033 // 00034 00035 // 00036 // Define some constants needed for both the debug and the SDA extension 00037 // image 00038 // 00039 #define TRACE_BUFFER_PAGES 128 00040 00041 #define TQEDBG$K_REV1 1 00042 #define TQEDBG$K_REVISION TQEDBG$K_REV1 00043 00044 #define TQEDBG$K_INSTIMQ 1 00045 #define TQEDBG$K_RMVTIMQ 2 00046 #define TQEDBG$K_TQEFIRE 3 00047 #define TQEDBG$K_RMVTIMQREQ 4 00048 00049 // 00050 // Define trace entry structure 00051 // 00052 typedef struct _trace_entry { 00053 uint64 timestamp; 00054 uint32 cpuid; 00055 uint32 flag; 00056 TQE *tqe; 00057 uint32 fpc; 00058 uint64 fr3; 00059 uint64 fr4; 00060 uint32 func; 00061 uint32 mode; 00062 uint32 pid; 00063 uint32 rqtype; 00064 } TRACE_ENTRY; 00065 00066 // 00067 // Define trace header structure 00068 // 00069 typedef struct _trace_hdr { 00070 uint32 idx; 00071 uint32 max_idx; 00072 unsigned short int mbo; 00073 unsigned char type; 00074 unsigned char subtype; 00075 uint32 scc; 00076 unsigned __int64 size; 00077 #pragma __required_pointer_size __save 00078 #pragma __required_pointer_size __long 00079 TRACE_ENTRY *entry_ptr; 00080 #pragma __required_pointer_size __restore 00081 TRACE_ENTRY entry[1]; 00082 } TRACE_HDR; 00083 00084 00085 // 00086 // Define shared structure used as communications area between debug image 00087 // and SDA extension image 00088 // 00089 typedef struct _tqedbg { 00090 int (*start_trace)(); 00091 int (*stop_trace)(); 00092 unsigned short int mbo; 00093 unsigned char type; 00094 unsigned char subtype; 00095 void (*reserved)(); 00096 unsigned __int64 size; 00097 #pragma __required_pointer_size __save 00098 #pragma __required_pointer_size __long 00099 TRACE_HDR *trace_buffer; 00100 #pragma __required_pointer_size __restore 00101 void (*trace_instimq)(); 00102 void (*trace_rmvtimq)(); 00103 void (*trace_tqefire)(); 00104 void (*trace_rmvtimqreq)(); 00105 int revision; 00106 int trace_run; 00107 int tqe_flags; 00108 int trace_flags; 00109 int cpu_flags; 00110 uint32 reserved_1; 00111 uint64 reserved_2; 00112 uint64 reserved_3; 00113 uint64 reserved_4; 00114 uint64 scc[32]; 00115 uint64 systime[32]; 00116 } TQEDBG;