/**
Copyright(c) Maynard Electronics, Inc. 1984-89
Name: translat.h
Date Updated: $./FDT$ $./FTM$
7/21/1989 14:4:121
Description: Contains the entry points to Translators.
$Log: T:/LOGFILES/TRANSLAT.H_V $
*
* Rev 1.22 17 Jul 1993 17:56:52 GREGG
* Changed write translator functions to return INT16 TFLE_xxx errors instead
* of BOOLEAN TRUE/FALSE. Files changed:
* MTF10WDB.C 1.23, TRANSLAT.H 1.22, F40PROTO.H 1.30, FMTENG.H 1.23,
* TRANSLAT.C 1.43, TFWRITE.C 1.68, MTF10WT.C 1.18
*
* Rev 1.21 22 Jun 1993 10:53:28 GREGG
* Added API to change the catalog directory path.
*
* Rev 1.20 09 Mar 1993 18:13:58 GREGG
* Initial changes for new stream and EOM processing.
*
* Rev 1.19 26 Jan 1993 01:30:44 GREGG
* Added Fast Append functionality.
*
* Rev 1.18 09 Nov 1992 10:49:02 GREGG
* Added tape catalog entry points.
*
* Rev 1.17 03 Nov 1992 09:26:18 HUNTER
* Added prototype for end data stream.
*
* Rev 1.16 22 Oct 1992 10:54:56 HUNTER
* Changes for new streams
*
* Rev 1.15 22 Sep 1992 09:15:32 GREGG
* Initial changes to handle physical block sizes greater than 1K.
*
* Rev 1.14 17 Aug 1992 09:09:00 GREGG
* Changes to deal with block sizeing scheme.
*
* Rev 1.13 21 May 1992 16:31:14 GREGG
* Changed protos for GetCurrentVCB, RD_TranslateDBLK and DetBlockType. Added proto for StartRead.
*
* Rev 1.12 29 Apr 1992 13:10:48 GREGG
* ROLLER BLADES - Added prototype for DetBlockType.
*
* Rev 1.11 25 Mar 1992 18:29:24 GREGG
* ROLLER BLADES - Added prototype for SizeForTapeEomBlk().
*
* Rev 1.10 11 Feb 1992 17:10:14 NED
* changed types of parameters in buffman interface
*
* Rev 1.9 04 Feb 1992 20:59:00 NED
* Changes to Buffer Management translator hooks.
*
* Rev 1.8 16 Jan 1992 18:37:42 NED
* Skateboard: buffer manager changes
*
* Rev 1.7 02 Jan 1992 15:06:40 NED
* Buffer Manager/UTF translator integration.
*
* Rev 1.6 10 Dec 1991 16:40:10 GREGG
* SKATEBOARD - New Buf. Mgr. - Initial integration.
*
* Rev 1.5 18 Nov 1991 20:03:40 GREGG
* Added BOOLEAN abort parameter to WT_EndSet.
*
* Rev 1.4 09 Nov 1991 10:44:44 HUNTER
* VBLK - Changes for Variable length block.
*
* Rev 1.3 17 Sep 1991 13:55:32 GREGG
* Changed prototype for SetupFormatEnv to return INT16.
*
* Rev 1.2 03 Jun 1991 10:31:22 NED
* Changed declarations of FreeFormatEnv()
*
* Rev 1.1 10 May 1991 17:09:16 GREGG
* Ned's new stuff.
Rev 1.0 10 May 1991 10:13:02 GREGG
Initial revision.
**/
#ifndef _TRANSLATOR_ENT
#define _TRANSLATOR_ENT
#include "buffman.h"
#include "channel.h"
/* routines in translat.c */
UINT16 DetermineFormat( VOID_PTR, UINT32 ) ; /* returns format */
INT16 SetupFormatEnv( CHANNEL_PTR ) ;
VOID FreeFormatEnv( UINT16_PTR, VOID_PTR * ) ;
INT16 MoveToVCB( CHANNEL_PTR, INT16, BOOLEAN_PTR, BOOLEAN ) ;
INT16 SeekEOD( CHANNEL_PTR ) ;
INT16 NewTape( CHANNEL_PTR, BOOLEAN_PTR ) ;
INT16 GetCurrentVCB( CHANNEL_PTR, BUF_PTR ) ;
BOOLEAN VerifyVCB( CHANNEL_PTR, BUF_PTR ) ;
INT16 StartRead( CHANNEL_PTR channel ) ;
BOOLEAN RD_ReTranslateDBLK( CHANNEL_PTR, BUF_PTR ) ;
BOOLEAN RD_ContinuationTape( CHANNEL_PTR, BUF_PTR ) ;
/* buffer manager type stuff */
VOID TF_GetVCBBufferRequirements(
BUF_REQ_PTR reqs, /* O - destination structure */
Q_ELEM_PTR drive_list, /* I - master drive list */
UINT16 suggested_buff_size ) ; /* I - size from config */
VOID TF_GetPreferredBufferSpace(
Q_ELEM_PTR drive_list, /* I - master drive list */
UINT16 suggested_number_of_buffers, /* I -- from config */
UINT32 suggested_buffer_size, /* I -- from config */
UINT32_PTR preferred_memory ) ; /* O - preferred total memory size */
VOID TF_ReadBufferHook( CHANNEL_PTR, BUF_PTR ) ;
/* these return block types */
INT16 RD_TranslateDBLK( CHANNEL_PTR, BUF_PTR, UINT16_PTR ) ;
INT16 DetBlockType( CHANNEL_PTR, BUF_PTR, UINT16_PTR ) ;
INT16 RD_Exception( CHANNEL_PTR, INT16, UINT16_PTR ) ;
INT16 WT_WriteInit( CHANNEL_PTR, UINT16, BUF_PTR ) ;
INT16 WT_TranslateDBLK( CHANNEL_PTR, BUF_PTR, UINT16_PTR ) ;
/* Stream Header processing functions */
#define NEED_NEW_BUFFER 1
INT16 WT_NewDataStream( CHANNEL_PTR, BUF_PTR, STREAM_INFO_PTR ) ;
INT16 WT_EndData( CHANNEL_PTR, BUF_PTR ) ;
INT16 WT_ContVarStream( CHANNEL_PTR, BUF_PTR ) ;
VOID WT_EndVarStream( CHANNEL_PTR, BUF_PTR, UINT16 ) ;
VOID WT_EOSPadBlk( CHANNEL_PTR ) ;
INT16 WT_EndSet( CHANNEL_PTR, BOOLEAN ) ;
INT16 WT_EndTape( CHANNEL_PTR ) ;
INT16 WT_ContinueSet( CHANNEL_PTR ) ;
VOID WT_ParseWrittenBuffer( CHANNEL_PTR, BUF_PTR, UINT16 ) ;
/* these two take the format id as their first argument */
UINT16 SizeofTapeBlock( UINT16, VOID_PTR ) ;
#define MinSizeForTapeBlk( fmt ) lw_fmtdescr[ ( fmt ) ].min_size_for_tblk
#define MinSizeForStream( fmt ) lw_fmtdescr[ ( fmt ) ].min_size_for_stream
/* Tape Based Catalog APIs */
INT LoadSetMap( CHANNEL_PTR channel, BOOLEAN_PTR complete, BOOLEAN get_best ) ;
INT LoadSetCat( CHANNEL_PTR channel ) ;
INT GetNextSMEntry( CHANNEL_PTR channel ) ;
INT GetNextSCEntry( CHANNEL_PTR channel ) ;
VOID CloseTapeCatalogs( INT16 cur_fmt, VOID_PTR env_ptr ) ;
#define UNKNOWN_FORMAT 0xFFFF
#define BT_MDB 256
/* Return Codes for Exception Actions */
#define FMT_EXC_EOS 0x01
#define FMT_EXC_EOM 0x02
#define FMT_EXC_IGNORE 0x03
#define FMT_EXC_HOSED 0xff
#endif