void findrefs(region r, void *from, void *to) { char *f; if (!out) out = fopen("/dev/tty", "w"); for (f = PALIGN(from, PTRALIGNMENT); f < (char *)to; f += PTRALIGNMENT) if (regionof(*(void **)f) == r) printref(f); fflush(out); }
int region_main(int argc, char *argv[]) { region r[2]; Updater u[1]; region temp = newregion(); struct pair *p; translation t; if ((argc == 1) || (strcmp(argv[1],"d") && strcmp(argv[1],"b"))) { printf("Usage: time timer {d | b}\nd for deserialization only; b for both deserialization and serialization\n"); exit(1); } u[0] = update_pair; t = deserialize("data", "offsets", u, temp); if (strcmp(argv[1],"b") == 0) { p = (struct pair *) translate_pointer(t, (void *) 1125667648); r[0] = regionof((void *) p); r[1] = NULL; serialize(r, "data2", "offsets2"); } return 0; }