/* * memcmp dev1 dev2 offset pages */ int main (int argc, char **argv) { unsigned int offset, size, i; char *addr1, *addr2; /* * Sanity check. */ if (argc != 5) { fprintf (stderr, "Usage: mapcmp dev1 dev2 offset pages\n"); exit (1); } /* * Map the two devices. */ offset = atoi (argv[3]); size = atoi (argv[4]); addr1 = mapdev (argv[1], offset, size); addr2 = mapdev (argv[2], offset, size); /* * Do the comparison. */ printf ("Comparing..."); fflush (stdout); for (i = 0; i < size; i++) if (*addr1++ != *addr2++) { printf ("areas differ at byte %d\n", i); exit (0); } printf ("areas are identical.\n"); exit (0); }
int cgtwomatch(struct device *parent, void *vcf, void *aux) { struct cfdata *cf = vcf; struct confargs *ca = aux; struct romaux *ra = &ca->ca_ra; caddr_t tmp; if (strcmp(cf->cf_driver->cd_name, ra->ra_name)) return (0); if (!CPU_ISSUN4 || ca->ca_bustype != BUS_VME16) return (0); /* XXX - Must do our own mapping at CG2_CTLREG_OFF */ bus_untmp(); tmp = (caddr_t)mapdev(ra->ra_reg, TMPMAP_VA, CG2_CTLREG_OFF, NBPG); if (probeget(tmp, 2) != -1) return (1); return (0); }