Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 4 Feb 1999 23:32:53 -0800 (PST)
From:      Matt Jacob <mjacob@FreeBSD.ORG>
To:        cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG
Subject:   cvs commit: src/sys/cam/scsi scsi_sa.c
Message-ID:  <199902050732.XAA34522@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
mjacob      1999/02/04 23:32:53 PST

  Modified files:
    sys/cam/scsi         scsi_sa.c 
  Log:
  Extend unit numbers to a full 10 bits (split into sections
  of the minor). Establish and use a control mode open. Control
  mode opens may open the device without locking, but are prohibited
  from all but some ioctls. MTIOCGET always works. MTIOCERRSTAT
  works, but the clearing of latched error status is contingent
  upon whether another application has the device open, in which
  case an interruptible perip acquire is done. MTSETBSIZ, MTSETDNSTY
  and MTCOMP also require a periph aquire.
  
  Relative fileno and blkno are tracked. Note that just about any
  error will make these undefined, and if you space to EOD or use
  hardware block positioning, these are also lost until the next
  UNLOAD or REWIND.
  
  Driver state is also tracked and recorded in the unit softc
  to be passed back in mt_dsreg for a MTIOCGET call.
  Thanks to Dan Strick for suggesting this.
  
  Reintroduce 2 filemarks at EOD for all but QIC devices. I
  really think it's wrong, but there is a lot of 3rd party
  software that depends upon this (not the least of which is
  tcopy). Introduce a SA_QUIRK_1FM to ensure that some devices
  can be marked as only being able to do 1 FM at EOD.
  
  At samount time force a load to BOT if we aren't mounted. If the
  LOAD command fails, use the REWIND command (e.g., for the IBM 3590
  which for some gawdawful reason doesn't support the LOAD (to BOT)
  command).
  
  Also at samount time, if you don't know fixed or variable, try to
  *set* to one of the known fixed (or variable, for special case)
  density codes. We only have to do this once per boot, so it's not
  that painful. This is another way to try and figure out the wierd
  QIC devices without having to quirk everything in the universe.
  
  A substantial amount of cleanup as to what operations can and what
  operations cannot be retried. Don't retry space operations if they
  fail- it'll just lead to lossage.
  
  Not yet done is invalidating mounts correctly after errors. ENOTIME.
  
  Revision  Changes    Path
  1.17      +324 -73   src/sys/cam/scsi/scsi_sa.c

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199902050732.XAA34522>