Coda Distributed File System
trace.h
Go to the documentation of this file.
1/* BLURB lgpl
2
3 Coda File System
4 Release 5
5
6 Copyright (c) 1987-1999 Carnegie Mellon University
7 Additional copyrights listed below
8
9This code is distributed "AS IS" without warranty of any kind under
10the terms of the GNU Library General Public Licence Version 2, as
11shown in the file LICENSE. The technical and financial contributors to
12Coda are listed in the file CREDITS.
13
14 Additional copyrights
15
16#*/
17
18/*
19 IBM COPYRIGHT NOTICE
20
21 Copyright (C) 1986
22 International Business Machines Corporation
23 All Rights Reserved
24
25This file contains some code identical to or derived from the 1986
26version of the Andrew File System ("AFS"), which is owned by the IBM
27Corporation. This code is provided "AS IS" and IBM does not warrant
28that it is free of infringement of any intellectual rights of any
29third party. IBM disclaims liability of any kind for any damages
30whatsoever resulting directly or indirectly from use of this software
31or of any derivative work. Carnegie Mellon University has obtained
32permission to modify, distribute and sublicense this code, which is
33based on Version 2 of AFS and does not contain the features and
34enhancements that are part of Version 3 of AFS. Version 3 of AFS is
35commercially available and supported by Transarc Corporation,
36Pittsburgh, PA.
37
38*/
39
40#include <rpc2/rpc2_addrinfo.h>
41
42/*------------ For tracing calls -------------*/
43/* Call codes */
44#define TRACEBASE 198732
45#define INIT TRACEBASE + 1 /* not actually traced */
46#define EXPORT TRACEBASE + 2
47#define DEEXPORT TRACEBASE + 3
48#define ALLOCBUFFER TRACEBASE + 4
49#define FREEBUFFER TRACEBASE + 5
50#define SENDRESPONSE TRACEBASE + 6
51#define GETREQUEST TRACEBASE + 7
52#define MAKERPC TRACEBASE + 8
53#define BIND TRACEBASE + 9
54#define INITSIDEEFFECT TRACEBASE + 10
55#define CHECKSIDEEFFECT TRACEBASE + 11
56#define UNBIND TRACEBASE + 12
57#define GETPRIVATEPOINTER TRACEBASE + 13
58#define SETPRIVATEPOINTER TRACEBASE + 14
59#define GETSEPOINTER TRACEBASE + 15
60#define SETSEPOINTER TRACEBASE + 16
61#define GETPEERINFO TRACEBASE + 17
62#define SLNEWPACKET TRACEBASE + 18
63#define SENDRELIABLY TRACEBASE + 19
64#define XMITPACKET TRACEBASE + 20
65#define CLOCKTICK TRACEBASE + 21
66#define MULTIRPC TRACEBASE + 22
67#define MSENDPACKETSRELIABLY TRACEBASE + 23
68#define CREATEMGRP TRACEBASE + 24
69#define ADDTOMGRP TRACEBASE + 25
70#define REMOVEFROMMGRP TRACEBASE + 26
71#define XLATEMCASTPACKET TRACEBASE + 27
72
73struct TraceElem {
75 char ActiveLWP[20];
76 union {
77 struct te_EXPORT {
80
81 struct te_DEEXPORT {
84
85 struct te_ALLOCBUFFER {
88
89 struct te_FREEBUFFER {
92
93 struct te_SENDRESPONSE {
100
101 struct te_GETREQUEST {
104 struct timeval BreathOfLife;
105 long (*GetKeys)();
108
109 struct te_MAKERPC {
113 int IsNullSDesc;
116 struct timeval BreathOfLife;
119
120 struct te_MULTIRPC {
125 int IsNullSDesc;
129 struct timeval BreathOfLife;
130 /* int EnqueueRequest; */
132
133 struct te_BIND {
144
145 struct te_INITSIDEEFFECT {
147 int IsNullSDesc;
150
151 struct te_CHECKSIDEEFFECT {
153 int IsNullSDesc;
155 int Flags;
157
158 struct te_UNBIND {
161
162 struct te_GETPRIVATEPOINTER {
165
166 struct te_SETPRIVATEPOINTER {
170
171 struct te_GETSEPOINTER {
174
175 struct te_SETSEPOINTER {
177 char *SEPtr;
179
180 struct te_GETPEERINFO {
183
184 struct te_SLNEWPACKET {
188
189 struct te_SENDRELIABLY {
190 struct CEntry *Conn;
195 struct timeval Timeout;
197
198 struct te_MSENDPACKETSRELIABLY {
200 struct CEntry *ConnArray0; /* only first element */
203 RPC2_PacketBuffer PacketArray0; /* first packet */
204 long (*HandleResult)();
205 int IsNullTimeout;
206 struct timeval Timeout;
208
209 struct te_XMITPACKET {
215
216 struct te_CLOCKTICK {
219
220 struct te_CREATEMGRP {
226
227 struct te_ADDTOMGRP {
231
232 struct te_REMOVEFROMMGRP {
233 struct MEntry me;
234 struct CEntry ce;
236
237 struct te_XLATEMCASTPACKET {
242
244};
245
246/* Macros to actually do the tracing follows. Each of these is used only once,
247 but is placed here to avoid cluttering up all the other files */
248#ifndef RPC2DEBUG
249#define TR_SENDRESPONSE()
250#define TR_GETREQUEST()
251#define TR_MAKERPC()
252#define TR_BIND()
253#define TR_INITSE()
254#define TR_CHECKSE()
255#define TR_UNBIND()
256#define TR_MULTI()
257#define TR_MSENDRELIABLY()
258#define TR_XMIT()
259#define TR_RECV()
260#define TR_SENDRELIABLY()
261#define TR_CREATEMGRP()
262#define TR_ADDTOMGRP()
263#define TR_REMOVEFROMMGRP()
264#define TR_XLATEMCASTPACKET()
265#else
266#define TR_SENDRESPONSE() \
267 do { \
268 if (RPC2_Trace && rpc2_TraceBuffHeader) { \
269 struct TraceElem *te; \
270 struct te_SENDRESPONSE *tea; \
271 te = (struct TraceElem *)CBUF_NextSlot(rpc2_TraceBuffHeader); \
272 tea = &te->Args.SendResponseEntry; \
273 te->CallCode = SENDRESPONSE; \
274 strncpy(te->ActiveLWP, LWP_Name(), sizeof(te->ActiveLWP) - 1); \
275 tea->ConnHandle = ConnHandle; \
276 tea->Reply_Address = Reply; \
277 tea->Reply = *Reply; /* structure assignment */ \
278 } \
279 } while (0)
280
281#define TR_GETREQUEST() \
282 do { \
283 if (RPC2_Trace && rpc2_TraceBuffHeader) { \
284 struct TraceElem *te; \
285 struct te_GETREQUEST *tea; \
286 te = (struct TraceElem *)CBUF_NextSlot(rpc2_TraceBuffHeader); \
287 tea = &te->Args.GetRequestEntry; \
288 te->CallCode = GETREQUEST; \
289 strncpy(te->ActiveLWP, LWP_Name(), sizeof(te->ActiveLWP) - 1); \
290 tea->Filter = *Filter; /* structure assignment */ \
291 if (BreathOfLife == NULL) \
292 tea->IsNullBreathOfLife = TRUE; \
293 else { \
294 tea->IsNullBreathOfLife = FALSE; \
295 tea->BreathOfLife = *BreathOfLife; /* structure assignment */ \
296 } \
297 tea->GetKeys = GetKeys; \
298 tea->EncryptionTypeMask = EncryptionTypeMask; \
299 } \
300 } while (0)
301
302#define TR_MAKERPC() \
303 do { \
304 if (RPC2_Trace && rpc2_TraceBuffHeader) { \
305 struct TraceElem *te; \
306 struct te_MAKERPC *tea; \
307 te = (struct TraceElem *)CBUF_NextSlot(rpc2_TraceBuffHeader); \
308 tea = &te->Args.MakeRPCEntry; \
309 te->CallCode = MAKERPC; \
310 strncpy(te->ActiveLWP, LWP_Name(), sizeof(te->ActiveLWP) - 1); \
311 tea->ConnHandle = ConnHandle; \
312 tea->Request_Address = Request; \
313 tea->Request = *Request; /* structure assignment */ \
314 if (SDesc == NULL) \
315 tea->IsNullSDesc = TRUE; \
316 else { \
317 tea->IsNullSDesc = FALSE; \
318 tea->SDesc = *SDesc; /* structure assignment */ \
319 } \
320 if (BreathOfLife == NULL) \
321 tea->IsNullBreathOfLife = TRUE; \
322 else { \
323 tea->IsNullBreathOfLife = FALSE; \
324 tea->BreathOfLife = *BreathOfLife; /* structure assignment */ \
325 } \
326 tea->EnqueueRequest = EnqueueRequest; \
327 } \
328 } while (0)
329
330#define TR_BIND() \
331 do { \
332 if (RPC2_Trace && rpc2_TraceBuffHeader) { \
333 struct TraceElem *te; \
334 struct te_BIND *tea; \
335 te = (struct TraceElem *)CBUF_NextSlot(rpc2_TraceBuffHeader); \
336 tea = &te->Args.BindEntry; \
337 te->CallCode = BIND; \
338 strncpy(te->ActiveLWP, LWP_Name(), sizeof(te->ActiveLWP) - 1); \
339 tea->SecurityLevel = Bparms->SecurityLevel; \
340 tea->EncryptionType = Bparms->EncryptionType; \
341 tea->Host = *Host; /* structure assignment */ \
342 tea->Port = *Port; /* structure assignment */ \
343 tea->Subsys = *Subsys; /* structure assignment */ \
344 tea->SideEffectType = Bparms->SideEffectType; \
345 if (Bparms->ClientIdent == NULL) \
346 tea->IsNullClientIdent = TRUE; \
347 else { \
348 tea->IsNullClientIdent = FALSE; \
349 tea->ClientIdent.SeqLen = \
350 Bparms->ClientIdent \
351 ->SeqLen; /* not actual length, could be truncated */ \
352 if (Bparms->ClientIdent->SeqLen < \
353 sizeof(tea->ClientIdent_Value)) \
354 memcpy(tea->ClientIdent_Value, \
355 Bparms->ClientIdent->SeqBody, \
356 Bparms->ClientIdent->SeqLen); \
357 else \
358 memcpy(tea->ClientIdent_Value, \
359 Bparms->ClientIdent->SeqBody, \
360 sizeof(tea->ClientIdent_Value)); \
361 } \
362 } \
363 } while (0)
364
365#define TR_INITSE() \
366 do { \
367 if (RPC2_Trace && rpc2_TraceBuffHeader) { \
368 struct TraceElem *te; \
369 struct te_INITSIDEEFFECT *tea; \
370 te = (struct TraceElem *)CBUF_NextSlot(rpc2_TraceBuffHeader); \
371 tea = &te->Args.InitSideEffectEntry; \
372 te->CallCode = INITSIDEEFFECT; \
373 strncpy(te->ActiveLWP, LWP_Name(), sizeof(te->ActiveLWP) - 1); \
374 tea->ConnHandle = ConnHandle; \
375 if (SDesc == NULL) \
376 tea->IsNullSDesc = TRUE; \
377 else { \
378 tea->IsNullSDesc = FALSE; \
379 tea->SDesc = *SDesc; /* structure assignment */ \
380 } \
381 } \
382 } while (0)
383
384#define TR_CHECKSE() \
385 do { \
386 if (RPC2_Trace && rpc2_TraceBuffHeader) { \
387 struct TraceElem *te; \
388 struct te_CHECKSIDEEFFECT *tea; \
389 te = (struct TraceElem *)CBUF_NextSlot(rpc2_TraceBuffHeader); \
390 tea = &te->Args.CheckSideEffectEntry; \
391 te->CallCode = CHECKSIDEEFFECT; \
392 strncpy(te->ActiveLWP, LWP_Name(), sizeof(te->ActiveLWP) - 1); \
393 tea->ConnHandle = ConnHandle; \
394 if (SDesc == NULL) \
395 tea->IsNullSDesc = TRUE; \
396 else { \
397 tea->IsNullSDesc = FALSE; \
398 tea->SDesc = *SDesc; /* structure assignment */ \
399 } \
400 tea->Flags = Flags; \
401 } \
402 } while (0)
403
404#define TR_UNBIND() \
405 do { \
406 if (RPC2_Trace && rpc2_TraceBuffHeader) { \
407 struct TraceElem *te; \
408 struct te_UNBIND *tea; \
409 te = (struct TraceElem *)CBUF_NextSlot(rpc2_TraceBuffHeader); \
410 tea = &te->Args.UnbindEntry; \
411 te->CallCode = UNBIND; \
412 strncpy(te->ActiveLWP, LWP_Name(), sizeof(te->ActiveLWP) - 1); \
413 tea->whichConn = whichConn; \
414 } \
415 } while (0)
416
417#define TR_MULTI() \
418 do { \
419 if (RPC2_Trace && rpc2_TraceBuffHeader) { \
420 struct TraceElem *te; \
421 struct te_MULTIRPC *tea; \
422 te = (struct TraceElem *)CBUF_NextSlot(rpc2_TraceBuffHeader); \
423 tea = &te->Args.MultiRPCEntry; \
424 te->CallCode = MULTIRPC; \
425 strncpy(te->ActiveLWP, LWP_Name(), sizeof(te->ActiveLWP) - 1); \
426 tea->ConnHandle = ConnHandleList; \
427 tea->Request_Address = Request; \
428 tea->Request = *Request; /* structure assignment */ \
429 if (SDescList == NULL) \
430 tea->IsNullSDesc = TRUE; \
431 else { \
432 tea->IsNullSDesc = FALSE; \
433 tea->SDesc = SDescList[0]; /* structure assignment */ \
434 } \
435 tea->HandleResult = ArgInfo->HandleResult; \
436 if (BreathOfLife == NULL) \
437 tea->IsNullBreathOfLife = TRUE; \
438 else { \
439 tea->IsNullBreathOfLife = FALSE; \
440 tea->BreathOfLife = *BreathOfLife; /* structure assignment */ \
441 } \
442 } \
443 } while (0)
444
445#define TR_MSENDRELIABLY() \
446 do { \
447 if (RPC2_Trace && rpc2_TraceBuffHeader) { \
448 struct TraceElem *te; \
449 struct te_MSENDPACKETSRELIABLY *tea; \
450 int idx; \
451 te = (struct TraceElem *)CBUF_NextSlot(rpc2_TraceBuffHeader); \
452 tea = &te->Args.MSendPacketsReliablyEntry; \
453 te->CallCode = MSENDPACKETSRELIABLY; \
454 strncpy(te->ActiveLWP, LWP_Name(), sizeof(te->ActiveLWP) - 1); \
455 tea->HowMany = HowMany; \
456 for (idx = 0; !ConnHandleList[idx] && idx < HowMany; \
457 idx++) /*loop*/ \
458 ; \
459 tea->ConnArray0 = mcon[idx].ceaddr; \
460 tea->ConnArray0_UniqueCID = (mcon[idx].ceaddr)->UniqueCID; \
461 tea->PacketArray0_Address = mcon[idx].req; \
462 if (mcon[idx].req) \
463 tea->PacketArray0 = \
464 *(mcon[idx].req); /* structure assignment */ \
465 if (TimeOut == NULL) \
466 tea->IsNullTimeout = 1; \
467 else { \
468 tea->IsNullTimeout = 0; \
469 tea->Timeout = *TimeOut; /* structure assignment */ \
470 } \
471 } \
472 } while (0)
473
474#define TR_XMIT() \
475 do { \
476 if (RPC2_Trace && rpc2_TraceBuffHeader) { \
477 struct TraceElem *te; \
478 struct te_XMITPACKET *tea; \
479 te = (struct TraceElem *)CBUF_NextSlot(rpc2_TraceBuffHeader); \
480 tea = &te->Args.XmitPacketEntry; \
481 te->CallCode = XMITPACKET; \
482 strncpy(te->ActiveLWP, LWP_Name(), sizeof(te->ActiveLWP) - 1); \
483 tea->whichSocket = whichSocket; \
484 tea->whichPB_Address = pb; \
485 tea->whichPB = *pb; /* structure assignment */ \
486 rpc2_htonp(&tea->whichPB); \
487 tea->whichAddr = *addr; /* BAD! structure assignment */ \
488 tea->whichAddr.ai_next = NULL; \
489 } \
490 } while (0)
491
492#define TR_RECV() \
493 do { \
494 if (RPC2_Trace && rpc2_TraceBuffHeader) { \
495 struct TraceElem *te; \
496 struct te_SLNEWPACKET *tea; \
497 te = (struct TraceElem *)CBUF_NextSlot(rpc2_TraceBuffHeader); \
498 tea = &te->Args.SLNewPacketEntry; \
499 te->CallCode = SLNEWPACKET; \
500 strncpy(te->ActiveLWP, LWP_Name(), sizeof(te->ActiveLWP) - 1); \
501 tea->pb_Address = whichBuff; \
502 tea->pb = *whichBuff; /* Structure assignment */ \
503 rpc2_ntohp(&tea->pb); \
504 } \
505 } while (0)
506
507#define TR_SENDRELIABLY() \
508 do { \
509 if (RPC2_Trace && rpc2_TraceBuffHeader) { \
510 struct TraceElem *te; \
511 struct te_SENDRELIABLY *tea; \
512 te = (struct TraceElem *)CBUF_NextSlot(rpc2_TraceBuffHeader); \
513 tea = &te->Args.SendReliablyEntry; \
514 te->CallCode = SENDRELIABLY; \
515 strncpy(te->ActiveLWP, LWP_Name(), sizeof(te->ActiveLWP) - 1); \
516 tea->Conn = Conn; \
517 tea->Conn_UniqueCID = Conn->UniqueCID; \
518 tea->Packet_Address = Packet; \
519 tea->Packet = *Packet; /* structure assignment */ \
520 if (TimeOut == NULL) \
521 tea->IsNullTimeout = 1; \
522 else { \
523 tea->IsNullTimeout = 0; \
524 tea->Timeout = *TimeOut; /* structure assignment */ \
525 } \
526 } \
527 } while (0)
528
529#define TR_CREATEMGRP() \
530 do { \
531 if (RPC2_Trace && rpc2_TraceBuffHeader) { \
532 struct TraceElem *te; \
533 struct te_CREATEMGRP *tea; \
534 te = (struct TraceElem *)CBUF_NextSlot(rpc2_TraceBuffHeader); \
535 tea = &te->Args.CreateMgrpEntry; \
536 te->CallCode = CREATEMGRP; \
537 strncpy(te->ActiveLWP, LWP_Name(), sizeof(te->ActiveLWP) - 1); \
538 tea->MgroupHandle = *MgroupHandle; \
539 tea->McastHost = *MulticastHost; /* structure assignment */ \
540 tea->Subsys = *Subsys; /* structure assignment */ \
541 } \
542 } while (0)
543
544#define TR_ADDTOMGRP() \
545 do { \
546 if (RPC2_Trace && rpc2_TraceBuffHeader) { \
547 struct TraceElem *te; \
548 struct te_ADDTOMGRP *tea; \
549 te = (struct TraceElem *)CBUF_NextSlot(rpc2_TraceBuffHeader); \
550 tea = &te->Args.AddToMgrpEntry; \
551 te->CallCode = ADDTOMGRP; \
552 tea->MgroupHandle = MgroupHandle; \
553 tea->ConnHandle = ConnHandle; \
554 } \
555 } while (0)
556
557#define TR_REMOVEFROMMGRP() \
558 do { \
559 if (RPC2_Trace && rpc2_TraceBuffHeader) { \
560 struct TraceElem *te; \
561 struct te_REMOVEFROMMGRP *tea; \
562 te = (struct TraceElem *)CBUF_NextSlot(rpc2_TraceBuffHeader); \
563 tea = &te->Args.RemoveFromMgrpEntry; \
564 te->CallCode = REMOVEFROMMGRP; \
565 tea->me = *me; /* structure assignment */ \
566 tea->ce = *ce; /* structure assignment */ \
567 } \
568 } while (0)
569
570#define TR_XLATEMCASTPACKET() \
571 do { \
572 if (RPC2_Trace && rpc2_TraceBuffHeader) { \
573 struct TraceElem *te; \
574 struct te_XLATEMCASTPACKET *tea; \
575 te = (struct TraceElem *)CBUF_NextSlot(rpc2_TraceBuffHeader); \
576 tea = &te->Args.XlateMcastPacketEntry; \
577 te->CallCode = XLATEMCASTPACKET; \
578 tea->pb = *pb; /* structure assignment */ \
579 tea->pb_address = (long)pb; \
580 tea->ThisAddr = \
581 *pb->Prefix.PeerAddr; /* BAD! structure assignment */ \
582 tea->ThisAddr.ai_next = NULL; \
583 } \
584 } while (0)
585#endif
long RPC2_HandleResult_func(int HowMany, RPC2_Handle ConnList[], long offset, long rpcval,...)
Definition: multi.h:48
int32_t RPC2_Integer
Definition: rpc2.h:297
RPC2_Integer RPC2_Handle
Definition: rpc2.h:345
Definition: rpc2.private.h:148
Definition: rpc2.private.h:206
Definition: rpc2.h:316
Definition: rpc2.h:348
Definition: rpc2.h:374
Definition: rpc2.h:406
Definition: rpc2.h:358
Definition: rpc2.h:508
Definition: rpc2.h:366
Definition: rpc2_addrinfo.h:28
Definition: se.h:148
Definition: trace.h:73
RPC2_McastIdent McastHost
Definition: trace.h:222
struct timeval Timeout
Definition: trace.h:195
struct TraceElem::@53::te_CLOCKTICK ClockTickEntry
struct TraceElem::@53::te_SENDRELIABLY SendReliablyEntry
struct TraceElem::@53::te_REMOVEFROMMGRP RemoveFromMgrpEntry
RPC2_Integer HowMany
Definition: trace.h:122
RPC2_PacketBuffer * pb_Address
Definition: trace.h:185
RPC2_PacketBuffer * Request_Address
Definition: trace.h:111
RPC2_SubsysIdent Subsys
Definition: trace.h:78
struct TraceElem::@53::te_CREATEMGRP CreateMgrpEntry
long pb_address
Definition: trace.h:239
RPC2_HostIdent Host
Definition: trace.h:136
RPC2_Handle whichConn
Definition: trace.h:159
int EncryptionTypeMask
Definition: trace.h:106
struct MEntry me
Definition: trace.h:233
struct TraceElem::@53::te_BIND BindEntry
RPC2_PacketBuffer * PacketArray0_Address
Definition: trace.h:202
union TraceElem::@53 Args
struct TraceElem::@53::te_FREEBUFFER FreeBufferEntry
char * PrivatePtr
Definition: trace.h:168
RPC2_PortIdent Port
Definition: trace.h:137
RPC2_Handle MgroupHandle
Definition: trace.h:221
char * SEPtr
Definition: trace.h:177
struct CEntry ce
Definition: trace.h:234
int SideEffectType
Definition: trace.h:139
int IsNullSDesc
Definition: trace.h:97
struct TraceElem::@53::te_GETPRIVATEPOINTER GetPrivatePointerEntry
int EncryptionType
Definition: trace.h:135
struct TraceElem::@53::te_DEEXPORT DeExportEntry
int Conn_UniqueCID
Definition: trace.h:191
RPC2_PacketBuffer Request
Definition: trace.h:112
struct TraceElem::@53::te_ALLOCBUFFER AllocBufferEntry
RPC2_PacketBuffer Packet
Definition: trace.h:193
struct TraceElem::@53::te_UNBIND UnbindEntry
int CallCode
Definition: trace.h:74
struct TraceElem::@53::te_EXPORT ExportEntry
int IsNullClientIdent
Definition: trace.h:140
RPC2_CountedBS ClientIdent
Definition: trace.h:141
int EnqueueRequest
Definition: trace.h:117
struct TraceElem::@53::te_GETSEPOINTER GetSEPointerEntry
RPC2_PacketBuffer pb
Definition: trace.h:186
struct TraceElem::@53::te_INITSIDEEFFECT InitSideEffectEntry
int HowMany
Definition: trace.h:199
RPC2_RequestFilter Filter
Definition: trace.h:102
long(* GetKeys)()
Definition: trace.h:105
struct TraceElem::@53::te_CHECKSIDEEFFECT CheckSideEffectEntry
RPC2_HandleResult_func * HandleResult
Definition: trace.h:127
struct TraceElem::@53::te_GETPEERINFO GetPeerInfoEntry
struct RPC2_addrinfo ThisAddr
Definition: trace.h:240
RPC2_PacketBuffer * Reply_Address
Definition: trace.h:95
struct TraceElem::@53::te_SETPRIVATEPOINTER SetPrivatePointerEntry
RPC2_Handle ConnHandle
Definition: trace.h:94
RPC2_PacketBuffer Reply
Definition: trace.h:96
RPC2_PacketBuffer * whichPB_Address
Definition: trace.h:210
int MinBodySize
Definition: trace.h:86
struct TraceElem::@53::te_XLATEMCASTPACKET XlateMcastPacketEntry
RPC2_Handle * ConnHandle
Definition: trace.h:121
RPC2_PacketBuffer * Packet_Address
Definition: trace.h:192
struct TraceElem::@53::te_MSENDPACKETSRELIABLY MSendPacketsReliablyEntry
int IsNullTimeout
Definition: trace.h:194
struct CEntry * Conn
Definition: trace.h:190
struct TraceElem::@53::te_ADDTOMGRP AddToMgrpEntry
struct CEntry * ConnArray0
Definition: trace.h:200
struct TraceElem::@53::te_XMITPACKET XmitPacketEntry
struct TraceElem::@53::te_SETSEPOINTER SetSEPointerEntry
SE_Descriptor SDesc
Definition: trace.h:98
struct TraceElem::@53::te_SLNEWPACKET SLNewPacketEntry
struct RPC2_addrinfo whichAddr
Definition: trace.h:213
struct TraceElem::@53::te_MAKERPC MakeRPCEntry
struct TraceElem::@53::te_SENDRESPONSE SendResponseEntry
int TimeNow
Definition: trace.h:217
char ClientIdent_Value[20]
Definition: trace.h:142
struct TraceElem::@53::te_MULTIRPC MultiRPCEntry
struct TraceElem::@53::te_GETREQUEST GetRequestEntry
char ActiveLWP[20]
Definition: trace.h:75
RPC2_PacketBuffer * BuffPtr
Definition: trace.h:90
int ConnArray0_UniqueCID
Definition: trace.h:201
int SecurityLevel
Definition: trace.h:134
RPC2_PacketBuffer PacketArray0
Definition: trace.h:203
struct timeval BreathOfLife
Definition: trace.h:104
long whichSocket
Definition: trace.h:212
int IsNullBreathOfLife
Definition: trace.h:103
int Flags
Definition: trace.h:155
RPC2_PacketBuffer whichPB
Definition: trace.h:211