summaryrefslogblamecommitdiffstats
path: root/private/utils/ntbackup/inc/tpos.h
blob: 67ff3921ac61a01310be69ff98d1a36c1bd1497d (plain) (tree)




























































































































































































                                                                                                                                      
/**
Copyright(c) Maynard Electronics, Inc. 1984-89

$name$
.module information

$paths$
headers\tpos.h
subsystem\TAPE FORMAT\tpos.h
$0$

	Name:		tpos.h

	Date Updated:	$./FDT$ $./FTM$

	Description:	Contains the communication structure between the User
                    interface Tape positioning routine and the the TFL tape
                    positioning unit.     

     Location:      BE_PUBLIC

$Header:   T:/LOGFILES/TPOS.H_V   1.19   30 Nov 1993 19:00:40   GREGG  $

$Log:   T:/LOGFILES/TPOS.H_V  $
 * 
 *    Rev 1.19   30 Nov 1993 19:00:40   GREGG
 * Added new message TF_SQL_TAPE.
 * 
 *    Rev 1.18   13 Jul 1993 19:04:04   GREGG
 * Added new TF messages to report future rev and ECC tapes.
 * 
 *    Rev 1.17   19 May 1993 12:48:14   GREGG
 * Added logic to prevent using tape with same family id to continue a backup.
 * 
 *    Rev 1.16   19 Apr 1993 18:01:54   GREGG
 * Second in a series of incremental changes to bring the translator in line
 * with the MTF spec:
 * 
 *      Changes to write version 2 of OTC, and to read both versions.
 * 
 * Matches: mayn40rd.c 1.55, otc40msc.c 1.19, otc40rd.c 1.23, otc40wt.c 1.23,
 *          makevcb.c 1.15, fsys.h 1.32, fsys_str.h 1.46, tpos.h 1.16,
 *          mayn40.h 1.32, mtf.h 1.3.
 * 
 * NOTE: There are additional changes to the catalogs needed to save the OTC
 *       version and put it in the tpos structure before loading the OTC
 *       File/Directory Detail.  These changes are NOT listed above!
 * 
 *    Rev 1.15   30 Mar 1993 16:19:04   GREGG
 * Handle Unrecognized Media error (unformatted DC2000).
 * 
 *    Rev 1.14   12 Mar 1993 14:07:30   DON
 * Added new tape format message, TF_FAST_SEEK_EOD
 * 
 *    Rev 1.13   26 Jan 1993 18:27:22   GREGG
 * Added Fast Append functionality.
 * 
 *    Rev 1.12   18 Jan 1993 16:18:04   BobR
 * Added ESA structure to TPOS.
 * 
 *    Rev 1.11   09 Nov 1992 10:49:24   GREGG
 * Added location of set catalog to tpos structure and defined new TF_ messages.
 * 
 *    Rev 1.10   04 Aug 1992 17:18:14   GREGG
 * Added define UI_NON_OTC_SCAN.
 * 
 *    Rev 1.9   23 Jul 1992 10:10:00   GREGG
 * Fixed warning.
 * 
 *    Rev 1.8   13 May 1992 12:32:42   TIMN
 * Deleted tapename and backup_set_name for TPOS_STRUCT.  Not used.
 * 
 *    Rev 1.7   05 Apr 1992 17:43:14   GREGG
 * ROLLER BLADES - Initial OTC integration.
 * 
 *    Rev 1.6   17 Sep 1991 14:15:26   GREGG
 * Added TF_MOUNTING message.
 * 
 *    Rev 1.5   24 Jul 1991 11:31:38   DAVIDH
 * Changed TPOS_HANDLER to UNIT16. (Don)
 * 
 *    Rev 1.4   12 Jun 1991 14:38:08   JOHNW
 * Added some TF_ msgs.
 * 
 *    Rev 1.3   06 Jun 1991 17:55:10   JOHNW
 * Moved typedef for TPOS_HANDLER from lis.h to this file.
 * 
 *    Rev 1.2   05 Jun 1991 19:11:40   NED
 * added TF_NEED_REWIND_FIRST
 * 
 *    Rev 1.1   10 May 1991 17:26:20   GREGG
 * Ned's new stuff.

   Rev 1.0   10 May 1991 10:15:50   GREGG
Initial revision.
   
$-4$
**/
#ifndef TPOS_JUNK
#define TPOS_JUNK

#include "tbe_defs.h"              /* The Global Defines */
#include "fsys.h"                  /* File System Stuff */
#include "tloc.h"
#include "esa.h"                  

/* $end$ include list */

struct TPOS_STRUCT ;

typedef UINT16 ( *TPOS_HANDLER )( UINT16 message, struct TPOS_STRUCT * tpos, BOOLEAN curr_valid_vcb, DBLK_PTR cur_vcb, UINT16 mode ) ;

