Menu:

Sunday, June 13, 2004

OpenBSD 3.5 on SIMH/Vax

Another obsolete topic…

Like the previous version(s), OpenBSD 3.5 will run with a kernel patch to /sys/arch/vax/mscp/mscp_disk.c. This patch, a pre-compiled generic kernel, and (soon) a prebuilt disk image can be found in the downloads section.

Here is the patch to /sys/arch/vax/mscp/mscp_disk.c:

--- mscp_disk.c.orig	Sun May 16 15:15:51 2004
+++ mscp_disk.c	Sun May 16 15:19:13 2004

@@ -610,8 +610,16 @@
 
 	/* Poll away */
 	i = bus_space_read_2(mi->mi_iot, mi->mi_iph, 0);
-	if (tsleep(&rx->ra_dev.dv_unit, PRIBIO, "rxonline", 100*100))
-		rx->ra_state = DK_CLOSED;
+	if (tsleep(&rx->ra_dev.dv_unit, PRIBIO, "rxonline", 100*100)) {
+		if (rx->ra_state != DK_OPEN)
+			rx->ra_state = DK_CLOSED;
+	}
+	if (rx->ra_state == DK_CLOSED) {
+		if (tsleep(&rx->ra_dev.dv_unit, PRIBIO, "rxonline", 100*100)) {
+			if (rx->ra_state != DK_OPEN)
+				rx->ra_state = DK_CLOSED;
+		}
+	}
 
 	if (rx->ra_state == DK_CLOSED)
 		return MSCP_FAILED;

@@ -872,7 +880,6 @@
 	struct rx_softc *rx = (struct rx_softc *)usc;
 	struct disklabel *dl;
 
-	wakeup((caddr_t)&usc->dv_unit);
 	if ((mp->mscp_status & M_ST_MASK) != M_ST_SUCCESS) {
 		printf("%s: attempt to bring on line failed: ", usc->dv_xname);
 		mscp_printevent(mp);

@@ -893,6 +900,7 @@
 		dl->d_rpm = 300;
 	}
 	rrmakelabel(dl, rx->ra_mediaid);
+	wakeup((caddr_t)&usc->dv_unit);
 
 	return (MSCP_DONE);
 }

Posted by markus in • Morgue
(0) CommentsPermalink

Next entry: Agnitum Outpost vs. VMware

Previous entry: NeXTstep 3.3 on VMware and Virtual PC

Comments


Add a comment

Name:

Email:

Location:

URL:

Smileys

Remember my personal information

Notify me of follow-up comments?

Submit the word you see below: