From owner-FreeBSD-users-jp@jp.freebsd.org  Tue Jul 16 23:29:10 1996
Received: by mail.jp.freebsd.org (8.7.3+2.6Wbeta5/8.7.3) id XAA02515
	Tue, 16 Jul 1996 23:29:10 +0900 (JST)
Received: by mail.jp.freebsd.org (8.7.3+2.6Wbeta5/8.7.3) with ESMTP id XAA02510
	for <freebsd-users-jp@jp.freebsd.org>; Tue, 16 Jul 1996 23:29:07 +0900 (JST)
Received: from aulin.st.rim.or.jp (ppp947.st.rim.or.jp [202.247.140.47]) by rayearth.rim.or.jp (8.7.5/3.4W3-uucp1) with SMTP
	id XAA11806; Tue, 16 Jul 1996 23:28:57 +0900 (JST)
Received: from localhost (yokamura@localhost) by aulin.st.rim.or.jp (8.6.12/3.3W7-95011320) with SMTP id XAA00309; Tue, 16 Jul 1996 23:27:55 +0900
Message-Id: <199607161427.XAA00309@aulin.st.rim.or.jp>
To: FreeBSD-users-jp@jp.freebsd.org
Cc: yokamura@st.rim.or.jp
Date: Tue, 16 Jul 1996 23:27:54 +0900
From: Okamura Yoshihito <yokamura@st.rim.or.jp>
Reply-To: FreeBSD-users-jp@jp.freebsd.org
X-Distribute: distribute [version 2.1 (Alpha) patchlevel=19]
X-Sequence: FreeBSD-users-jp 3063
Subject: [FreeBSD-users-jp 3063] DDS HP C1536A compression mode
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org

$B!!2,B<$G$9!#(BHP$B$N(BDDS C1536A$B$r9XF~$7$^$7$?!#$=$3$G#1G/H>$/$i$$A0$K(B
$B$U$H$7$5$s$,%a%$%j%s%0%j%9%H$X$*=P$7$K$J$C$?>pJs$r$b$H$K!"05=L%b(B
$B!<%I$r@ZBX$($k%3!<%I$r(Bst.c$B$XF~$l$F$_$?$N$G$9$,!"@5$7$/@Z$jBX$o$C$?(B
$B$+$I$&$+$o$+$j$^$;$s!#05=L$N(BON,OFF$B$r$=$l$>$lJQ$($F=q$-9~$s$@%F!<%W$O(B
$BFI$_$@$9$H$-$O05=L$N%b!<%I$K4X78$J$/FI$_$@$;$F$7$^$$$^$9!#(B

$B!!(BDDS$B$K$O!"FI$_$@$9;~$O!"=q$-9~$^$l$?05=L%b!<%I$r<+F0E*$KH=JL$9$k;E(B
$B3]$1$,$"$k$N$G$7$g$&$+!#$I$J$?$+65$($F$$$?$@$1$^$9$+!#(B

$B!!05=L%b!<%I(B(DDS-DC)$B$,L5$$(BDDS$B%I%i%$%V$,$"$l$P3NG'$G$-$k$N$G$9$,!#(B

$B!!$$$A$*$&(Bst.c$B$N%Q%C%A$b$D$1$^$9!#(B2.1 RELEASE$B$G$9!#(B

*** st.c.org	Sat Jul 22 13:25:10 1995
--- st.c	Tue Jul 16 22:59:56 1996
*************** u_int32 ststrats, stqueues;
*** 64,69 ****
--- 64,72 ----
  
  #define SCSI_2_MAX_DENSITY_CODE	0x17	/* maximum density code specified
  					 * in SCSI II spec. */
+ 
+ #define HP
+ 
  #ifndef NEW_SCSICONF
  /*
   * Define various devices that we know mis-behave in some way,
*************** st_mode_select(unit, flags, page, pagele
*** 1527,1532 ****
--- 1530,1538 ----
  	bzero(&dat, dat_len);
  	bzero(&scsi_cmd, sizeof(scsi_cmd));
  	scsi_cmd.op_code = MODE_SELECT;
+ #ifdef HP
+ 	scsi_cmd.byte2 = SMS_PF;
+ #endif
  	scsi_cmd.length = dat_len;
  	dat.header.blk_desc_len = sizeof(struct blk_desc);
  	dat.header.dev_spec |= SMH_DSP_BUFF_MODE_ON;
*************** u_int32 unit,mode;
*** 1567,1572 ****
--- 1573,1604 ----
  	struct scsi_link *sc_link = SCSI_LINK(&st_switch, unit);
  	struct scsi_data *st = sc_link->sd;
  
+ #ifdef HP
+ 	unsigned char sel_data[16];
+ 	if ( (retval = st_mode_sense(unit, 0,
+ 		(struct tape_pages *)sel_data, sizeof(sel_data), 0xf)) )
+ 	{
+ 		printf("sense returned an error of %d\n",retval);
+ 		return retval;
+ 	}
+ 	switch(mode)
+ 	{
+ 	case 0:
+ 		sel_data[2] = 0x40;
+ 		break;
+ 	case 1:
+ 		sel_data[2] = 0xC0;
+ 		break;
+ 	case 2:
+ 		printf("mode is %02x\n",sel_data[2]);
+ 		return 0;
+ 	default:
+ 		printf("st%ld: bad value for compression mode\n",unit);
+ 		return EINVAL;
+ 	}
+ 	if ( (retval = st_mode_select(unit, 0,
+ 		(struct tape_pages *)sel_data, sizeof(sel_data))) )
+ #else
  	bzero(&page, sizeof(page));
  	pagesize = sizeof(page.pages.configuration) + PAGE_HEADERLEN;
  
*************** u_int32 unit,mode;
*** 1596,1601 ****
--- 1628,1634 ----
  		return EINVAL;
  	}
  	if ( (retval = st_mode_select(unit, 0, &page, pagesize)) )
+ #endif
  	{
  		printf("select returned an error of %d\n",retval);
  		return retval;

$B!!%3%^%s%I(Bmt$B$G05=L$N(BON,OFF$B$r%3%s%H%m!<%k$G$-$^$9!#(B($B%3%^%s%I(Bmt$B$K$O(B
$B05=L(BON,OFF$B$r%3%s%H%m!<%k$9$k$?$a$N%3!<%I$,:G=i$+$iF~$C$F$$$^$9!#(B)

	mt comp 0 $B$G05=L(BOFF
	mt comp 1 $B$G05=L(BON

($B$N$O$:(B)$B$G$9!#(B

					$B2,B<(B
