/** 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