1/* 2 * Copyright (c) 2010 Apple Inc. All rights reserved. 3 * 4 * @APPLE_LICENSE_HEADER_START@ 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: 9 * 10 * 1. Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 2. Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 3. Neither the name of Apple Inc. ("Apple") nor the names of its 16 * contributors may be used to endorse or promote products derived from 17 * this software without specific prior written permission. 18 * 19 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY 20 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 21 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 22 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 23 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 26 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 28 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 * 30 * Portions of this software have been released under the following terms: 31 * 32 * (c) Copyright 1989-1993 OPEN SOFTWARE FOUNDATION, INC. 33 * (c) Copyright 1989-1993 HEWLETT-PACKARD COMPANY 34 * (c) Copyright 1989-1993 DIGITAL EQUIPMENT CORPORATION 35 * 36 * To anyone who acknowledges that this file is provided "AS IS" 37 * without any express or implied warranty: 38 * permission to use, copy, modify, and distribute this file for any 39 * purpose is hereby granted without fee, provided that the above 40 * copyright notices and this notice appears in all source code copies, 41 * and that none of the names of Open Software Foundation, Inc., Hewlett- 42 * Packard Company or Digital Equipment Corporation be used 43 * in advertising or publicity pertaining to distribution of the software 44 * without specific, written prior permission. Neither Open Software 45 * Foundation, Inc., Hewlett-Packard Company nor Digital 46 * Equipment Corporation makes any representations about the suitability 47 * of this software for any purpose. 48 * 49 * Copyright (c) 2007, Novell, Inc. All rights reserved. 50 * Redistribution and use in source and binary forms, with or without 51 * modification, are permitted provided that the following conditions 52 * are met: 53 * 54 * 1. Redistributions of source code must retain the above copyright 55 * notice, this list of conditions and the following disclaimer. 56 * 2. Redistributions in binary form must reproduce the above copyright 57 * notice, this list of conditions and the following disclaimer in the 58 * documentation and/or other materials provided with the distribution. 59 * 3. Neither the name of Novell Inc. nor the names of its contributors 60 * may be used to endorse or promote products derived from this 61 * this software without specific prior written permission. 62 * 63 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 64 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 65 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 66 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY 67 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 68 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 69 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 70 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 71 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 72 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 73 * 74 * @APPLE_LICENSE_HEADER_END@ 75 */ 76 77/* 78** 79** NAME 80** 81** rpclog.h 82** 83** FACILITY: 84** 85** Remote Procedure Call (RPC) 86** 87** ABSTRACT: 88** 89** Interface to performance logging service. 90** 91** 92*/ 93 94#ifndef _RPCLOG_H 95#define _RPCLOG_H 96 97#ifdef LOGPTS 98#define MODULE_MASK 0xff00 99#define EVENT_MASK 0x00ff 100#define RPC_LOG_INITIALIZE { if (rpc__log_ptr_init()) {rpc_g_log_ptr = rpc__log_ptr_init();}} 101#define LOG_RPC(code) TIMESTAMP (0x0300 | (EVENT_MASK & code)) 102#define TIMESTAMP(code) {*rpc_g_log_ptr = (code);} 103 104/* 105 * address of log point for drq3b on Q bus 106 */ 107 108#define LOGPT_IN_LOGPT_CSRS 8 109#define LOGPT_CSRS 0160740 110#define LOGPT_IN_IO_PAGE ((LOGPT_CSRS & 017777) + LOGPT_IN_LOGPT_CSRS) 111#define IO_PAGE_IN_QMEM (1<<22) 112#define LOGPT_ADDR_IN_QMEM LOGPT_IN_IO_PAGE + IO_PAGE_IN_QMEM 113 114typedef unsigned short rpc_logpt_t; 115typedef rpc_logpt_t *rpc_logpt_ptr_t; 116extern rpc_logpt_ptr_t rpc__log_ptr_init (); 117extern rpc_logpt_ptr_t rpc_g_log_ptr; 118#else 119#define RPC_LOG_INITIALIZE 120#define LOG_RPC(code) 121#endif /* LOGPTS */ 122 123 124#define RPC_LOG_CLIENT_STUB_NTR LOG_RPC (0x00) 125#define RPC_LOG_CLIENT_STUB_XIT LOG_RPC (0x01) 126#define RPC_LOG_SERVER_STUB_PRE LOG_RPC (0x02) 127#define RPC_LOG_SERVER_STUB_POST LOG_RPC (0x03) 128 129#define RPC_LOG_CALL_START_NTR LOG_RPC (0x04) 130#define RPC_LOG_CALL_START_XIT LOG_RPC (0x05) 131#define RPC_LOG_CALL_TRANSMIT_NTR LOG_RPC (0x06) 132#define RPC_LOG_CALL_TRANSMIT_XIT LOG_RPC (0x07) 133#define RPC_LOG_CALL_TRANSCEIVE_NTR LOG_RPC (0x08) 134#define RPC_LOG_CALL_TRANSCEIVE_XIT LOG_RPC (0x09) 135#define RPC_LOG_CALL_RECEIVE_NTR LOG_RPC (0x0a) 136#define RPC_LOG_CALL_RECEIVE_XIT LOG_RPC (0x0b) 137#define RPC_LOG_CALL_END_NTR LOG_RPC (0x0c) 138#define RPC_LOG_CALL_END_XIT LOG_RPC (0x0d) 139 140#define RPC_LOG_CN_CALL_START_NTR LOG_RPC (0x0e) 141#define RPC_LOG_CN_CALL_START_XIT LOG_RPC (0x0f) 142#define RPC_LOG_CN_CALL_TRANSMIT_NTR LOG_RPC (0x10) 143#define RPC_LOG_CN_CALL_TRANSMIT_XIT LOG_RPC (0x11) 144#define RPC_LOG_CN_CALL_TRANSCEIVE_NTR LOG_RPC (0x12) 145#define RPC_LOG_CN_CALL_TRANSCEIVE_XIT LOG_RPC (0x13) 146#define RPC_LOG_CN_CALL_RECEIVE_NTR LOG_RPC (0x14) 147#define RPC_LOG_CN_CALL_RECEIVE_XIT LOG_RPC (0x15) 148#define RPC_LOG_CN_CALL_END_NTR LOG_RPC (0x16) 149#define RPC_LOG_CN_CALL_END_XIT LOG_RPC (0x17) 150 151#define RPC_LOG_CN_CTHD_NTR LOG_RPC (0x18) 152#define RPC_LOG_CN_CTHD_XIT LOG_RPC (0x19) 153 154#define RPC_LOG_CN_ASSOC_REQ_NTR LOG_RPC (0x1a) 155#define RPC_LOG_CN_ASSOC_REQ_XIT LOG_RPC (0x1b) 156#define RPC_LOG_CN_ASSOC_LIS_NTR LOG_RPC (0x1c) 157#define RPC_LOG_CN_ASSOC_LIS_XIT LOG_RPC (0x1d) 158#define RPC_LOG_CN_ASSOC_ALLOC_NTR LOG_RPC (0x1e) 159#define RPC_LOG_CN_ASSOC_ALLOC_XIT LOG_RPC (0x1f) 160#define RPC_LOG_CN_ASSOC_DEALLOC_NTR LOG_RPC (0x20) 161#define RPC_LOG_CN_ASSOC_DEALLOC_XIT LOG_RPC (0x21) 162#define RPC_LOG_CN_ASSOC_POP_CALL_NTR LOG_RPC (0x22) 163#define RPC_LOG_CN_ASSOC_POP_CALL_XIT LOG_RPC (0x23) 164#define RPC_LOG_CN_ASSOC_PUSH_CALL_NTR LOG_RPC (0x24) 165#define RPC_LOG_CN_ASSOC_PUSH_CALL_XIT LOG_RPC (0x25) 166#define RPC_LOG_CN_ASSOC_Q_FRAG_NTR LOG_RPC (0x26) 167#define RPC_LOG_CN_ASSOC_Q_FRAG_XIT LOG_RPC (0x27) 168#define RPC_LOG_CN_ASSOC_RECV_FRAG_NTR LOG_RPC (0x28) 169#define RPC_LOG_CN_ASSOC_RECV_FRAG_XIT LOG_RPC (0x29) 170#define RPC_LOG_CN_ASSOC_SEND_FRAG_NTR LOG_RPC (0x2a) 171#define RPC_LOG_CN_ASSOC_SEND_FRAG_XIT LOG_RPC (0x2b) 172#define RPC_LOG_CN_ASSOC_SYN_NEG_NTR LOG_RPC (0x2c) 173#define RPC_LOG_CN_ASSOC_SYN_NEG_XIT LOG_RPC (0x2d) 174#define RPC_LOG_CN_ASSOC_SYN_LKUP_NTR LOG_RPC (0x2e) 175#define RPC_LOG_CN_ASSOC_SYN_LKUP_XIT LOG_RPC (0x2f) 176#define RPC_LOG_CN_ASSOC_ACB_CR_NTR LOG_RPC (0x30) 177#define RPC_LOG_CN_ASSOC_ACB_CR_XIT LOG_RPC (0x31) 178#define RPC_LOG_CN_ASSOC_ACB_FR_NTR LOG_RPC (0x32) 179#define RPC_LOG_CN_ASSOC_ACB_FR_XIT LOG_RPC (0x33) 180#define RPC_LOG_CN_ASSOC_ACB_DEAL_NTR LOG_RPC (0x34) 181#define RPC_LOG_CN_ASSOC_ACB_DEAL_XIT LOG_RPC (0x35) 182 183#define RPC_LOG_CN_GRP_ADDR_LKUP_NTR LOG_RPC (0x36) 184#define RPC_LOG_CN_GRP_ADDR_LKUP_XIT LOG_RPC (0x37) 185#define RPC_LOG_CN_GRP_ID_LKUP_NTR LOG_RPC (0x38) 186#define RPC_LOG_CN_GRP_ID_LKUP_XIT LOG_RPC (0x39) 187#define RPC_LOG_03A LOG_RPC (0x3a) 188#define RPC_LOG_03B LOG_RPC (0x3b) 189#define RPC_LOG_03C LOG_RPC (0x3c) 190#define RPC_LOG_03D LOG_RPC (0x3d) 191#define RPC_LOG_03E LOG_RPC (0x3e) 192#define RPC_LOG_03F LOG_RPC (0x3f) 193#define RPC_LOG_CN_GRP_REMID_LKUP_NTR LOG_RPC (0x40) 194#define RPC_LOG_CN_GRP_REMID_LKUP_XIT LOG_RPC (0x41) 195 196#define RPC_LOG_SOCKET_OPEN_NTR LOG_RPC (0x42) 197#define RPC_LOG_SOCKET_OPEN_XIT LOG_RPC (0x43) 198#define RPC_LOG_SOCKET_CLOSE_NTR LOG_RPC (0x44) 199#define RPC_LOG_SOCKET_CLOSE_XIT LOG_RPC (0x45) 200#define RPC_LOG_SOCKET_BIND_NTR LOG_RPC (0x46) 201#define RPC_LOG_SOCKET_BIND_XIT LOG_RPC (0x47) 202#define RPC_LOG_SOCKET_CONNECT_NTR LOG_RPC (0x48) 203#define RPC_LOG_SOCKET_CONNECT_XIT LOG_RPC (0x49) 204#define RPC_LOG_SOCKET_ACCEPT_NTR LOG_RPC (0x4a) 205#define RPC_LOG_SOCKET_ACCEPT_XIT LOG_RPC (0x4b) 206#define RPC_LOG_SOCKET_LISTEN_NTR LOG_RPC (0x4c) 207#define RPC_LOG_SOCKET_LISTEN_XIT LOG_RPC (0x4d) 208#define RPC_LOG_SOCKET_SENDMSG_NTR LOG_RPC (0x4e) 209#define RPC_LOG_SOCKET_SENDMSG_XIT LOG_RPC (0x4f) 210#define RPC_LOG_SOCKET_RECVFROM_NTR LOG_RPC (0x50) 211#define RPC_LOG_SOCKET_RECVFROM_XIT LOG_RPC (0x51) 212#define RPC_LOG_SOCKET_RECVMSG_NTR LOG_RPC (0x52) 213#define RPC_LOG_SOCKET_RECVMSG_XIT LOG_RPC (0x53) 214#define RPC_LOG_SOCKET_INQ_EP_NTR LOG_RPC (0x54) 215#define RPC_LOG_SOCKET_INQ_EP_XIT LOG_RPC (0x55) 216 217#define RPC_LOG_SELECT_PRE LOG_RPC (0x56) 218#define RPC_LOG_SELECT_POST LOG_RPC (0x57) 219 220#define RPC_LOG_MUTEX_INIT_NTR LOG_RPC (0x58) 221#define RPC_LOG_MUTEX_INIT_XIT LOG_RPC (0x59) 222#define RPC_LOG_MUTEX_DELETE_NTR LOG_RPC (0x5a) 223#define RPC_LOG_MUTEX_DELETE_XIT LOG_RPC (0x5b) 224#define RPC_LOG_MUTEX_LOCK_NTR LOG_RPC (0x5c) 225#define RPC_LOG_MUTEX_LOCK_XIT LOG_RPC (0x5d) 226#define RPC_LOG_MUTEX_TRY_LOCK_NTR LOG_RPC (0x5e) 227#define RPC_LOG_MUTEX_TRY_LOCK_XIT LOG_RPC (0x5f) 228#define RPC_LOG_MUTEX_UNLOCK_NTR LOG_RPC (0x60) 229#define RPC_LOG_MUTEX_UNLOCK_XIT LOG_RPC (0x61) 230#define RPC_LOG_MUTEX_LOCK_ASRT_NTR LOG_RPC (0x62) 231#define RPC_LOG_MUTEX_LOCK_ASRT_XIT LOG_RPC (0x63) 232#define RPC_LOG_MUTEX_UNLOCK_ASRT_NTR LOG_RPC (0x64) 233#define RPC_LOG_MUTEX_UNLOCK_ASRT_XIT LOG_RPC (0x65) 234#define RPC_LOG_COND_INIT_NTR LOG_RPC (0x66) 235#define RPC_LOG_COND_INIT_XIT LOG_RPC (0x67) 236#define RPC_LOG_COND_DELETE_NTR LOG_RPC (0x68) 237#define RPC_LOG_COND_DELETE_XIT LOG_RPC (0x69) 238#define RPC_LOG_COND_WAIT_NTR LOG_RPC (0x6a) 239#define RPC_LOG_COND_WAIT_XIT LOG_RPC (0x6b) 240#define RPC_LOG_COND_TIMED_WAIT_NTR LOG_RPC (0x6c) 241#define RPC_LOG_COND_TIMED_WAIT_XIT LOG_RPC (0x6d) 242#define RPC_LOG_COND_SIGNAL_NTR LOG_RPC (0x6e) 243#define RPC_LOG_COND_SIGNAL_XIT LOG_RPC (0x6f) 244#define RPC_LOG_COND_BROADCAST_NTR LOG_RPC (0x70) 245#define RPC_LOG_COND_BROADCAST_XIT LOG_RPC (0x71) 246 247#define RPC_LOG_MEM_ALLOC_NTR LOG_RPC (0x72) 248#define RPC_LOG_MEM_ALLOC_XIT LOG_RPC (0x73) 249#define RPC_LOG_MEM_REALLOC_NTR LOG_RPC (0x74) 250#define RPC_LOG_MEM_REALLOC_XIT LOG_RPC (0x75) 251#define RPC_LOG_MEM_FREE_NTR LOG_RPC (0x76) 252#define RPC_LOG_MEM_FREE_XIT LOG_RPC (0x77) 253 254#define RPC_LOG_LIST_ELT_ALLOC_NTR LOG_RPC (0x78) 255#define RPC_LOG_LIST_ELT_ALLOC_XIT LOG_RPC (0x79) 256#define RPC_LOG_LIST_ELT_FREE_NTR LOG_RPC (0x7a) 257#define RPC_LOG_LIST_ELT_FREE_XIT LOG_RPC (0x7b) 258 259#define RPC_LOG_IF_LOOKUP_NTR LOG_RPC (0x7c) 260#define RPC_LOG_IF_LOOKUP_XIT LOG_RPC (0x7d) 261#define RPC_LOG_07E LOG_RPC (0x7e) 262#define RPC_LOG_07F LOG_RPC (0x7f) 263 264#define RPC_LOG_NAF_ADDR_ALLOC_NTR LOG_RPC (0x80) 265#define RPC_LOG_NAF_ADDR_ALLOC_XIT LOG_RPC (0x81) 266#define RPC_LOG_NAF_ADDR_COPY_NTR LOG_RPC (0x82) 267#define RPC_LOG_NAF_ADDR_COPY_XIT LOG_RPC (0x83) 268#define RPC_LOG_NAF_ADDR_FREE_NTR LOG_RPC (0x84) 269#define RPC_LOG_NAF_ADDR_FREE_XIT LOG_RPC (0x85) 270 271#define RPC_LOG_UUID_EQUAL_NTR LOG_RPC (0x86) 272#define RPC_LOG_UUID_EQUAL_XIT LOG_RPC (0x87) 273#define RPC_LOG_088 LOG_RPC (0x88) 274#define RPC_LOG_089 LOG_RPC (0x89) 275#define RPC_LOG_UUID_HASH_NTR LOG_RPC (0x8a) 276#define RPC_LOG_UUID_HASH_XIT LOG_RPC (0x8b) 277#define RPC_LOG_UUID_CREATE_NTR LOG_RPC (0x8c) 278#define RPC_LOG_UUID_CREATE_XIT LOG_RPC (0x8d) 279 280#define RPC_LOG_CN_RCV_PKT_NTR LOG_RPC (0x8e) 281#define RPC_LOG_CN_RCV_PKT_XIT LOG_RPC (0x8f) 282#define RPC_LOG_090 LOG_RPC (0x90) 283#define RPC_LOG_091 LOG_RPC (0x91) 284#define RPC_LOG_CN_PROCESS_PKT_NTR LOG_RPC (0x92) 285#define RPC_LOG_CN_PROCESS_PKT_XIT LOG_RPC (0x93) 286 287#define RPC_LOG_SERVER_COND_WAIT_PRE LOG_RPC (0x94) 288#define RPC_LOG_SERVER_COND_WAIT_POST LOG_RPC (0x95) 289#define RPC_LOG_SERVER_RECVMSG_PRE LOG_RPC (0x96) 290#define RPC_LOG_SERVER_RECVMSG_POST LOG_RPC (0x97) 291#define RPC_LOG_SERVER_SENDMSG_PRE LOG_RPC (0x98) 292#define RPC_LOG_SERVER_SENDMSG_POST LOG_RPC (0x99) 293#define RPC_LOG_SERVER_YIELD_PRE LOG_RPC (0x9a) 294#define RPC_LOG_SERVER_YIELD_POST LOG_RPC (0x9b) 295#define RPC_LOG_SERVER_COND_SIG_PRE LOG_RPC (0x9c) 296#define RPC_LOG_SERVER_COND_SIG_POST LOG_RPC (0x9d) 297 298#define RPC_LOG_CLIENT_COND_WAIT_PRE LOG_RPC (0x9e) 299#define RPC_LOG_CLIENT_COND_WAIT_POST LOG_RPC (0x9f) 300#define RPC_LOG_CLIENT_RECVMSG_PRE LOG_RPC (0xa0) 301#define RPC_LOG_CLIENT_RECVMSG_POST LOG_RPC (0xa1) 302#define RPC_LOG_CLIENT_SENDMSG_PRE LOG_RPC (0xa2) 303#define RPC_LOG_CLIENT_SENDMSG_POST LOG_RPC (0xa3) 304#define RPC_LOG_CLIENT_YIELD_PRE LOG_RPC (0xa4) 305#define RPC_LOG_CLIENT_YIELD_POST LOG_RPC (0xa5) 306#define RPC_LOG_CLIENT_COND_SIG_PRE LOG_RPC (0xa6) 307#define RPC_LOG_CLIENT_COND_SIG_POST LOG_RPC (0xa7) 308 309#define RPC_LOG_SERVER_LOOP_NTR LOG_RPC (0xa8) 310#define RPC_LOG_SERVER_LOOP_XIT LOG_RPC (0xa9) 311#define RPC_LOG_CLIENT_LOOP_NTR LOG_RPC (0xaa) 312#define RPC_LOG_CLIENT_LOOP_XIT LOG_RPC (0xab) 313 314#define RPC_LOG_TRY_PRE LOG_RPC (0xac) 315#define RPC_LOG_TRY_POST LOG_RPC (0xad) 316#define RPC_LOG_CATCH_PRE LOG_RPC (0xae) 317#define RPC_LOG_CATCH_POST LOG_RPC (0xaf) 318#define RPC_LOG_FINALLY_PRE LOG_RPC (0xb0) 319#define RPC_LOG_FINALLY_POST LOG_RPC (0xb1) 320#define RPC_LOG_ENDTRY_PRE LOG_RPC (0xb2) 321#define RPC_LOG_ENDTRY_POST LOG_RPC (0xb3) 322 323#endif /* _RPCLOG_H */ 324