Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Probst <mark.probst@gmail.com>2013-02-14 21:51:03 +0400
committerMark Probst <mark.probst@gmail.com>2013-02-15 01:49:11 +0400
commit77b16536ee869cfd1f29ccb7a4221ed459ee7766 (patch)
tree15a0fdff7d0f576ef11524af004e45db043f50ec /tools/sgen
parentc5f97d9b7a03ffea6d44be7a9224595458220cba (diff)
[sgen] Binary protocol for disappearing link updates.
Diffstat (limited to 'tools/sgen')
-rw-r--r--tools/sgen/sgen-grep-binprot.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/tools/sgen/sgen-grep-binprot.c b/tools/sgen/sgen-grep-binprot.c
index c8e897b6d0a..ea19d4a6caf 100644
--- a/tools/sgen/sgen-grep-binprot.c
+++ b/tools/sgen/sgen-grep-binprot.c
@@ -40,6 +40,7 @@ read_entry (FILE *in, void **data)
case SGEN_PROTOCOL_CARD_SCAN: size = sizeof (SGenProtocolCardScan); break;
case SGEN_PROTOCOL_CEMENT: size = sizeof (SGenProtocolCement); break;
case SGEN_PROTOCOL_CEMENT_RESET: size = 0; break;
+ case SGEN_PROTOCOL_DISLINK_UPDATE: size = sizeof (SGenProtocolDislinkUpdate); break;
default: assert (0);
}
@@ -163,6 +164,14 @@ print_entry (int type, void *data)
case SGEN_PROTOCOL_CEMENT_RESET: {
printf ("cement_reset\n");
break;
+ case SGEN_PROTOCOL_DISLINK_UPDATE: {
+ SGenProtocolDislinkUpdate *entry = data;
+ printf ("dislink_update link %p obj %p", entry->link, entry->obj);
+ if (entry->obj)
+ printf (" track %d\n", entry->track);
+ else
+ printf ("\n");
+ break;
}
default:
assert (0);
@@ -239,6 +248,10 @@ is_match (gpointer ptr, int type, void *data)
SGenProtocolCement *entry = data;
return matches_interval (ptr, entry->obj, entry->size);
}
+ case SGEN_PROTOCOL_DISLINK_UPDATE: {
+ SGenProtocolDislinkUpdate *entry = data;
+ return ptr == entry->obj || ptr == entry->link;
+ }
default:
assert (0);
}