|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. ! 3: * ! 4: * @APPLE_LICENSE_HEADER_START@ ! 5: * ! 6: * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights ! 7: * Reserved. This file contains Original Code and/or Modifications of ! 8: * Original Code as defined in and that are subject to the Apple Public ! 9: * Source License Version 1.1 (the "License"). You may not use this file ! 10: * except in compliance with the License. Please obtain a copy of the ! 11: * License at http://www.apple.com/publicsource and read it before using ! 12: * this file. ! 13: * ! 14: * The Original Code and all software distributed under the License are ! 15: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER ! 16: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, ! 17: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, ! 18: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the ! 19: * License for the specific language governing rights and limitations ! 20: * under the License. ! 21: * ! 22: * @APPLE_LICENSE_HEADER_END@ ! 23: */ ! 24: ! 25: /* ! 26: * pmon_targets.h - Kernel pmon event_types ! 27: */ ! 28: ! 29: #ifndef KPMON_TYPES ! 30: #define KPMON_TYPES 1 ! 31: ! 32: ! 33: #define KPMON_DEVICE "kpmon" ! 34: ! 35: #define KP_NONE 0 /* no event */ ! 36: ! 37: /* ! 38: * PMON_SOURCE_KERN ! 39: * ! 40: * data1 = reserved ! 41: * data2 = reserved ! 42: * data3 = reserved ! 43: */ ! 44: /* event_type bits TBD */ ! 45: ! 46: /* ! 47: * PMON_SOURCE_SCSI, PMON_SOURCE_FD ! 48: * data1 = file system block # ! 49: * data2 = byte count ! 50: * data3 = unit number ! 51: */ ! 52: #define KP_SCSI_WRITEQ 0x0001 /* queue write request */ ! 53: #define KP_SCSI_WRITEDQ 0x0002 /* dequeue write request */ ! 54: #define KP_SCSI_WRITE 0x0004 /* start write */ ! 55: #define KP_SCSI_WRITE_CMP 0x0008 /* write complete */ ! 56: #define KP_SCSI_READQ 0x0010 /* queue read request */ ! 57: #define KP_SCSI_READDQ 0x0020 /* dequeue read request */ ! 58: #define KP_SCSI_READ 0x0040 /* start read */ ! 59: #define KP_SCSI_READ_CMP 0x0080 /* read complete */ ! 60: /* ! 61: * for floppy only (PMON_SOURCE_FD) ! 62: */ ! 63: #define KP_SCSI_WAITIOC 0x0100 /* wait for controller I/O ! 64: * complete */ ! 65: /* ! 66: * SCSI controller events ! 67: * data1 = target # ! 68: * data2 = cdb opcode ! 69: * data3 = cdb lbn (assumed to be 10 byte cdb) ! 70: */ ! 71: #define KP_SCSI_CTLR_START 0x0200 /* controller start */ ! 72: #define KP_SCSI_CTLR_DISC 0x0400 /* controller disconnect */ ! 73: #define KP_SCSI_CTLR_RSLCT 0x0800 /* controller reselect */ ! 74: #define KP_SCSI_CTLR_CMPL 0x1000 /* controller complete */ ! 75: /* ! 76: * SCSI controller interrupt ! 77: * data1 = target # ! 78: * data2 = old state ! 79: * data3 = new state ! 80: */ ! 81: #define KP_SCSI_CTLR_INTR 0x2000 /* controller interrupt */ ! 82: ! 83: #define KP_SCSI_ALL 0x2FFF ! 84: ! 85: ! 86: /* ! 87: * PMON_SOURCE_VM ! 88: * data1 = UNIX pid of task causing activity (1 if pageout task) ! 89: * data2 = virtual address or page ! 90: * data3 = pager (0 if device, vnode otherwise) ! 91: */ ! 92: #define KP_VM_FAULT 0x1 /* page fault */ ! 93: #define KP_VM_REACTIVE 0x2 /* inactive page reactivation */ ! 94: #define KP_VM_FREE_REACTIVE 0x4 /* free page reactivation */ ! 95: #define KP_VM_DEACTIVE 0x8 /* page deactivation */ ! 96: #define KP_VM_PAGEOUT 0x10 /* page was written to a pager */ ! 97: #define KP_VM_PAGEFREE 0x20 /* page was freed (no write) */ ! 98: #define KP_VM_PAGEIN_START 0x40 /* pagein began on a page */ ! 99: #define KP_VM_PAGEIN_DONE 0x80 /* pagein completed on a page */ ! 100: #define KP_VM_SWAP_PAGEIN 0x100 /* pagein from swap file */ ! 101: #define KP_VM_VNODE_PAGEIN 0x200 /* pagein from a normal file */ ! 102: ! 103: #define KP_VM_ALL 0x3FF ! 104: ! 105: ! 106: /* ! 107: * PMON_SOURCE_SCHED ! 108: * data1 = UNIX pid ! 109: * data2 = task ! 110: * date3 = thread ! 111: */ ! 112: #define KP_SCHED_THREAD_BLOCK 0x1 /* current thread blocked */ ! 113: #define KP_SCHED_THREAD_PREEMPT 0x2 /* current thread was preempted */ ! 114: #define KP_SCHED_THREAD_TERM 0x4 /* current thread died */ ! 115: #define KP_SCHED_THREAD_YIELD 0x8 /* current thread yielded somehow */ ! 116: #define KP_SCHED_THREAD_WAIT 0x10 /* thread is waiting for something */ ! 117: #define KP_SCHED_THREAD_GO 0x20 /* new thread running (CONTEXT SWITCH) */ ! 118: #define KP_SCHED_IDLE_GO 0x40 /* the idle thread */ ! 119: #define KP_SCHED_IDLE_END 0x80 /* the idle thread found some work */ ! 120: ! 121: #define KP_SCHED_ALL 0x1FF ! 122: ! 123: ! 124: /* ! 125: * PMON_SOURCE_IPC ! 126: * data1 = source task ! 127: * data2 = dest task ! 128: * date3 = global port name ! 129: */ ! 130: #define KP_IPC_MSG_SEND_1 0x1 /* just entered msg_send_trap() */ ! 131: #define KP_IPC_MSG_SEND_2 0x2 /* in msg_send_trap() after the copyin */ ! 132: #define KP_IPC_MSG_SEND_3 0x4 /* in msg_send_trap() just before exit */ ! 133: ! 134: #define KP_IPC_MSG_RECEIVE_1 0x30 /* just entered msg_receive_trap() */ ! 135: #define KP_IPC_MSG_RECEIVE_2 0x31 /* just before msg_dequeue (and sleep) */ ! 136: #define KP_IPC_MSG_RECEIVE_3 0x32 /* just after msg_dequeue (awoke) */ ! 137: #define KP_IPC_MSG_RECEIVE_4 0x34 /* just before exit */ ! 138: ! 139: #define KP_IPC_MSG_RPC 0x40 /* a task initiated RPC */ ! 140: #define KP_IPC_MSG_REPLY 0x80 /* the reply half of an RPC */ ! 141: ! 142: #define KP_IPC_SWITCH_GO 0x100 /* CONTEXT SWITCH on message send */ ! 143: ! 144: #define KP_IPC_ALL 0x1F ! 145: ! 146: ! 147: /* ! 148: * PMON_SOURCE_VFS ! 149: * data1 = task ! 150: * data2,3 = 0 ! 151: */ ! 152: #define KP_VFS_STAT_BEGIN_LOOKUP 0x1 /* start pn lookup in stat */ ! 153: #define KP_VFS_STAT_END_LOOKUP 0x2 /* end ditto */ ! 154: #define KP_VFS_STAT_BEGIN_STAT 0x4 /* start vfs specific stat */ ! 155: #define KP_VFS_STAT_END_STAT 0x8 /* end vfs specific stat */ ! 156: ! 157: #define KP_VFS_ALL 0xF ! 158: ! 159: /* ! 160: * PMON_SOURCE_EV ! 161: * data1 = task ! 162: * data2,3 = 0 ! 163: */ ! 164: #define KP_EV_POST_EVENT 0x1 /* post an event */ ! 165: #define KP_EV_QUEUE_FULL 0x2 /* queue full */ ! 166: /* data1 = mouse (0) or keyboard (1) ! 167: * data2 = hw_event data ! 168: * data3 = 0 ! 169: */ ! 170: #define KP_EV_PREQUEUE_FULL 0x4 /* pre-queue full */ ! 171: ! 172: #define KP_EV_ALL 0x7 ! 173: ! 174: /* ! 175: * PMON_SOURCE_IP ! 176: * data1 = source addr ! 177: * data2 = dest addr ! 178: * data3 = 0 ! 179: */ ! 180: #define KP_IP_BROADCAST 0x1 /* we got a broadcast packet */ ! 181: ! 182: #define KP_IP_ALL 0x1 ! 183: #define KPMON ! 184: ! 185: #endif /* KPMON_TYPES */ ! 186: ! 187: ! 188: ! 189:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.