00001 // Module LNM_DEBUG.H "X-1" 00002 // 00003 // Copyright © Compaq Computer Corporation, 2001 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 // logical name tracing utility. 00025 // 00026 // AUTHOR: 00027 // 00028 // Christian Moser, March 2001 00029 // 00030 // MODIFIED BY: 00031 // 00032 // X-1 CMOS Christian Moser 21-AUG-2001 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 LNM$K_REV1 1 00043 #define LNM$K_REVISION LNM$K_REV1 00044 00045 // 00046 // Define trace entry structure 00047 // 00048 typedef struct _trace_entry { 00049 uint64 timestamp; 00050 uint32 cpuid; 00051 uint32 flag; 00052 uint64 callers_pc; 00053 uint32 pcb; 00054 uint32 epid; 00055 uint32 imgcnt; 00056 char main_image[24]; 00057 char lnm_string[32]; 00058 } TRACE_ENTRY; 00059 00060 // 00061 // Define trace header structure 00062 // 00063 typedef struct _trace_hdr { 00064 uint32 idx; 00065 uint32 max_idx; 00066 unsigned short int mbo; 00067 unsigned char type; 00068 unsigned char subtype; 00069 uint32 scc; 00070 unsigned __int64 size; 00071 #pragma __required_pointer_size __save 00072 #pragma __required_pointer_size __long 00073 TRACE_ENTRY *entry_ptr; 00074 #pragma __required_pointer_size __restore 00075 TRACE_ENTRY entry[1]; 00076 } TRACE_HDR; 00077 00078 00079 // 00080 // Define shared structure used as communications area between debug image 00081 // and SDA extension image 00082 // 00083 typedef struct _lnm { 00084 void (*trace_search_one)(); 00085 void (*trace_trnlnm)(); 00086 unsigned short int mbo; 00087 unsigned char type; 00088 unsigned char subtype; 00089 int (*reserved2)(); 00090 unsigned __int64 size; 00091 int (*start_trace)(); 00092 int (*stop_trace)(); 00093 #pragma __required_pointer_size __save 00094 #pragma __required_pointer_size __long 00095 TRACE_HDR *trace_buffer; 00096 #pragma __required_pointer_size __restore 00097 int revision; 00098 int trace_run; 00099 int lnm_flags; 00100 int trace_flags; 00101 int cpu_flags; 00102 uint32 reserved_1; 00103 uint64 reserved_2; 00104 uint64 reserved_3; 00105 uint64 reserved_4; 00106 uint64 scc[32]; 00107 uint64 systime[32]; 00108 } LNM;