pkgsrc/emulators/hercules/patches/patch-ac
agc 206e2832c3 Initial import of hercules, an S/390 emulator, into the packages
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.
2001-02-19 12:35:21 +00:00

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