|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1988 The Regents of the University of California. ! 3: * All rights reserved. ! 4: * ! 5: * Redistribution and use in source and binary forms, with or without ! 6: * modification, are permitted provided that the following conditions ! 7: * are met: ! 8: * 1. Redistributions of source code must retain the above copyright ! 9: * notice, this list of conditions and the following disclaimer. ! 10: * 2. Redistributions in binary form must reproduce the above copyright ! 11: * notice, this list of conditions and the following disclaimer in the ! 12: * documentation and/or other materials provided with the distribution. ! 13: * 3. All advertising materials mentioning features or use of this software ! 14: * must display the following acknowledgement: ! 15: * This product includes software developed by the University of ! 16: * California, Berkeley and its contributors. ! 17: * 4. Neither the name of the University nor the names of its contributors ! 18: * may be used to endorse or promote products derived from this software ! 19: * without specific prior written permission. ! 20: * ! 21: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ! 22: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ! 23: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ! 24: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ! 25: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ! 26: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ! 27: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ! 28: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ! 29: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ! 30: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ! 31: * SUCH DAMAGE. ! 32: * ! 33: * @(#)ktrace.h 7.4 (Berkeley) 5/7/91 ! 34: */ ! 35: ! 36: /* ! 37: * operations to ktrace system call (KTROP(op)) ! 38: */ ! 39: #define KTROP_SET 0 /* set trace points */ ! 40: #define KTROP_CLEAR 1 /* clear trace points */ ! 41: #define KTROP_CLEARFILE 2 /* stop all tracing to file */ ! 42: #define KTROP(o) ((o)&3) /* macro to extract operation */ ! 43: /* ! 44: * flags (ORed in with operation) ! 45: */ ! 46: #define KTRFLAG_DESCEND 4 /* perform op on all children too */ ! 47: ! 48: /* ! 49: * ktrace record header ! 50: */ ! 51: struct ktr_header { ! 52: int ktr_len; /* length of buf */ ! 53: short ktr_type; /* trace record type */ ! 54: pid_t ktr_pid; /* process id */ ! 55: char ktr_comm[MAXCOMLEN+1]; /* command name */ ! 56: struct timeval ktr_time; /* timestamp */ ! 57: caddr_t ktr_buf; ! 58: }; ! 59: ! 60: /* ! 61: * Test for kernel trace point ! 62: */ ! 63: #define KTRPOINT(p, type) ((p)->p_traceflag & (1<<(type))) ! 64: ! 65: /* ! 66: * ktrace record types ! 67: */ ! 68: ! 69: /* ! 70: * KTR_SYSCALL - system call record ! 71: */ ! 72: #define KTR_SYSCALL 1 ! 73: struct ktr_syscall { ! 74: short ktr_code; /* syscall number */ ! 75: short ktr_narg; /* number of arguments */ ! 76: /* ! 77: * followed by ktr_narg ints ! 78: */ ! 79: }; ! 80: ! 81: /* ! 82: * KTR_SYSRET - return from system call record ! 83: */ ! 84: #define KTR_SYSRET 2 ! 85: struct ktr_sysret { ! 86: short ktr_code; ! 87: short ktr_eosys; ! 88: int ktr_error; ! 89: int ktr_retval; ! 90: }; ! 91: ! 92: /* ! 93: * KTR_NAMEI - namei record ! 94: */ ! 95: #define KTR_NAMEI 3 ! 96: /* record contains pathname */ ! 97: ! 98: /* ! 99: * KTR_GENIO - trace generic process i/o ! 100: */ ! 101: #define KTR_GENIO 4 ! 102: struct ktr_genio { ! 103: int ktr_fd; ! 104: enum uio_rw ktr_rw; ! 105: /* ! 106: * followed by data successfully read/written ! 107: */ ! 108: }; ! 109: ! 110: /* ! 111: * KTR_PSIG - trace processed signal ! 112: */ ! 113: #define KTR_PSIG 5 ! 114: struct ktr_psig { ! 115: int signo; ! 116: sig_t action; ! 117: int mask; ! 118: int code; ! 119: }; ! 120: ! 121: /* ! 122: * kernel trace points (in p_traceflag) ! 123: */ ! 124: #define KTRFAC_MASK 0x00ffffff ! 125: #define KTRFAC_SYSCALL (1<<KTR_SYSCALL) ! 126: #define KTRFAC_SYSRET (1<<KTR_SYSRET) ! 127: #define KTRFAC_NAMEI (1<<KTR_NAMEI) ! 128: #define KTRFAC_GENIO (1<<KTR_GENIO) ! 129: #define KTRFAC_PSIG (1<<KTR_PSIG) ! 130: /* ! 131: * trace flags (also in p_traceflags) ! 132: */ ! 133: #define KTRFAC_ROOT 0x80000000 /* root set this trace */ ! 134: #define KTRFAC_INHERIT 0x40000000 /* pass trace flags to children */ ! 135: ! 136: #ifndef KERNEL ! 137: ! 138: #include <sys/cdefs.h> ! 139: ! 140: __BEGIN_DECLS ! 141: int ktrace __P((const char *, int, int, pid_t)); ! 142: __END_DECLS ! 143: ! 144: #endif /* !KERNEL */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.