summaryrefslogtreecommitdiff
path: root/emulators/hercules/patches/patch-ac
diff options
context:
space:
mode:
Diffstat (limited to 'emulators/hercules/patches/patch-ac')
-rw-r--r--emulators/hercules/patches/patch-ac63
1 files changed, 63 insertions, 0 deletions
diff --git a/emulators/hercules/patches/patch-ac b/emulators/hercules/patches/patch-ac
new file mode 100644
index 00000000000..ba36a14ef90
--- /dev/null
+++ b/emulators/hercules/patches/patch-ac
@@ -0,0 +1,63 @@
+$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 */
+ /*-------------------------------------------------------------------*/