]>
git.saurik.com Git - apple/xnu.git/blob - bsd/sys/trace.h
   2  * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved. 
   4  * @APPLE_LICENSE_HEADER_START@ 
   6  * Copyright (c) 1999-2003 Apple Computer, Inc.  All Rights Reserved. 
   8  * This file contains Original Code and/or Modifications of Original Code 
   9  * as defined in and that are subject to the Apple Public Source License 
  10  * Version 2.0 (the 'License'). You may not use this file except in 
  11  * compliance with the License. Please obtain a copy of the License at 
  12  * http://www.opensource.apple.com/apsl/ and read it before using this 
  15  * The Original Code and all software distributed under the License are 
  16  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
  17  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
  18  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 
  19  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
  20  * Please see the License for the specific language governing rights and 
  21  * limitations under the License. 
  23  * @APPLE_LICENSE_HEADER_END@ 
  25 /* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */ 
  27  * Copyright (c) 1982, 1986, 1993 
  28  *      The Regents of the University of California.  All rights reserved. 
  30  * Redistribution and use in source and binary forms, with or without 
  31  * modification, are permitted provided that the following conditions 
  33  * 1. Redistributions of source code must retain the above copyright 
  34  *    notice, this list of conditions and the following disclaimer. 
  35  * 2. Redistributions in binary form must reproduce the above copyright 
  36  *    notice, this list of conditions and the following disclaimer in the 
  37  *    documentation and/or other materials provided with the distribution. 
  38  * 3. All advertising materials mentioning features or use of this software 
  39  *    must display the following acknowledgement: 
  40  *      This product includes software developed by the University of 
  41  *      California, Berkeley and its contributors. 
  42  * 4. Neither the name of the University nor the names of its contributors 
  43  *    may be used to endorse or promote products derived from this software 
  44  *    without specific prior written permission. 
  46  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 
  47  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
  48  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
  49  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 
  50  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
  51  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 
  52  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
  53  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
  54  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 
  55  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
  58  *      @(#)trace.h     8.1 (Berkeley) 6/2/93 
  64 #include <sys/appleapiopts.h> 
  66 #ifdef __APPLE_API_OBSOLETE 
  68  * File system buffer tracing points; all trace <pack(dev, size), bn> 
  70 #define TR_BREADHIT     0       /* buffer read found in cache */ 
  71 #define TR_BREADMISS    1       /* buffer read not in cache */ 
  72 #define TR_BWRITE       2       /* buffer written */ 
  73 #define TR_BREADHITRA   3       /* buffer read-ahead found in cache */ 
  74 #define TR_BREADMISSRA  4       /* buffer read-ahead not in cache */ 
  75 #define TR_XFODMISS     5       /* exe fod read */ 
  76 #define TR_XFODHIT      6       /* exe fod read */ 
  77 #define TR_BRELSE       7       /* brelse */ 
  78 #define TR_BREALLOC     8       /* expand/contract a buffer */ 
  81  * Memory allocator trace points; all trace the amount of memory involved 
  83 #define TR_MALL         10      /* memory allocated */ 
  86  * Paging trace points: all are <vaddr, pid> 
  88 #define TR_INTRANS      20      /* page intransit block */ 
  89 #define TR_EINTRANS     21      /* page intransit wait done */ 
  90 #define TR_FRECLAIM     22      /* reclaim from free list */ 
  91 #define TR_RECLAIM      23      /* reclaim from loop */ 
  92 #define TR_XSFREC       24      /* reclaim from free list instead of drum */ 
  93 #define TR_XIFREC       25      /* reclaim from free list instead of fsys */ 
  94 #define TR_WAITMEM      26      /* wait for memory in pagein */ 
  95 #define TR_EWAITMEM     27      /* end memory wait in pagein */ 
  96 #define TR_ZFOD         28      /* zfod page fault */ 
  97 #define TR_EXFOD        29      /* exec fod page fault */ 
  98 #define TR_VRFOD        30      /* vread fod page fault */ 
  99 #define TR_CACHEFOD     31      /* fod in file system cache */ 
 100 #define TR_SWAPIN       32      /* drum page fault */ 
 101 #define TR_PGINDONE     33      /* page in done */ 
 102 #define TR_SWAPIO       34      /* swap i/o request arrives */ 
 105  * System call trace points. 
 107 #define TR_VADVISE      40      /* vadvise occurred with <arg, pid> */ 
 112 #define TR_STAMP        45      /* user said vtrace(VTR_STAMP, value); */ 
 115  * This defines the size of the trace flags array. 
 117 #define TR_NFLAGS       100     /* generous */ 
 122  * Specifications of the vtrace() system call, which takes one argument. 
 126 #define VTR_DISABLE     0               /* set a trace flag to 0 */ 
 127 #define VTR_ENABLE      1               /* set a trace flag to 1 */ 
 128 #define VTR_VALUE       2               /* return value of a trace flag */ 
 129 #define VTR_UALARM      3               /* set alarm to go off (sig 16) */ 
 130                                         /* in specified number of hz */ 
 131 #define VTR_STAMP       4               /* user specified stamp */ 
 135 extern struct   proc 
*traceproc
; 
 136 extern int      tracewhich
, tracebuf
[TRCSIZ
]; 
 138 extern char     traceflags
[TR_NFLAGS
]; 
 139 #define pack(v,b)       (((v)->v_mount->mnt_stat.f_fsid.val[0])<<16)|(b) 
 140 #define trace(a,b,c) {                                                  \ 
 149 #endif /* __APPLE_API_OBSOLETE */ 
 151 #endif /* !_SYS_TRACE_H_ */