freebsd-skq/sys/i386/isa/ftreg.h
Poul-Henning Kamp 87eafbcacd Moved the ft.c from 1.1.5.1 over. It works on my Conner thingie. Got
rid of a ton of unused vars at the same time.
1994-09-25 06:04:25 +00:00

91 lines
3.5 KiB
C

/*
* Copyright (c) 1993, 1994 Steve Gerakines
*
* This is freely redistributable software. You may do anything you
* wish with it, so long as the above notice stays intact.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* ftreg.h - QIC-40/80 floppy tape driver header
* 06/03/94 v0.9
* Changed seek load point to QC_SEEKLP, added reqseg to SegReq structure.
*
* 10/30/93 v0.3
* More things will end up here. QC_VENDORID and QC_VERSION now used.
*
* 08/07/93 v0.2 release
* Things that should've been here in the first place were moved.
* Tape geometry and segment request types were added.
*
* 06/03/93 v0.1 Alpha release
* Initial revision. Many more things should be moved here.
*/
/* QIC-117 command set. */
#define QC_RESET 1 /* reset */
#define QC_NEXTBIT 2 /* report next bit */
#define QC_PAUSE 3 /* pause */
#define QC_STPAUSE 4 /* step pause */
#define QC_TIMEOUT 5 /* alt timeout */
#define QC_STATUS 6 /* report status */
#define QC_ERRCODE 7 /* report error code */
#define QC_CONFIG 8 /* report config */
#define QC_VERSION 9 /* report version */
#define QC_FORWARD 10 /* logical forward */
#define QC_SEEKSTART 11 /* seek to track start */
#define QC_SEEKEND 12 /* seek to track end */
#define QC_SEEKTRACK 13 /* seek head to track */
#define QC_SEEKLP 14 /* seek load point */
#define QC_FORMAT 15 /* format mode */
#define QC_WRITEREF 16 /* write reference */
#define QC_VERIFY 17 /* verify mode */
#define QC_STOP 18 /* stop tape */
#define QC_STEPUP 21 /* step head up */
#define QC_STEPDOWN 22 /* step head down */
#define QC_SEEKREV 25 /* seek reverse */
#define QC_SEEKFWD 26 /* seek forward */
#define QC_RATE 27 /* select data rate */
#define QC_DIAG1 28 /* diagnostic mode 1 */
#define QC_DIAG2 29 /* diagnostic mode 2 */
#define QC_PRIMARY 30 /* primary mode */
#define QC_VENDORID 32 /* vendor id */
#define QC_TSTATUS 33 /* report tape status */
#define QC_EXTREV 34 /* extended skip reverse */
#define QC_EXTFWD 35 /* extended skip forward */
/* Colorado enable/disable. */
#define QC_COL_ENABLE1 46 /* enable */
#define QC_COL_ENABLE2 2 /* unit+2 */
#define QC_COL_DISABLE 47 /* disable */
/* Mountain enable/disable. */
#define QC_MTN_ENABLE1 23 /* enable 1 */
#define QC_MTN_ENABLE2 20 /* enable 2 */
#define QC_MTN_DISABLE 24 /* disable */
/* Segment I/O request. */
typedef struct segq {
unsigned char buff[QCV_SEGSIZE];/* Segment data; first for alignment */
int reqtype; /* Request type */
long reqcrc; /* CRC Errors found */
long reqbad; /* Bad sector map */
long reqblk; /* Block request starts at */
long reqseg; /* Segment request is at */
int reqcan; /* Cancel read-ahead */
struct segq *next; /* Next request */
} SegReq;
typedef int ftu_t;
typedef int ftsu_t;
typedef struct ft_data *ft_p;