Changes to make it compile with the new tree.
[dyninst.git] / rtinst / src / RTtags.c
1
2 /*
3  * Inst functions that are common to both sp and pe on CM-5.
4  *
5  * Used for:
6  *   CMMP_receive_block
7  *   CMMP_send_block
8  *   CMMP_receive_async
9  *   CMMP_send_async
10  *   CMMP_send_noblock
11  *
12  * $Log: RTtags.c,v $
13  * Revision 1.1  1994/02/02 00:46:13  hollings
14  * Changes to make it compile with the new tree.
15  *
16  * Revision 1.4  1993/10/19  15:29:58  hollings
17  * new simpler primitives.
18  *
19  * Revision 1.3  1993/10/01  18:15:53  hollings
20  * Added filtering and resource discovery.
21  *
22  * Revision 1.2  1993/09/02  22:07:31  hollings
23  * new include format.
24  *
25  * Revision 1.1  1993/07/02  21:49:35  hollings
26  * Initial revision
27  *
28  *
29  */
30 #include <stdio.h>
31 #include <memory.h>
32
33 #include "rtinst/h/rtinst.h"
34 #include "rtinst/h/trace.h"
35
36 #define dest_src        arg1
37 #define tag             arg2
38 #define addr            arg3
39 #define element_size    arg4
40 #define element_stride  arg5
41 #define element_count   arg6
42
43 int DYNINSTtagCount;
44 int DYNINSTtagLimit = 1000;
45 int DYNINSTtags[1000];
46
47 void DYNINSTrecordTag(int tag)
48 {
49     int i;
50
51     for (i=0; i < DYNINSTtagCount; i++) {
52         if (DYNINSTtags[i] == tag) return;
53     }
54     if (DYNINSTtagCount == DYNINSTtagLimit) abort();
55     DYNINSTtags[DYNINSTtagCount++] = tag;
56 }
57
58 void DYNINSTreportNewTags()
59 {
60     int i;
61     static int lastTagCount;
62     struct _newresource newRes;
63
64     for (i=lastTagCount; i < DYNINSTtagCount; i++) {
65         memset(&newRes, '\0', sizeof(newRes));
66         sprintf(newRes.name, "SyncObject/MsgTag/%d", DYNINSTtags[i]);
67         strcpy(newRes.maping, "");
68         DYNINSTgenerateTraceRecord(0, TR_NEW_RESOURCE, 
69             sizeof(struct _newresource), &newRes);
70     }
71     lastTagCount = DYNINSTtagCount;
72 }