44#define TRACEBASE 198732
45#define INIT TRACEBASE + 1
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
85 struct te_ALLOCBUFFER {
89 struct te_FREEBUFFER {
93 struct te_SENDRESPONSE {
101 struct te_GETREQUEST {
145 struct te_INITSIDEEFFECT {
151 struct te_CHECKSIDEEFFECT {
162 struct te_GETPRIVATEPOINTER {
166 struct te_SETPRIVATEPOINTER {
171 struct te_GETSEPOINTER {
175 struct te_SETSEPOINTER {
180 struct te_GETPEERINFO {
184 struct te_SLNEWPACKET {
189 struct te_SENDRELIABLY {
198 struct te_MSENDPACKETSRELIABLY {
209 struct te_XMITPACKET {
216 struct te_CLOCKTICK {
220 struct te_CREATEMGRP {
227 struct te_ADDTOMGRP {
232 struct te_REMOVEFROMMGRP {
237 struct te_XLATEMCASTPACKET {
249#define TR_SENDRESPONSE()
250#define TR_GETREQUEST()
257#define TR_MSENDRELIABLY()
260#define TR_SENDRELIABLY()
261#define TR_CREATEMGRP()
262#define TR_ADDTOMGRP()
263#define TR_REMOVEFROMMGRP()
264#define TR_XLATEMCASTPACKET()
266#define TR_SENDRESPONSE() \
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; \
281#define TR_GETREQUEST() \
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; \
291 if (BreathOfLife == NULL) \
292 tea->IsNullBreathOfLife = TRUE; \
294 tea->IsNullBreathOfLife = FALSE; \
295 tea->BreathOfLife = *BreathOfLife; \
297 tea->GetKeys = GetKeys; \
298 tea->EncryptionTypeMask = EncryptionTypeMask; \
302#define TR_MAKERPC() \
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; \
315 tea->IsNullSDesc = TRUE; \
317 tea->IsNullSDesc = FALSE; \
318 tea->SDesc = *SDesc; \
320 if (BreathOfLife == NULL) \
321 tea->IsNullBreathOfLife = TRUE; \
323 tea->IsNullBreathOfLife = FALSE; \
324 tea->BreathOfLife = *BreathOfLife; \
326 tea->EnqueueRequest = EnqueueRequest; \
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; \
343 tea->Subsys = *Subsys; \
344 tea->SideEffectType = Bparms->SideEffectType; \
345 if (Bparms->ClientIdent == NULL) \
346 tea->IsNullClientIdent = TRUE; \
348 tea->IsNullClientIdent = FALSE; \
349 tea->ClientIdent.SeqLen = \
350 Bparms->ClientIdent \
352 if (Bparms->ClientIdent->SeqLen < \
353 sizeof(tea->ClientIdent_Value)) \
354 memcpy(tea->ClientIdent_Value, \
355 Bparms->ClientIdent->SeqBody, \
356 Bparms->ClientIdent->SeqLen); \
358 memcpy(tea->ClientIdent_Value, \
359 Bparms->ClientIdent->SeqBody, \
360 sizeof(tea->ClientIdent_Value)); \
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; \
376 tea->IsNullSDesc = TRUE; \
378 tea->IsNullSDesc = FALSE; \
379 tea->SDesc = *SDesc; \
384#define TR_CHECKSE() \
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; \
395 tea->IsNullSDesc = TRUE; \
397 tea->IsNullSDesc = FALSE; \
398 tea->SDesc = *SDesc; \
400 tea->Flags = Flags; \
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; \
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; \
429 if (SDescList == NULL) \
430 tea->IsNullSDesc = TRUE; \
432 tea->IsNullSDesc = FALSE; \
433 tea->SDesc = SDescList[0]; \
435 tea->HandleResult = ArgInfo->HandleResult; \
436 if (BreathOfLife == NULL) \
437 tea->IsNullBreathOfLife = TRUE; \
439 tea->IsNullBreathOfLife = FALSE; \
440 tea->BreathOfLife = *BreathOfLife; \
445#define TR_MSENDRELIABLY() \
447 if (RPC2_Trace && rpc2_TraceBuffHeader) { \
448 struct TraceElem *te; \
449 struct te_MSENDPACKETSRELIABLY *tea; \
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; \
459 tea->ConnArray0 = mcon[idx].ceaddr; \
460 tea->ConnArray0_UniqueCID = (mcon[idx].ceaddr)->UniqueCID; \
461 tea->PacketArray0_Address = mcon[idx].req; \
463 tea->PacketArray0 = \
465 if (TimeOut == NULL) \
466 tea->IsNullTimeout = 1; \
468 tea->IsNullTimeout = 0; \
469 tea->Timeout = *TimeOut; \
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; \
486 rpc2_htonp(&tea->whichPB); \
487 tea->whichAddr = *addr; \
488 tea->whichAddr.ai_next = NULL; \
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; \
503 rpc2_ntohp(&tea->pb); \
507#define TR_SENDRELIABLY() \
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); \
517 tea->Conn_UniqueCID = Conn->UniqueCID; \
518 tea->Packet_Address = Packet; \
519 tea->Packet = *Packet; \
520 if (TimeOut == NULL) \
521 tea->IsNullTimeout = 1; \
523 tea->IsNullTimeout = 0; \
524 tea->Timeout = *TimeOut; \
529#define TR_CREATEMGRP() \
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; \
540 tea->Subsys = *Subsys; \
544#define TR_ADDTOMGRP() \
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; \
557#define TR_REMOVEFROMMGRP() \
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; \
570#define TR_XLATEMCASTPACKET() \
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; \
579 tea->pb_address = (long)pb; \
581 *pb->Prefix.PeerAddr; \
582 tea->ThisAddr.ai_next = NULL; \
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_addrinfo.h:28
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