printf("\n");
raidinit(raidPtr)	RF_Raid_t *raidPtr;{	struct raid_softc *rs;	struct cfdata	*cf;	int      unit;	unit = raidPtr->raidid;	rs = &raid_softc[unit];	pool_init(&rs->sc_cbufpool, sizeof(struct raidbuf), 0,		0, 0, "raidpl", NULL);		/* XXX should check return code first... */	rs->sc_flags |= RAIDF_INITED;	/* XXX doesn't check bounds.*/	sprintf(rs->sc_xname, "raid%d", unit);	rs->sc_dkdev.dk_name = rs->sc_xname;		/*	 * disk_attach actually creates space for the CPU disklabel, among	 * other things, so it's critical to call this *BEFORE* we	 * try putzing with disklabels.	 */	disk_attach(&rs->sc_dkdev);	/*	 * XXX There may be a weird interaction here between this, and	 * protectedSectors, as used in RAIDframe.	 */	rs->sc_size = raidPtr->totalSectors;	/*	 * config_attach the raid device into the device tree.	 * For autoconf rootdev selection...	 */	cf = malloc(sizeof(struct cfdata), M_RAIDFRAME, M_NOWAIT);	if (cf == NULL) {		printf("WARNING: no memory for cfdata struct\n");		return;	}	bzero(cf, sizeof(struct cfdata));	cf->cf_attach = &raid_ca;	cf->cf_driver = &raid_cd;	cf->cf_unit   = unit;	config_attach(NULL, cf, NULL, NULL);	printf("\n");	/* pretty up config_attach()'s output. */}