pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/emulators/gxemul Add patches to implement the SCSI com...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/1a77cb1755e1
branches:  trunk
changeset: 518789:1a77cb1755e1
user:      he <he%pkgsrc.org@localhost>
date:      Sun Sep 17 19:53:05 2006 +0000

description:
Add patches to implement the SCSI commands READ_DISCINFO and
READ_TRACKINFO, sufficient to get a NetBSD/cats kernel mount a
cd-rom image.  I still get ""cd_setblksize: trying to change bsize,
but no blk_desc" but it seems to be a benign warning.

Pkgrevision bumped to 1.

diffstat:

 emulators/gxemul/Makefile         |   3 +-
 emulators/gxemul/distinfo         |   4 +-
 emulators/gxemul/patches/patch-ab |  94 +++++++++++++++++++++++++++++++++++++++
 emulators/gxemul/patches/patch-ac |  13 +++++
 4 files changed, 112 insertions(+), 2 deletions(-)

diffs (141 lines):

diff -r 569d40cd6a29 -r 1a77cb1755e1 emulators/gxemul/Makefile
--- a/emulators/gxemul/Makefile Sun Sep 17 18:53:36 2006 +0000
+++ b/emulators/gxemul/Makefile Sun Sep 17 19:53:05 2006 +0000
@@ -1,7 +1,8 @@
-# $NetBSD: Makefile,v 1.23 2006/08/20 16:27:44 xtraeme Exp $
+# $NetBSD: Makefile,v 1.24 2006/09/17 19:53:05 he Exp $
 #
 
 DISTNAME=      gxemul-0.4.2
+PKGREVISION=   1
 CATEGORIES=    emulators
 MASTER_SITES=  http://gavare.se/gxemul/src/
 
diff -r 569d40cd6a29 -r 1a77cb1755e1 emulators/gxemul/distinfo
--- a/emulators/gxemul/distinfo Sun Sep 17 18:53:36 2006 +0000
+++ b/emulators/gxemul/distinfo Sun Sep 17 19:53:05 2006 +0000
@@ -1,6 +1,8 @@
-$NetBSD: distinfo,v 1.15 2006/09/17 16:38:12 he Exp $
+$NetBSD: distinfo,v 1.16 2006/09/17 19:53:05 he Exp $
 
 SHA1 (gxemul-0.4.2.tar.gz) = d912b4a38cf892d6f3e89c71195d6c52bb3718ca
 RMD160 (gxemul-0.4.2.tar.gz) = dcffd9a3d8de93e935a0f2802c1a0aa60c462693
 Size (gxemul-0.4.2.tar.gz) = 1909826 bytes
 SHA1 (patch-aa) = d320c625149490ec190b1201bfe94e4ee3692bbf
