206e2832c3
collection. Hercules is an open source software implementation of the mainframe System/370 and ESA/390 architectures, in addition to the new 64-bit z/Architecure. Hercules runs under Linux, Windows 98, Windows NT, Windows 2000, and NetBSD. Hercules was created by Roger Bowler and is maintained by Jay Maynard. Jan Jaeger designed and implemented many of the advanced features of Hercules, including dynamic reconfiguration, integrated console, interpretive execution, and z/Architecture support.
63 lines
2.2 KiB
Text
63 lines
2.2 KiB
Text
$NetBSD: patch-ac,v 1.1.1.1 2001/02/19 12:35:21 agc Exp $
|
|
|
|
Linux tape handling.
|
|
|
|
--- hercules.h 2001/02/19 11:13:51 1.1
|
|
+++ hercules.h 2001/02/19 11:52:42
|
|
@@ -935,6 +935,56 @@
|
|
#define CCKD_OPEN_RD 2
|
|
#define CCKD_OPEN_RW 3
|
|
|
|
+#if defined(BSD) && BSD >= 199306
|
|
+struct mt_tape_info {
|
|
+ BYTE t_type;
|
|
+ const char *t_name;
|
|
+};
|
|
+
|
|
+#define MT_TAPE_INFO \
|
|
+{ \
|
|
+ {MT_ISUNKNOWN, "Unknown type of tape device"}, \
|
|
+ {MT_ISQIC02, "Generic QIC-02 tape streamer"} \
|
|
+}
|
|
+
|
|
+/* Generic Mag Tape (device independent) status macros for examining
|
|
+ * mt_gstat -- HP-UX compatible.
|
|
+ * There is room for more generic status bits here, but I don't
|
|
+ * know which of them are reserved. At least three or so should
|
|
+ * be added to make this really useful.
|
|
+ */
|
|
+#define GMT_EOF(x) ((x) & 0x80000000)
|
|
+#define GMT_BOT(x) ((x) & 0x40000000)
|
|
+#define GMT_EOT(x) ((x) & 0x20000000)
|
|
+#define GMT_SM(x) ((x) & 0x10000000) /* DDS setmark */
|
|
+#define GMT_EOD(x) ((x) & 0x08000000) /* DDS EOD */
|
|
+#define GMT_WR_PROT(x) ((x) & 0x04000000)
|
|
+/* #define GMT_ ? ((x) & 0x02000000) */
|
|
+#define GMT_ONLINE(x) ((x) & 0x01000000)
|
|
+#define GMT_D_6250(x) ((x) & 0x00800000)
|
|
+#define GMT_D_1600(x) ((x) & 0x00400000)
|
|
+#define GMT_D_800(x) ((x) & 0x00200000)
|
|
+/* #define GMT_ ? ((x) & 0x00100000) */
|
|
+/* #define GMT_ ? ((x) & 0x00080000) */
|
|
+#define GMT_DR_OPEN(x) ((x) & 0x00040000) /* door open (no tape) */
|
|
+/* #define GMT_ ? ((x) & 0x00020000) */
|
|
+#define GMT_IM_REP_EN(x) ((x) & 0x00010000) /* immediate report mode */
|
|
+/* 16 generic status bits unused */
|
|
+/* SCSI-tape specific definitions */
|
|
+
|
|
+/* Bitfield shifts in the status */
|
|
+#define MT_ST_BLKSIZE_SHIFT 0
|
|
+#define MT_ST_BLKSIZE_MASK 0xffffff
|
|
+#define MT_ST_DENSITY_SHIFT 24
|
|
+#define MT_ST_DENSITY_MASK 0xff000000
|
|
+
|
|
+#define MTSETBLK 20 /* set block length (SCSI) */
|
|
+
|
|
+#define MT_ISUNKNOWN 0x01
|
|
+#define MT_ISQIC02 0x02
|
|
+
|
|
+#endif
|
|
+
|
|
/*-------------------------------------------------------------------*/
|
|
/* Global data areas in module config.c */
|
|
/*-------------------------------------------------------------------*/
|