summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfredb <fredb@pkgsrc.org>2002-05-14 13:52:51 +0000
committerfredb <fredb@pkgsrc.org>2002-05-14 13:52:51 +0000
commit8283b7e3ca6c43d1b0324b74a25e7819185381d2 (patch)
treec75260790b094a74b6c866947afbeb27b43cfc66
parent76b7de015dea7262c3a56f0d7ed9f33b855ff796 (diff)
downloadpkgsrc-8283b7e3ca6c43d1b0324b74a25e7819185381d2.tar.gz
- - Enable the cdrom driver, and begin to make it work on NetBSD.
It can boot a Norton Utilities CD, but not run any of the utilities. That may be the known problem with the Windows 98 CD. - - Add the ability, on NetBSD, to spin up the CD-ROM. This keeps "disklabel cd0" while booted from the NetBSD 1.5.3 rescue floppy from panicing the emulation, but it still doesn't return a label. - - Go ahead and enable the network driver and dummy sound driver. The network driver almost works under the NetBSD rescue floppy (ifconfig works, but not ping). I have no way, currently, of verifying the (dummy, silent) sound driver. - - Bump to 1.4nb1.
-rw-r--r--emulators/bochs/Makefile7
-rw-r--r--emulators/bochs/distinfo7
-rw-r--r--emulators/bochs/patches/patch-aa11
-rw-r--r--emulators/bochs/patches/patch-ad54
-rw-r--r--emulators/bochs/patches/patch-af15
-rw-r--r--emulators/bochs/patches/patch-ag14
6 files changed, 104 insertions, 4 deletions
diff --git a/emulators/bochs/Makefile b/emulators/bochs/Makefile
index 3e81367702a..493f2de8abe 100644
--- a/emulators/bochs/Makefile
+++ b/emulators/bochs/Makefile
@@ -1,6 +1,7 @@
-# $NetBSD: Makefile,v 1.18 2002/05/13 14:47:41 wiz Exp $
+# $NetBSD: Makefile,v 1.19 2002/05/14 13:52:51 fredb Exp $
DISTNAME= bochs-1.4
+PKGREVISION= 1
CATEGORIES= emulators
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=bochs/}
@@ -14,6 +15,10 @@ USE_GMAKE= yes
# performance. The number of processors can be either 1 (default), 2, or 4.
#CONFIGURE_ARGS+= --enable-debugger --enable-disasm
#CONFIGURE_ARGS+= --enable-processors=2
+CONFIGURE_ARGS+= --enable-cdrom
+CONFIGURE_ARGS+= --enable-ne2000
+CONFIGURE_ARGS+= --enable-sb16=dummy
+CONFIGURE_ENV+= CXXFLAGS=-I${X11BASE}/include
USE_X11= yes
BOCHS_MAINDIR= ${PREFIX}/share/bochs
diff --git a/emulators/bochs/distinfo b/emulators/bochs/distinfo
index a0477e7f6ec..06b1faf2bd0 100644
--- a/emulators/bochs/distinfo
+++ b/emulators/bochs/distinfo
@@ -1,8 +1,11 @@
-$NetBSD: distinfo,v 1.7 2002/05/13 14:47:41 wiz Exp $
+$NetBSD: distinfo,v 1.8 2002/05/14 13:52:51 fredb Exp $
SHA1 (bochs-1.4.tar.gz) = db5f1763c8d048831daad34fa81b0f3b15e5e0a8
Size (bochs-1.4.tar.gz) = 1389919 bytes
-SHA1 (patch-aa) = a7fdb6c2e4d4f13a80ea44b0c857d5cf52f6d2c6
+SHA1 (patch-aa) = 8c65fa102f606dc7d34611cfc5e5b7ab8542cfb6
SHA1 (patch-ab) = 13ef85883d8f66862194f3ee3ffc577a3676fb3a
SHA1 (patch-ac) = 1536b5a110c05452aa423f1581cd09c8f4a486f4
+SHA1 (patch-ad) = 941d696a9556ddf8575362e1128463fadcd8c1af
SHA1 (patch-ae) = 05b4d7663735594f427a236428d6cea9510c080e
+SHA1 (patch-af) = b76fa463ade0d95e3aa9f1c4f8759e8361d51d57
+SHA1 (patch-ag) = a22ca6f8abf0db67de714f53e3db94cb06e33db6
diff --git a/emulators/bochs/patches/patch-aa b/emulators/bochs/patches/patch-aa
index 450625e3910..bae4a3c5d8d 100644
--- a/emulators/bochs/patches/patch-aa
+++ b/emulators/bochs/patches/patch-aa
@@ -1,4 +1,4 @@
-$NetBSD: patch-aa,v 1.6 2002/05/13 14:12:04 fredb Exp $
+$NetBSD: patch-aa,v 1.7 2002/05/14 13:52:52 fredb Exp $
--- .bochsrc.orig Thu Mar 28 01:49:52 2002
+++ .bochsrc
@@ -44,6 +44,15 @@ $NetBSD: patch-aa,v 1.6 2002/05/13 14:12:04 fredb Exp $
#=======================================================================
# DISKD:
+@@ -108,7 +108,7 @@
+ # NOTE: diskd and cdromd must not be used together!
+ #=======================================================================
+ #cdromd: dev=D:, status=inserted # for win32
+-#cdromd: dev=/dev/cdrom, status=inserted
++cdromd: dev=/dev/rcd0d, status=ejected
+
+ #=======================================================================
+ # NEWHARDDRIVESUPPORT: enabled=[0|1]
@@ -125,8 +125,8 @@
# boot: a
# boot: cdrom
diff --git a/emulators/bochs/patches/patch-ad b/emulators/bochs/patches/patch-ad
new file mode 100644
index 00000000000..7229ecee440
--- /dev/null
+++ b/emulators/bochs/patches/patch-ad
@@ -0,0 +1,54 @@
+$NetBSD: patch-ad,v 1.3 2002/05/14 13:52:52 fredb Exp $
+
+--- iodev/cdrom.cc.orig Tue Mar 19 19:24:16 2002
++++ iodev/cdrom.cc
+@@ -65,7 +65,7 @@
+ #define BX_CD_FRAMESIZE 2048
+ #endif
+
+-#if (defined(__OpenBSD__) || defined(__FreeBSD__))
++#if (defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__))
+ // OpenBSD pre version 2.7 may require extern "C" { } structure around
+ // all the includes, because the i386 sys/disklabel.h contains code which
+ // c++ considers invalid.
+@@ -357,6 +357,22 @@
+ return(true);
+ }
+
++ int
++cdrom_interface::start_cdrom()
++{
++ // Spin up the cdrom drive.
++
++ if (fd >= 0) {
++#if defined(__NetBSD__)
++ if (ioctl (fd, CDIOCSTART) < 0)
++ BX_DEBUG(( "start_cdrom: start returns error: %s", strerror (errno) ));
++ return(true);
++#else
++ BX_INFO(("start_cdrom: your OS is not supported yet."));
++ return(false); // OS not supported yet, return false always.
++#endif
++ }
++}
+
+ void
+ cdrom_interface::eject_cdrom()
+@@ -365,7 +381,7 @@
+ // some ioctl() calls to really eject the CD as well.
+
+ if (fd >= 0) {
+-#if (defined(__OpenBSD__) || defined(__FreeBSD__))
++#if (defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__))
+ (void) ioctl (fd, CDIOCALLOW);
+ if (ioctl (fd, CDIOCEJECT) < 0)
+ BX_DEBUG(( "eject_cdrom: eject returns error." ));
+@@ -495,7 +511,7 @@
+
+ return true;
+ }
+-#elif (defined(__OpenBSD__) || defined(__FreeBSD__))
++#elif (defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__))
+ {
+ struct ioc_toc_header h;
+ struct ioc_read_toc_entry t;
diff --git a/emulators/bochs/patches/patch-af b/emulators/bochs/patches/patch-af
new file mode 100644
index 00000000000..8a323f3a51b
--- /dev/null
+++ b/emulators/bochs/patches/patch-af
@@ -0,0 +1,15 @@
+$NetBSD: patch-af,v 1.3 2002/05/14 13:52:52 fredb Exp $
+
+--- iodev/harddrv.cc.orig Sun Mar 24 19:47:14 2002
++++ iodev/harddrv.cc
+@@ -1000,8 +1000,8 @@
+
+ if (!LoEj && !Start) { // stop the disc
+ BX_PANIC(("Stop disc not implemented"));
+- } else if (!LoEj && Start) { // start the disc and read the TOC
+- BX_PANIC(("Start disc not implemented"));
++ } else if (!LoEj && Start) { // Start (spin up) the disc.
++ BX_HD_THIS s[1].cdrom.cd->start_cdrom();
+ } else if (LoEj && !Start) { // Eject the disc
+ atapi_cmd_nop();
+ if (BX_HD_THIS s[1].cdrom.ready) {
diff --git a/emulators/bochs/patches/patch-ag b/emulators/bochs/patches/patch-ag
new file mode 100644
index 00000000000..687c91a728c
--- /dev/null
+++ b/emulators/bochs/patches/patch-ag
@@ -0,0 +1,14 @@
+$NetBSD: patch-ag,v 1.3 2002/05/14 13:52:52 fredb Exp $
+
+--- iodev/cdrom.h.orig Fri Feb 1 10:46:28 2002
++++ iodev/cdrom.h
+@@ -49,6 +49,9 @@
+ // Read a single block from the CD
+ void read_block(uint8* buf, int lba);
+
++ // Start (spin up) the CD.
++ int start_cdrom();
++
+ private:
+ int fd;
+ char *path;