tldm-universe/Ardent/UV/gcidir/include/MTU.h

132 lines
4.2 KiB
C
Raw Permalink Normal View History

2024-09-09 21:51:08 +00:00
#ifndef h_MTU
#define h_MTU
/******************************************************************************
*
* Definition of MAGtape unit block
*
* Module %M% Version %I% Date %H%
*
* (c) Copyright 1998 Ardent Software Inc. - All Rights Reserved
* This is unpublished proprietary source code of Ardent Software Inc.
* The copyright notice above does not evidence any actual or intented
* publication of such source code.
*
*******************************************************************************
*
* Maintenence log - insert most recent change descriptions at top
*
* Date.... GTAR# WHO Description.........................................
* 10/14/98 23801 SAP Change copyrights.
* 06/20/96 18667 JJV Added filemark type to MTfile structure for NT.
* 05/24/96 18456 JJV Added ALIGNNUM macro for MIPS NT tape handling.
* 02/27/96 17917 JJV Added NT account restore event object defines
* 01/29/96 17720 JJV Added NT tape handling support
* 02/22/95 15740 JC Addition of NLS map information to tape structure
* 12/15/88 5549 Fix block size problem on NCR tape drives
* 09/30/88 5343 GPS Default tape functionalities.
* 07/27/88 5190 GPS Floppy implementation on 386 based systems.
* 07/25/88 - - Maintenence log purged at 5.2.1, see release 5.1.10.
*
*****************************************************************************/
#include "MFILE.h"
#include "NLS.h"
#define Mchannels 8
#define FALSE 0
#define TRUE 1
#ifdef MSWIN
/* These are the event objects used on NT for account restore */
#define EVENT_START_RESTORE "startChild"
#define EVENT_DATA_REQUEST "dataRequest"
#define EVENT_KILL_RESTORE "killRestore"
#endif
struct mtblock
{
MFILE *file;
#ifdef MSWIN
HANDLE hDev;
DWORD fmark_type;
#endif
int blksiz;
char tapetyp;
char *rewdev;
/* lblfmt - label format type depending on m/c
lblwritn - set TRUE if label has already been written
lblexpct - set to TRUE if a label is expected to be read
*/
short reelno,lblfmt,lblwritn,lblexpct;
/* Dtapetyp is C or T depending on Cartridge or Magnetic tape; used
only for generalized tape support.
writeat - Drive allows writing at loadpoint(L),after eof(E),or
anywhere (A). Field 13 from &DEVICE& file.
eofagain - After reading eof next read returns an eof(Y),
next read reutrns next record(N).
Field 14 from &DEVICE& file.
closefwd - In read mode when the file is closed file pointer
goes forward to the beginning of next file (Y),
File ptr stays in the same position(N).
Field 15 from &DEVICE& file.
*/
char Dtapetyp,writeat,eofagain,closefwd;
STRING lbheader,lbfname;
STRING mapname; /* to hold the device mapname */
CMAP *ipmap; /* Input map pointer */
CMAP *opmap; /* Output map pointer */
};
EXTERN MTU MTfile[];
#ifdef MSWIN
EXTERN STRING MTread( int, int * );
EXTERN int MTwtlabel( int, STRING, STRING, short);
EXTERN int MTrdlabel( int, STRING *, STRING *, STRING *, int *, int* );
EXTERN int MTmode( int *, int *, int );
EXTERN int MTwrite( int, STRING );
EXTERN int MTfwdfil( int, int );
EXTERN int MTfwdrec( int, int );
EXTERN int MTbckrec( int, int );
EXTERN int MTbckfil( int, int );
EXTERN HANDLE MTopen( MFILE *, char *, int );
EXTERN void MTclose( HANDLE * );
EXTERN int MTsetup(HANDLE, unsigned long, char, BOOL, DWORD *);
EXTERN int MTrewind( int );
EXTERN int MTunload( int );
EXTERN int MTweof( int, int );
EXTERN int MTstatus( int );
#else
EXTERN STRING MTread();
EXTERN int MTwtlabel();
EXTERN int MTrdlabel();
#endif
EXTERN int MTblkctr;
EXTERN int MTfilctr;
EXTERN int MToldblk;
/* MTbufsiz (max buf size),gets set to Tbufsiz or Cbufsiz in assign.c */
/* Tbufsiz for Magnetic tape and Cbufsiz for cartridge tapes are defined
in hardware.h */
EXTERN int MTbufsiz;
#define MTdmpbuf 8192
#define MTbufmin 16
#define MTflhdr 12
#ifdef MSWIN
/* Define buffer re-alignment macro for use by MIPS platforms */
#define ALIGNNUM(num, base, size) ((((num) + size-1) & ~(size-1)) + (base))
#endif
#if MT_sysv == 5 /* Encore */
struct ENC_mt_cntl {
int first_op;
char *orig_file_p;
};
#endif
#endif /* end of MTU.h */