Annotation of kernel/machdep/i386/pmon_targets.h, revision 1.1.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.