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