typedef struct TPOS_STRUCT {
     INT32     tape_id ;                /* Tape ID number */
     INT16     tape_seq_num ;           /* Sequeunce number */
     INT16     backup_set_num ;         /* Set Number */
     INT16     set_cat_seq_num ;        /* Seq num where set catalog starts */
     INT32     set_cat_pba ;            /* PBA of start of set catalog */
     UINT8     tape_cat_ver ;           /* Version of OTC */
     TLOC      tape_loc ;               /* Address on Tape */
     INT16     channel ;                /* Channel ID */
     UINT32    reference ;              /* Temp Storage */
     UINT16    format ;                 /* Tape Format Type */
     BOOLEAN   write_protect ;          /* Is the tape write protected */
     BOOLEAN   encryption_supported ;             
     UINT16    (*TF_PassWordMatch)( CHAR_PTR, DBLK_PTR )  ;  /* TFL match the pass word */
     TPOS_HANDLER UI_TapePosRoutine ;             /* The UI entry point */
     ESA       the ;                    /* Extended Status Array */
} TPOS, *TPOS_PTR ;

/* The tape format messages */

#define TF_VCB_BOT                 0x0001    /* at VCB and at BOT */
#define TF_VCB_EOD                 0x0002    /* at EOD and returning last VCB */
#define TF_POSITIONED_AT_A_VCB     0x0003    /* at a VCB but not the requested one */
#define TF_REQUESTED_VCB_FOUND     0x0004    /* found the right VCB */
#define TF_ACCIDENTAL_VCB          0x0005    /* found a VCB but not the right one */
#define TF_NO_MORE_DATA            0x0006    /* at EOD */
#define TF_EMPTY_TAPE              0x0007    /* tape is empty */
#define TF_AT_EOT                  0x0008    /* at EOT */
#define TF_NO_TAPE_PRESENT         0x0009 
#define TF_INVALID_VCB             0x000a
#define TF_POSITIONED_FOR_WRITE    0x000b    /* response to TPOS_OVERWRITE */
#define TF_REWINDING               0x000c    /* busy with rewind */
#define TF_SEARCHING               0x000d    /* busy with spacing */
#define TF_ERASING                 0x000e    /* busy with erasing */
#define TF_RETENSIONING            0x000f    /* busy with retension */
#define TF_IDLE                    0x0010    /* still doing whatever it was */
#define TF_DRIVE_BUSY              0x0011    /* busy with some other operation */
#define TF_NEED_NEW_TAPE           0x0012    /* needs a new tape in current drive */
#define TF_END_CHANNEL             0x0013    /* hit head or tail of drive list */
#define TF_IDLE_NOBREAK            0x0014
#define TF_READ_ERROR              0x0015
#define TF_WRONG_TAPE              0x0016    /* wanted new tape, got wrong one */
#define TF_NEED_REWIND_FIRST       0x0017    /* have to handle this motion forward */
#define TF_TAPE_OUT_OF_ORDER       0x0018    /* tapes cannot be read in this order */
#define TF_SKIPPING_DATA           0x0019    /* busy with skipping data */
#define TF_MOUNTING                0x001a    /* busy mounting the tape */
#define TF_NO_SM_ON_TAPE           0x001b    /* no set map on current tape */
#define TF_NO_SC_FOR_SET           0x001c    /* no set cat for current set */
#define TF_NO_SM_FOR_FAMILY        0x001d    /* no set map for current tape family */
#define TF_NO_MORE_ENTRIES         0x001e    /* end of tape catalog encountered */
#define TF_END_POSITIONING         0x001f    /* stop positioning, but don't abort operation */
#define TF_FAST_SEEK_EOD           0x0020    /* fast seek to EOD because UI_FAST_APPEND */
#define TF_UNRECOGNIZED_MEDIA      0x0021    /* DC2000 tape is unformatted or written in unrecognized format */
#define TF_CONT_TAPE_IN_FAMILY     0x0022    /* Cont backup requested on a tape with the same family id */
#define TF_FUTURE_REV_MTF          0x0023
#define TF_MTF_ECC_TAPE            0x0024
#define TF_SQL_TAPE                0x0025

/* The user interface messages */

#define UI_ACKNOWLEDGED            0x8001    /* acknowledged ACCIDENTAL_VCB */
#define UI_END_POSITIONING         0x8002    /* enough already */
#define UI_OVERWRITE               0x8003    /* overwrite set */
#define UI_BOT                     0x8004    /* rewind to BOT */
#define UI_EOD                     0x8005    /* append at EOD */
#define UI_CONTINUE_POSITIONING    0x8006    /* not at the right one yet */
#define UI_ABORT_POSITIONING       0x8007    /* quit */
#define UI_NEW_TAPE_INSERTED       0x8008    /* we got a new tape */
#define UI_NEW_POSITION_REQUESTED  0x8009    /* destination position has changed */
#define UI_SEARCH_CHANNEL          0x800a
#define UI_NEXT_DRIVE              0x800b
#define UI_PREVIOUS_DRIVE          0x800c
#define UI_HAPPY_ABORT             0x800d
#define UI_BEGINNING_OF_CHANNEL    0x800e
#define UI_FAST_APPEND             0x800f

#endif