2280 lines
63 KiB
C
Executable File
2280 lines
63 KiB
C
Executable File
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
|
|
/* All Rights Reserved */
|
|
|
|
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
|
|
/* The copyright notice above does not evidence any */
|
|
/* actual or intended publication of such source code. */
|
|
|
|
/*
|
|
* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
* PROPRIETARY NOTICE (Combined)
|
|
*
|
|
* This source code is unpublished proprietary information
|
|
* constituting, or derived under license from AT&T's UNIX(r) System V.
|
|
* In addition, portions of such source code were derived from Berkeley
|
|
* 4.3 BSD under license from the Regents of the University of
|
|
* California.
|
|
*
|
|
*
|
|
*
|
|
* Copyright Notice
|
|
*
|
|
* Notice of copyright on this source code product does not indicate
|
|
* publication.
|
|
*
|
|
* (c) 1986,1987,1988,1989 Sun Microsystems, Inc
|
|
* (c) 1983,1984,1985,1986,1987,1988,1989 AT&T.
|
|
* All rights reserved.
|
|
*
|
|
*/
|
|
|
|
#ifndef _SYS_VTRACE_H
|
|
#define _SYS_VTRACE_H
|
|
|
|
#pragma ident "@(#)vtrace.h 2.78 95/07/19 SMI"
|
|
|
|
#ifndef _ASM
|
|
#include <sys/types.h>
|
|
#include <sys/time.h>
|
|
#ifdef _KERNEL
|
|
#include <sys/cpuvar.h>
|
|
#endif /* _KERNEL */
|
|
#endif /* _ASM */
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*
|
|
* This file defines the vtrace tracing mechanism. The trace record format
|
|
* described here is used for both kernel and user level tracing.
|
|
*
|
|
* Each trace record consists of a header word followed by up to 63
|
|
* words of data. The number of data words is constant for each type
|
|
* of trace record, i.e., for each event (see definitions below).
|
|
* The header word has the following format:
|
|
*
|
|
* -------------------------------------
|
|
* | FAC | TAG | TIME DELTA |
|
|
* -------------------------------------
|
|
* 31..24 23..16 15..0
|
|
*
|
|
* That is, header = (FAC << 24) | (TAG << 16) | TIME,
|
|
*
|
|
* where:
|
|
*
|
|
* FAC = 8-bit facility tag: VM, STREAMS, UFS, ...
|
|
* TAG = 8-bit tag within that facility
|
|
* TIME = 16-bit hi-res time delta since the last trace record
|
|
*
|
|
* The (facility, tag) pair defines the event:
|
|
*
|
|
* EVENT = (FAC << 8) | TAG
|
|
*
|
|
* Therefore, the header can also be viewed as
|
|
*
|
|
* -------------------------------------
|
|
* | EVENT | TIME DELTA |
|
|
* -------------------------------------
|
|
* 31..16 15..0
|
|
*
|
|
* That is, header = (EVENT << 16) | TIME.
|
|
*
|
|
* Key points:
|
|
*
|
|
* 1. As shown above, each event is identified by a 16-bit ID, which can
|
|
* also be viewed as a (facility, tag) byte pair. Facilities provide a
|
|
* logical partitioning of the event name space, e.g. UFS, VM, SYSCALL, etc.
|
|
* Tracing can be enabled/disabled by facility or by individual event.
|
|
*
|
|
* 2. vtrace keeps track of the writing thread ID. When the writing thread
|
|
* changes, vtrace automatically issues a special thread ID record.
|
|
*
|
|
* 3. We write out the CPU number only once, since each CPU has a
|
|
* separate trace buffer. For MP systems, we use a post-processing
|
|
* program (trmerge) to merge and time-sort the trace files for
|
|
* each CPU into a single, time-ordered file. trmerge generates
|
|
* synthetic trace records to indicate changes in the writing CPU.
|
|
*
|
|
* 4. The facility space is partitioned into [0..127] for kernel trace
|
|
* events, and [128..255] for user-level trace events, so you can
|
|
* merge kernel and user trace files without namespace collisions.
|
|
*
|
|
* 5. The first time an event is encountered, its trace record is
|
|
* preceded by a TR_LABEL record. (The version record is the lone
|
|
* exception, since it must be the first record in the file - see below.)
|
|
* The label defines the number and type of data fields for that event.
|
|
* For example, consider the trace point:
|
|
*
|
|
* TRACE_3(TR_FAC_FOO, TR_BAR,
|
|
* "foobar:year %d message %s gross %d",
|
|
* 1992, "hello world", 144);
|
|
*
|
|
* The TR_LABEL record for this event would contain:
|
|
*
|
|
* - facility (TR_FAC_FOO)
|
|
* - tag (TR_BAR)
|
|
* - size (4 words: 1 header word plus 3 data words)
|
|
* - name ("foobar")
|
|
* - format ("year %d message %s gross %d")
|
|
* - a bitmap indicating which data fields are numbers (1 and 3)
|
|
* and which are strings (2).
|
|
*
|
|
* Each TR_LABEL record is followed by a TR_DATA record (see below)
|
|
* containing the name and format strings for the event, stored as
|
|
* name\0format\0.
|
|
*
|
|
* WARNING: Each event must have a *unique* label. Therefore, if
|
|
* you put in a pair of trace points in routine foo_lookup() like:
|
|
*
|
|
* TRACE_0(TR_FAC_FOO, TR_FOO_LOOKUP_END, "foo_lookup_end:error");
|
|
*
|
|
* and
|
|
*
|
|
* TRACE_0(TR_FAC_FOO, TR_FOO_LOOKUP_END, "foo_lookup_end:success");
|
|
*
|
|
* this will *not* have the desired effect. Whichever trace point is
|
|
* encountered first will determine the label for all subsequent
|
|
* (TR_FAC_FOO, TR_FOO_LOOKUP_END) trace points. Thus, if the first
|
|
* trace point encountered in foo_lookup() was the error case, then
|
|
* every foo_lookup() call would appear in the trace file as though
|
|
* it exited with an error.
|
|
*
|
|
* There are two acceptable ways to handle cases like this:
|
|
*
|
|
* (1) Use different tags for the different cases:
|
|
*
|
|
* TRACE_0(TR_FAC_FOO, TR_FOO_LOOKUP_ERROR, "foo_lookup_end:error");
|
|
* TRACE_0(TR_FAC_FOO, TR_FOO_LOOKUP_SUCCESS, "foo_lookup_end:success");
|
|
*
|
|
* (2) Use a data field to contain the extra information:
|
|
*
|
|
* TRACE_1(TR_FAC_FOO, TR_FOO_LOOKUP_END,
|
|
* "foo_lookup_end:exit code %d", exit_code);
|
|
*
|
|
* 6. In order to support string names and other variable length data
|
|
* items, we define several TR_DATA records. These records come in
|
|
* 4, 8, 16, 32, and 64-word sizes, and hold 3, 7, 15, 31, or 63 words
|
|
* of data, respectively, in addition to the usual header word.
|
|
* Data records are appended to any trace records that need to hold
|
|
* strings or other variable-size data. All strings must be null-terminated;
|
|
* thus, the maximum string length is 63 * 4 - 1 = 251 characters.
|
|
* Longer strings are automatically truncated.
|
|
*
|
|
* 7. When a trace record contains string data, the actual string is stored
|
|
* in a subsequent TR_DATA record. The data field corresponding to the
|
|
* string contains the offset into the trace file where the string begins.
|
|
* For example, if our example trace point
|
|
*
|
|
* TRACE_3(TR_FAC_FOO, TR_BAR,
|
|
* "foobar:year %d message %s gross %d",
|
|
* 1992, "hello world", 144);
|
|
*
|
|
* began at offset 3000 in the trace file, the contents of the trace file
|
|
* would look like this:
|
|
*
|
|
* offset word
|
|
* 3000 header word = FTT2HEAD (TR_FAC_FOO, TR_BAR, time_delta)
|
|
* 3004 1992
|
|
* 3008 3020
|
|
* 3012 144
|
|
* 3016 header word = FTT2HEAD (TR_FAC_TRACE, TR_DATA_4, 0)
|
|
* 3020 "hell"
|
|
* 3024 "o wo"
|
|
* 3028 "rld\0"
|
|
*
|
|
* 8. Trace files have the following format after trmerge post-processing:
|
|
*
|
|
* - header section:
|
|
*
|
|
* - version record
|
|
* - label records for all events
|
|
* - start_hrtime record
|
|
* - abs_time record
|
|
* - pagesize record
|
|
* - num_cpus record
|
|
* - cpu record
|
|
* - title record
|
|
* - thread ID of tracing process
|
|
* - padding to the end of the page
|
|
*
|
|
* - main section; each page looks like:
|
|
*
|
|
* - total time record
|
|
* - kthread id record (or uthread id record)
|
|
* - writing CPU record
|
|
* - trace data
|
|
* - padding to the end of the page, if the next trace record
|
|
* doesn't fit
|
|
*
|
|
* 9. GUIDELINES FOR ADDING TRACE POINTS:
|
|
*
|
|
* If you are adding a new facility:
|
|
*
|
|
* - THE MOST IMPORTANT THING: remember that the kernel only owns
|
|
* facilities 2 through 127. 0 and 1 are reserved, and 128 through
|
|
* 255 belong to user-level tracing.
|
|
*
|
|
* - Facility names should all begin with TR_FAC.
|
|
*
|
|
* - Try to pick a meaningful, descriptive name. If the trace points
|
|
* only occur in one module, the module's name is probably a good
|
|
* choice, e.g. TR_FAC_AUDIO. In particular, each filesystem should
|
|
* have its own facility. On the other hand, if you're putting
|
|
* trace points into bwtwo, consider defining a TR_FAC_FRAMEBUFFER
|
|
* (with tags for bwtwo, cgsix, etc.) instead of defining TR_FAC_BWTWO,
|
|
* so we don't exhaust the facility namespace.
|
|
*
|
|
* If you are adding new tags:
|
|
*
|
|
* - Tag names should begin with TR.
|
|
*
|
|
* - Again, try to pick a meaningful, descriptive name. In particular,
|
|
* if you are defining trace points for the start and end of routine
|
|
* foo, use TR_FOO_START and TR_FOO_END. If there are multiple entry/
|
|
* exit points, try to follow the example of the TR_PAGE_CREATE tags
|
|
* below.
|
|
*
|
|
* Adding the actual trace points:
|
|
*
|
|
* - A trace point has the form:
|
|
*
|
|
* TRACE_n(fac, tag, "name:format" , data_1, ... ,data_n);
|
|
*
|
|
* where:
|
|
* n = number of data words
|
|
* fac = facility
|
|
* tag = tag
|
|
* name = name of the event
|
|
* format = format string (printf style) for printing the data
|
|
* data_* = any data that fits in a long/u_long, or a pointer
|
|
* = to a string
|
|
*
|
|
* - Examples:
|
|
*
|
|
* TRACE_3(TR_FAC_UFS, TR_UFS_READ_START,
|
|
* "ufs_read_start:vp %x uiop %x ioflag %x", vp, uiop, ioflag);
|
|
*
|
|
* TRACE_2(TR_FAC_UFS, TR_UFS_LOOKUP_START,
|
|
* "ufs_lookup_start:dvp %x name %s", dvp, nm);
|
|
*
|
|
* TRACE_0(TR_FAC_TRAP, TR_TRAP_END, "trap_end");
|
|
*
|
|
* - The name:format string should consist of the event name, a colon,
|
|
* and the format string for printing the data. (If there is no data,
|
|
* you can omit the colon and format string, as in the third example.)
|
|
*
|
|
* - In addition to the usual %d, %x, %s, etc., format strings may also
|
|
* contain %K, which denotes a kernel address, or %T, which denotes
|
|
* a kernel thread ID. trmerge converts %K kernel addresses into
|
|
* symbolic names, and %T kthread IDs into thread names.
|
|
* See bcopy() for sample usage of %K; see disp() for sample usage
|
|
* of %T.
|
|
*/
|
|
|
|
/*
|
|
* Facility definitions
|
|
*/
|
|
|
|
#define TR_FAC_TRACE 0 /* administrative trace records */
|
|
#define TR_FAC_TEST 1 /* kernel trace mechanism tests */
|
|
#define TR_FAC_TRAP 2 /* traps */
|
|
#define TR_FAC_INTR 3 /* interrupts */
|
|
#define TR_FAC_SYSCALL 4 /* system calls */
|
|
#define TR_FAC_DISP 5 /* dispatcher */
|
|
#define TR_FAC_VM 6 /* VM system */
|
|
#define TR_FAC_PROC 7 /* process subsystem */
|
|
#define TR_FAC_LOCK 8 /* locks: mutex, rw, cv */
|
|
#define TR_FAC_BCOPY 9 /* bcopy and friends */
|
|
#define TR_FAC_KMEM 10 /* kmem_alloc(), etc. */
|
|
#define TR_FAC_STREAMS_FR 11 /* STREAMS framework */
|
|
#define TR_FAC_STREAMS_MOD 12 /* misc STREAMS module or driver */
|
|
#define TR_FAC_SOCKMOD 13 /* streams socket module */
|
|
#define TR_FAC_TCP 14 /* tcp protocol module */
|
|
#define TR_FAC_UDP 15 /* udp protocol module */
|
|
#define TR_FAC_IP 16 /* ip protocol module */
|
|
#define TR_FAC_ARP 17 /* arp protocol module */
|
|
#define TR_FAC_LE 18 /* lance ethernet driver */
|
|
#define TR_FAC_IPI 19 /* IPI driver */
|
|
#define TR_FAC_MCOUNT 20 /* compiler-generated via mcount */
|
|
#define TR_FAC_SCSI 21 /* SCSI */
|
|
#define TR_FAC_LWP 22 /* lwps */
|
|
#define TR_FAC_SYS_LWP 23 /* lwp system calls */
|
|
#define TR_FAC_CALLOUT 24 /* callout table */
|
|
#define TR_FAC_SPECFS 29 /* specfs fileystem */
|
|
#define TR_FAC_SWAPFS 30 /* specfs fileystem */
|
|
#define TR_FAC_TMPFS 31 /* specfs fileystem */
|
|
#define TR_FAC_UFS 32 /* UFS */
|
|
#define TR_FAC_NFS 33 /* NFS */
|
|
#define TR_FAC_DDI 35 /* DDI */
|
|
#define TR_FAC_KRPC 36 /* Kernel RPC */
|
|
#define TR_FAC_SCHED 37 /* swapper */
|
|
#define TR_FAC_SCSI_RES 38 /* SCSI_RESOURCE */
|
|
#define TR_FAC_SCSI_ISP 39 /* ISP HBA Driver SCSI */
|
|
#define TR_FAC_IA 40 /* IA scheduling class */
|
|
#define TR_FAC_S5 41 /* S5 */
|
|
#define TR_FAC_QE 42 /* QED Ethernet driver */
|
|
#define TR_FAC_BE 43 /* Fast Ethernet driver */
|
|
#define TR_FAC_FIFO 44 /* Fifos */
|
|
#define TR_FAC_RLOGINP 45 /* rlmod protocol module */
|
|
#define TR_FAC_AE 46 /* PCnet (Am79C970) ethernet driver */
|
|
|
|
/*
|
|
* TR_FAC_DDI tags
|
|
*/
|
|
|
|
#define TR_DDI_DMA_BUF_SETUP_START 0
|
|
#define TR_DDI_DMA_BUF_SETUP_END 1
|
|
#define TR_IOMMUNEX_DMA_MAP_START 2
|
|
#define TR_IOMMUNEX_DMA_MAP_END 3
|
|
#define TR_IOMMUNEX_DMA_MAP_GETDVMAPAGES_START 4
|
|
#define TR_IOMMUNEX_DMA_MAP_GETDVMAPAGES_END 5
|
|
|
|
/*
|
|
* TR_FAC_TRACE tags -- for internal use. All times are in microseconds.
|
|
*/
|
|
|
|
#define TR_END 0 /* end of trace file */
|
|
#define TR_VERSION 1 /* trace record format */
|
|
#define TR_TITLE 2 /* title of trace file */
|
|
#define TR_PAD 3 /* pad record, to fill out a page */
|
|
#define TR_LABEL 4 /* trace record label */
|
|
#define TR_PAGESIZE 5 /* system page size */
|
|
#define TR_NUM_CPUS 6 /* number of CPUs on the system */
|
|
#define TR_CPU 7 /* which cpu is writing */
|
|
#define TR_DATA_4 8 /* generic data, header + 3 words */
|
|
#define TR_DATA_8 9 /* generic data, header + 7 words */
|
|
#define TR_DATA_16 10 /* generic data, header + 15 words */
|
|
#define TR_DATA_32 11 /* generic data, header + 31 words */
|
|
#define TR_DATA_64 12 /* generic data, header + 63 words */
|
|
#define TR_ABS_TIME 13 /* absolute time since epoch */
|
|
#define TR_START_TIME 14 /* 64-bit time at start of trace */
|
|
#define TR_ELAPSED_TIME 15 /* 32-bit time since previous trace */
|
|
#define TR_TOTAL_TIME 16 /* 64-bit time since start of trace */
|
|
#define TR_KTHREAD_ID 17 /* kernel thread id */
|
|
#define TR_UTHREAD_ID 18 /* user thread id */
|
|
|
|
/*
|
|
* The rest of the TR_FAC_TRACE tags appear only in raw trace files:
|
|
*/
|
|
|
|
#define TR_RAW_KTHREAD_ID 64 /* raw (trace-time) kernel thread id */
|
|
#define TR_RAW_UTHREAD_ID 65 /* raw (trace-time) user thread id */
|
|
#define TR_KTHREAD_LABEL 66 /* kernel thread label */
|
|
#define TR_UTHREAD_LABEL 67 /* user thread label */
|
|
#define TR_PROCESS_NAME 68 /* ps-style process name */
|
|
#define TR_PROCESS_FORK 69 /* generated when a process forks */
|
|
|
|
/*
|
|
* TR_FAC_TEST tags -- diagnostics for the trace mechanism
|
|
*/
|
|
|
|
#define TR_SPEED_0 0
|
|
#define TR_SPEED_1 1
|
|
#define TR_SPEED_1_STRING 2
|
|
#define TR_SPEED_2 3
|
|
#define TR_SPEED_2_STRING 4
|
|
#define TR_SPEED_3 5
|
|
#define TR_SPEED_3_STRING 6
|
|
#define TR_SPEED_4 7
|
|
#define TR_SPEED_4_STRING 8
|
|
#define TR_SPEED_5 9
|
|
#define TR_SPEED_5_STRING 10
|
|
#define TR_TRACE_FLUSH_START 11
|
|
#define TR_TRACE_FLUSH_END 12
|
|
#define TR_TRACE_VN_WRITE_START 13
|
|
#define TR_TRACE_VN_WRITE_END 14
|
|
|
|
/*
|
|
* TR_FAC_TRAP tags
|
|
*/
|
|
|
|
#define TR_TRAP_START 0
|
|
#define TR_TRAP_END 1
|
|
#define TR_KERNEL_WINDOW_OVERFLOW 2
|
|
#define TR_KERNEL_WINDOW_UNDERFLOW 3
|
|
#define TR_USER_WINDOW_OVERFLOW 4
|
|
#define TR_USER_WINDOW_UNDERFLOW 5
|
|
#define TR_C_TRAP_HANDLER_ENTER 6
|
|
#define TR_C_TRAP_HANDLER_EXIT 7
|
|
|
|
/*
|
|
* TR_FAC_INTR tags
|
|
*/
|
|
|
|
#define TR_INTR_START 0
|
|
#define TR_INTR_END 1
|
|
#define TR_INTR_EXIT 2
|
|
#define TR_INTR_PASSIVATE 3
|
|
|
|
/*
|
|
* TR_FAC_SYSCALL tags
|
|
*/
|
|
|
|
#define TR_SYSCALL_START 0
|
|
#define TR_SYSCALL_END 1
|
|
|
|
/*
|
|
* TR_FAC_DISP tags
|
|
*/
|
|
|
|
#define TR_DISP_START 0
|
|
#define TR_DISP_END 1
|
|
#define TR_SWTCH_START 2
|
|
#define TR_SWTCH_END 3
|
|
#define TR_PREEMPT_START 4
|
|
#define TR_PREEMPT_END 5
|
|
#define TR_RESUME_START 6
|
|
#define TR_RESUME_END 7
|
|
#define TR_FRONTQ 8
|
|
#define TR_BACKQ 9
|
|
#define TR_CPU_RESCHED 10
|
|
#define TR_SLEEP 11
|
|
#define TR_TRAPRET 12
|
|
#define TR_TICK 13
|
|
#define TR_UPDATE 14
|
|
#define TR_CPU_CHOOSE 15
|
|
#define TR_CPU_SURRENDER 16
|
|
#define TR_PREEMPT 17
|
|
|
|
|
|
/*
|
|
* TR_FAC_VM tags
|
|
*/
|
|
|
|
#define TR_PAGE_INIT 0
|
|
#define TR_PAGE_WS_IN 1
|
|
#define TR_PAGE_WS_OUT 2
|
|
#define TR_PAGE_WS_FREE 3
|
|
#define TR_PAGE_WS_RECLAIM 4
|
|
#define TR_PAGEOUT_START 5
|
|
#define TR_PAGEOUT_END 6
|
|
#define TR_PAGEOUT_HAND_WRAP 7
|
|
#define TR_PAGEOUT_MAXPGIO 8
|
|
#define TR_PAGEOUT_ISREF 9
|
|
#define TR_PAGEOUT_FREE 10
|
|
#define TR_PAGEOUT_CV_SIGNAL 11
|
|
#define TR_HAT_SETMOD 12
|
|
#define TR_HAT_SETREF 13
|
|
#define TR_HAT_SETREFMOD 14
|
|
#define TR_HAT_CLRMOD 15
|
|
#define TR_HAT_CLRREF 16
|
|
#define TR_HAT_CLRREFMOD 17
|
|
#define TR_HME_ADD 18
|
|
#define TR_HME_SUB 19
|
|
#define TR_SEGMAP_FAULT 20
|
|
#define TR_SEGMAP_GETMAP 21
|
|
#define TR_SEGMAP_RELMAP 22
|
|
#define TR_SEGMAP_PAGECREATE 23
|
|
#define TR_SEGMAP_GETPAGE 24
|
|
#define TR_SEGVN_FAULT 25
|
|
#define TR_SEGVN_GETPAGE 26
|
|
#define TR_ANON_GETPAGE 27
|
|
#define TR_ANON_PRIVATE 28
|
|
#define TR_SEGKMEM_ALLOC 29
|
|
#define TR_SWAP_ALLOC 30
|
|
#define TR_PVN_READ_KLUSTER 31
|
|
#define TR_PVN_GETDIRTY 32
|
|
#define TR_PAGE_CREATE_START 33
|
|
#define TR_PAGE_CREATE_TOOBIG 34
|
|
#define TR_PAGE_CREATE_NOMEM 35
|
|
#define TR_PAGE_CREATE_SUCCESS 36
|
|
#define TR_PAGE_CREATE_SLEEP_START 37
|
|
#define TR_PAGE_CREATE_SLEEP_END 38
|
|
#define TR_PAGE_CREATE_ALLOC 39
|
|
#define TR_PAGE_FREE_FREE 40
|
|
#define TR_PAGE_FREE_CACHE_HEAD 41
|
|
#define TR_PAGE_FREE_CACHE_TAIL 42
|
|
#define TR_PAGE_UNFREE_FREE 43
|
|
#define TR_PAGE_UNFREE_CACHE 44
|
|
#define TR_PAGE_DESTROY 45
|
|
#define TR_PAGE_HASHIN 46
|
|
#define TR_PAGE_HASHOUT 47
|
|
#define TR_ANON_PROC 48
|
|
#define TR_ANON_SHM 49
|
|
#define TR_ANON_TMPFS 50
|
|
#define TR_ANON_SWAP 51
|
|
#define TR_ANON_EXEC 52
|
|
#define TR_ANON_SEGKP 53
|
|
#define TR_SAMPLE_REF 54
|
|
#define TR_SAMPLE_MOD 55
|
|
#define TR_SAMPLE_WS_START 56
|
|
#define TR_SAMPLE_WS_END 57
|
|
#define TR_KAS_INFO 58
|
|
#define TR_AS_INFO 59
|
|
#define TR_SEG_INFO 60
|
|
#define TR_PAGE_RENAME 61
|
|
#define TR_SWAP_RENAME 62
|
|
|
|
/*
|
|
* TR_FAC_PROC tags
|
|
*/
|
|
|
|
#define TR_PROC_EXEC 0
|
|
#define TR_PROC_EXIT 1
|
|
#define TR_PROC_FORK 2
|
|
#define TR_EXECMAP_PREREAD 3
|
|
#define TR_EXECMAP_NO_PREREAD 4
|
|
|
|
/*
|
|
* TR_FAC_SCHED tags
|
|
*/
|
|
|
|
#define TR_SWAPIN 0
|
|
#define TR_SWAPOUT 1
|
|
#define TR_RUNIN 2
|
|
#define TR_RUNOUT 3
|
|
#define TR_CHOOSE_SWAPOUT 4
|
|
#define TR_CHOOSE_SWAPIN 5
|
|
#define TR_SOFTSWAP 6
|
|
#define TR_HARDSWAP 7
|
|
#define TR_DESPERATE 8
|
|
#define TR_HIGH_DEFICIT 9
|
|
#define TR_SWAPIN_VALUES 10
|
|
#define TR_UNLOAD 11
|
|
#define TR_SWAPOUT_LWP 12
|
|
#define TR_SWAPQ_LWP 13
|
|
#define TR_SWAPQ_PROC 14
|
|
|
|
/*
|
|
* TR_FAC_LOCK tags
|
|
*/
|
|
|
|
#define TR_RW_ENTER_RD_START 0
|
|
#define TR_RW_ENTER_RD_END 1
|
|
#define TR_RW_ENTER_WR_START 2
|
|
#define TR_RW_ENTER_WR_END 3
|
|
#define TR_RW_EXIT_START 4
|
|
#define TR_RW_EXIT_END 5
|
|
|
|
/*
|
|
* TR_FAC_BCOPY tags
|
|
*/
|
|
|
|
#define TR_BCOPY_START 0
|
|
#define TR_KCOPY_START 1
|
|
#define TR_PGCOPY_START 2
|
|
#define TR_COPYOUT_START 3
|
|
#define TR_COPYIN_START 4
|
|
#define TR_COPY_END 5
|
|
#define TR_COPY_FAULT 6
|
|
#define TR_COPYOUT_FAULT 7
|
|
#define TR_COPYIN_FAULT 8
|
|
#define TR_COPYIN_NOERR_START 9
|
|
#define TR_COPYOUT_NOERR_START 10
|
|
|
|
/*
|
|
* TR_FAC_KMEM tags
|
|
*/
|
|
|
|
#define TR_KMEM_ALLOC_START 0
|
|
#define TR_KMEM_ALLOC_END 1
|
|
#define TR_KMEM_ZALLOC_START 2
|
|
#define TR_KMEM_ZALLOC_END 3
|
|
#define TR_KMEM_FREE_START 4
|
|
#define TR_KMEM_FREE_END 5
|
|
#define TR_KMEM_FAST_ALLOC_START 6
|
|
#define TR_KMEM_FAST_ALLOC_END 7
|
|
#define TR_KMEM_FAST_ZALLOC_START 8
|
|
#define TR_KMEM_FAST_ZALLOC_END 9
|
|
#define TR_KMEM_FAST_FREE_START 10
|
|
#define TR_KMEM_FAST_FREE_END 11
|
|
#define TR_KMEM_CACHE_ALLOC_START 12
|
|
#define TR_KMEM_CACHE_ALLOC_END 13
|
|
#define TR_KMEM_CACHE_FREE_START 14
|
|
#define TR_KMEM_CACHE_FREE_END 15
|
|
#define TR_KMEM_SLAB_CREATE_START 16
|
|
#define TR_KMEM_SLAB_CREATE_END 17
|
|
#define TR_KMEM_SLAB_DESTROY_START 18
|
|
#define TR_KMEM_SLAB_DESTROY_END 19
|
|
#define TR_KMEM_GETPAGES_START 20
|
|
#define TR_KMEM_GETPAGES_END 21
|
|
#define TR_KMEM_FREEPAGES_START 22
|
|
#define TR_KMEM_FREEPAGES_END 23
|
|
#define TR_KMEM_ASYNC_DISPATCH_START 24
|
|
#define TR_KMEM_ASYNC_DISPATCH_END 25
|
|
#define TR_KMEM_ASYNC_SERVICE_START 26
|
|
#define TR_KMEM_ASYNC_SERVICE_END 27
|
|
#define TR_KMEM_HASH_RESCALE_START 28
|
|
#define TR_KMEM_HASH_RESCALE_END 29
|
|
|
|
/*
|
|
* TR_FAC_STREAMS_FR tags
|
|
*/
|
|
|
|
#define TR_STROPEN 0
|
|
#define TR_STRCLOSE 1
|
|
#define TR_STRCLEAN 2
|
|
#define TR_STRREAD_ENTER 3
|
|
#define TR_STRREAD_WAIT 4
|
|
#define TR_STRREAD_DONE 5
|
|
#define TR_STRREAD_AWAKE 6
|
|
#define TR_STRRPUT_ENTER 7
|
|
#define TR_STRRPUT_PROTERR 8
|
|
#define TR_STRRPUT_WAKE 9
|
|
#define TR_STRRPUT_WAKE2 10
|
|
#define TR_STRWSRV 11
|
|
#define TR_IOCTL_ENTER 12
|
|
#define TR_I_CANT_FIND 13
|
|
#define TR_I_PUSH 14
|
|
#define TR_I_POP 15
|
|
#define TR_I_LINK 16
|
|
#define TR_STPDOWN 17
|
|
#define TR_I_UNLINK 18
|
|
#define TR_STRDOIOCTL 19
|
|
#define TR_STRDOIOCTL_WAIT 20
|
|
#define TR_STRDOIOCTL_PUT 21
|
|
#define TR_STRDOIOCTL_WAIT2 22
|
|
#define TR_STRDOIOCTL_ACK 23
|
|
#define TR_STRSENDSIG 24
|
|
#define TR_QATTACH_FLAGS 25
|
|
#define TR_STRTIME 26
|
|
#define TR_STR2TIME 27
|
|
#define TR_STR3TIME 28
|
|
#define TR_STRWAITQ_WAIT 29
|
|
#define TR_STRWAITQ_INTR 30
|
|
#define TR_STRWAITQ_WAKE 31
|
|
#define TR_STRWAITQ_WAIT2 32
|
|
#define TR_STRWAITQ_INTR2 33
|
|
#define TR_STRWAITQ_WAKE2 34
|
|
#define TR_QRUN_START 35
|
|
#define TR_QRUN_DONE 36
|
|
#define TR_DQ_SERVICE 37
|
|
#define TR_RMV_QP 38
|
|
#define TR_QRUNSERVICE_START 39
|
|
#define TR_BACKGROUND_DQ 40
|
|
#define TR_BACKGROUND_DONE 41
|
|
#define TR_SENDSIG 42
|
|
#define TR_INSERTQ 43
|
|
#define TR_REMOVEQ 44
|
|
#define TR_DRAIN_SYNCQ_PUT 45
|
|
#define TR_FILL_SYNCQ 46
|
|
#define TR_CANPUT_IN 47
|
|
#define TR_CANPUT_OUT 48
|
|
#define TR_BCANPUT_IN 49
|
|
#define TR_BCANPUT_OUT 50
|
|
#define TR_STRWRITE_IN 51
|
|
#define TR_STRWRITE_OUT 52
|
|
#define TR_STRWRITE_WAIT 53
|
|
#define TR_STRWRITE_WAKE 54
|
|
#define TR_STRWRITE_PUT 55
|
|
#define TR_STRWRITE_RESID 56
|
|
#define TR_STRPUTMSG_IN 57
|
|
#define TR_STRPUTMSG_WAIT 58
|
|
#define TR_STRPUTMSG_WAKE 59
|
|
#define TR_STRPUTMSG_OUT 60
|
|
#define TR_QENABLE 61
|
|
#define TR_QRUNFLAG 62
|
|
#define TR_RUNQUEUES 63
|
|
|
|
#define TR_QRUN_DQ 64
|
|
#define TR_QRUNSERVICE_END 65
|
|
#define TR_BACKGROUND_AWAKE 66
|
|
#define TR_QRUN_LEAVES 67
|
|
#define TR_PUT_START 68
|
|
#define TR_PUT_END 69
|
|
#define TR_PUTNEXT_START 70
|
|
#define TR_PUTNEXT_END 71
|
|
#define TR_DRAIN_SYNCQ_START 72
|
|
#define TR_DRAIN_SYNCQ_END 73
|
|
|
|
/*
|
|
* TR_FAC_STREAMS_MOD tags
|
|
*/
|
|
|
|
#define TR_MI_TIMER_RSRV_IN 0
|
|
#define TR_MI_TIMER_RSRV_OUT 1
|
|
#define TR_MI_TIMER_FIRE 2
|
|
#define TR_MCOPYMSG 3
|
|
|
|
/*
|
|
* TR_FAC_SOCKMOD tags
|
|
*/
|
|
|
|
#define TR_SOCKMOD_RPUT_IN 0
|
|
#define TR_SOCKMOD_RPUT_OUT 1
|
|
#define TR_SOCKMOD_WPUT_IN 2
|
|
#define TR_SOCKMOD_WPUT_OUT 3
|
|
#define TR_SOCKMOD_RSRV_IN 4
|
|
#define TR_SOCKMOD_RSRV_OUT 5
|
|
#define TR_SOCKMOD_WSRV_IN 6
|
|
#define TR_SOCKMOD_WSRV_OUT 7
|
|
|
|
/*
|
|
* TR_FAC_TCP tags
|
|
*/
|
|
|
|
#define TR_TCP_OPEN 0
|
|
#define TR_TCP_CLOSE 1
|
|
#define TR_TCP_RPUT_IN 2
|
|
#define TR_TCP_RPUT_OUT 3
|
|
#define TR_TCP_WPUT_IN 4
|
|
#define TR_TCP_WPUT_OUT 5
|
|
#define TR_TCP_RSRV_IN 6
|
|
#define TR_TCP_RSRV_OUT 7
|
|
#define TR_TCP_WSRV_IN 8
|
|
#define TR_TCP_WSRV_OUT 9
|
|
#define TR_TCP_WPUT_SLOW_IN 10
|
|
#define TR_TCP_WPUT_SLOW_OUT 11
|
|
#define TR_TCP_RPUT_SLOW_IN 12
|
|
#define TR_TCP_RPUT_SLOW_OUT 13
|
|
|
|
/*
|
|
* TR_FAC_UDP tags
|
|
*/
|
|
|
|
#define TR_UDP_OPEN 0
|
|
#define TR_UDP_CLOSE 1
|
|
#define TR_UDP_RPUT_START 2
|
|
#define TR_UDP_RPUT_END 3
|
|
#define TR_UDP_WPUT_START 4
|
|
#define TR_UDP_WPUT_END 5
|
|
#define TR_UDP_WPUT_OTHER_START 6
|
|
#define TR_UDP_WPUT_OTHER_END 7
|
|
|
|
/*
|
|
* TR_FAC_IP tags
|
|
*/
|
|
|
|
#define TR_IP_OPEN 0
|
|
#define TR_IP_CLOSE 1
|
|
#define TR_IP_RPUT_START 2
|
|
#define TR_IP_RPUT_END 3
|
|
#define TR_IP_WPUT_START 4
|
|
#define TR_IP_WPUT_END 5
|
|
#define TR_IP_WSRV_START 6
|
|
#define TR_IP_WSRV_END 7
|
|
#define TR_IP_LRPUT_START 8
|
|
#define TR_IP_LRPUT_END 9
|
|
#define TR_IP_LWPUT_START 10
|
|
#define TR_IP_LWPUT_END 11
|
|
#define TR_IP_RPUT_LOCL_START 12
|
|
#define TR_IP_RPUT_LOCL_END 13
|
|
#define TR_IP_RPUT_LOCL_ERR 14
|
|
#define TR_IP_RSRV_START 15
|
|
#define TR_IP_RSRV_END 16
|
|
#define TR_IP_CKSUM_START 17
|
|
#define TR_IP_CKSUM_END 18
|
|
#define TR_IP_CKSUM_COPY_START 19
|
|
#define TR_IP_CKSUM_COPY_END 20
|
|
#define TR_IP_WPUT_IRE_START 21
|
|
#define TR_IP_WPUT_IRE_END 22
|
|
#define TR_IP_WPUT_FRAG_START 23
|
|
#define TR_IP_WPUT_FRAG_END 24
|
|
#define TR_IP_WPUT_LOCAL_START 25
|
|
#define TR_IP_WPUT_LOCAL_END 26
|
|
|
|
/*
|
|
* TR_FAC_ARP tags
|
|
*/
|
|
|
|
#define TR_ARP_OPEN 0
|
|
#define TR_ARP_CLOSE 1
|
|
#define TR_ARP_RPUT_START 2
|
|
#define TR_ARP_RPUT_END 3
|
|
#define TR_ARP_WPUT_START 4
|
|
#define TR_ARP_WPUT_END 5
|
|
#define TR_ARP_WSRV_START 6
|
|
#define TR_ARP_WSRV_END 7
|
|
|
|
/*
|
|
* TR_FAC_LE tags
|
|
*/
|
|
|
|
#define TR_LE_OPEN 0
|
|
#define TR_LE_CLOSE 1
|
|
#define TR_LE_WPUT_START 2
|
|
#define TR_LE_WPUT_END 3
|
|
#define TR_LE_WSRV_START 4
|
|
#define TR_LE_WSRV_END 5
|
|
#define TR_LE_START_START 6
|
|
#define TR_LE_START_END 7
|
|
#define TR_LE_INTR_START 8
|
|
#define TR_LE_INTR_END 9
|
|
#define TR_LE_READ_START 10
|
|
#define TR_LE_READ_END 11
|
|
#define TR_LE_SENDUP_START 12
|
|
#define TR_LE_SENDUP_END 13
|
|
#define TR_LE_ADDUDIND_START 14
|
|
#define TR_LE_ADDUDIND_END 15
|
|
#define TR_LE_GETBUF_START 16
|
|
#define TR_LE_GETBUF_END 17
|
|
#define TR_LE_FREEBUF_START 18
|
|
#define TR_LE_FREEBUF_END 19
|
|
#define TR_LE_PROTO_START 20
|
|
#define TR_LE_PROTO_END 21
|
|
#define TR_LE_INIT_START 22
|
|
#define TR_LE_INIT_END 23
|
|
#define TR_LE_PROTO_IN 24
|
|
#define TR_LE_PROTO_OUT 25
|
|
|
|
/*
|
|
* TR_FAC_QE tags
|
|
*/
|
|
|
|
#define TR_QE_OPEN 0
|
|
#define TR_QE_CLOSE 1
|
|
#define TR_QE_WPUT_START 2
|
|
#define TR_QE_WPUT_END 3
|
|
#define TR_QE_WSRV_START 4
|
|
#define TR_QE_WSRV_END 5
|
|
#define TR_QE_START_START 6
|
|
#define TR_QE_START_END 7
|
|
#define TR_QE_INTR_START 8
|
|
#define TR_QE_INTR_END 9
|
|
#define TR_QE_READ_START 10
|
|
#define TR_QE_READ_END 11
|
|
#define TR_QE_SENDUP_START 12
|
|
#define TR_QE_SENDUP_END 13
|
|
#define TR_QE_ADDUDIND_START 14
|
|
#define TR_QE_ADDUDIND_END 15
|
|
#define TR_QE_GETBUF_START 16
|
|
#define TR_QE_GETBUF_END 17
|
|
#define TR_QE_FREEBUF_START 18
|
|
#define TR_QE_FREEBUF_END 19
|
|
#define TR_QE_PROTO_START 20
|
|
#define TR_QE_PROTO_END 21
|
|
#define TR_QE_INIT_START 22
|
|
#define TR_QE_INIT_END 23
|
|
#define TR_QE_PROTO_IN 24
|
|
#define TR_QE_PROTO_OUT 25
|
|
|
|
/*
|
|
* TR_FAC_BE tags
|
|
*/
|
|
|
|
#define TR_BE_OPEN 0
|
|
#define TR_BE_CLOSE 1
|
|
#define TR_BE_WPUT_START 2
|
|
#define TR_BE_WPUT_END 3
|
|
#define TR_BE_WSRV_START 4
|
|
#define TR_BE_WSRV_END 5
|
|
#define TR_BE_START_START 6
|
|
#define TR_BE_START_END 7
|
|
#define TR_BE_INTR_START 8
|
|
#define TR_BE_INTR_END 9
|
|
#define TR_BE_READ_START 10
|
|
#define TR_BE_READ_END 11
|
|
#define TR_BE_SENDUP_START 12
|
|
#define TR_BE_SENDUP_END 13
|
|
#define TR_BE_ADDUDIND_START 14
|
|
#define TR_BE_ADDUDIND_END 15
|
|
#define TR_BE_GETBUF_START 16
|
|
#define TR_BE_GETBUF_END 17
|
|
#define TR_BE_FREEBUF_START 18
|
|
#define TR_BE_FREEBUF_END 19
|
|
#define TR_BE_PROTO_START 20
|
|
#define TR_BE_PROTO_END 21
|
|
#define TR_BE_INIT_START 22
|
|
#define TR_BE_INIT_END 23
|
|
#define TR_BE_PROTO_IN 24
|
|
#define TR_BE_PROTO_OUT 25
|
|
|
|
/*
|
|
* TR_FAC_AE tags
|
|
*/
|
|
|
|
#define TR_AE_OPEN 0
|
|
#define TR_AE_CLOSE 1
|
|
#define TR_AE_WPUT_START 2
|
|
#define TR_AE_WPUT_END 3
|
|
#define TR_AE_WSRV_START 4
|
|
#define TR_AE_WSRV_END 5
|
|
#define TR_AE_START_START 6
|
|
#define TR_AE_START_END 7
|
|
#define TR_AE_INTR_START 8
|
|
#define TR_AE_INTR_END 9
|
|
#define TR_AE_READ_START 10
|
|
#define TR_AE_READ_END 11
|
|
#define TR_AE_SENDUP_START 12
|
|
#define TR_AE_SENDUP_END 13
|
|
#define TR_AE_ADDUDIND_START 14
|
|
#define TR_AE_ADDUDIND_END 15
|
|
#define TR_AE_GETBUF_START 16
|
|
#define TR_AE_GETBUF_END 17
|
|
#define TR_AE_FREEBUF_START 18
|
|
#define TR_AE_FREEBUF_END 19
|
|
#define TR_AE_PROTO_START 20
|
|
#define TR_AE_PROTO_END 21
|
|
#define TR_AE_INIT_START 22
|
|
#define TR_AE_INIT_END 23
|
|
#define TR_AE_PROTO_IN 24
|
|
#define TR_AE_PROTO_OUT 25
|
|
|
|
/*
|
|
* TR_FAC_IPI tags
|
|
*/
|
|
|
|
#define TR_IPI_START 0
|
|
#define TR_IPI_RESET_SLAVE 1
|
|
#define TR_IPI_RESET_CHAN 2
|
|
#define TR_IPI_RESET_BOARD 3
|
|
#define TR_IPI_TEST_BOARD 4
|
|
#define TR_IPI_GET_XFER_MODE 5
|
|
#define TR_IPI_SET_XFER_MODE 6
|
|
#define TR_IPI_INTR_1 7
|
|
#define TR_IPI_INTR_2 8
|
|
#define TR_IPI_POLL_1 9
|
|
#define TR_IPI_POLL_2 10
|
|
#define TR_IPI_RETRY 11
|
|
#define TR_IPI_IS_CMD 12
|
|
#define TR_IPI_INTR_OK 13
|
|
#define TR_IPI_INTR_RESP 14
|
|
#define TR_IPI_INTR_ERR 15
|
|
|
|
/*
|
|
* TR_FAC_MCOUNT tags
|
|
*/
|
|
|
|
#define TR_MCOUNT_ENTER 0
|
|
|
|
/*
|
|
* TR_FAC_IA tags
|
|
*/
|
|
|
|
#define TR_PID_ON 0
|
|
#define TR_PID_OFF 1
|
|
#define TR_GROUP_ON 2
|
|
#define TR_GROUP_OFF 3
|
|
#define TR_CONTROL_TTY 4
|
|
#define TR_ACTIVE_CHAIN 5
|
|
|
|
/*
|
|
* TR_FAC_S5 tags
|
|
*/
|
|
|
|
#define TR_S5_SYNCIP_START 0
|
|
#define TR_S5_SYNCIP_END 1
|
|
#define TR_S5_OPEN 2
|
|
#define TR_S5_CLOSE 3
|
|
#define TR_S5_READ_START 4
|
|
#define TR_S5_READ_END 5
|
|
#define TR_S5_WRITE_START 6
|
|
#define TR_S5_WRITE_END 7
|
|
#define TR_S5_RWIP_START 8
|
|
#define TR_S5_RWIP_END 9
|
|
#define TR_S5_GETATTR_START 10
|
|
#define TR_S5_GETATTR_END 11
|
|
#define TR_S5_SETATTR_START 12
|
|
#define TR_S5_SETATTR_END 13
|
|
#define TR_S5_ACCESS_START 14
|
|
#define TR_S5_ACCESS_END 15
|
|
#define TR_S5_READLINK_START 16
|
|
#define TR_S5_READLINK_END 17
|
|
#define TR_S5_FSYNC_START 18
|
|
#define TR_S5_FSYNC_END 19
|
|
#define TR_S5_LOOKUP_START 20
|
|
#define TR_S5_LOOKUP_END 21
|
|
#define TR_S5_CREATE_START 22
|
|
#define TR_S5_CREATE_END 23
|
|
#define TR_S5_REMOVE_START 24
|
|
#define TR_S5_REMOVE_END 25
|
|
#define TR_S5_LINK_START 26
|
|
#define TR_S5_LINK_END 27
|
|
#define TR_S5_RENAME_START 28
|
|
#define TR_S5_RENAME_END 29
|
|
#define TR_S5_MKDIR_START 30
|
|
#define TR_S5_MKDIR_END 31
|
|
#define TR_S5_RMDIR_START 32
|
|
#define TR_S5_RMDIR_END 33
|
|
#define TR_S5_READDIR_START 34
|
|
#define TR_S5_READDIR_END 35
|
|
#define TR_S5_SYMLINK_START 36
|
|
#define TR_S5_SYMLINK_END 37
|
|
#define TR_S5_GETPAGE_START 38
|
|
#define TR_S5_GETPAGE_END 39
|
|
#define TR_S5_PUTPAGE_START 40
|
|
#define TR_S5_PUTPAGE_END 41
|
|
#define TR_S5_PUTAPAGE_START 42
|
|
#define TR_S5_PUTAPAGE_END 43
|
|
#define TR_S5_STARTIO_START 44
|
|
#define TR_S5_STARTIO_END 45
|
|
#define TR_S5_MAP_START 46
|
|
#define TR_S5_MAP_END 47
|
|
|
|
/*
|
|
* TR_FAC_SCSI tags
|
|
*/
|
|
|
|
#define TR_ESPSVC_ACTION_CALL 0
|
|
|
|
#define TR_ESPSVC_START 1
|
|
#define TR_ESPSVC_END 2
|
|
#define TR_ESP_CALLBACK_START 3
|
|
#define TR_ESP_CALLBACK_END 4
|
|
#define TR_ESP_DOPOLL_START 5
|
|
#define TR_ESP_DOPOLL_END 6
|
|
#define TR_ESP_FINISH_START 7
|
|
#define TR_ESP_FINISH_END 8
|
|
#define TR_ESP_FINISH_SELECT_START 9
|
|
#define TR_ESP_FINISH_SELECT_RESET1_END 10
|
|
#define TR_ESP_FINISH_SELECT_RETURN1_END 11
|
|
#define TR_ESP_FINISH_SELECT_RETURN2_END 12
|
|
#define TR_ESP_FINISH_SELECT_FINISH_END 13
|
|
#define TR_ESP_FINISH_SELECT_ACTION1_END 14
|
|
#define TR_ESP_FINISH_SELECT_ACTION2_END 15
|
|
#define TR_ESP_FINISH_SELECT_RESET2_END 16
|
|
#define TR_ESP_FINISH_SELECT_RESET3_END 17
|
|
#define TR_ESP_FINISH_SELECT_ACTION3_END 18
|
|
#define TR_ESP_HANDLE_CLEARING_START 19
|
|
#define TR_ESP_HANDLE_CLEARING_END 20
|
|
#define TR_ESP_HANDLE_CLEARING_FINRST_END 21
|
|
#define TR_ESP_HANDLE_CLEARING_RETURN1_END 22
|
|
#define TR_ESP_HANDLE_CLEARING_ABORT_END 23
|
|
#define TR_ESP_HANDLE_CLEARING_LINKED_CMD_END 24
|
|
#define TR_ESP_HANDLE_CLEARING_RETURN2_END 25
|
|
#define TR_ESP_HANDLE_CLEARING_RETURN3_END 26
|
|
#define TR_ESP_HANDLE_CMD_START_START 27
|
|
#define TR_ESP_HANDLE_CMD_START_END 28
|
|
#define TR_ESP_HANDLE_CMD_START_ABORT_CMD_END 29
|
|
#define TR_ESP_HANDLE_CMD_DONE_START 30
|
|
#define TR_ESP_HANDLE_CMD_DONE_END 31
|
|
#define TR_ESP_HANDLE_CMD_DONE_ABORT1_END 32
|
|
#define TR_ESP_HANDLE_CMD_DONE_ABORT2_END 33
|
|
#define TR_ESP_HANDLE_C_CMPLT_START 34
|
|
#define TR_ESP_HANDLE_C_CMPLT_FINRST_END 35
|
|
#define TR_ESP_HANDLE_C_CMPLT_RETURN1_END 36
|
|
#define TR_ESP_HANDLE_C_CMPLT_ACTION1_END 37
|
|
#define TR_ESP_HANDLE_C_CMPLT_ACTION2_END 38
|
|
#define TR_ESP_HANDLE_C_CMPLT_ACTION3_END 39
|
|
#define TR_ESP_HANDLE_C_CMPLT_ACTION4_END 40
|
|
#define TR_ESP_HANDLE_C_CMPLT_RETURN2_END 41
|
|
#define TR_ESP_HANDLE_C_CMPLT_ACTION5_END 42
|
|
#define TR_ESP_HANDLE_C_CMPLT_PHASEMANAGE_END 43
|
|
#define TR_ESP_HANDLE_DATA_START 44
|
|
#define TR_ESP_HANDLE_DATA_END 45
|
|
#define TR_ESP_HANDLE_DATA_ABORT1_END 46
|
|
#define TR_ESP_HANDLE_DATA_ABORT2_END 47
|
|
#define TR_ESP_HANDLE_DATA_ABORT3_END 48
|
|
#define TR_ESP_HANDLE_DATA_DONE_START 49
|
|
#define TR_ESP_HANDLE_DATA_DONE_END 50
|
|
#define TR_ESP_HANDLE_DATA_DONE_RESET_END 51
|
|
#define TR_ESP_HANDLE_DATA_DONE_PHASEMANAGE_END 52
|
|
#define TR_ESP_HANDLE_DATA_DONE_ACTION1_END 53
|
|
#define TR_ESP_HANDLE_DATA_DONE_ACTION2_END 54
|
|
#define TR_ESP_HANDLE_MORE_MSGIN_START 55
|
|
#define TR_ESP_HANDLE_MORE_MSGIN_RETURN1_END 56
|
|
#define TR_ESP_HANDLE_MORE_MSGIN_RETURN2_END 57
|
|
#define TR_ESP_HANDLE_MSG_IN_START 58
|
|
#define TR_ESP_HANDLE_MSG_IN_END 59
|
|
#define TR_ESP_HANDLE_MSG_IN_DONE_START 60
|
|
#define TR_ESP_HANDLE_MSG_IN_DONE_FINRST_END 61
|
|
#define TR_ESP_HANDLE_MSG_IN_DONE_RETURN1_END 62
|
|
#define TR_ESP_HANDLE_MSG_IN_DONE_PHASEMANAGE_END 63
|
|
#define TR_ESP_HANDLE_MSG_IN_DONE_SNDMSG_END 64
|
|
#define TR_ESP_HANDLE_MSG_IN_DONE_ACTION_END 65
|
|
#define TR_ESP_HANDLE_MSG_IN_DONE_RETURN2_END 66
|
|
#define TR_ESP_HANDLE_MSG_OUT_START 67
|
|
#define TR_ESP_HANDLE_MSG_OUT_END 68
|
|
#define TR_ESP_HANDLE_MSG_OUT_PHASEMANAGE_END 69
|
|
#define TR_ESP_HANDLE_MSG_OUT_DONE_START 70
|
|
#define TR_ESP_HANDLE_MSG_OUT_DONE_END 71
|
|
#define TR_ESP_HANDLE_MSG_OUT_DONE_FINISH_END 72
|
|
#define TR_ESP_HANDLE_MSG_OUT_DONE_PHASEMANAGE_END 73
|
|
#define TR_ESP_HANDLE_SELECTION_START 74
|
|
#define TR_ESP_HANDLE_SELECTION_END 75
|
|
#define TR_ESP_HANDLE_UNKNOWN_START 76
|
|
#define TR_ESP_HANDLE_UNKNOWN_END 77
|
|
#define TR_ESP_HANDLE_UNKNOWN_INT_DISCON_END 78
|
|
#define TR_ESP_HANDLE_UNKNOWN_PHASE_DATA_END 79
|
|
#define TR_ESP_HANDLE_UNKNOWN_PHASE_MSG_OUT_END 80
|
|
#define TR_ESP_HANDLE_UNKNOWN_PHASE_MSG_IN_END 81
|
|
#define TR_ESP_HANDLE_UNKNOWN_PHASE_STATUS_END 82
|
|
#define TR_ESP_HANDLE_UNKNOWN_PHASE_CMD_END 83
|
|
#define TR_ESP_HANDLE_UNKNOWN_RESET_END 84
|
|
#define TR_ESP_HDATAD_START 85
|
|
#define TR_ESP_HDATAD_END 86
|
|
#define TR_ESP_HDATA_START 87
|
|
#define TR_ESP_HDATA_END 88
|
|
#define TR_ESP_ISTART_START 89
|
|
#define TR_ESP_ISTART_END 90
|
|
|
|
#define TR_ESP_PHASEMANAGE_CALL 91
|
|
|
|
#define TR_ESP_PHASEMANAGE_START 92
|
|
#define TR_ESP_PHASEMANAGE_END 93
|
|
#define TR_ESP_POLL_START 94
|
|
#define TR_ESP_POLL_END 95
|
|
#define TR_ESP_RECONNECT_START 96
|
|
#define TR_ESP_RECONNECT_F1_END 97
|
|
#define TR_ESP_RECONNECT_RETURN1_END 98
|
|
#define TR_ESP_RECONNECT_F2_END 99
|
|
#define TR_ESP_RECONNECT_PHASEMANAGE_END 100
|
|
#define TR_ESP_RECONNECT_F3_END 101
|
|
#define TR_ESP_RECONNECT_RESET1_END 102
|
|
#define TR_ESP_RECONNECT_RESET2_END 103
|
|
#define TR_ESP_RECONNECT_RESET3_END 104
|
|
#define TR_ESP_RECONNECT_SEARCH_END 105
|
|
#define TR_ESP_RECONNECT_RESET4_END 106
|
|
#define TR_ESP_RECONNECT_RETURN2_END 107
|
|
#define TR_ESP_RECONNECT_RESET5_END 108
|
|
#define TR_ESP_RUNPOLL_START 109
|
|
#define TR_ESP_RUNPOLL_END 110
|
|
#define TR_ESP_SCSI_IMPL_PKTALLOC_START 111
|
|
#define TR_ESP_SCSI_IMPL_PKTALLOC_END 112
|
|
#define TR_ESP_SCSI_IMPL_PKTFREE_START 113
|
|
#define TR_ESP_SCSI_IMPL_PKTFREE_END 114
|
|
#define TR_ESP_STARTCMD_START 115
|
|
#define TR_ESP_STARTCMD_END 116
|
|
#define TR_ESP_STARTCMD_RE_SELECTION_END 117
|
|
#define TR_ESP_STARTCMD_ALLOC_TAG1_END 118
|
|
#define TR_ESP_STARTCMD_ALLOC_TAG2_END 119
|
|
|
|
#define TR_ESP_STARTCMD_PREEMPT_CALL 120
|
|
|
|
#define TR_ESP_START_START 121
|
|
#define TR_ESP_START_END 122
|
|
#define TR_ESP_START_PREPARE_PKT_END 123
|
|
#define TR_ESP_WATCH_START 124
|
|
#define TR_ESP_WATCH_END 125
|
|
#define TR_MAKE_SD_CMD_START 126
|
|
#define TR_MAKE_SD_CMD_END 127
|
|
#define TR_MAKE_SD_CMD_NO_PKT_ALLOCATED1_END 128
|
|
#define TR_MAKE_SD_CMD_NO_PKT_ALLOCATED2_END 129
|
|
#define TR_MAKE_SD_CMD_G0_START 130
|
|
#define TR_MAKE_SD_CMD_G0_END 131
|
|
#define TR_MAKE_SD_CMD_G0_SBUF_START 132
|
|
#define TR_MAKE_SD_CMD_G0_SBUF_END 133
|
|
#define TR_MAKE_SD_CMD_G1_START 134
|
|
#define TR_MAKE_SD_CMD_G1_END 135
|
|
#define TR_MAKE_SD_CMD_INIT_PKT_START 136
|
|
#define TR_MAKE_SD_CMD_INIT_PKT_END 137
|
|
#define TR_MAKE_SD_CMD_INIT_PKT_SBUF_START 138
|
|
#define TR_MAKE_SD_CMD_INIT_PKT_SBUF_END 139
|
|
#define TR_MAKE_SD_CMD_RA_START 140
|
|
#define TR_MAKE_SD_CMD_RA_END 141
|
|
|
|
#define TR_SDDONE_BIODONE_CALL 142
|
|
|
|
#define TR_SDDONE_START 143
|
|
#define TR_SDDONE_END 144
|
|
#define TR_SDINTR_START 145
|
|
#define TR_SDINTR_END 146
|
|
#define TR_SDINTR_COMMAND_DONE_END 147
|
|
#define TR_SDINTR_QUE_COMMAND_END 148
|
|
#define TR_SDINTR_QUE_FAILED_END 149
|
|
#define TR_SDRUNOUT_START 150
|
|
#define TR_SDRUNOUT_END 151
|
|
#define TR_SDSTART_START 152
|
|
#define TR_SDSTART_END 153
|
|
#define TR_SDSTART_NO_WORK_END 154
|
|
#define TR_SDSTART_NO_RESOURCES_END 155
|
|
#define TR_SDSTRATEGY_START 156
|
|
#define TR_SDSTRATEGY_END 157
|
|
#define TR_SDSTRATEGY_DISKSORT_START 158
|
|
#define TR_SDSTRATEGY_DISKSORT_END 159
|
|
#define TR_SDSTRATEGY_SDSTART_START 160
|
|
#define TR_SDSTRATEGY_SDSTART_END 161
|
|
#define TR_SD_CHECK_ERROR_START 162
|
|
#define TR_SD_CHECK_ERROR_QUE_COMMAND_END 163
|
|
#define TR_SD_CHECK_ERROR_END 164
|
|
#define TR__ESP_START_START 165
|
|
#define TR__ESP_START_END 166
|
|
#define TR_ESP_INIT_CMD_START 167
|
|
#define TR_ESP_INIT_CMD_END 168
|
|
#define TR_ESP_EMPTY_STARTQ_START 169
|
|
#define TR_ESP_EMPTY_STARTQ_END 170
|
|
#define TR_SDSTRATEGY_SMALL_WINDOW_START 171
|
|
#define TR_SDSTRATEGY_SMALL_WINDOW_END 172
|
|
#define TR_SDSTART_SMALL_WINDOW_START 173
|
|
#define TR_SDSTART_SMALL_WINDOW_END 174
|
|
#define TR_ESP_USTART_START 175
|
|
#define TR_ESP_USTART_END 176
|
|
#define TR_ESP_USTART_NOT_FOUND_END 177
|
|
#define TR_ESP_USTART_DEFAULT_END 178
|
|
#define TR_ESP_PREPARE_PKT_START 179
|
|
#define TR_ESP_PREPARE_PKT_TRAN_BADPKT_END 180
|
|
#define TR_ESP_PREPARE_PKT_TRAN_ACCEPT_END 181
|
|
#define TR_ESP_ALLOC_TAG_START 182
|
|
#define TR_ESP_ALLOC_TAG_END 183
|
|
#define TR_ESP_CALL_PKT_COMP_START 184
|
|
#define TR_ESP_CALL_PKT_COMP_END 185
|
|
#define TR_ESP_CALL_PKT_COMP_RETURN1_END 186
|
|
#define TR_ESP_CALL_PKT_COMP_RETURN2_END 187
|
|
#define TR_ESP_POLL_LOOP_START 188
|
|
#define TR_ESP_POLL_LOOP_END 189
|
|
#define TR_ESP_POLL_SUN4D_START 190
|
|
#define TR_ESP_POLL_SUN4D_END 191
|
|
#define TR_ESP_SCSI_IMPL_DMAFREE_START 192
|
|
#define TR_ESP_SCSI_IMPL_DMAFREE_END 193
|
|
|
|
|
|
/*
|
|
* TR_FAC_SCSI_ISP tags
|
|
*/
|
|
#define TR_ISP_SCSI_GETCAP_START 1
|
|
#define TR_ISP_SCSI_GETCAP_END 2
|
|
#define TR_ISP_SCSI_SETCAP_START 3
|
|
#define TR_ISP_SCSI_SETCAP_END 4
|
|
#define TR_ISP_SCAN_TIMEOUT_START 5
|
|
#define TR_ISP_SCAN_TIMEOUT_END 6
|
|
#define TR_ISP_SCSI_START_START 7
|
|
#define TR_ISP_SCSI_START_DMA_START 8
|
|
#define TR_ISP_SCSI_START_DMA_END 9
|
|
#define TR_ISP_SCSI_START_END 10
|
|
#define TR_ISP_I_START_CMD_START 11
|
|
#define TR_ISP_I_START_CMD_Q_FULL_END 12
|
|
#define TR_ISP_I_START_CMD_SLOT_ALLOC_START 13
|
|
#define TR_ISP_I_START_CMD_SLOT_ALLOC_END 14
|
|
#define TR_ISP_I_START_CMD_END 15
|
|
#define TR_ISP_I_RUN_POLLED_CMD_START 16
|
|
#define TR_ISP_I_RUN_POLLED_CMD_END 17
|
|
#define TR_ISP_INTR_START 18
|
|
#define TR_ISP_INTR_NO_INTR_END 19
|
|
#define TR_ISP_INTR_EVENT_END 20
|
|
#define TR_ISP_INTR_Q_START 21
|
|
#define TR_ISP_INTR_INVALID_END 22
|
|
#define TR_ISP_INTR_PKT_START 23
|
|
#define TR_ISP_INTR_PKT_END 24
|
|
#define TR_ISP_INTR_Q_END 25
|
|
#define TR_ISP_INTR_END 26
|
|
#define TR_ISP_I_FLAG_EVENT_START 27
|
|
#define TR_ISP_I_FLAG_EVENT_IGNORE_END 28
|
|
#define TR_ISP_I_FLAG_EVENT_END 29
|
|
#define TR_ISP_I_EVENT_START 30
|
|
#define TR_ISP_I_EVENT_RETURN_END 31
|
|
#define TR_ISP_I_EVENT_END 32
|
|
#define TR_ISP_I_ASYNCH_EVENT_START 33
|
|
#define TR_ISP_I_ASYNCH_EVENT_END 34
|
|
#define TR_ISP_I_CMD_EVENT_START 35
|
|
#define TR_ISP_I_CMD_EVENT_END 36
|
|
#define TR_ISP_I_RESPONSE_ERROR_START 37
|
|
#define TR_ISP_I_RESPONSE_ERROR_END 38
|
|
#define TR_ISP_I_SEND_CMD_START 39
|
|
#define TR_ISP_I_SEND_CMD_END 40
|
|
#define TR_ISP_I_CALLBACK_START 41
|
|
#define TR_ISP_I_CALLBACK_END 42
|
|
#define TR_ISP_I_WATCH_START 43
|
|
#define TR_ISP_I_WATCH_END 44
|
|
#define TR_ISP_I_TIMEOUT_START 45
|
|
#define TR_ISP_I_TIMEOUT_END 46
|
|
#define TR_ISP_I_QFLUSH_START 47
|
|
#define TR_ISP_I_QFLUSH_END 48
|
|
#define TR_ISP_I_SET_MARKER_START 49
|
|
#define TR_ISP_I_SET_MARKER_END 50
|
|
#define TR_ISP_SCSI_ABORT_START 51
|
|
#define TR_ISP_SCSI_ABORT_FALSE_END 52
|
|
#define TR_ISP_SCSI_ABORT_END 53
|
|
#define TR_ISP_SCSI_RESET_START 54
|
|
#define TR_ISP_SCSI_RESET_FALSE_END 55
|
|
#define TR_ISP_SCSI_RESET_END 56
|
|
#define TR_ISP_I_RESET_INTERFACE_START 57
|
|
#define TR_ISP_I_RESET_INTERFACE_END 58
|
|
#define TR_ISP_I_CALL_PKT_COMP_START 59
|
|
#define TR_ISP_I_CALL_PKT_COMP_END 60
|
|
#define TR_ISP_I_EMPTY_WAITQ_START 61
|
|
#define TR_ISP_I_EMPTY_WAITQ_END 62
|
|
#define TR_ISP_I_INIT_CMD_START 63
|
|
#define TR_ISP_SCSI_START_BIG_CDB 64
|
|
#define TR_ISP_I_INIT_CMD_END 65
|
|
#define TR_ISP_I_START_CMD_AFTER_SYNC 66
|
|
#define TR_ISP_INTR_LOOP_START 67
|
|
#define TR_ISP_INTR_LOOP_END 68
|
|
#define TR_ISP_INTR_ASYNC_END 69
|
|
#define TR_ISP_INTR_MBOX_END 70
|
|
#define TR_ISP_INTR_NO_RESP_END 71
|
|
#define TR_ISP_INTR_AGAIN 72
|
|
#define TR_ISP_I_MBOX_CMD_COMPLETE_START 74
|
|
#define TR_ISP_I_MBOX_CMD_COMPLETE_END 75
|
|
#define TR_ISP_I_MBOX_CMD_START_START 76
|
|
#define TR_ISP_I_MBOX_CMD_START_END 77
|
|
#define TR_ISP_SCSI_PKTALLOC_START 78
|
|
#define TR_ISP_SCSI_PKTALLOC_END 79
|
|
#define TR_ISP_SCSI_PKTFREE_START 80
|
|
#define TR_ISP_SCSI_PKTFREE_DONE 81
|
|
#define TR_ISP_SCSI_PKTFREE_END 82
|
|
#define TR_ISP_SCSI_DMAGET_START 83
|
|
#define TR_ISP_SCSI_DMAGET_ERROR_END 84
|
|
#define TR_ISP_SCSI_DMAGET_END 85
|
|
#define TR_ISP_SCSI_DMAFREE_START 86
|
|
#define TR_ISP_SCSI_DMAFREE_END 87
|
|
|
|
|
|
/*
|
|
* TR_FAC_LWP tags
|
|
*/
|
|
|
|
#define TR_LWP_CREATE_START 0
|
|
#define TR_LWP_CREATE_END 1
|
|
#define TR_LWP_EXIT_START 2
|
|
#define TR_LWP_EXIT_END 3
|
|
#define TR_LWP_SUSPEND_START 4
|
|
#define TR_LWP_SUSPEND_END 5
|
|
#define TR_LWP_CONTINUE_START 6
|
|
#define TR_LWP_CONTINUE_END 7
|
|
|
|
#define TR_LWP_CREATE_ASEGKP 8
|
|
#define TR_LWP_CREATE_ATHRC 9
|
|
#define TR_LWP_CREATE_ABZ 10
|
|
#define TR_LWP_CONT_ASR 11
|
|
#define TR_LWP_EXIT_OFFQ 12
|
|
|
|
/*
|
|
* TR_FAC_SYS_LWP tags
|
|
*/
|
|
|
|
#define TR_SYS_LWP_CREATE_START 0
|
|
#define TR_SYS_LWP_CREATE_END1 1
|
|
#define TR_SYS_LWP_CREATE_END2 2
|
|
#define TR_SYS_LWP_EXIT_START 3
|
|
#define TR_SYS_LWP_EXIT_END 4
|
|
#define TR_SYS_LWP_WAIT 5
|
|
|
|
#define TR_SYS_LWP_SELF 6
|
|
#define TR_SYS_LWP_SUSPEND_START 7
|
|
#define TR_SYS_LWP_SUSPEND_END 8
|
|
#define TR_SYS_LWP_CONTINUE_START 9
|
|
#define TR_SYS_LWP_CONTINUE_END 10
|
|
|
|
#define TR_SYS_LWP_MUTEX_LOCK 11
|
|
#define TR_SYS_LWP_MUTEX_UNLOCK 12
|
|
#define TR_SYS_LWP_COND_WAIT_START 13
|
|
#define TR_SYS_LWP_COND_WAIT_END 14
|
|
#define TR_SYS_LWP_COND_SIGNAL_START 15
|
|
#define TR_SYS_LWP_COND_SIGNAL_END 16
|
|
#define TR_SYS_LWP_COND_BROADCAST 17
|
|
#define TR_SYS_LWP_KILL_START 18
|
|
#define TR_SYS_LWP_KILL_END 19
|
|
|
|
#define TR_SYS_LWP_SETPRIVATE 20
|
|
#define TR_SYS_LWP_GETPRIVATE 21
|
|
|
|
#define TR_SYS_LWP_ACOPYIN 22
|
|
#define TR_SYS_LWP_ABCP 23
|
|
#define TR_SYS_LWP_ALWPTOT 24
|
|
#define TR_SYS_LWP_CONTINUE_AIDTOT 25
|
|
#define TR_SYS_LWP_CR_WAIT 26
|
|
|
|
/*
|
|
* TR_FAC_CALLOUT tags
|
|
*/
|
|
|
|
#define TR_TIMEOUT_START 0
|
|
#define TR_TIMEOUT_END 1
|
|
#define TR_RT_TIMEOUT_START 2
|
|
#define TR_RT_TIMEOUT_END 3
|
|
#define TR_UNTIMEOUT_START 4
|
|
#define TR_UNTIMEOUT_END 5
|
|
#define TR_CALLOUT_EXECUTE_START 6
|
|
#define TR_CALLOUT_EXECUTE_END 7
|
|
#define TR_CALLOUT_START 8
|
|
#define TR_CALLOUT_END 9
|
|
|
|
#define TR_CALLOUT_DELETE_BOGUS_ID 32
|
|
#define TR_CALLOUT_DELETE_NESTED 33
|
|
#define TR_CALLOUT_DELETE_EXECUTING 34
|
|
|
|
/*
|
|
* TR_FAC_SPECFS tags
|
|
*/
|
|
|
|
#define TR_SPECFS_GETPAGE 0
|
|
#define TR_SPECFS_GETAPAGE 1
|
|
#define TR_SPECFS_PUTPAGE 2
|
|
#define TR_SPECFS_PUTAPAGE 3
|
|
#define TR_SPECFS_SEGMAP 4
|
|
#define TR_SPECFS_OPEN 5
|
|
|
|
/*
|
|
* TR_FAC_TMPFS tags
|
|
*/
|
|
|
|
#define TR_TMPFS_LOOKUP 0
|
|
#define TR_TMPFS_CREATE 1
|
|
#define TR_TMPFS_REMOVE 2
|
|
#define TR_TMPFS_RENAME 3
|
|
#define TR_TMPFS_RWTMP_START 4
|
|
#define TR_TMPFS_RWTMP_END 5
|
|
|
|
/*
|
|
* TR_FAC_SWAPFS tags
|
|
*/
|
|
|
|
#define TR_SWAPFS_OPEN 0
|
|
#define TR_SWAPFS_CLOSE 1
|
|
#define TR_SWAPFS_GETPAGE 2
|
|
#define TR_SWAPFS_GETAPAGE 3
|
|
#define TR_SWAPFS_PUTPAGE 4
|
|
#define TR_SWAPFS_PUTAPAGE 5
|
|
/*
|
|
* TR_FAC_UFS tags
|
|
*/
|
|
|
|
#define TR_UFS_SYNCIP_START 0
|
|
#define TR_UFS_SYNCIP_END 1
|
|
#define TR_UFS_OPEN 2
|
|
#define TR_UFS_CLOSE 4
|
|
#define TR_UFS_READ_START 6
|
|
#define TR_UFS_READ_END 7
|
|
#define TR_UFS_WRITE_START 8
|
|
#define TR_UFS_WRITE_END 9
|
|
#define TR_UFS_RWIP_START 10
|
|
#define TR_UFS_RWIP_END 11
|
|
#define TR_UFS_GETATTR_START 12
|
|
#define TR_UFS_GETATTR_END 13
|
|
#define TR_UFS_SETATTR_START 14
|
|
#define TR_UFS_SETATTR_END 15
|
|
#define TR_UFS_ACCESS_START 16
|
|
#define TR_UFS_ACCESS_END 17
|
|
#define TR_UFS_READLINK_START 18
|
|
#define TR_UFS_READLINK_END 19
|
|
#define TR_UFS_FSYNC_START 20
|
|
#define TR_UFS_FSYNC_END 21
|
|
#define TR_UFS_LOOKUP_START 22
|
|
#define TR_UFS_LOOKUP_END 23
|
|
#define TR_UFS_CREATE_START 24
|
|
#define TR_UFS_CREATE_END 25
|
|
#define TR_UFS_REMOVE_START 26
|
|
#define TR_UFS_REMOVE_END 27
|
|
#define TR_UFS_LINK_START 28
|
|
#define TR_UFS_LINK_END 29
|
|
#define TR_UFS_RENAME_START 30
|
|
#define TR_UFS_RENAME_END 31
|
|
#define TR_UFS_MKDIR_START 32
|
|
#define TR_UFS_MKDIR_END 33
|
|
#define TR_UFS_RMDIR_START 34
|
|
#define TR_UFS_RMDIR_END 35
|
|
#define TR_UFS_READDIR_START 36
|
|
#define TR_UFS_READDIR_END 37
|
|
#define TR_UFS_SYMLINK_START 38
|
|
#define TR_UFS_SYMLINK_END 39
|
|
#define TR_UFS_GETPAGE_START 40
|
|
#define TR_UFS_GETPAGE_END 41
|
|
#define TR_UFS_GETAPAGE_START 42
|
|
#define TR_UFS_GETAPAGE_END 43
|
|
#define TR_UFS_PUTPAGE_START 44
|
|
#define TR_UFS_PUTPAGE_END 45
|
|
#define TR_UFS_PUTAPAGE_START 46
|
|
#define TR_UFS_PUTAPAGE_END 47
|
|
#define TR_UFS_STARTIO_START 48
|
|
#define TR_UFS_STARTIO_END 49
|
|
#define TR_UFS_MAP_START 50
|
|
#define TR_UFS_MAP_END 51
|
|
#define TR_UFS_GETSECATTR_START 52
|
|
#define TR_UFS_GETSECATTR_END 53
|
|
#define TR_UFS_SETSECATTR_START 54
|
|
#define TR_UFS_SETSECATTR_END 55
|
|
|
|
|
|
/*
|
|
* TR_FAC_NFS tags
|
|
*
|
|
* Simple convention: client tags range from 0-99, server
|
|
* tags range from 100 up.
|
|
*/
|
|
|
|
#define TR_RFSCALL_START 0
|
|
#define TR_RFSCALL_END 1
|
|
#define TR_FHTOVP_START 2
|
|
#define TR_FHTOVP_END 3
|
|
|
|
#define TR_VOP_GETATTR_START 100
|
|
#define TR_VOP_GETATTR_END 101
|
|
#define TR_VOP_SETATTR_START 102
|
|
#define TR_VOP_SETATTR_END 103
|
|
#define TR_VOP_LOOKUP_START 104
|
|
#define TR_VOP_LOOKUP_END 105
|
|
#define TR_VOP_READLINK_START 106
|
|
#define TR_VOP_READLINK_END 107
|
|
#define TR_VOP_RWLOCK_START 108
|
|
#define TR_VOP_RWLOCK_END 109
|
|
#define TR_VOP_ACCESS_START 110
|
|
#define TR_VOP_ACCESS_END 111
|
|
#define TR_VOP_OPEN_START 112
|
|
#define TR_VOP_OPEN_END 113
|
|
#define TR_VOP_READ_START 114
|
|
#define TR_VOP_READ_END 115
|
|
#define TR_VOP_CLOSE_START 116
|
|
#define TR_VOP_CLOSE_END 117
|
|
#define TR_VOP_RWUNLOCK_START 118
|
|
#define TR_VOP_RWUNLOCK_END 119
|
|
#define TR_VOP_WRITE_START 120
|
|
#define TR_VOP_WRITE_END 121
|
|
#define TR_VOP_CREATE_START 122
|
|
#define TR_VOP_CREATE_END 123
|
|
#define TR_VOP_REMOVE_START 124
|
|
#define TR_VOP_REMOVE_END 125
|
|
#define TR_VOP_RENAME_START 126
|
|
#define TR_VOP_RENAME_END 127
|
|
#define TR_VOP_LINK_START 128
|
|
#define TR_VOP_LINK_END 129
|
|
#define TR_VOP_SYMLINK_START 130
|
|
#define TR_VOP_SYMLINK_END 131
|
|
#define TR_VOP_MKDIR_START 132
|
|
#define TR_VOP_MKDIR_END 133
|
|
#define TR_VOP_RMDIR_START 134
|
|
#define TR_VOP_RMDIR_END 135
|
|
#define TR_VOP_READDIR_START 136
|
|
#define TR_VOP_READDIR_END 137
|
|
#define TR_SEGMAP_GETMAP_START 138
|
|
#define TR_SEGMAP_GETMAP_END 139
|
|
#define TR_AS_FAULT_START 140
|
|
#define TR_AS_FAULT_END 141
|
|
#define TR_RFS_GETATTR_START 142
|
|
#define TR_RFS_GETATTR_END 143
|
|
#define TR_RFS_SETATTR_START 144
|
|
#define TR_RFS_SETATTR_END 145
|
|
#define TR_RFS_LOOKUP_START 146
|
|
#define TR_RFS_LOOKUP_END 147
|
|
#define TR_RFS_READLINK_START 148
|
|
#define TR_RFS_READLINK_END 149
|
|
#define TR_RFS_READ_START 150
|
|
#define TR_RFS_READ_END 151
|
|
#define TR_RFS_WRITE_START 152
|
|
#define TR_RFS_WRITE_END 153
|
|
#define TR_RFS_CREATE_START 154
|
|
#define TR_RFS_CREATE_END 155
|
|
#define TR_RFS_REMOVE_START 156
|
|
#define TR_RFS_REMOVE_END 157
|
|
#define TR_RFS_RENAME_START 158
|
|
#define TR_RFS_RENAME_END 159
|
|
#define TR_RFS_LINK_START 160
|
|
#define TR_RFS_LINK_END 161
|
|
#define TR_RFS_SYMLINK_START 162
|
|
#define TR_RFS_SYMLINK_END 163
|
|
#define TR_RFS_MKDIR_START 164
|
|
#define TR_RFS_MKDIR_END 165
|
|
#define TR_RFS_RMDIR_START 166
|
|
#define TR_RFS_RMDIR_END 167
|
|
#define TR_RFS_READDIR_START 168
|
|
#define TR_RFS_READDIR_END 169
|
|
#define TR_RFS_STATFS_START 170
|
|
#define TR_RFS_STATFS_END 171
|
|
#define TR_RFS_DISPATCH_START 172
|
|
#define TR_RFS_DISPATCH_END 173
|
|
#define TR_SVC_SENDREPLY_START 178
|
|
#define TR_SVC_SENDREPLY_END 179
|
|
|
|
/* More VOP calls */
|
|
#define TR_VOP_FSYNC_START 180
|
|
#define TR_VOP_FSYNC_END 181
|
|
#define TR_VOP_PUTPAGE_START 182
|
|
#define TR_VOP_PUTPAGE_END 183
|
|
#define TR_SEGMAP_RELEASE_START 184
|
|
#define TR_SEGMAP_RELEASE_END 185
|
|
#define TR_SVC_GETARGS_START 186
|
|
#define TR_SVC_GETARGS_END 187
|
|
#define TR_FINDEXPORT_START 188
|
|
#define TR_FINDEXPORT_END 189
|
|
#define TR_RFS_PROC_START 190
|
|
#define TR_RFS_PROC_END 191
|
|
#define TR_SVC_FREEARGS_START 192
|
|
#define TR_SVC_FREEARGS_END 193
|
|
#define TR_RFS_RESFREE_START 194
|
|
#define TR_RFS_RESFREE_END 195
|
|
#define TR_RFS_CRFREE_START 196
|
|
#define TR_RFS_CRFREE_END 197
|
|
#define TR_SVC_DUPFOUND 198
|
|
|
|
/* NFS fast path server trace points */
|
|
#define TR_NFSFP_QUE_REQ_START 199
|
|
#define TR_NFSFP_QUE_REQ_END 200
|
|
#define TR_NFSFP_PROC_REQ_END 201
|
|
#define TR_NFSFP_XDR_ARG_START 202
|
|
#define TR_NFSFP_XDR_ARG_END 203
|
|
#define TR_NFSFP_XDR_RES_START 204
|
|
#define TR_NFSFP_XDR_RES_END 205
|
|
#define TR_NFSFP_DUP_CHECK_START 206
|
|
#define TR_NFSFP_DUP_CHECK_END 207
|
|
#define TR_NFSFP_UDP_SEND_START 208
|
|
#define TR_NFSFP_UDP_SEND_END 209
|
|
#define TR_NFSFP_SEND_REPLY_START 210
|
|
#define TR_NFSFP_SEND_REPLY_END 211
|
|
#define TR_NFSFP_QUE_REQ_ENQ 212
|
|
#define TR_NFSFP_QUE_REQ_DEQ 213
|
|
#define TR_NFSFP_RFS_READLINK_START 214
|
|
#define TR_NFSFP_RFS_READLINK_END 215
|
|
#define TR_NFSFP_SVCAUTH_UNIX_START 216
|
|
#define TR_NFSFP_SVCAUTH_UNIX_END 217
|
|
#define TR_SVC_FREERES_START 222
|
|
#define TR_SVC_FREERES_END 223
|
|
|
|
/* Name cache tracing */
|
|
#define TR_DNLC_ENTER_START 218
|
|
#define TR_DNLC_ENTER_END 219
|
|
#define TR_DNLC_LOOKUP_START 220
|
|
#define TR_DNLC_LOOKUP_END 221
|
|
|
|
/*
|
|
* TR_FAC_KRPC tags
|
|
*/
|
|
|
|
#define TR_SVC_GETREQ_START 0
|
|
#define TR_SVC_GETREQ_END 1
|
|
#define TR_SVC_GETREQ_LOOP_START 2
|
|
#define TR_SVC_GETREQ_LOOP_END 3
|
|
#define TR_SVC_RUN 4
|
|
#define TR_SVC_CLTS_KRECV_START 5
|
|
#define TR_SVC_CLTS_KRECV_END 6
|
|
#define TR_XDR_CALLMSG_START 7
|
|
#define TR_XDR_CALLMSG_END 8
|
|
#define TR_SVC_CLTS_KSEND_START 9
|
|
#define TR_SVC_CLTS_KSEND_END 10
|
|
#define TR_XDR_REPLYMSG_START 11
|
|
#define TR_XDR_REPLYMSG_END 12
|
|
#define TR_RPCMODOPEN_START 13
|
|
#define TR_RPCMODOPEN_END 14
|
|
#define TR_RPCMODRPUT_START 15
|
|
#define TR_RPCMODRPUT_END 16
|
|
#define TR_RPCMODWPUT_START 17
|
|
#define TR_RPCMODWPUT_END 18
|
|
#define TR_RPCMODRSRV_START 19
|
|
#define TR_RPCMODRSRV_END 20
|
|
#define TR_RPCMODWSRV_START 21
|
|
#define TR_RPCMODWSRV_END 22
|
|
#define TR_SVC_QUEUEREQ_START 23
|
|
#define TR_SVC_QUEUEREQ_END 24
|
|
#define TR_SVC_GETREQ_AUTH_START 25
|
|
#define TR_SVC_GETREQ_AUTH_END 26
|
|
#define TR_SVC_DUPDONE 27
|
|
#define TR_SVC_CLTS_KDUP_START 28
|
|
#define TR_SVC_CLTS_KDUP_END 29
|
|
#define TR_RPC_QUE_REQ_START 30
|
|
#define TR_RPC_QUE_REQ_END 31
|
|
#define TR_SVC_COTS_KRECV_START 32
|
|
#define TR_SVC_COTS_KRECV_END 33
|
|
#define TR_SVC_COTS_KDUP_DONE 34
|
|
#define TR_SVC_COTS_KDUP_INPROGRESS 35
|
|
#define TR_SVC_COTS_KSEND_START 36
|
|
#define TR_SVC_COTS_KSEND_END 37
|
|
|
|
/*
|
|
* TR_FAC_SCSI_RES
|
|
*/
|
|
|
|
#define TR_SCSI_INIT_PKT_START 0
|
|
#define TR_SCSI_INIT_PKT_RETURN1_END 1
|
|
#define TR_SCSI_INIT_PKT_RETURN2_END 2
|
|
#define TR_SCSI_INIT_PKT_END 3
|
|
#define TR_SCSI_INIT_PKT_PKTALLOC_START 4
|
|
#define TR_SCSI_INIT_PKT_PKTALLOC_END 5
|
|
#define TR_SCSI_INIT_PKT_PKTALLOC_FAILED 6
|
|
#define TR_SCSI_INIT_PKT_DMAGET_START 7
|
|
#define TR_SCSI_INIT_PKT_DMAGET_FAILED 8
|
|
#define TR_SCSI_INIT_PKT_FREE_START 9
|
|
#define TR_SCSI_ALLOC_CONSISTENT_BUF_START 10
|
|
#define TR_SCSI_ALLOC_CONSISTENT_BUF_RETURN1_END 11
|
|
#define TR_SCSI_ALLOC_CONSISTENT_BUF_RETURN2_END 12
|
|
#define TR_SCSI_ALLOC_CONSISTENT_BUF_RETURN3_END 13
|
|
#define TR_SCSI_ALLOC_CONSISTENT_BUF_END 14
|
|
#define TR_SCSI_FREE_CONSISTENT_BUF_START 15
|
|
#define TR_SCSI_FREE_CONSISTENT_BUF_END 16
|
|
|
|
#define TR_SCSI_IMPL_PKTALLOC_START 17
|
|
#define TR_SCSI_IMPL_PKTALLOC_END 18
|
|
#define TR_SCSI_IMPL_PKTALLOC_CALLBACK_START 19
|
|
#define TR_SCSI_IMPL_PKTALLOC_CALLBACK_END 20
|
|
#define TR_SCSI_IMPL_PKTFREE_START 21
|
|
#define TR_SCSI_IMPL_PKTFREE_END 22
|
|
#define TR_SCSI_IMPL_PKTFREE_RUN_CALLBACK 23
|
|
|
|
#define TR_SCSI_IMPL_DMAGET_START 24
|
|
#define TR_SCSI_IMPL_DMAGET_END 25
|
|
#define TR_SCSI_IMPL_DMAGET_BUFSETUP_START 26
|
|
#define TR_SCSI_IMPL_DMAGET_BUFSETUP_FAILED 27
|
|
|
|
#define TR_SCSI_DESTROY_PKT_START 28
|
|
#define TR_SCSI_DESTROY_PKT_END 29
|
|
|
|
#define TR_FIFOREAD_IN 1
|
|
#define TR_FIFOREAD_OUT 2
|
|
#define TR_FIFOREAD_WAIT 3
|
|
#define TR_FIFOREAD_WAKE 4
|
|
#define TR_FIFOREAD_STREAM 5
|
|
#define TR_FIFOWRITE_IN 6
|
|
#define TR_FIFOWRITE_OUT 7
|
|
#define TR_FIFOWRITE_WAIT 9
|
|
#define TR_FIFOWRITE_WAKE 10
|
|
#define TR_FIFOWRITE_STREAM 11
|
|
|
|
#define TR_RLOGINP_RPUT_IN 0
|
|
#define TR_RLOGINP_RPUT_OUT 1
|
|
#define TR_RLOGINP_RSRV_IN 2
|
|
#define TR_RLOGINP_RSRV_OUT 3
|
|
#define TR_RLOGINP_WSRV_IN 4
|
|
#define TR_RLOGINP_WSRV_OUT 5
|
|
#define TR_RLOGINP_WPUT_IN 6
|
|
#define TR_RLOGINP_WPUT_OUT 7
|
|
#define TR_RLOGINP_WINCTL_IN 8
|
|
#define TR_RLOGINP_WINCTL_OUT 9
|
|
|
|
/*
|
|
* Every trace file begins with a version record, so tools can tell whether
|
|
* or not they're equipped to decode the file. For this reason, the format
|
|
* of the version record should *never* be changed.
|
|
* The version consists of major, micro, and micro numbers. They have
|
|
* specific meanings:
|
|
*
|
|
* - v_micro: existing tools should be unaffected. This should be the case
|
|
* if all you do is add new trace points, for example.
|
|
*
|
|
* - v_minor: existing tools may have to be recompiled, possibly with one
|
|
* or two very small changes. For example, this would generally
|
|
* be the case if you modified one of the standard (facility 0)
|
|
* trace record structures.
|
|
*
|
|
* - v_major: you've changed the world and broken everything.
|
|
*
|
|
* If you make a change to this file, please rev the version according to
|
|
* the above guidelines.
|
|
*/
|
|
|
|
#define VT_VERSION_MAJOR 3
|
|
#define VT_VERSION_MINOR 0
|
|
#define VT_VERSION_MICRO 0
|
|
#define VT_VERSION_NAME "92/02/18"
|
|
|
|
#define VT_FAC_SHIFT 24
|
|
#define VT_FAC_MASK 0xff
|
|
#define VT_TAG_SHIFT 16
|
|
#define VT_TAG_MASK 0xff
|
|
#define VT_EVENT_SHIFT 16
|
|
#define VT_EVENT_MASK 0xffff
|
|
#define VT_TIME_SHIFT 0
|
|
#define VT_TIME_MASK 0xffff
|
|
|
|
#define VT_MAX_FAC VT_FAC_MASK
|
|
#define VT_MAX_TAG VT_TAG_MASK
|
|
#define VT_MAX_EVENT VT_EVENT_MASK
|
|
|
|
#define VT_MAX_WORDS 64
|
|
#define VT_MAX_BYTES 256
|
|
|
|
#define TR_DATA_MIN TR_DATA_4
|
|
#define TR_DATA_MAX TR_DATA_64
|
|
|
|
#define IS_DATA_REC(x) (((x) >= TR_DATA_MIN) && ((x) <= TR_DATA_MAX))
|
|
|
|
/*
|
|
* Note: the eight VT_* macros below operate on words, NOT pointers to words!
|
|
*/
|
|
|
|
#define VT_FAC(vt) (((vt) >> VT_FAC_SHIFT) & VT_FAC_MASK)
|
|
#define VT_TAG(vt) (((vt) >> VT_TAG_SHIFT) & VT_TAG_MASK)
|
|
#define VT_EVENT(vt) (((vt) >> VT_EVENT_SHIFT) & VT_EVENT_MASK)
|
|
#define VT_TIME(vt) (((vt) >> VT_TIME_SHIFT) & VT_TIME_MASK)
|
|
|
|
#define VT_SET_FAC(vt, fac) vt |= (fac) << VT_FAC_SHIFT
|
|
#define VT_SET_TAG(vt, tag) vt |= (tag) << VT_TAG_SHIFT
|
|
#define VT_SET_EVENT(vt, event) vt |= (event) << VT_EVENT_SHIFT
|
|
#define VT_SET_TIME(vt, time) vt |= (time) << VT_TIME_SHIFT
|
|
|
|
#define FTT2HEAD(fac, tag, time) \
|
|
(((fac) << VT_FAC_SHIFT) | ((tag) << VT_TAG_SHIFT) | (time))
|
|
|
|
#define ET2HEAD(event, time) (((event) << VT_EVENT_SHIFT) | (time))
|
|
#define FT2EVENT(fac, tag) (((fac) << 8) | (tag))
|
|
|
|
/*
|
|
* Meaning of bits in the event map
|
|
*/
|
|
|
|
#define VT_ENABLED 0x80
|
|
#define VT_USED 0x40
|
|
/* reserved 0x20 */
|
|
#define VT_STRING_5 0x10
|
|
#define VT_STRING_4 0x08
|
|
#define VT_STRING_3 0x04
|
|
#define VT_STRING_2 0x02
|
|
#define VT_STRING_1 0x01
|
|
|
|
#define VT_STRING_MASK 0x1f
|
|
|
|
#define VT_MAPSIZE 65536
|
|
|
|
#define VT_TEST(map, event, mask) \
|
|
(map[event] & (mask))
|
|
#define VT_SET(map, event, mask) \
|
|
map[event] |= (mask)
|
|
#define VT_UNSET(map, event, mask) \
|
|
map[event] &= ~(mask)
|
|
|
|
#define VT_TEST_FT(map, fac, tag, mask) \
|
|
VT_TEST(map, FT2EVENT(fac, tag), mask)
|
|
|
|
#define VT_SET_FT(map, fac, tag, mask) \
|
|
VT_SET(map, FT2EVENT(fac, tag), mask)
|
|
|
|
#define VT_UNSET_FT(map, fac, tag, mask) \
|
|
VT_UNSET(map, FT2EVENT(fac, tag), mask)
|
|
|
|
#define VT_FAC_ENABLE(map, fac) \
|
|
{ \
|
|
u_long xvt_i; \
|
|
for (xvt_i = FT2EVENT((fac), 0); \
|
|
xvt_i < (u_long) FT2EVENT((fac) + 1, 0); \
|
|
xvt_i++) \
|
|
map[xvt_i] = VT_ENABLED; \
|
|
}
|
|
|
|
#ifndef _ASM
|
|
|
|
/*
|
|
* Trace record structure definitions
|
|
*/
|
|
|
|
/*
|
|
* Common trace header
|
|
*/
|
|
|
|
typedef u_long vt_trace_t;
|
|
|
|
/*
|
|
* Generic trace record -- any trace record will fit in this struct.
|
|
*/
|
|
|
|
typedef struct vt_generic {
|
|
vt_trace_t head; /* common header */
|
|
u_long data[VT_MAX_WORDS - 1]; /* generic data */
|
|
} vt_generic_t;
|
|
|
|
|
|
/*
|
|
* TR_VERSION
|
|
*/
|
|
|
|
typedef struct vt_version {
|
|
vt_trace_t head; /* common header */
|
|
u_long v_major; /* major version number */
|
|
u_long v_minor; /* minor version number */
|
|
u_long v_micro; /* micro version number */
|
|
u_long v_name; /* version name */
|
|
/* followed by a data record with the version string */
|
|
} vt_version_t;
|
|
|
|
/*
|
|
* TR_TITLE
|
|
*/
|
|
|
|
typedef struct vt_title {
|
|
vt_trace_t head; /* common header */
|
|
u_long title; /* trace file title */
|
|
/* followed by a data record with the title string */
|
|
} vt_title_t;
|
|
|
|
/*
|
|
* TR_LABEL
|
|
*/
|
|
|
|
typedef struct vt_label {
|
|
vt_trace_t head; /* common header */
|
|
u_long facility; /* facility: UFS, VM, STREAMS, ... */
|
|
u_long tag; /* tag within the facility */
|
|
u_long length; /* length in words */
|
|
u_long info; /* Low-order 5 bits are the string bits */
|
|
u_long npf; /* name-plus-format string */
|
|
/* followed by a data record with the name\0format\0 string */
|
|
} vt_label_t;
|
|
|
|
/*
|
|
* TR_PAGESIZE
|
|
*/
|
|
|
|
typedef struct vt_pagesize {
|
|
vt_trace_t head; /* common header */
|
|
u_long pagesize; /* system page size */
|
|
} vt_pagesize_t;
|
|
|
|
/*
|
|
* TR_NUM_CPUS
|
|
*/
|
|
|
|
typedef struct vt_num_cpus {
|
|
vt_trace_t head; /* common header */
|
|
u_long num_cpus; /* number of CPUs on the system */
|
|
} vt_num_cpus_t;
|
|
|
|
/*
|
|
* TR_CPU
|
|
*/
|
|
|
|
typedef struct vt_cpu {
|
|
vt_trace_t head; /* common header */
|
|
u_long cpu_num; /* which cpu generated the following traces */
|
|
} vt_cpu_t;
|
|
|
|
/*
|
|
* TR_DATA_4
|
|
*/
|
|
|
|
typedef struct vt_data_4 {
|
|
vt_trace_t head; /* common header */
|
|
u_long data[3]; /* generic data */
|
|
} vt_data_4_t;
|
|
|
|
/*
|
|
* TR_DATA_8
|
|
*/
|
|
|
|
typedef struct vt_data_8 {
|
|
vt_trace_t head; /* common header */
|
|
u_long data[7]; /* generic data */
|
|
} vt_data_8_t;
|
|
|
|
/*
|
|
* TR_DATA_16
|
|
*/
|
|
|
|
typedef struct vt_data_16 {
|
|
vt_trace_t head; /* common header */
|
|
u_long data[15]; /* generic data */
|
|
} vt_data_16_t;
|
|
|
|
/*
|
|
* TR_DATA_32
|
|
*/
|
|
|
|
typedef struct vt_data_32 {
|
|
vt_trace_t head; /* common header */
|
|
u_long data[31]; /* generic data */
|
|
} vt_data_32_t;
|
|
|
|
/*
|
|
* TR_DATA_64
|
|
*/
|
|
|
|
typedef struct vt_data_64 {
|
|
vt_trace_t head; /* common header */
|
|
u_long data[63]; /* generic data */
|
|
} vt_data_64_t;
|
|
|
|
/*
|
|
* TR_ABS_TIME
|
|
*/
|
|
|
|
typedef struct vt_abs_time {
|
|
vt_trace_t head; /* common header */
|
|
struct {
|
|
u_long hi32; /* time.hi32 = hi32(hrtime_t) */
|
|
u_long lo32; /* time.lo32 = lo32(hrtime_t) */
|
|
} time;
|
|
} vt_abs_time_t;
|
|
|
|
/*
|
|
* TR_START_TIME
|
|
*/
|
|
|
|
typedef struct vt_start_time {
|
|
vt_trace_t head; /* common header */
|
|
struct {
|
|
u_long hi32; /* time.hi32 = hi32(hrtime_t) */
|
|
u_long lo32; /* time.lo32 = lo32(hrtime_t) */
|
|
} time;
|
|
} vt_start_time_t;
|
|
|
|
/*
|
|
* TR_ELAPSED_TIME
|
|
*/
|
|
|
|
typedef struct vt_elapsed_time {
|
|
vt_trace_t head; /* common header */
|
|
u_long time; /* 32 bit time since previous trace */
|
|
} vt_elapsed_time_t;
|
|
|
|
/*
|
|
* TR_TOTAL_TIME
|
|
*/
|
|
|
|
typedef struct vt_total_time {
|
|
vt_trace_t head; /* common header */
|
|
struct {
|
|
u_long hi32; /* time.hi32 = hi32(hrtime_t) */
|
|
u_long lo32; /* time.lo32 = lo32(hrtime_t) */
|
|
} time;
|
|
} vt_total_time_t;
|
|
|
|
/*
|
|
* TR_KTHREAD_ID
|
|
*/
|
|
|
|
typedef struct vt_kthread_id {
|
|
vt_trace_t head; /* common header */
|
|
u_long pid; /* process ID */
|
|
u_long lwpid; /* lwp ID */
|
|
u_long tid; /* thread ID */
|
|
u_long vid; /* vtrace ID */
|
|
u_long name; /* thread name */
|
|
/* followed by a data record with the thread name string */
|
|
} vt_kthread_id_t;
|
|
|
|
/*
|
|
* TR_UTHREAD_ID
|
|
*/
|
|
|
|
typedef struct vt_uthread_id {
|
|
vt_trace_t head; /* common header */
|
|
u_long pid; /* process ID */
|
|
u_long lwpid; /* lwp ID */
|
|
u_long tid; /* thread ID */
|
|
u_long vid; /* vtrace ID */
|
|
u_long name; /* thread name */
|
|
/* followed by a data record with the thread name string */
|
|
} vt_uthread_id_t;
|
|
|
|
/*
|
|
* TR_RAW_KTHREAD_ID
|
|
*/
|
|
|
|
typedef struct vt_raw_kthread_id {
|
|
vt_trace_t head; /* common header */
|
|
u_long tid; /* thread ID */
|
|
} vt_raw_kthread_id_t;
|
|
|
|
/*
|
|
* TR_RAW_UTHREAD_ID
|
|
*/
|
|
|
|
typedef struct vt_raw_uthread_id {
|
|
vt_trace_t head; /* common header */
|
|
u_long pid; /* process ID */
|
|
u_long lwpid; /* lwp ID */
|
|
u_long tid; /* thread ID */
|
|
} vt_raw_uthread_id_t;
|
|
|
|
/*
|
|
* TR_KTHREAD_LABEL
|
|
*/
|
|
|
|
typedef struct vt_kthread_label {
|
|
vt_trace_t head; /* common header */
|
|
u_long pid; /* process ID */
|
|
u_long lwpid; /* lwp ID */
|
|
u_long tid; /* thread ID */
|
|
u_long startpc; /* PC where the thread started */
|
|
} vt_kthread_label_t;
|
|
|
|
/*
|
|
* TR_UTHREAD_LABEL
|
|
*/
|
|
|
|
typedef struct vt_uthread_label {
|
|
vt_trace_t head; /* common header */
|
|
u_long pid; /* process ID */
|
|
u_long lwpid; /* lwp ID */
|
|
u_long tid; /* thread ID */
|
|
u_long startpc; /* PC where the thread started */
|
|
} vt_uthread_label_t;
|
|
|
|
/*
|
|
* TR_PROCESS_NAME
|
|
*/
|
|
|
|
typedef struct vt_process_name {
|
|
vt_trace_t head; /* common header */
|
|
u_long pid; /* process ID */
|
|
u_long name; /* process name (u.u_psargs) */
|
|
/* followed by a data record with the process name string */
|
|
} vt_process_name_t;
|
|
|
|
/*
|
|
* TR_PROCESS_FORK
|
|
*/
|
|
|
|
typedef struct vt_process_fork {
|
|
vt_trace_t head; /* common header */
|
|
u_long cpid; /* child process ID */
|
|
u_long ppid; /* parent process ID */
|
|
} vt_process_fork_t;
|
|
|
|
/*
|
|
* pointer to any structure in a trace file
|
|
*/
|
|
|
|
typedef union vt_pointer {
|
|
u_long *u_long_p;
|
|
u_char *u_char_p;
|
|
char *char_p;
|
|
vt_trace_t *trace_p;
|
|
vt_generic_t *generic_p;
|
|
vt_version_t *version_p;
|
|
vt_title_t *title_p;
|
|
vt_label_t *label_p;
|
|
vt_pagesize_t *pagesize_p;
|
|
vt_num_cpus_t *num_cpus_p;
|
|
vt_cpu_t *cpu_p;
|
|
vt_data_4_t *data_4_p;
|
|
vt_data_8_t *data_8_p;
|
|
vt_data_16_t *data_16_p;
|
|
vt_data_32_t *data_32_p;
|
|
vt_data_64_t *data_64_p;
|
|
vt_abs_time_t *abs_time_p;
|
|
vt_start_time_t *start_time_p;
|
|
vt_elapsed_time_t *elapsed_time_p;
|
|
vt_total_time_t *total_time_p;
|
|
vt_kthread_id_t *kthread_id_p;
|
|
vt_uthread_id_t *uthread_id_p;
|
|
vt_raw_kthread_id_t *raw_kthread_id_p;
|
|
vt_raw_uthread_id_t *raw_uthread_id_p;
|
|
vt_kthread_label_t *kthread_label_p;
|
|
vt_uthread_label_t *uthread_label_p;
|
|
vt_process_name_t *process_name_p;
|
|
vt_process_fork_t *process_fork_p;
|
|
} vt_pointer_t;
|
|
|
|
/*
|
|
* Data structures used by vtrace(VTR_INFO)
|
|
*/
|
|
|
|
typedef struct vt_global_info {
|
|
hrtime_t elapsed_time;
|
|
int v_major;
|
|
int v_minor;
|
|
int v_micro;
|
|
int tracing_state;
|
|
int tracing_pid;
|
|
int ncpus;
|
|
void *tracedata_ptrs;
|
|
} vt_global_info_t;
|
|
|
|
typedef struct vt_cpu_info {
|
|
u_long cpu_online;
|
|
u_long reserved;
|
|
u_longlong_t bytes_flushed;
|
|
u_long max_flushsize;
|
|
u_long tbuf_size;
|
|
u_long tbuf_lowater;
|
|
char **tbuf_headp;
|
|
char *tbuf_start;
|
|
char *tbuf_end;
|
|
char *tbuf_wrap;
|
|
char *tbuf_head;
|
|
char *tbuf_tail;
|
|
char *tbuf_redzone;
|
|
char *tbuf_overflow;
|
|
u_char *real_event_map;
|
|
u_char *event_map;
|
|
struct file *trace_file;
|
|
} vt_cpu_info_t;
|
|
|
|
#endif /* _ASM */
|
|
|
|
/*
|
|
* Requests for the vtrace() system call.
|
|
*/
|
|
|
|
#define VTR_INIT 0 /* initialize trace buffers */
|
|
#define VTR_FILE 1 /* bind user fd to CPU trace buffer */
|
|
#define VTR_EVENTMAP 2 /* set entire event_map */
|
|
#define VTR_EVENT 3 /* enable a single event */
|
|
#define VTR_START 4 /* start tracing (up to pause state) */
|
|
#define VTR_PAUSE 5 /* momentarily pause (stop) tracing */
|
|
#define VTR_RESUME 6 /* resume tracing from a pause */
|
|
#define VTR_INFO 7 /* return tracing status info */
|
|
#define VTR_FLUSH 8 /* flush trace buffers to files */
|
|
#define VTR_RESET 9 /* stop tracing, free resources */
|
|
#define VTR_TEST 10 /* run tracing speed tests */
|
|
#define VTR_PROCESS 11 /* trace only selected processes */
|
|
#define VTR_GET_STRING 12 /* copy out string from kaddr */
|
|
|
|
/*
|
|
* Flags for vtrace() requests.
|
|
*/
|
|
|
|
#define VTR_INFO_GLOBAL 0 /* return global info */
|
|
#define VTR_INFO_PERCPU 1 /* return per-CPU info */
|
|
#define VTR_NOFORCE 0 /* don't force the vtrace request */
|
|
#define VTR_FORCE 1 /* force the vtrace request */
|
|
|
|
/*
|
|
* Tracing states.
|
|
*/
|
|
|
|
#define VTR_STATE_NULL 0x01 /* tracing subsystem inactive */
|
|
#define VTR_STATE_READY 0x02 /* ready to begin tracing */
|
|
#define VTR_STATE_PAUSE 0x04 /* tracing paused, but fac 0 still on */
|
|
#define VTR_STATE_ACTIVE 0x08 /* tracing active */
|
|
#define VTR_STATE_PERPROC 0x10 /* tracing active on per-proc basis */
|
|
#define VTR_STATE_HALTED 0x20 /* tracing halted */
|
|
|
|
/*
|
|
* Per-process tracing modes.
|
|
*/
|
|
|
|
#define VTR_PROCESS_NULL 0x01 /* not doing per-process tracing */
|
|
#define VTR_PROCESS_TRACE 0x02 /* trace procs in process_list */
|
|
#define VTR_PROCESS_NOTRACE 0x04 /* trace procs not in process_list */
|
|
|
|
#define MAX_TRACE_NPROCS 64 /* max procs traced in PERPROC mode */
|
|
|
|
#ifdef _KERNEL
|
|
#ifdef TRACE
|
|
|
|
#ifndef _ASM
|
|
|
|
extern u_char null_event_map[];
|
|
extern u_long bytes2data[];
|
|
extern void trace_resume(void);
|
|
extern void trace_pause(void);
|
|
extern void trace_halt(void);
|
|
extern void trace_reset(int);
|
|
extern int trace_flush(int);
|
|
extern int tracing_state;
|
|
extern int trace_set_process_list(int, pid_t *, int);
|
|
extern void trace_check_process(void);
|
|
extern void inittrace(void);
|
|
extern void trace_0(u_long);
|
|
extern void trace_1(u_long, u_long);
|
|
extern void trace_2(u_long, u_long, u_long);
|
|
extern void trace_3(u_long, u_long, u_long, u_long);
|
|
extern void trace_4(u_long, u_long, u_long, u_long, u_long);
|
|
extern void trace_5(u_long, u_long, u_long, u_long, u_long, u_long);
|
|
extern void trace_write_buffer(u_long *, u_long);
|
|
extern u_char trace_label(u_char, u_char, u_short, char *, int);
|
|
extern void trace_kthread_label(kthread_id_t, int);
|
|
extern void trace_process_name(u_long, char *);
|
|
extern void trace_process_fork(u_long, u_long);
|
|
|
|
#endif /* _ASM */
|
|
|
|
#define TRACE_N(fac, tag, name, len, func) \
|
|
{ \
|
|
u_char xvt_info = \
|
|
CPU->cpu_trace.event_map[FT2EVENT(fac, tag)]; \
|
|
if (xvt_info & VT_ENABLED) { \
|
|
if (!(xvt_info & VT_USED)) \
|
|
xvt_info = trace_label(fac, tag, len, \
|
|
name, -1); \
|
|
func; \
|
|
} \
|
|
}
|
|
|
|
#else /* TRACE */
|
|
|
|
#define TRACE_N(fac, tag, name, len, func)
|
|
|
|
#endif /* TRACE */
|
|
#endif /* _KERNEL */
|
|
|
|
#define TRACE_0(fac, tag, name) \
|
|
TRACE_N(fac, tag, name, 4, \
|
|
trace_0(FTT2HEAD(fac, tag, xvt_info)))
|
|
|
|
#define TRACE_1(fac, tag, name, d1) \
|
|
TRACE_N(fac, tag, name, 8, \
|
|
trace_1(FTT2HEAD(fac, tag, xvt_info), (u_long) (d1)))
|
|
|
|
#define TRACE_2(fac, tag, name, d1, d2) \
|
|
TRACE_N(fac, tag, name, 12, \
|
|
trace_2(FTT2HEAD(fac, tag, xvt_info), (u_long) (d1), (u_long) (d2)))
|
|
|
|
#define TRACE_3(fac, tag, name, d1, d2, d3) \
|
|
TRACE_N(fac, tag, name, 16, \
|
|
trace_3(FTT2HEAD(fac, tag, xvt_info), (u_long) (d1), (u_long) (d2), \
|
|
(u_long) (d3)))
|
|
|
|
#define TRACE_4(fac, tag, name, d1, d2, d3, d4) \
|
|
TRACE_N(fac, tag, name, 20, \
|
|
trace_4(FTT2HEAD(fac, tag, xvt_info), (u_long) (d1), (u_long) (d2), \
|
|
(u_long) (d3), (u_long) (d4)))
|
|
|
|
#define TRACE_5(fac, tag, name, d1, d2, d3, d4, d5) \
|
|
TRACE_N(fac, tag, name, 24, \
|
|
trace_5(FTT2HEAD(fac, tag, xvt_info), (u_long) (d1), (u_long) (d2), \
|
|
(u_long) (d3), (u_long) (d4), (u_long) (d5)))
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* _SYS_VTRACE_H */
|