104 lines
2.8 KiB
C
104 lines
2.8 KiB
C
/* @(#)mtiodefs.h 1.4 02/08/26 Copyright 1995,2000-2002 J. Schilling */
|
|
/*
|
|
* Generic header for users of magnetic tape ioctl interface.
|
|
*
|
|
* If there is no local mtio.h or equivalent, define
|
|
* simplified mtio definitions here in order
|
|
* to be able to do at least remote mtio on systems
|
|
* that have no local mtio
|
|
*
|
|
* Copyright (c) 1995,2000-2002 J. Schilling
|
|
*/
|
|
/*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2, or (at your option)
|
|
* any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; see the file COPYING. If not, write to
|
|
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
*/
|
|
|
|
#ifndef _MTIODEFS_H
|
|
#define _MTIODEFS_H
|
|
|
|
#ifndef _MCONFIG_H
|
|
#include <mconfig.h>
|
|
#endif
|
|
|
|
#ifdef HAVE_SYS_MTIO_H
|
|
|
|
#include <sys/mtio.h>
|
|
|
|
#else /* ! HAVE_SYS_MTIO_H */
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*
|
|
* Definitions for magnetic tape io control commands
|
|
*/
|
|
|
|
/*
|
|
* structure for MTIOCTOP - magnetic tape operation command
|
|
*/
|
|
struct mtop {
|
|
short mt_op; /* op code (see below) */
|
|
daddr_t mt_count; /* repeat count or param */
|
|
};
|
|
|
|
/*
|
|
* op code values for mt_op
|
|
*/
|
|
#define MTWEOF 0 /* write EOF record(s) */
|
|
#define MTFSF 1 /* fwd space over file mark(s) */
|
|
#define MTBSF 2 /* back space over file mark(s) (1/2" only ) */
|
|
#define MTFSR 3 /* fwd space record(s) (to inter-record gap) */
|
|
#define MTBSR 4 /* back space record(s) (to inter-record gap)*/
|
|
#define MTREW 5 /* rewind tape */
|
|
#define MTOFFL 6 /* rewind and put the drive offline */
|
|
#define MTNOP 7 /* no operation (sets status ?) */
|
|
|
|
/*
|
|
* structure for MTIOCGET - magnetic tape get status command
|
|
*/
|
|
struct mtget {
|
|
short mt_type; /* type of magnetic tape device */
|
|
/* the next two regs are device dependent */
|
|
short mt_dsreg; /* drive status 'register' */
|
|
short mt_erreg; /* error 'register' */
|
|
daddr_t mt_resid; /* transfer residual count */
|
|
daddr_t mt_fileno; /* file # for current position */
|
|
daddr_t mt_blkno; /* block # for current position */
|
|
};
|
|
|
|
#define HAVE_MTGET_TYPE
|
|
#define HAVE_MTGET_DSREG
|
|
#define HAVE_MTGET_ERREG
|
|
#define HAVE_MTGET_RESID
|
|
#define HAVE_MTGET_FILENO
|
|
#define HAVE_MTGET_BLKNO
|
|
|
|
/*
|
|
* Define some junk here as software may assume that these two definitions
|
|
* are always present.
|
|
*/
|
|
#define MTIOCGET 0x12340001
|
|
#define MTIOCTOP 0x12340002
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* HAVE_SYS_MTIO_H */
|
|
|
|
#endif /* _MTIODEFS_H */
|