+SHA1 (patch-ab) = 74cf9f44bd6577e120a1cafb532588a8280681e7
+SHA1 (patch-ac) = 6eae02b6dd162a907abbf9f84ca1c7949eb90bc8
diff -r 569d40cd6a29 -r 1a77cb1755e1 emulators/gxemul/patches/patch-ab
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/emulators/gxemul/patches/patch-ab Sun Sep 17 19:53:05 2006 +0000
@@ -0,0 +1,94 @@
+$NetBSD: patch-ab,v 1.1 2006/09/17 19:53:05 he Exp $
+
+--- src/diskimage.c.orig       2006-08-14 19:46:45.000000000 +0200
++++ src/diskimage.c
+@@ -1185,6 +1185,89 @@ xferp->data_in[4] = 0x2c - 4;   /*  Additi
+               diskimage__return_default_status_and_message(xferp);
+               break;
+ 
++      case SCSICDROM_READ_DISCINFO:
++              debug("CDROM_READ_DISCINFO, cmd[1]=0x%02x", xferp->cmd[1]);
++
++              retlen = 34;
++
++              scsi_transfer_allocbuf(&xferp->data_in_len,
++                  &xferp->data_in, retlen, 1);
++
++              xferp->data_in[0] = retlen - 2; /* length of info, excl len */
++              xferp->data_in[1] = 0; /* length of info, excl len field, msb */
++              xferp->data_in[2] = 0xE; /* 11 = complete ses, 10 = fin disc */
++              xferp->data_in[3] = 0; /* First track on disc */
++              xferp->data_in[4] = 1; /* Number of sessions, lsb */
++              xferp->data_in[5] = 0; /* first_track_last_session_lsb */
++              xferp->data_in[6] = 0; /* last_track_last_session_lsb */
++              xferp->data_in[7] = 0x20; /* various flags */
++              xferp->data_in[8] = 0; /* CD-ROM disc */
++              xferp->data_in[9] = 1; /* num sessions, msb */
++              xferp->data_in[10] = 0; /* first_track_last_session_msb */
++              xferp->data_in[11] = 0; /* last_track_last_session_msb */
++              {
++                      int i;
++                      /* Lead-in data, for completed cd-rom */
++                      for (i=16; i<=23; i++) {
++                              xferp->data_in[i] = 0xff;
++                      }
++              }
++
++              diskimage__return_default_status_and_message(xferp);
++              break;
++
++      case SCSICDROM_READ_TRACKINFO:
++              debug("CDROM_READ_TRACKINFO");
++
++              retlen = 36;
++
++              scsi_transfer_allocbuf(&xferp->data_in_len,
++                  &xferp->data_in, retlen, 1);
++
++              diskimage_recalc_size(d);
++
++              size = d->total_size / d->logical_block_size;
++              if (d->total_size & (d->logical_block_size-1))
++                      size ++;
++
++              xferp->data_in[0] = retlen - 2; /* length of info, excl len */
++              xferp->data_in[1] = 0; /* length of info, msb */
++              xferp->data_in[2] = 1; /* track#, lsb */
++              xferp->data_in[3] = 1; /* session#, lsb */
++              xferp->data_in[4] = 0; /* reserved */
++              xferp->data_in[5] = 0x6; /* trk mode: unintr. data, copyable */
++              xferp->data_in[6] = 0x81; /* trk info: RT + trk mode */
++              xferp->data_in[7] = 0x2; /* last rec=valid, next w=not valid */
++
++              {
++                      int i;
++                      /*
++                       * track start, next writable, free blcks,
++                       * blocking factor
++                       */ 
++                      for(i=8; i<=23; i++)
++                              xferp->data_in[i] = 0;
++              }
++
++              /* Track size */
++              xferp->data_in[24] = (size >> 24) & 0xff;
++              xferp->data_in[25] = (size >> 16) & 0xff;
++              xferp->data_in[26] = (size >> 8) & 0xff;
++              xferp->data_in[27] = size & 0xff;
++
++              {
++                      int i;
++                      /*
++                       * Last recorded address, only for dvd;
++                       * zero out rest.
++                       */
++                      for(i=28; i<=35; i++)
++                              xferp->data_in[i] = 0;
++              }
++
++              diskimage__return_default_status_and_message(xferp);
++              break;
++
+       case SCSICDROM_READ_SUBCHANNEL:
+               /*
+                *  According to
diff -r 569d40cd6a29 -r 1a77cb1755e1 emulators/gxemul/patches/patch-ac
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/emulators/gxemul/patches/patch-ac Sun Sep 17 19:53:05 2006 +0000
@@ -0,0 +1,13 @@
+$NetBSD: patch-ac,v 1.1 2006/09/17 19:53:05 he Exp $
+
+--- src/include/diskimage.h.orig       2005-11-13 03:22:01.000000000 +0100
++++ src/include/diskimage.h
+@@ -150,6 +150,8 @@ void diskimage_dump_info(struct machine 
+ /*  SCSI CD-ROM commands:  */
+ #define       SCSICDROM_READ_SUBCHANNEL       0x42
+ #define       SCSICDROM_READ_TOC              0x43
++#define SCSICDROM_READ_DISCINFO               0x51
++#define SCSICDROM_READ_TRACKINFO      0x52
+ 
+ /*  SCSI tape commands:  */
+ #define       SCSICMD_REWIND                  0x01



Home | Main Index | Thread Index | Old Index