|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. ! 3: * ! 4: * @APPLE_LICENSE_HEADER_START@ ! 5: * ! 6: * The contents of this file constitute Original Code as defined in and ! 7: * are subject to the Apple Public Source License Version 1.1 (the ! 8: * "License"). You may not use this file except in compliance with the ! 9: * License. Please obtain a copy of the License at ! 10: * http://www.apple.com/publicsource and read it before using this file. ! 11: * ! 12: * This Original Code and all software distributed under the License are ! 13: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER ! 14: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, ! 15: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, ! 16: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the ! 17: * License for the specific language governing rights and limitations ! 18: * under the License. ! 19: * ! 20: * @APPLE_LICENSE_HEADER_END@ ! 21: */ ! 22: /* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */ ! 23: /* ! 24: * Copyright (c) 1988, 1993 ! 25: * The Regents of the University of California. All rights reserved. ! 26: * ! 27: * Redistribution and use in source and binary forms, with or without ! 28: * modification, are permitted provided that the following conditions ! 29: * are met: ! 30: * 1. Redistributions of source code must retain the above copyright ! 31: * notice, this list of conditions and the following disclaimer. ! 32: * 2. Redistributions in binary form must reproduce the above copyright ! 33: * notice, this list of conditions and the following disclaimer in the ! 34: * documentation and/or other materials provided with the distribution. ! 35: * 3. All advertising materials mentioning features or use of this software ! 36: * must display the following acknowledgement: ! 37: * This product includes software developed by the University of ! 38: * California, Berkeley and its contributors. ! 39: * 4. Neither the name of the University nor the names of its contributors ! 40: * may be used to endorse or promote products derived from this software ! 41: * without specific prior written permission. ! 42: * ! 43: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ! 44: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ! 45: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ! 46: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ! 47: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ! 48: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ! 49: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ! 50: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ! 51: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ! 52: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ! 53: * SUCH DAMAGE. ! 54: * ! 55: * @(#)ktrace.h 8.1 (Berkeley) 6/2/93 ! 56: */ ! 57: ! 58: #ifndef _SYS_KTRACE_H_ ! 59: #define _SYS_KTRACE_H_ ! 60: ! 61: /* ! 62: * operations to ktrace system call (KTROP(op)) ! 63: */ ! 64: #define KTROP_SET 0 /* set trace points */ ! 65: #define KTROP_CLEAR 1 /* clear trace points */ ! 66: #define KTROP_CLEARFILE 2 /* stop all tracing to file */ ! 67: #define KTROP(o) ((o)&3) /* macro to extract operation */ ! 68: /* ! 69: * flags (ORed in with operation) ! 70: */ ! 71: #define KTRFLAG_DESCEND 4 /* perform op on all children too */ ! 72: ! 73: /* ! 74: * ktrace record header ! 75: */ ! 76: struct ktr_header { ! 77: int ktr_len; /* length of buf */ ! 78: short ktr_type; /* trace record type */ ! 79: pid_t ktr_pid; /* process id */ ! 80: char ktr_comm[MAXCOMLEN+1]; /* command name */ ! 81: struct timeval ktr_time; /* timestamp */ ! 82: caddr_t ktr_buf; ! 83: }; ! 84: ! 85: /* ! 86: * Test for kernel trace point ! 87: */ ! 88: #define KTRPOINT(p, type) \ ! 89: (((p)->p_traceflag & ((1<<(type))|KTRFAC_ACTIVE)) == (1<<(type))) ! 90: ! 91: /* ! 92: * ktrace record types ! 93: */ ! 94: ! 95: /* ! 96: * KTR_SYSCALL - system call record ! 97: */ ! 98: #define KTR_SYSCALL 1 ! 99: struct ktr_syscall { ! 100: int ktr_code; /* syscall number */ ! 101: int ktr_argsize; /* size of arguments */ ! 102: /* ! 103: * followed by ktr_argsize/sizeof(register_t) "register_t"s ! 104: */ ! 105: }; ! 106: ! 107: /* ! 108: * KTR_SYSRET - return from system call record ! 109: */ ! 110: #define KTR_SYSRET 2 ! 111: struct ktr_sysret { ! 112: short ktr_code; ! 113: short ktr_eosys; ! 114: int ktr_error; ! 115: int ktr_retval; ! 116: }; ! 117: ! 118: /* ! 119: * KTR_NAMEI - namei record ! 120: */ ! 121: #define KTR_NAMEI 3 ! 122: /* record contains pathname */ ! 123: ! 124: /* ! 125: * KTR_GENIO - trace generic process i/o ! 126: */ ! 127: #define KTR_GENIO 4 ! 128: struct ktr_genio { ! 129: int ktr_fd; ! 130: enum uio_rw ktr_rw; ! 131: /* ! 132: * followed by data successfully read/written ! 133: */ ! 134: }; ! 135: ! 136: /* ! 137: * KTR_PSIG - trace processed signal ! 138: */ ! 139: #define KTR_PSIG 5 ! 140: struct ktr_psig { ! 141: int signo; ! 142: sig_t action; ! 143: int mask; ! 144: int code; ! 145: }; ! 146: ! 147: /* ! 148: * KTR_CSW - trace context switches ! 149: */ ! 150: #define KTR_CSW 6 ! 151: struct ktr_csw { ! 152: int out; /* 1 if switch out, 0 if switch in */ ! 153: int user; /* 1 if usermode (ivcsw), 0 if kernel (vcsw) */ ! 154: }; ! 155: ! 156: /* ! 157: * kernel trace points (in p_traceflag) ! 158: */ ! 159: #define KTRFAC_MASK 0x00ffffff ! 160: #define KTRFAC_SYSCALL (1<<KTR_SYSCALL) ! 161: #define KTRFAC_SYSRET (1<<KTR_SYSRET) ! 162: #define KTRFAC_NAMEI (1<<KTR_NAMEI) ! 163: #define KTRFAC_GENIO (1<<KTR_GENIO) ! 164: #define KTRFAC_PSIG (1<<KTR_PSIG) ! 165: #define KTRFAC_CSW (1<<KTR_CSW) ! 166: /* ! 167: * trace flags (also in p_traceflags) ! 168: */ ! 169: #define KTRFAC_ROOT 0x80000000 /* root set this trace */ ! 170: #define KTRFAC_INHERIT 0x40000000 /* pass trace flags to children */ ! 171: #define KTRFAC_ACTIVE 0x20000000 /* ktrace logging in progress, ignore */ ! 172: ! 173: #ifndef KERNEL ! 174: ! 175: #include <sys/cdefs.h> ! 176: ! 177: __BEGIN_DECLS ! 178: int ktrace __P((const char *, int, int, pid_t)); ! 179: __END_DECLS ! 180: ! 181: #endif /* !KERNEL */ ! 182: #endif /* !_SYS_KTRACE_H_ */ ! 183:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.