Annotation of kernel/machdep/i386/pmon_targets.h, revision 1.1

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: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.