summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <cgf@redhat.com>2004-01-21 19:17:54 +0000
committerChristopher Faylor <cgf@redhat.com>2004-01-21 19:17:54 +0000
commitb252c3ccf9d4828244b24e3cd1faea93b37c8316 (patch)
tree2db55c336e383e2c1abf7bfe9ee2737f44854395
parent9fa9327b8f9df2d37347bfda904d78b7f08adffd (diff)
downloadgdb-b252c3ccf9d4828244b24e3cd1faea93b37c8316.tar.gz
* devices.in: Change raw com device to more correct form.
* fhandler.cc (fhandler_base::open): Use major numbers rather than device numbers to control special behavior for devices which take units. * fhandler_raw.cc (fhandler_dev_raw::writebuf): Ditto. (fhandler_dev_raw::fstat): Ditto. (fhandler_dev_raw::open): Ditto. (fhandler_dev_raw::ioctl): Ditto.
-rw-r--r--winsup/cygwin/ChangeLog14
-rw-r--r--winsup/cygwin/devices.cc14870
-rw-r--r--winsup/cygwin/devices.in132
-rw-r--r--winsup/cygwin/fhandler.cc1316
-rw-r--r--winsup/cygwin/fhandler_raw.cc587
5 files changed, 16919 insertions, 0 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 07458195c62..fec42cf2d7b 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,17 @@
+2004-01-21 Christopher Faylor <cgf@redhat.com>
+
+ * devices.in: Change raw com device to more correct form.
+
+2004-01-21 Christopher Faylor <cgf@redhat.com>
+
+ * fhandler.cc (fhandler_base::open): Use major numbers rather than
+ device numbers to control special behavior for devices which take
+ units.
+ * fhandler_raw.cc (fhandler_dev_raw::writebuf): Ditto.
+ (fhandler_dev_raw::fstat): Ditto.
+ (fhandler_dev_raw::open): Ditto.
+ (fhandler_dev_raw::ioctl): Ditto.
+
2004-01-21 Nicholas Wourms <nwourms@netscape.net>
* signal.cc (sigaction): Fix if-statement typo.
diff --git a/winsup/cygwin/devices.cc b/winsup/cygwin/devices.cc
new file mode 100644
index 00000000000..750334fbbb1
--- /dev/null
+++ b/winsup/cygwin/devices.cc
@@ -0,0 +1,14870 @@
+
+
+#include "winsup.h"
+#include <sys/types.h>
+#include <stdlib.h>
+#include <ctype.h>
+#include <string.h>
+#include "devices.h"
+#include "sys/cygwin.h"
+#include "tty.h"
+#include "pinfo.h"
+typedef const device *KR_device_t;
+
+
+static KR_device_t KR_find_keyword (const char *KR_keyword, int KR_length);
+
+
+
+const device dev_cygdrive_storage =
+ {"/cygdrive", FH_CYGDRIVE, "/cygdrive"};
+
+const device dev_fs_storage =
+ {"", FH_FS, ""};
+
+const device dev_proc_storage =
+ {"", FH_PROC, ""};
+
+const device dev_registry_storage =
+ {"", FH_REGISTRY, ""};
+
+const device dev_piper_storage =
+ {"", FH_PIPER, ""};
+
+const device dev_pipew_storage =
+ {"", FH_PIPEW, ""};
+
+const device dev_tcp_storage =
+ {"", FH_TCP, ""};
+
+const device dev_udp_storage =
+ {"", FH_UDP, ""};
+
+const device dev_stream_storage =
+ {"", FH_STREAM, ""};
+
+const device dev_dgram_storage =
+ {"", FH_DGRAM, ""};
+
+const device dev_bad_storage =
+ {"", FH_BAD, ""};
+
+static const device dev_storage[] =
+{
+ {"/dev/clipboard", FH_CLIPBOARD, "\\dev\\clipboard"},
+ {"/dev/com0", FHDEV(DEV_SERIAL_MAJOR, 0), "\\\\.\\com0"},
+ {"/dev/com1", FHDEV(DEV_SERIAL_MAJOR, 1), "\\\\.\\com1"},
+ {"/dev/com2", FHDEV(DEV_SERIAL_MAJOR, 2), "\\\\.\\com2"},
+ {"/dev/com3", FHDEV(DEV_SERIAL_MAJOR, 3), "\\\\.\\com3"},
+ {"/dev/com4", FHDEV(DEV_SERIAL_MAJOR, 4), "\\\\.\\com4"},
+ {"/dev/com5", FHDEV(DEV_SERIAL_MAJOR, 5), "\\\\.\\com5"},
+ {"/dev/com6", FHDEV(DEV_SERIAL_MAJOR, 6), "\\\\.\\com6"},
+ {"/dev/com7", FHDEV(DEV_SERIAL_MAJOR, 7), "\\\\.\\com7"},
+ {"/dev/com8", FHDEV(DEV_SERIAL_MAJOR, 8), "\\\\.\\com8"},
+ {"/dev/com9", FHDEV(DEV_SERIAL_MAJOR, 9), "\\\\.\\com9"},
+ {"/dev/com10", FHDEV(DEV_SERIAL_MAJOR, 10), "\\\\.\\com10"},
+ {"/dev/com11", FHDEV(DEV_SERIAL_MAJOR, 11), "\\\\.\\com11"},
+ {"/dev/com12", FHDEV(DEV_SERIAL_MAJOR, 12), "\\\\.\\com12"},
+ {"/dev/com13", FHDEV(DEV_SERIAL_MAJOR, 13), "\\\\.\\com13"},
+ {"/dev/com14", FHDEV(DEV_SERIAL_MAJOR, 14), "\\\\.\\com14"},
+ {"/dev/com15", FHDEV(DEV_SERIAL_MAJOR, 15), "\\\\.\\com15"},
+ {"/dev/com16", FHDEV(DEV_SERIAL_MAJOR, 16), "\\\\.\\com16"},
+ {"/dev/conin", FH_CONIN, "conin"},
+ {"/dev/conout", FH_CONOUT, "conout"},
+ {"/dev/console", FH_CONSOLE, "\\dev\\console"},
+ {"/dev/dsp", FH_OSS_DSP, "\\dev\\dsp"},
+ {"/dev/fd0", FHDEV(DEV_FLOPPY_MAJOR, 0), "\\Device\\Floppy0"},
+ {"/dev/fd1", FHDEV(DEV_FLOPPY_MAJOR, 1), "\\Device\\Floppy1"},
+ {"/dev/fd2", FHDEV(DEV_FLOPPY_MAJOR, 2), "\\Device\\Floppy2"},
+ {"/dev/fd3", FHDEV(DEV_FLOPPY_MAJOR, 3), "\\Device\\Floppy3"},
+ {"/dev/fd4", FHDEV(DEV_FLOPPY_MAJOR, 4), "\\Device\\Floppy4"},
+ {"/dev/fd5", FHDEV(DEV_FLOPPY_MAJOR, 5), "\\Device\\Floppy5"},
+ {"/dev/fd6", FHDEV(DEV_FLOPPY_MAJOR, 6), "\\Device\\Floppy6"},
+ {"/dev/fd7", FHDEV(DEV_FLOPPY_MAJOR, 7), "\\Device\\Floppy7"},
+ {"/dev/fd8", FHDEV(DEV_FLOPPY_MAJOR, 8), "\\Device\\Floppy8"},
+ {"/dev/fd9", FHDEV(DEV_FLOPPY_MAJOR, 9), "\\Device\\Floppy9"},
+ {"/dev/fd10", FHDEV(DEV_FLOPPY_MAJOR, 10), "\\Device\\Floppy10"},
+ {"/dev/fd11", FHDEV(DEV_FLOPPY_MAJOR, 11), "\\Device\\Floppy11"},
+ {"/dev/fd12", FHDEV(DEV_FLOPPY_MAJOR, 12), "\\Device\\Floppy12"},
+ {"/dev/fd13", FHDEV(DEV_FLOPPY_MAJOR, 13), "\\Device\\Floppy13"},
+ {"/dev/fd14", FHDEV(DEV_FLOPPY_MAJOR, 14), "\\Device\\Floppy14"},
+ {"/dev/fd15", FHDEV(DEV_FLOPPY_MAJOR, 15), "\\Device\\Floppy15"},
+ {"/dev/fifo", FH_FIFO, "\\dev\\fifo"},
+ {"/dev/kmem", FH_KMEM, "\\dev\\mem"},
+ {"/dev/mem", FH_MEM, "\\dev\\mem"},
+ {"/dev/nst0", FHDEV(DEV_TAPE_MAJOR, 128), "\\Device\\Tape0"},
+ {"/dev/nst1", FHDEV(DEV_TAPE_MAJOR, 129), "\\Device\\Tape1"},
+ {"/dev/nst2", FHDEV(DEV_TAPE_MAJOR, 130), "\\Device\\Tape2"},
+ {"/dev/nst3", FHDEV(DEV_TAPE_MAJOR, 131), "\\Device\\Tape3"},
+ {"/dev/nst4", FHDEV(DEV_TAPE_MAJOR, 132), "\\Device\\Tape4"},
+ {"/dev/nst5", FHDEV(DEV_TAPE_MAJOR, 133), "\\Device\\Tape5"},
+ {"/dev/nst6", FHDEV(DEV_TAPE_MAJOR, 134), "\\Device\\Tape6"},
+ {"/dev/nst7", FHDEV(DEV_TAPE_MAJOR, 135), "\\Device\\Tape7"},
+ {"/dev/nst8", FHDEV(DEV_TAPE_MAJOR, 136), "\\Device\\Tape8"},
+ {"/dev/nst9", FHDEV(DEV_TAPE_MAJOR, 137), "\\Device\\Tape9"},
+ {"/dev/nst10", FHDEV(DEV_TAPE_MAJOR, 138), "\\Device\\Tape10"},
+ {"/dev/nst11", FHDEV(DEV_TAPE_MAJOR, 139), "\\Device\\Tape11"},
+ {"/dev/nst12", FHDEV(DEV_TAPE_MAJOR, 140), "\\Device\\Tape12"},
+ {"/dev/nst13", FHDEV(DEV_TAPE_MAJOR, 141), "\\Device\\Tape13"},
+ {"/dev/nst14", FHDEV(DEV_TAPE_MAJOR, 142), "\\Device\\Tape14"},
+ {"/dev/nst15", FHDEV(DEV_TAPE_MAJOR, 143), "\\Device\\Tape15"},
+ {"/dev/nst16", FHDEV(DEV_TAPE_MAJOR, 144), "\\Device\\Tape16"},
+ {"/dev/nst17", FHDEV(DEV_TAPE_MAJOR, 145), "\\Device\\Tape17"},
+ {"/dev/nst18", FHDEV(DEV_TAPE_MAJOR, 146), "\\Device\\Tape18"},
+ {"/dev/nst19", FHDEV(DEV_TAPE_MAJOR, 147), "\\Device\\Tape19"},
+ {"/dev/nst20", FHDEV(DEV_TAPE_MAJOR, 148), "\\Device\\Tape20"},
+ {"/dev/nst21", FHDEV(DEV_TAPE_MAJOR, 149), "\\Device\\Tape21"},
+ {"/dev/nst22", FHDEV(DEV_TAPE_MAJOR, 150), "\\Device\\Tape22"},
+ {"/dev/nst23", FHDEV(DEV_TAPE_MAJOR, 151), "\\Device\\Tape23"},
+ {"/dev/nst24", FHDEV(DEV_TAPE_MAJOR, 152), "\\Device\\Tape24"},
+ {"/dev/nst25", FHDEV(DEV_TAPE_MAJOR, 153), "\\Device\\Tape25"},
+ {"/dev/nst26", FHDEV(DEV_TAPE_MAJOR, 154), "\\Device\\Tape26"},
+ {"/dev/nst27", FHDEV(DEV_TAPE_MAJOR, 155), "\\Device\\Tape27"},
+ {"/dev/nst28", FHDEV(DEV_TAPE_MAJOR, 156), "\\Device\\Tape28"},
+ {"/dev/nst29", FHDEV(DEV_TAPE_MAJOR, 157), "\\Device\\Tape29"},
+ {"/dev/nst30", FHDEV(DEV_TAPE_MAJOR, 158), "\\Device\\Tape30"},
+ {"/dev/nst31", FHDEV(DEV_TAPE_MAJOR, 159), "\\Device\\Tape31"},
+ {"/dev/nst32", FHDEV(DEV_TAPE_MAJOR, 160), "\\Device\\Tape32"},
+ {"/dev/nst33", FHDEV(DEV_TAPE_MAJOR, 161), "\\Device\\Tape33"},
+ {"/dev/nst34", FHDEV(DEV_TAPE_MAJOR, 162), "\\Device\\Tape34"},
+ {"/dev/nst35", FHDEV(DEV_TAPE_MAJOR, 163), "\\Device\\Tape35"},
+ {"/dev/nst36", FHDEV(DEV_TAPE_MAJOR, 164), "\\Device\\Tape36"},
+ {"/dev/nst37", FHDEV(DEV_TAPE_MAJOR, 165), "\\Device\\Tape37"},
+ {"/dev/nst38", FHDEV(DEV_TAPE_MAJOR, 166), "\\Device\\Tape38"},
+ {"/dev/nst39", FHDEV(DEV_TAPE_MAJOR, 167), "\\Device\\Tape39"},
+ {"/dev/nst40", FHDEV(DEV_TAPE_MAJOR, 168), "\\Device\\Tape40"},
+ {"/dev/nst41", FHDEV(DEV_TAPE_MAJOR, 169), "\\Device\\Tape41"},
+ {"/dev/nst42", FHDEV(DEV_TAPE_MAJOR, 170), "\\Device\\Tape42"},
+ {"/dev/nst43", FHDEV(DEV_TAPE_MAJOR, 171), "\\Device\\Tape43"},
+ {"/dev/nst44", FHDEV(DEV_TAPE_MAJOR, 172), "\\Device\\Tape44"},
+ {"/dev/nst45", FHDEV(DEV_TAPE_MAJOR, 173), "\\Device\\Tape45"},
+ {"/dev/nst46", FHDEV(DEV_TAPE_MAJOR, 174), "\\Device\\Tape46"},
+ {"/dev/nst47", FHDEV(DEV_TAPE_MAJOR, 175), "\\Device\\Tape47"},
+ {"/dev/nst48", FHDEV(DEV_TAPE_MAJOR, 176), "\\Device\\Tape48"},
+ {"/dev/nst49", FHDEV(DEV_TAPE_MAJOR, 177), "\\Device\\Tape49"},
+ {"/dev/nst50", FHDEV(DEV_TAPE_MAJOR, 178), "\\Device\\Tape50"},
+ {"/dev/nst51", FHDEV(DEV_TAPE_MAJOR, 179), "\\Device\\Tape51"},
+ {"/dev/nst52", FHDEV(DEV_TAPE_MAJOR, 180), "\\Device\\Tape52"},
+ {"/dev/nst53", FHDEV(DEV_TAPE_MAJOR, 181), "\\Device\\Tape53"},
+ {"/dev/nst54", FHDEV(DEV_TAPE_MAJOR, 182), "\\Device\\Tape54"},
+ {"/dev/nst55", FHDEV(DEV_TAPE_MAJOR, 183), "\\Device\\Tape55"},
+ {"/dev/nst56", FHDEV(DEV_TAPE_MAJOR, 184), "\\Device\\Tape56"},
+ {"/dev/nst57", FHDEV(DEV_TAPE_MAJOR, 185), "\\Device\\Tape57"},
+ {"/dev/nst58", FHDEV(DEV_TAPE_MAJOR, 186), "\\Device\\Tape58"},
+ {"/dev/nst59", FHDEV(DEV_TAPE_MAJOR, 187), "\\Device\\Tape59"},
+ {"/dev/nst60", FHDEV(DEV_TAPE_MAJOR, 188), "\\Device\\Tape60"},
+ {"/dev/nst61", FHDEV(DEV_TAPE_MAJOR, 189), "\\Device\\Tape61"},
+ {"/dev/nst62", FHDEV(DEV_TAPE_MAJOR, 190), "\\Device\\Tape62"},
+ {"/dev/nst63", FHDEV(DEV_TAPE_MAJOR, 191), "\\Device\\Tape63"},
+ {"/dev/nst64", FHDEV(DEV_TAPE_MAJOR, 192), "\\Device\\Tape64"},
+ {"/dev/nst65", FHDEV(DEV_TAPE_MAJOR, 193), "\\Device\\Tape65"},
+ {"/dev/nst66", FHDEV(DEV_TAPE_MAJOR, 194), "\\Device\\Tape66"},
+ {"/dev/nst67", FHDEV(DEV_TAPE_MAJOR, 195), "\\Device\\Tape67"},
+ {"/dev/nst68", FHDEV(DEV_TAPE_MAJOR, 196), "\\Device\\Tape68"},
+ {"/dev/nst69", FHDEV(DEV_TAPE_MAJOR, 197), "\\Device\\Tape69"},
+ {"/dev/nst70", FHDEV(DEV_TAPE_MAJOR, 198), "\\Device\\Tape70"},
+ {"/dev/nst71", FHDEV(DEV_TAPE_MAJOR, 199), "\\Device\\Tape71"},
+ {"/dev/nst72", FHDEV(DEV_TAPE_MAJOR, 200), "\\Device\\Tape72"},
+ {"/dev/nst73", FHDEV(DEV_TAPE_MAJOR, 201), "\\Device\\Tape73"},
+ {"/dev/nst74", FHDEV(DEV_TAPE_MAJOR, 202), "\\Device\\Tape74"},
+ {"/dev/nst75", FHDEV(DEV_TAPE_MAJOR, 203), "\\Device\\Tape75"},
+ {"/dev/nst76", FHDEV(DEV_TAPE_MAJOR, 204), "\\Device\\Tape76"},
+ {"/dev/nst77", FHDEV(DEV_TAPE_MAJOR, 205), "\\Device\\Tape77"},
+ {"/dev/nst78", FHDEV(DEV_TAPE_MAJOR, 206), "\\Device\\Tape78"},
+ {"/dev/nst79", FHDEV(DEV_TAPE_MAJOR, 207), "\\Device\\Tape79"},
+ {"/dev/nst80", FHDEV(DEV_TAPE_MAJOR, 208), "\\Device\\Tape80"},
+ {"/dev/nst81", FHDEV(DEV_TAPE_MAJOR, 209), "\\Device\\Tape81"},
+ {"/dev/nst82", FHDEV(DEV_TAPE_MAJOR, 210), "\\Device\\Tape82"},
+ {"/dev/nst83", FHDEV(DEV_TAPE_MAJOR, 211), "\\Device\\Tape83"},
+ {"/dev/nst84", FHDEV(DEV_TAPE_MAJOR, 212), "\\Device\\Tape84"},
+ {"/dev/nst85", FHDEV(DEV_TAPE_MAJOR, 213), "\\Device\\Tape85"},
+ {"/dev/nst86", FHDEV(DEV_TAPE_MAJOR, 214), "\\Device\\Tape86"},
+ {"/dev/nst87", FHDEV(DEV_TAPE_MAJOR, 215), "\\Device\\Tape87"},
+ {"/dev/nst88", FHDEV(DEV_TAPE_MAJOR, 216), "\\Device\\Tape88"},
+ {"/dev/nst89", FHDEV(DEV_TAPE_MAJOR, 217), "\\Device\\Tape89"},
+ {"/dev/nst90", FHDEV(DEV_TAPE_MAJOR, 218), "\\Device\\Tape90"},
+ {"/dev/nst91", FHDEV(DEV_TAPE_MAJOR, 219), "\\Device\\Tape91"},
+ {"/dev/nst92", FHDEV(DEV_TAPE_MAJOR, 220), "\\Device\\Tape92"},
+ {"/dev/nst93", FHDEV(DEV_TAPE_MAJOR, 221), "\\Device\\Tape93"},
+ {"/dev/nst94", FHDEV(DEV_TAPE_MAJOR, 222), "\\Device\\Tape94"},
+ {"/dev/nst95", FHDEV(DEV_TAPE_MAJOR, 223), "\\Device\\Tape95"},
+ {"/dev/nst96", FHDEV(DEV_TAPE_MAJOR, 224), "\\Device\\Tape96"},
+ {"/dev/nst97", FHDEV(DEV_TAPE_MAJOR, 225), "\\Device\\Tape97"},
+ {"/dev/nst98", FHDEV(DEV_TAPE_MAJOR, 226), "\\Device\\Tape98"},
+ {"/dev/nst99", FHDEV(DEV_TAPE_MAJOR, 227), "\\Device\\Tape99"},
+ {"/dev/nst100", FHDEV(DEV_TAPE_MAJOR, 228), "\\Device\\Tape100"},
+ {"/dev/nst101", FHDEV(DEV_TAPE_MAJOR, 229), "\\Device\\Tape101"},
+ {"/dev/nst102", FHDEV(DEV_TAPE_MAJOR, 230), "\\Device\\Tape102"},
+ {"/dev/nst103", FHDEV(DEV_TAPE_MAJOR, 231), "\\Device\\Tape103"},
+ {"/dev/nst104", FHDEV(DEV_TAPE_MAJOR, 232), "\\Device\\Tape104"},
+ {"/dev/nst105", FHDEV(DEV_TAPE_MAJOR, 233), "\\Device\\Tape105"},
+ {"/dev/nst106", FHDEV(DEV_TAPE_MAJOR, 234), "\\Device\\Tape106"},
+ {"/dev/nst107", FHDEV(DEV_TAPE_MAJOR, 235), "\\Device\\Tape107"},
+ {"/dev/nst108", FHDEV(DEV_TAPE_MAJOR, 236), "\\Device\\Tape108"},
+ {"/dev/nst109", FHDEV(DEV_TAPE_MAJOR, 237), "\\Device\\Tape109"},
+ {"/dev/nst110", FHDEV(DEV_TAPE_MAJOR, 238), "\\Device\\Tape110"},
+ {"/dev/nst111", FHDEV(DEV_TAPE_MAJOR, 239), "\\Device\\Tape111"},
+ {"/dev/nst112", FHDEV(DEV_TAPE_MAJOR, 240), "\\Device\\Tape112"},
+ {"/dev/nst113", FHDEV(DEV_TAPE_MAJOR, 241), "\\Device\\Tape113"},
+ {"/dev/nst114", FHDEV(DEV_TAPE_MAJOR, 242), "\\Device\\Tape114"},
+ {"/dev/nst115", FHDEV(DEV_TAPE_MAJOR, 243), "\\Device\\Tape115"},
+ {"/dev/nst116", FHDEV(DEV_TAPE_MAJOR, 244), "\\Device\\Tape116"},
+ {"/dev/nst117", FHDEV(DEV_TAPE_MAJOR, 245), "\\Device\\Tape117"},
+ {"/dev/nst118", FHDEV(DEV_TAPE_MAJOR, 246), "\\Device\\Tape118"},
+ {"/dev/nst119", FHDEV(DEV_TAPE_MAJOR, 247), "\\Device\\Tape119"},
+ {"/dev/nst120", FHDEV(DEV_TAPE_MAJOR, 248), "\\Device\\Tape120"},
+ {"/dev/nst121", FHDEV(DEV_TAPE_MAJOR, 249), "\\Device\\Tape121"},
+ {"/dev/nst122", FHDEV(DEV_TAPE_MAJOR, 250), "\\Device\\Tape122"},
+ {"/dev/nst123", FHDEV(DEV_TAPE_MAJOR, 251), "\\Device\\Tape123"},
+ {"/dev/nst124", FHDEV(DEV_TAPE_MAJOR, 252), "\\Device\\Tape124"},
+ {"/dev/nst125", FHDEV(DEV_TAPE_MAJOR, 253), "\\Device\\Tape125"},
+ {"/dev/nst126", FHDEV(DEV_TAPE_MAJOR, 254), "\\Device\\Tape126"},
+ {"/dev/nst127", FHDEV(DEV_TAPE_MAJOR, 255), "\\Device\\Tape127"},
+ {"/dev/null", FH_NULL, "nul"},
+ {"/dev/pipe", FH_PIPE, "\\dev\\pipe"},
+ {"/dev/port", FH_PORT, "\\dev\\port"},
+ {"/dev/ptmx", FH_PTYM, "\\dev\\ptmx"},
+ {"/dev/random", FH_RANDOM, "\\dev\\random"},
+ {"/dev/scd0", FHDEV(DEV_CDROM_MAJOR, 0), "\\Device\\CdRom0"},
+ {"/dev/scd1", FHDEV(DEV_CDROM_MAJOR, 1), "\\Device\\CdRom1"},
+ {"/dev/scd2", FHDEV(DEV_CDROM_MAJOR, 2), "\\Device\\CdRom2"},
+ {"/dev/scd3", FHDEV(DEV_CDROM_MAJOR, 3), "\\Device\\CdRom3"},
+ {"/dev/scd4", FHDEV(DEV_CDROM_MAJOR, 4), "\\Device\\CdRom4"},
+ {"/dev/scd5", FHDEV(DEV_CDROM_MAJOR, 5), "\\Device\\CdRom5"},
+ {"/dev/scd6", FHDEV(DEV_CDROM_MAJOR, 6), "\\Device\\CdRom6"},
+ {"/dev/scd7", FHDEV(DEV_CDROM_MAJOR, 7), "\\Device\\CdRom7"},
+ {"/dev/scd8", FHDEV(DEV_CDROM_MAJOR, 8), "\\Device\\CdRom8"},
+ {"/dev/scd9", FHDEV(DEV_CDROM_MAJOR, 9), "\\Device\\CdRom9"},
+ {"/dev/scd10", FHDEV(DEV_CDROM_MAJOR, 10), "\\Device\\CdRom10"},
+ {"/dev/scd11", FHDEV(DEV_CDROM_MAJOR, 11), "\\Device\\CdRom11"},
+ {"/dev/scd12", FHDEV(DEV_CDROM_MAJOR, 12), "\\Device\\CdRom12"},
+ {"/dev/scd13", FHDEV(DEV_CDROM_MAJOR, 13), "\\Device\\CdRom13"},
+ {"/dev/scd14", FHDEV(DEV_CDROM_MAJOR, 14), "\\Device\\CdRom14"},
+ {"/dev/scd15", FHDEV(DEV_CDROM_MAJOR, 15), "\\Device\\CdRom15"},
+ {"/dev/sda", FH_SDA, "\\Device\\Harddisk0\\Partition0"},
+ {"/dev/sdb", FH_SDB, "\\Device\\Harddisk1\\Partition0"},
+ {"/dev/sdc", FH_SDC, "\\Device\\Harddisk2\\Partition0"},
+ {"/dev/sdd", FH_SDD, "\\Device\\Harddisk3\\Partition0"},
+ {"/dev/sde", FH_SDE, "\\Device\\Harddisk4\\Partition0"},
+ {"/dev/sdf", FH_SDF, "\\Device\\Harddisk5\\Partition0"},
+ {"/dev/sdg", FH_SDG, "\\Device\\Harddisk6\\Partition0"},
+ {"/dev/sdh", FH_SDH, "\\Device\\Harddisk7\\Partition0"},
+ {"/dev/sdi", FH_SDI, "\\Device\\Harddisk8\\Partition0"},
+ {"/dev/sdj", FH_SDJ, "\\Device\\Harddisk9\\Partition0"},
+ {"/dev/sdk", FH_SDK, "\\Device\\Harddisk10\\Partition0"},
+ {"/dev/sdl", FH_SDL, "\\Device\\Harddisk11\\Partition0"},
+ {"/dev/sdm", FH_SDM, "\\Device\\Harddisk12\\Partition0"},
+ {"/dev/sdn", FH_SDN, "\\Device\\Harddisk13\\Partition0"},
+ {"/dev/sdo", FH_SDO, "\\Device\\Harddisk14\\Partition0"},
+ {"/dev/sdp", FH_SDP, "\\Device\\Harddisk15\\Partition0"},
+ {"/dev/sdq", FH_SDQ, "\\Device\\Harddisk16\\Partition0"},
+ {"/dev/sdr", FH_SDR, "\\Device\\Harddisk17\\Partition0"},
+ {"/dev/sds", FH_SDS, "\\Device\\Harddisk18\\Partition0"},
+ {"/dev/sdt", FH_SDT, "\\Device\\Harddisk19\\Partition0"},
+ {"/dev/sdu", FH_SDU, "\\Device\\Harddisk20\\Partition0"},
+ {"/dev/sdv", FH_SDV, "\\Device\\Harddisk21\\Partition0"},
+ {"/dev/sdw", FH_SDW, "\\Device\\Harddisk22\\Partition0"},
+ {"/dev/sdx", FH_SDX, "\\Device\\Harddisk23\\Partition0"},
+ {"/dev/sdy", FH_SDY, "\\Device\\Harddisk24\\Partition0"},
+ {"/dev/sdz", FH_SDZ, "\\Device\\Harddisk25\\Partition0"},
+ {"/dev/sda1", FH_SDA | 1, "\\Device\\Harddisk0\\Partition1"},
+ {"/dev/sda2", FH_SDA | 2, "\\Device\\Harddisk0\\Partition2"},
+ {"/dev/sda3", FH_SDA | 3, "\\Device\\Harddisk0\\Partition3"},
+ {"/dev/sda4", FH_SDA | 4, "\\Device\\Harddisk0\\Partition4"},
+ {"/dev/sda5", FH_SDA | 5, "\\Device\\Harddisk0\\Partition5"},
+ {"/dev/sda6", FH_SDA | 6, "\\Device\\Harddisk0\\Partition6"},
+ {"/dev/sda7", FH_SDA | 7, "\\Device\\Harddisk0\\Partition7"},
+ {"/dev/sda8", FH_SDA | 8, "\\Device\\Harddisk0\\Partition8"},
+ {"/dev/sda9", FH_SDA | 9, "\\Device\\Harddisk0\\Partition9"},
+ {"/dev/sda10", FH_SDA | 10, "\\Device\\Harddisk0\\Partition10"},
+ {"/dev/sda11", FH_SDA | 11, "\\Device\\Harddisk0\\Partition11"},
+ {"/dev/sda12", FH_SDA | 12, "\\Device\\Harddisk0\\Partition12"},
+ {"/dev/sda13", FH_SDA | 13, "\\Device\\Harddisk0\\Partition13"},
+ {"/dev/sda14", FH_SDA | 14, "\\Device\\Harddisk0\\Partition14"},
+ {"/dev/sda15", FH_SDA | 15, "\\Device\\Harddisk0\\Partition15"},
+ {"/dev/sdb1", FH_SDB | 1, "\\Device\\Harddisk1\\Partition1"},
+ {"/dev/sdb2", FH_SDB | 2, "\\Device\\Harddisk1\\Partition2"},
+ {"/dev/sdb3", FH_SDB | 3, "\\Device\\Harddisk1\\Partition3"},
+ {"/dev/sdb4", FH_SDB | 4, "\\Device\\Harddisk1\\Partition4"},
+ {"/dev/sdb5", FH_SDB | 5, "\\Device\\Harddisk1\\Partition5"},
+ {"/dev/sdb6", FH_SDB | 6, "\\Device\\Harddisk1\\Partition6"},
+ {"/dev/sdb7", FH_SDB | 7, "\\Device\\Harddisk1\\Partition7"},
+ {"/dev/sdb8", FH_SDB | 8, "\\Device\\Harddisk1\\Partition8"},
+ {"/dev/sdb9", FH_SDB | 9, "\\Device\\Harddisk1\\Partition9"},
+ {"/dev/sdb10", FH_SDB | 10, "\\Device\\Harddisk1\\Partition10"},
+ {"/dev/sdb11", FH_SDB | 11, "\\Device\\Harddisk1\\Partition11"},
+ {"/dev/sdb12", FH_SDB | 12, "\\Device\\Harddisk1\\Partition12"},
+ {"/dev/sdb13", FH_SDB | 13, "\\Device\\Harddisk1\\Partition13"},
+ {"/dev/sdb14", FH_SDB | 14, "\\Device\\Harddisk1\\Partition14"},
+ {"/dev/sdb15", FH_SDB | 15, "\\Device\\Harddisk1\\Partition15"},
+ {"/dev/sdc1", FH_SDC | 1, "\\Device\\Harddisk2\\Partition1"},
+ {"/dev/sdc2", FH_SDC | 2, "\\Device\\Harddisk2\\Partition2"},
+ {"/dev/sdc3", FH_SDC | 3, "\\Device\\Harddisk2\\Partition3"},
+ {"/dev/sdc4", FH_SDC | 4, "\\Device\\Harddisk2\\Partition4"},
+ {"/dev/sdc5", FH_SDC | 5, "\\Device\\Harddisk2\\Partition5"},
+ {"/dev/sdc6", FH_SDC | 6, "\\Device\\Harddisk2\\Partition6"},
+ {"/dev/sdc7", FH_SDC | 7, "\\Device\\Harddisk2\\Partition7"},
+ {"/dev/sdc8", FH_SDC | 8, "\\Device\\Harddisk2\\Partition8"},
+ {"/dev/sdc9", FH_SDC | 9, "\\Device\\Harddisk2\\Partition9"},
+ {"/dev/sdc10", FH_SDC | 10, "\\Device\\Harddisk2\\Partition10"},
+ {"/dev/sdc11", FH_SDC | 11, "\\Device\\Harddisk2\\Partition11"},
+ {"/dev/sdc12", FH_SDC | 12, "\\Device\\Harddisk2\\Partition12"},
+ {"/dev/sdc13", FH_SDC | 13, "\\Device\\Harddisk2\\Partition13"},
+ {"/dev/sdc14", FH_SDC | 14, "\\Device\\Harddisk2\\Partition14"},
+ {"/dev/sdc15", FH_SDC | 15, "\\Device\\Harddisk2\\Partition15"},
+ {"/dev/sdd1", FH_SDD | 1, "\\Device\\Harddisk3\\Partition1"},
+ {"/dev/sdd2", FH_SDD | 2, "\\Device\\Harddisk3\\Partition2"},
+ {"/dev/sdd3", FH_SDD | 3, "\\Device\\Harddisk3\\Partition3"},
+ {"/dev/sdd4", FH_SDD | 4, "\\Device\\Harddisk3\\Partition4"},
+ {"/dev/sdd5", FH_SDD | 5, "\\Device\\Harddisk3\\Partition5"},
+ {"/dev/sdd6", FH_SDD | 6, "\\Device\\Harddisk3\\Partition6"},
+ {"/dev/sdd7", FH_SDD | 7, "\\Device\\Harddisk3\\Partition7"},
+ {"/dev/sdd8", FH_SDD | 8, "\\Device\\Harddisk3\\Partition8"},
+ {"/dev/sdd9", FH_SDD | 9, "\\Device\\Harddisk3\\Partition9"},
+ {"/dev/sdd10", FH_SDD | 10, "\\Device\\Harddisk3\\Partition10"},
+ {"/dev/sdd11", FH_SDD | 11, "\\Device\\Harddisk3\\Partition11"},
+ {"/dev/sdd12", FH_SDD | 12, "\\Device\\Harddisk3\\Partition12"},
+ {"/dev/sdd13", FH_SDD | 13, "\\Device\\Harddisk3\\Partition13"},
+ {"/dev/sdd14", FH_SDD | 14, "\\Device\\Harddisk3\\Partition14"},
+ {"/dev/sdd15", FH_SDD | 15, "\\Device\\Harddisk3\\Partition15"},
+ {"/dev/sde1", FH_SDE | 1, "\\Device\\Harddisk4\\Partition1"},
+ {"/dev/sde2", FH_SDE | 2, "\\Device\\Harddisk4\\Partition2"},
+ {"/dev/sde3", FH_SDE | 3, "\\Device\\Harddisk4\\Partition3"},
+ {"/dev/sde4", FH_SDE | 4, "\\Device\\Harddisk4\\Partition4"},
+ {"/dev/sde5", FH_SDE | 5, "\\Device\\Harddisk4\\Partition5"},
+ {"/dev/sde6", FH_SDE | 6, "\\Device\\Harddisk4\\Partition6"},
+ {"/dev/sde7", FH_SDE | 7, "\\Device\\Harddisk4\\Partition7"},
+ {"/dev/sde8", FH_SDE | 8, "\\Device\\Harddisk4\\Partition8"},
+ {"/dev/sde9", FH_SDE | 9, "\\Device\\Harddisk4\\Partition9"},
+ {"/dev/sde10", FH_SDE | 10, "\\Device\\Harddisk4\\Partition10"},
+ {"/dev/sde11", FH_SDE | 11, "\\Device\\Harddisk4\\Partition11"},
+ {"/dev/sde12", FH_SDE | 12, "\\Device\\Harddisk4\\Partition12"},
+ {"/dev/sde13", FH_SDE | 13, "\\Device\\Harddisk4\\Partition13"},
+ {"/dev/sde14", FH_SDE | 14, "\\Device\\Harddisk4\\Partition14"},
+ {"/dev/sde15", FH_SDE | 15, "\\Device\\Harddisk4\\Partition15"},
+ {"/dev/sdf1", FH_SDF | 1, "\\Device\\Harddisk5\\Partition1"},
+ {"/dev/sdf2", FH_SDF | 2, "\\Device\\Harddisk5\\Partition2"},
+ {"/dev/sdf3", FH_SDF | 3, "\\Device\\Harddisk5\\Partition3"},
+ {"/dev/sdf4", FH_SDF | 4, "\\Device\\Harddisk5\\Partition4"},
+ {"/dev/sdf5", FH_SDF | 5, "\\Device\\Harddisk5\\Partition5"},
+ {"/dev/sdf6", FH_SDF | 6, "\\Device\\Harddisk5\\Partition6"},
+ {"/dev/sdf7", FH_SDF | 7, "\\Device\\Harddisk5\\Partition7"},
+ {"/dev/sdf8", FH_SDF | 8, "\\Device\\Harddisk5\\Partition8"},
+ {"/dev/sdf9", FH_SDF | 9, "\\Device\\Harddisk5\\Partition9"},
+ {"/dev/sdf10", FH_SDF | 10, "\\Device\\Harddisk5\\Partition10"},
+ {"/dev/sdf11", FH_SDF | 11, "\\Device\\Harddisk5\\Partition11"},
+ {"/dev/sdf12", FH_SDF | 12, "\\Device\\Harddisk5\\Partition12"},
+ {"/dev/sdf13", FH_SDF | 13, "\\Device\\Harddisk5\\Partition13"},
+ {"/dev/sdf14", FH_SDF | 14, "\\Device\\Harddisk5\\Partition14"},
+ {"/dev/sdf15", FH_SDF | 15, "\\Device\\Harddisk5\\Partition15"},
+ {"/dev/sdg1", FH_SDG | 1, "\\Device\\Harddisk6\\Partition1"},
+ {"/dev/sdg2", FH_SDG | 2, "\\Device\\Harddisk6\\Partition2"},
+ {"/dev/sdg3", FH_SDG | 3, "\\Device\\Harddisk6\\Partition3"},
+ {"/dev/sdg4", FH_SDG | 4, "\\Device\\Harddisk6\\Partition4"},
+ {"/dev/sdg5", FH_SDG | 5, "\\Device\\Harddisk6\\Partition5"},
+ {"/dev/sdg6", FH_SDG | 6, "\\Device\\Harddisk6\\Partition6"},
+ {"/dev/sdg7", FH_SDG | 7, "\\Device\\Harddisk6\\Partition7"},
+ {"/dev/sdg8", FH_SDG | 8, "\\Device\\Harddisk6\\Partition8"},
+ {"/dev/sdg9", FH_SDG | 9, "\\Device\\Harddisk6\\Partition9"},
+ {"/dev/sdg10", FH_SDG | 10, "\\Device\\Harddisk6\\Partition10"},
+ {"/dev/sdg11", FH_SDG | 11, "\\Device\\Harddisk6\\Partition11"},
+ {"/dev/sdg12", FH_SDG | 12, "\\Device\\Harddisk6\\Partition12"},
+ {"/dev/sdg13", FH_SDG | 13, "\\Device\\Harddisk6\\Partition13"},
+ {"/dev/sdg14", FH_SDG | 14, "\\Device\\Harddisk6\\Partition14"},
+ {"/dev/sdg15", FH_SDG | 15, "\\Device\\Harddisk6\\Partition15"},
+ {"/dev/sdh1", FH_SDH | 1, "\\Device\\Harddisk7\\Partition1"},
+ {"/dev/sdh2", FH_SDH | 2, "\\Device\\Harddisk7\\Partition2"},
+ {"/dev/sdh3", FH_SDH | 3, "\\Device\\Harddisk7\\Partition3"},
+ {"/dev/sdh4", FH_SDH | 4, "\\Device\\Harddisk7\\Partition4"},
+ {"/dev/sdh5", FH_SDH | 5, "\\Device\\Harddisk7\\Partition5"},
+ {"/dev/sdh6", FH_SDH | 6, "\\Device\\Harddisk7\\Partition6"},
+ {"/dev/sdh7", FH_SDH | 7, "\\Device\\Harddisk7\\Partition7"},
+ {"/dev/sdh8", FH_SDH | 8, "\\Device\\Harddisk7\\Partition8"},
+ {"/dev/sdh9", FH_SDH | 9, "\\Device\\Harddisk7\\Partition9"},
+ {"/dev/sdh10", FH_SDH | 10, "\\Device\\Harddisk7\\Partition10"},
+ {"/dev/sdh11", FH_SDH | 11, "\\Device\\Harddisk7\\Partition11"},
+ {"/dev/sdh12", FH_SDH | 12, "\\Device\\Harddisk7\\Partition12"},
+ {"/dev/sdh13", FH_SDH | 13, "\\Device\\Harddisk7\\Partition13"},
+ {"/dev/sdh14", FH_SDH | 14, "\\Device\\Harddisk7\\Partition14"},
+ {"/dev/sdh15", FH_SDH | 15, "\\Device\\Harddisk7\\Partition15"},
+ {"/dev/sdi1", FH_SDI | 1, "\\Device\\Harddisk8\\Partition1"},
+ {"/dev/sdi2", FH_SDI | 2, "\\Device\\Harddisk8\\Partition2"},
+ {"/dev/sdi3", FH_SDI | 3, "\\Device\\Harddisk8\\Partition3"},
+ {"/dev/sdi4", FH_SDI | 4, "\\Device\\Harddisk8\\Partition4"},
+ {"/dev/sdi5", FH_SDI | 5, "\\Device\\Harddisk8\\Partition5"},
+ {"/dev/sdi6", FH_SDI | 6, "\\Device\\Harddisk8\\Partition6"},
+ {"/dev/sdi7", FH_SDI | 7, "\\Device\\Harddisk8\\Partition7"},
+ {"/dev/sdi8", FH_SDI | 8, "\\Device\\Harddisk8\\Partition8"},
+ {"/dev/sdi9", FH_SDI | 9, "\\Device\\Harddisk8\\Partition9"},
+ {"/dev/sdi10", FH_SDI | 10, "\\Device\\Harddisk8\\Partition10"},
+ {"/dev/sdi11", FH_SDI | 11, "\\Device\\Harddisk8\\Partition11"},
+ {"/dev/sdi12", FH_SDI | 12, "\\Device\\Harddisk8\\Partition12"},
+ {"/dev/sdi13", FH_SDI | 13, "\\Device\\Harddisk8\\Partition13"},
+ {"/dev/sdi14", FH_SDI | 14, "\\Device\\Harddisk8\\Partition14"},
+ {"/dev/sdi15", FH_SDI | 15, "\\Device\\Harddisk8\\Partition15"},
+ {"/dev/sdj1", FH_SDJ | 1, "\\Device\\Harddisk9\\Partition1"},
+ {"/dev/sdj2", FH_SDJ | 2, "\\Device\\Harddisk9\\Partition2"},
+ {"/dev/sdj3", FH_SDJ | 3, "\\Device\\Harddisk9\\Partition3"},
+ {"/dev/sdj4", FH_SDJ | 4, "\\Device\\Harddisk9\\Partition4"},
+ {"/dev/sdj5", FH_SDJ | 5, "\\Device\\Harddisk9\\Partition5"},
+ {"/dev/sdj6", FH_SDJ | 6, "\\Device\\Harddisk9\\Partition6"},
+ {"/dev/sdj7", FH_SDJ | 7, "\\Device\\Harddisk9\\Partition7"},
+ {"/dev/sdj8", FH_SDJ | 8, "\\Device\\Harddisk9\\Partition8"},
+ {"/dev/sdj9", FH_SDJ | 9, "\\Device\\Harddisk9\\Partition9"},
+ {"/dev/sdj10", FH_SDJ | 10, "\\Device\\Harddisk9\\Partition10"},
+ {"/dev/sdj11", FH_SDJ | 11, "\\Device\\Harddisk9\\Partition11"},
+ {"/dev/sdj12", FH_SDJ | 12, "\\Device\\Harddisk9\\Partition12"},
+ {"/dev/sdj13", FH_SDJ | 13, "\\Device\\Harddisk9\\Partition13"},
+ {"/dev/sdj14", FH_SDJ | 14, "\\Device\\Harddisk9\\Partition14"},
+ {"/dev/sdj15", FH_SDJ | 15, "\\Device\\Harddisk9\\Partition15"},
+ {"/dev/sdk1", FH_SDK | 1, "\\Device\\Harddisk10\\Partition1"},
+ {"/dev/sdk2", FH_SDK | 2, "\\Device\\Harddisk10\\Partition2"},
+ {"/dev/sdk3", FH_SDK | 3, "\\Device\\Harddisk10\\Partition3"},
+ {"/dev/sdk4", FH_SDK | 4, "\\Device\\Harddisk10\\Partition4"},
+ {"/dev/sdk5", FH_SDK | 5, "\\Device\\Harddisk10\\Partition5"},
+ {"/dev/sdk6", FH_SDK | 6, "\\Device\\Harddisk10\\Partition6"},
+ {"/dev/sdk7", FH_SDK | 7, "\\Device\\Harddisk10\\Partition7"},
+ {"/dev/sdk8", FH_SDK | 8, "\\Device\\Harddisk10\\Partition8"},
+ {"/dev/sdk9", FH_SDK | 9, "\\Device\\Harddisk10\\Partition9"},
+ {"/dev/sdk10", FH_SDK | 10, "\\Device\\Harddisk10\\Partition10"},
+ {"/dev/sdk11", FH_SDK | 11, "\\Device\\Harddisk10\\Partition11"},
+ {"/dev/sdk12", FH_SDK | 12, "\\Device\\Harddisk10\\Partition12"},
+ {"/dev/sdk13", FH_SDK | 13, "\\Device\\Harddisk10\\Partition13"},
+ {"/dev/sdk14", FH_SDK | 14, "\\Device\\Harddisk10\\Partition14"},
+ {"/dev/sdk15", FH_SDK | 15, "\\Device\\Harddisk10\\Partition15"},
+ {"/dev/sdl1", FH_SDL | 1, "\\Device\\Harddisk11\\Partition1"},
+ {"/dev/sdl2", FH_SDL | 2, "\\Device\\Harddisk11\\Partition2"},
+ {"/dev/sdl3", FH_SDL | 3, "\\Device\\Harddisk11\\Partition3"},
+ {"/dev/sdl4", FH_SDL | 4, "\\Device\\Harddisk11\\Partition4"},
+ {"/dev/sdl5", FH_SDL | 5, "\\Device\\Harddisk11\\Partition5"},
+ {"/dev/sdl6", FH_SDL | 6, "\\Device\\Harddisk11\\Partition6"},
+ {"/dev/sdl7", FH_SDL | 7, "\\Device\\Harddisk11\\Partition7"},
+ {"/dev/sdl8", FH_SDL | 8, "\\Device\\Harddisk11\\Partition8"},
+ {"/dev/sdl9", FH_SDL | 9, "\\Device\\Harddisk11\\Partition9"},
+ {"/dev/sdl10", FH_SDL | 10, "\\Device\\Harddisk11\\Partition10"},
+ {"/dev/sdl11", FH_SDL | 11, "\\Device\\Harddisk11\\Partition11"},
+ {"/dev/sdl12", FH_SDL | 12, "\\Device\\Harddisk11\\Partition12"},
+ {"/dev/sdl13", FH_SDL | 13, "\\Device\\Harddisk11\\Partition13"},
+ {"/dev/sdl14", FH_SDL | 14, "\\Device\\Harddisk11\\Partition14"},
+ {"/dev/sdl15", FH_SDL | 15, "\\Device\\Harddisk11\\Partition15"},
+ {"/dev/sdm1", FH_SDM | 1, "\\Device\\Harddisk12\\Partition1"},
+ {"/dev/sdm2", FH_SDM | 2, "\\Device\\Harddisk12\\Partition2"},
+ {"/dev/sdm3", FH_SDM | 3, "\\Device\\Harddisk12\\Partition3"},
+ {"/dev/sdm4", FH_SDM | 4, "\\Device\\Harddisk12\\Partition4"},
+ {"/dev/sdm5", FH_SDM | 5, "\\Device\\Harddisk12\\Partition5"},
+ {"/dev/sdm6", FH_SDM | 6, "\\Device\\Harddisk12\\Partition6"},
+ {"/dev/sdm7", FH_SDM | 7, "\\Device\\Harddisk12\\Partition7"},
+ {"/dev/sdm8", FH_SDM | 8, "\\Device\\Harddisk12\\Partition8"},
+ {"/dev/sdm9", FH_SDM | 9, "\\Device\\Harddisk12\\Partition9"},
+ {"/dev/sdm10", FH_SDM | 10, "\\Device\\Harddisk12\\Partition10"},
+ {"/dev/sdm11", FH_SDM | 11, "\\Device\\Harddisk12\\Partition11"},
+ {"/dev/sdm12", FH_SDM | 12, "\\Device\\Harddisk12\\Partition12"},
+ {"/dev/sdm13", FH_SDM | 13, "\\Device\\Harddisk12\\Partition13"},
+ {"/dev/sdm14", FH_SDM | 14, "\\Device\\Harddisk12\\Partition14"},
+ {"/dev/sdm15", FH_SDM | 15, "\\Device\\Harddisk12\\Partition15"},
+ {"/dev/sdn1", FH_SDN | 1, "\\Device\\Harddisk13\\Partition1"},
+ {"/dev/sdn2", FH_SDN | 2, "\\Device\\Harddisk13\\Partition2"},
+ {"/dev/sdn3", FH_SDN | 3, "\\Device\\Harddisk13\\Partition3"},
+ {"/dev/sdn4", FH_SDN | 4, "\\Device\\Harddisk13\\Partition4"},
+ {"/dev/sdn5", FH_SDN | 5, "\\Device\\Harddisk13\\Partition5"},
+ {"/dev/sdn6", FH_SDN | 6, "\\Device\\Harddisk13\\Partition6"},
+ {"/dev/sdn7", FH_SDN | 7, "\\Device\\Harddisk13\\Partition7"},
+ {"/dev/sdn8", FH_SDN | 8, "\\Device\\Harddisk13\\Partition8"},
+ {"/dev/sdn9", FH_SDN | 9, "\\Device\\Harddisk13\\Partition9"},
+ {"/dev/sdn10", FH_SDN | 10, "\\Device\\Harddisk13\\Partition10"},
+ {"/dev/sdn11", FH_SDN | 11, "\\Device\\Harddisk13\\Partition11"},
+ {"/dev/sdn12", FH_SDN | 12, "\\Device\\Harddisk13\\Partition12"},
+ {"/dev/sdn13", FH_SDN | 13, "\\Device\\Harddisk13\\Partition13"},
+ {"/dev/sdn14", FH_SDN | 14, "\\Device\\Harddisk13\\Partition14"},
+ {"/dev/sdn15", FH_SDN | 15, "\\Device\\Harddisk13\\Partition15"},
+ {"/dev/sdo1", FH_SDO | 1, "\\Device\\Harddisk14\\Partition1"},
+ {"/dev/sdo2", FH_SDO | 2, "\\Device\\Harddisk14\\Partition2"},
+ {"/dev/sdo3", FH_SDO | 3, "\\Device\\Harddisk14\\Partition3"},
+ {"/dev/sdo4", FH_SDO | 4, "\\Device\\Harddisk14\\Partition4"},
+ {"/dev/sdo5", FH_SDO | 5, "\\Device\\Harddisk14\\Partition5"},
+ {"/dev/sdo6", FH_SDO | 6, "\\Device\\Harddisk14\\Partition6"},
+ {"/dev/sdo7", FH_SDO | 7, "\\Device\\Harddisk14\\Partition7"},
+ {"/dev/sdo8", FH_SDO | 8, "\\Device\\Harddisk14\\Partition8"},
+ {"/dev/sdo9", FH_SDO | 9, "\\Device\\Harddisk14\\Partition9"},
+ {"/dev/sdo10", FH_SDO | 10, "\\Device\\Harddisk14\\Partition10"},
+ {"/dev/sdo11", FH_SDO | 11, "\\Device\\Harddisk14\\Partition11"},
+ {"/dev/sdo12", FH_SDO | 12, "\\Device\\Harddisk14\\Partition12"},
+ {"/dev/sdo13", FH_SDO | 13, "\\Device\\Harddisk14\\Partition13"},
+ {"/dev/sdo14", FH_SDO | 14, "\\Device\\Harddisk14\\Partition14"},
+ {"/dev/sdo15", FH_SDO | 15, "\\Device\\Harddisk14\\Partition15"},
+ {"/dev/sdp1", FH_SDP | 1, "\\Device\\Harddisk15\\Partition1"},
+ {"/dev/sdp2", FH_SDP | 2, "\\Device\\Harddisk15\\Partition2"},
+ {"/dev/sdp3", FH_SDP | 3, "\\Device\\Harddisk15\\Partition3"},
+ {"/dev/sdp4", FH_SDP | 4, "\\Device\\Harddisk15\\Partition4"},
+ {"/dev/sdp5", FH_SDP | 5, "\\Device\\Harddisk15\\Partition5"},
+ {"/dev/sdp6", FH_SDP | 6, "\\Device\\Harddisk15\\Partition6"},
+ {"/dev/sdp7", FH_SDP | 7, "\\Device\\Harddisk15\\Partition7"},
+ {"/dev/sdp8", FH_SDP | 8, "\\Device\\Harddisk15\\Partition8"},
+ {"/dev/sdp9", FH_SDP | 9, "\\Device\\Harddisk15\\Partition9"},
+ {"/dev/sdp10", FH_SDP | 10, "\\Device\\Harddisk15\\Partition10"},
+ {"/dev/sdp11", FH_SDP | 11, "\\Device\\Harddisk15\\Partition11"},
+ {"/dev/sdp12", FH_SDP | 12, "\\Device\\Harddisk15\\Partition12"},
+ {"/dev/sdp13", FH_SDP | 13, "\\Device\\Harddisk15\\Partition13"},
+ {"/dev/sdp14", FH_SDP | 14, "\\Device\\Harddisk15\\Partition14"},
+ {"/dev/sdp15", FH_SDP | 15, "\\Device\\Harddisk15\\Partition15"},
+ {"/dev/sdq1", FH_SDQ | 1, "\\Device\\Harddisk16\\Partition1"},
+ {"/dev/sdq2", FH_SDQ | 2, "\\Device\\Harddisk16\\Partition2"},
+ {"/dev/sdq3", FH_SDQ | 3, "\\Device\\Harddisk16\\Partition3"},
+ {"/dev/sdq4", FH_SDQ | 4, "\\Device\\Harddisk16\\Partition4"},
+ {"/dev/sdq5", FH_SDQ | 5, "\\Device\\Harddisk16\\Partition5"},
+ {"/dev/sdq6", FH_SDQ | 6, "\\Device\\Harddisk16\\Partition6"},
+ {"/dev/sdq7", FH_SDQ | 7, "\\Device\\Harddisk16\\Partition7"},
+ {"/dev/sdq8", FH_SDQ | 8, "\\Device\\Harddisk16\\Partition8"},
+ {"/dev/sdq9", FH_SDQ | 9, "\\Device\\Harddisk16\\Partition9"},
+ {"/dev/sdq10", FH_SDQ | 10, "\\Device\\Harddisk16\\Partition10"},
+ {"/dev/sdq11", FH_SDQ | 11, "\\Device\\Harddisk16\\Partition11"},
+ {"/dev/sdq12", FH_SDQ | 12, "\\Device\\Harddisk16\\Partition12"},
+ {"/dev/sdq13", FH_SDQ | 13, "\\Device\\Harddisk16\\Partition13"},
+ {"/dev/sdq14", FH_SDQ | 14, "\\Device\\Harddisk16\\Partition14"},
+ {"/dev/sdq15", FH_SDQ | 15, "\\Device\\Harddisk16\\Partition15"},
+ {"/dev/sdr1", FH_SDR | 1, "\\Device\\Harddisk17\\Partition1"},
+ {"/dev/sdr2", FH_SDR | 2, "\\Device\\Harddisk17\\Partition2"},
+ {"/dev/sdr3", FH_SDR | 3, "\\Device\\Harddisk17\\Partition3"},
+ {"/dev/sdr4", FH_SDR | 4, "\\Device\\Harddisk17\\Partition4"},
+ {"/dev/sdr5", FH_SDR | 5, "\\Device\\Harddisk17\\Partition5"},
+ {"/dev/sdr6", FH_SDR | 6, "\\Device\\Harddisk17\\Partition6"},
+ {"/dev/sdr7", FH_SDR | 7, "\\Device\\Harddisk17\\Partition7"},
+ {"/dev/sdr8", FH_SDR | 8, "\\Device\\Harddisk17\\Partition8"},
+ {"/dev/sdr9", FH_SDR | 9, "\\Device\\Harddisk17\\Partition9"},
+ {"/dev/sdr10", FH_SDR | 10, "\\Device\\Harddisk17\\Partition10"},
+ {"/dev/sdr11", FH_SDR | 11, "\\Device\\Harddisk17\\Partition11"},
+ {"/dev/sdr12", FH_SDR | 12, "\\Device\\Harddisk17\\Partition12"},
+ {"/dev/sdr13", FH_SDR | 13, "\\Device\\Harddisk17\\Partition13"},
+ {"/dev/sdr14", FH_SDR | 14, "\\Device\\Harddisk17\\Partition14"},
+ {"/dev/sdr15", FH_SDR | 15, "\\Device\\Harddisk17\\Partition15"},
+ {"/dev/sds1", FH_SDS | 1, "\\Device\\Harddisk18\\Partition1"},
+ {"/dev/sds2", FH_SDS | 2, "\\Device\\Harddisk18\\Partition2"},
+ {"/dev/sds3", FH_SDS | 3, "\\Device\\Harddisk18\\Partition3"},
+ {"/dev/sds4", FH_SDS | 4, "\\Device\\Harddisk18\\Partition4"},
+ {"/dev/sds5", FH_SDS | 5, "\\Device\\Harddisk18\\Partition5"},
+ {"/dev/sds6", FH_SDS | 6, "\\Device\\Harddisk18\\Partition6"},
+ {"/dev/sds7", FH_SDS | 7, "\\Device\\Harddisk18\\Partition7"},
+ {"/dev/sds8", FH_SDS | 8, "\\Device\\Harddisk18\\Partition8"},
+ {"/dev/sds9", FH_SDS | 9, "\\Device\\Harddisk18\\Partition9"},
+ {"/dev/sds10", FH_SDS | 10, "\\Device\\Harddisk18\\Partition10"},
+ {"/dev/sds11", FH_SDS | 11, "\\Device\\Harddisk18\\Partition11"},
+ {"/dev/sds12", FH_SDS | 12, "\\Device\\Harddisk18\\Partition12"},
+ {"/dev/sds13", FH_SDS | 13, "\\Device\\Harddisk18\\Partition13"},
+ {"/dev/sds14", FH_SDS | 14, "\\Device\\Harddisk18\\Partition14"},
+ {"/dev/sds15", FH_SDS | 15, "\\Device\\Harddisk18\\Partition15"},
+ {"/dev/sdt1", FH_SDT | 1, "\\Device\\Harddisk19\\Partition1"},
+ {"/dev/sdt2", FH_SDT | 2, "\\Device\\Harddisk19\\Partition2"},
+ {"/dev/sdt3", FH_SDT | 3, "\\Device\\Harddisk19\\Partition3"},
+ {"/dev/sdt4", FH_SDT | 4, "\\Device\\Harddisk19\\Partition4"},
+ {"/dev/sdt5", FH_SDT | 5, "\\Device\\Harddisk19\\Partition5"},
+ {"/dev/sdt6", FH_SDT | 6, "\\Device\\Harddisk19\\Partition6"},
+ {"/dev/sdt7", FH_SDT | 7, "\\Device\\Harddisk19\\Partition7"},
+ {"/dev/sdt8", FH_SDT | 8, "\\Device\\Harddisk19\\Partition8"},
+ {"/dev/sdt9", FH_SDT | 9, "\\Device\\Harddisk19\\Partition9"},
+ {"/dev/sdt10", FH_SDT | 10, "\\Device\\Harddisk19\\Partition10"},
+ {"/dev/sdt11", FH_SDT | 11, "\\Device\\Harddisk19\\Partition11"},
+ {"/dev/sdt12", FH_SDT | 12, "\\Device\\Harddisk19\\Partition12"},
+ {"/dev/sdt13", FH_SDT | 13, "\\Device\\Harddisk19\\Partition13"},
+ {"/dev/sdt14", FH_SDT | 14, "\\Device\\Harddisk19\\Partition14"},
+ {"/dev/sdt15", FH_SDT | 15, "\\Device\\Harddisk19\\Partition15"},
+ {"/dev/sdu1", FH_SDU | 1, "\\Device\\Harddisk20\\Partition1"},
+ {"/dev/sdu2", FH_SDU | 2, "\\Device\\Harddisk20\\Partition2"},
+ {"/dev/sdu3", FH_SDU | 3, "\\Device\\Harddisk20\\Partition3"},
+ {"/dev/sdu4", FH_SDU | 4, "\\Device\\Harddisk20\\Partition4"},
+ {"/dev/sdu5", FH_SDU | 5, "\\Device\\Harddisk20\\Partition5"},
+ {"/dev/sdu6", FH_SDU | 6, "\\Device\\Harddisk20\\Partition6"},
+ {"/dev/sdu7", FH_SDU | 7, "\\Device\\Harddisk20\\Partition7"},
+ {"/dev/sdu8", FH_SDU | 8, "\\Device\\Harddisk20\\Partition8"},
+ {"/dev/sdu9", FH_SDU | 9, "\\Device\\Harddisk20\\Partition9"},
+ {"/dev/sdu10", FH_SDU | 10, "\\Device\\Harddisk20\\Partition10"},
+ {"/dev/sdu11", FH_SDU | 11, "\\Device\\Harddisk20\\Partition11"},
+ {"/dev/sdu12", FH_SDU | 12, "\\Device\\Harddisk20\\Partition12"},
+ {"/dev/sdu13", FH_SDU | 13, "\\Device\\Harddisk20\\Partition13"},
+ {"/dev/sdu14", FH_SDU | 14, "\\Device\\Harddisk20\\Partition14"},
+ {"/dev/sdu15", FH_SDU | 15, "\\Device\\Harddisk20\\Partition15"},
+ {"/dev/sdv1", FH_SDV | 1, "\\Device\\Harddisk21\\Partition1"},
+ {"/dev/sdv2", FH_SDV | 2, "\\Device\\Harddisk21\\Partition2"},
+ {"/dev/sdv3", FH_SDV | 3, "\\Device\\Harddisk21\\Partition3"},
+ {"/dev/sdv4", FH_SDV | 4, "\\Device\\Harddisk21\\Partition4"},
+ {"/dev/sdv5", FH_SDV | 5, "\\Device\\Harddisk21\\Partition5"},
+ {"/dev/sdv6", FH_SDV | 6, "\\Device\\Harddisk21\\Partition6"},
+ {"/dev/sdv7", FH_SDV | 7, "\\Device\\Harddisk21\\Partition7"},
+ {"/dev/sdv8", FH_SDV | 8, "\\Device\\Harddisk21\\Partition8"},
+ {"/dev/sdv9", FH_SDV | 9, "\\Device\\Harddisk21\\Partition9"},
+ {"/dev/sdv10", FH_SDV | 10, "\\Device\\Harddisk21\\Partition10"},
+ {"/dev/sdv11", FH_SDV | 11, "\\Device\\Harddisk21\\Partition11"},
+ {"/dev/sdv12", FH_SDV | 12, "\\Device\\Harddisk21\\Partition12"},
+ {"/dev/sdv13", FH_SDV | 13, "\\Device\\Harddisk21\\Partition13"},
+ {"/dev/sdv14", FH_SDV | 14, "\\Device\\Harddisk21\\Partition14"},
+ {"/dev/sdv15", FH_SDV | 15, "\\Device\\Harddisk21\\Partition15"},
+ {"/dev/sdw1", FH_SDW | 1, "\\Device\\Harddisk22\\Partition1"},
+ {"/dev/sdw2", FH_SDW | 2, "\\Device\\Harddisk22\\Partition2"},
+ {"/dev/sdw3", FH_SDW | 3, "\\Device\\Harddisk22\\Partition3"},
+ {"/dev/sdw4", FH_SDW | 4, "\\Device\\Harddisk22\\Partition4"},
+ {"/dev/sdw5", FH_SDW | 5, "\\Device\\Harddisk22\\Partition5"},
+ {"/dev/sdw6", FH_SDW | 6, "\\Device\\Harddisk22\\Partition6"},
+ {"/dev/sdw7", FH_SDW | 7, "\\Device\\Harddisk22\\Partition7"},
+ {"/dev/sdw8", FH_SDW | 8, "\\Device\\Harddisk22\\Partition8"},
+ {"/dev/sdw9", FH_SDW | 9, "\\Device\\Harddisk22\\Partition9"},
+ {"/dev/sdw10", FH_SDW | 10, "\\Device\\Harddisk22\\Partition10"},
+ {"/dev/sdw11", FH_SDW | 11, "\\Device\\Harddisk22\\Partition11"},
+ {"/dev/sdw12", FH_SDW | 12, "\\Device\\Harddisk22\\Partition12"},
+ {"/dev/sdw13", FH_SDW | 13, "\\Device\\Harddisk22\\Partition13"},
+ {"/dev/sdw14", FH_SDW | 14, "\\Device\\Harddisk22\\Partition14"},
+ {"/dev/sdw15", FH_SDW | 15, "\\Device\\Harddisk22\\Partition15"},
+ {"/dev/sdx1", FH_SDX | 1, "\\Device\\Harddisk23\\Partition1"},
+ {"/dev/sdx2", FH_SDX | 2, "\\Device\\Harddisk23\\Partition2"},
+ {"/dev/sdx3", FH_SDX | 3, "\\Device\\Harddisk23\\Partition3"},
+ {"/dev/sdx4", FH_SDX | 4, "\\Device\\Harddisk23\\Partition4"},
+ {"/dev/sdx5", FH_SDX | 5, "\\Device\\Harddisk23\\Partition5"},
+ {"/dev/sdx6", FH_SDX | 6, "\\Device\\Harddisk23\\Partition6"},
+ {"/dev/sdx7", FH_SDX | 7, "\\Device\\Harddisk23\\Partition7"},
+ {"/dev/sdx8", FH_SDX | 8, "\\Device\\Harddisk23\\Partition8"},
+ {"/dev/sdx9", FH_SDX | 9, "\\Device\\Harddisk23\\Partition9"},
+ {"/dev/sdx10", FH_SDX | 10, "\\Device\\Harddisk23\\Partition10"},
+ {"/dev/sdx11", FH_SDX | 11, "\\Device\\Harddisk23\\Partition11"},
+ {"/dev/sdx12", FH_SDX | 12, "\\Device\\Harddisk23\\Partition12"},
+ {"/dev/sdx13", FH_SDX | 13, "\\Device\\Harddisk23\\Partition13"},
+ {"/dev/sdx14", FH_SDX | 14, "\\Device\\Harddisk23\\Partition14"},
+ {"/dev/sdx15", FH_SDX | 15, "\\Device\\Harddisk23\\Partition15"},
+ {"/dev/sdy1", FH_SDY | 1, "\\Device\\Harddisk24\\Partition1"},
+ {"/dev/sdy2", FH_SDY | 2, "\\Device\\Harddisk24\\Partition2"},
+ {"/dev/sdy3", FH_SDY | 3, "\\Device\\Harddisk24\\Partition3"},
+ {"/dev/sdy4", FH_SDY | 4, "\\Device\\Harddisk24\\Partition4"},
+ {"/dev/sdy5", FH_SDY | 5, "\\Device\\Harddisk24\\Partition5"},
+ {"/dev/sdy6", FH_SDY | 6, "\\Device\\Harddisk24\\Partition6"},
+ {"/dev/sdy7", FH_SDY | 7, "\\Device\\Harddisk24\\Partition7"},
+ {"/dev/sdy8", FH_SDY | 8, "\\Device\\Harddisk24\\Partition8"},
+ {"/dev/sdy9", FH_SDY | 9, "\\Device\\Harddisk24\\Partition9"},
+ {"/dev/sdy10", FH_SDY | 10, "\\Device\\Harddisk24\\Partition10"},
+ {"/dev/sdy11", FH_SDY | 11, "\\Device\\Harddisk24\\Partition11"},
+ {"/dev/sdy12", FH_SDY | 12, "\\Device\\Harddisk24\\Partition12"},
+ {"/dev/sdy13", FH_SDY | 13, "\\Device\\Harddisk24\\Partition13"},
+ {"/dev/sdy14", FH_SDY | 14, "\\Device\\Harddisk24\\Partition14"},
+ {"/dev/sdy15", FH_SDY | 15, "\\Device\\Harddisk24\\Partition15"},
+ {"/dev/sdz1", FH_SDZ | 1, "\\Device\\Harddisk25\\Partition1"},
+ {"/dev/sdz2", FH_SDZ | 2, "\\Device\\Harddisk25\\Partition2"},
+ {"/dev/sdz3", FH_SDZ | 3, "\\Device\\Harddisk25\\Partition3"},
+ {"/dev/sdz4", FH_SDZ | 4, "\\Device\\Harddisk25\\Partition4"},
+ {"/dev/sdz5", FH_SDZ | 5, "\\Device\\Harddisk25\\Partition5"},
+ {"/dev/sdz6", FH_SDZ | 6, "\\Device\\Harddisk25\\Partition6"},
+ {"/dev/sdz7", FH_SDZ | 7, "\\Device\\Harddisk25\\Partition7"},
+ {"/dev/sdz8", FH_SDZ | 8, "\\Device\\Harddisk25\\Partition8"},
+ {"/dev/sdz9", FH_SDZ | 9, "\\Device\\Harddisk25\\Partition9"},
+ {"/dev/sdz10", FH_SDZ | 10, "\\Device\\Harddisk25\\Partition10"},
+ {"/dev/sdz11", FH_SDZ | 11, "\\Device\\Harddisk25\\Partition11"},
+ {"/dev/sdz12", FH_SDZ | 12, "\\Device\\Harddisk25\\Partition12"},
+ {"/dev/sdz13", FH_SDZ | 13, "\\Device\\Harddisk25\\Partition13"},
+ {"/dev/sdz14", FH_SDZ | 14, "\\Device\\Harddisk25\\Partition14"},
+ {"/dev/sdz15", FH_SDZ | 15, "\\Device\\Harddisk25\\Partition15"},
+ {"/dev/sr0", FHDEV(DEV_CDROM_MAJOR, 0), "\\Device\\CdRom0"},
+ {"/dev/sr1", FHDEV(DEV_CDROM_MAJOR, 1), "\\Device\\CdRom1"},
+ {"/dev/sr2", FHDEV(DEV_CDROM_MAJOR, 2), "\\Device\\CdRom2"},
+ {"/dev/sr3", FHDEV(DEV_CDROM_MAJOR, 3), "\\Device\\CdRom3"},
+ {"/dev/sr4", FHDEV(DEV_CDROM_MAJOR, 4), "\\Device\\CdRom4"},
+ {"/dev/sr5", FHDEV(DEV_CDROM_MAJOR, 5), "\\Device\\CdRom5"},
+ {"/dev/sr6", FHDEV(DEV_CDROM_MAJOR, 6), "\\Device\\CdRom6"},
+ {"/dev/sr7", FHDEV(DEV_CDROM_MAJOR, 7), "\\Device\\CdRom7"},
+ {"/dev/sr8", FHDEV(DEV_CDROM_MAJOR, 8), "\\Device\\CdRom8"},
+ {"/dev/sr9", FHDEV(DEV_CDROM_MAJOR, 9), "\\Device\\CdRom9"},
+ {"/dev/sr10", FHDEV(DEV_CDROM_MAJOR, 10), "\\Device\\CdRom10"},
+ {"/dev/sr11", FHDEV(DEV_CDROM_MAJOR, 11), "\\Device\\CdRom11"},
+ {"/dev/sr12", FHDEV(DEV_CDROM_MAJOR, 12), "\\Device\\CdRom12"},
+ {"/dev/sr13", FHDEV(DEV_CDROM_MAJOR, 13), "\\Device\\CdRom13"},
+ {"/dev/sr14", FHDEV(DEV_CDROM_MAJOR, 14), "\\Device\\CdRom14"},
+ {"/dev/sr15", FHDEV(DEV_CDROM_MAJOR, 15), "\\Device\\CdRom15"},
+ {"/dev/st0", FHDEV(DEV_TAPE_MAJOR, 0), "\\Device\\Tape0"},
+ {"/dev/st1", FHDEV(DEV_TAPE_MAJOR, 1), "\\Device\\Tape1"},
+ {"/dev/st2", FHDEV(DEV_TAPE_MAJOR, 2), "\\Device\\Tape2"},
+ {"/dev/st3", FHDEV(DEV_TAPE_MAJOR, 3), "\\Device\\Tape3"},
+ {"/dev/st4", FHDEV(DEV_TAPE_MAJOR, 4), "\\Device\\Tape4"},
+ {"/dev/st5", FHDEV(DEV_TAPE_MAJOR, 5), "\\Device\\Tape5"},
+ {"/dev/st6", FHDEV(DEV_TAPE_MAJOR, 6), "\\Device\\Tape6"},
+ {"/dev/st7", FHDEV(DEV_TAPE_MAJOR, 7), "\\Device\\Tape7"},
+ {"/dev/st8", FHDEV(DEV_TAPE_MAJOR, 8), "\\Device\\Tape8"},
+ {"/dev/st9", FHDEV(DEV_TAPE_MAJOR, 9), "\\Device\\Tape9"},
+ {"/dev/st10", FHDEV(DEV_TAPE_MAJOR, 10), "\\Device\\Tape10"},
+ {"/dev/st11", FHDEV(DEV_TAPE_MAJOR, 11), "\\Device\\Tape11"},
+ {"/dev/st12", FHDEV(DEV_TAPE_MAJOR, 12), "\\Device\\Tape12"},
+ {"/dev/st13", FHDEV(DEV_TAPE_MAJOR, 13), "\\Device\\Tape13"},
+ {"/dev/st14", FHDEV(DEV_TAPE_MAJOR, 14), "\\Device\\Tape14"},
+ {"/dev/st15", FHDEV(DEV_TAPE_MAJOR, 15), "\\Device\\Tape15"},
+ {"/dev/st16", FHDEV(DEV_TAPE_MAJOR, 16), "\\Device\\Tape16"},
+ {"/dev/st17", FHDEV(DEV_TAPE_MAJOR, 17), "\\Device\\Tape17"},
+ {"/dev/st18", FHDEV(DEV_TAPE_MAJOR, 18), "\\Device\\Tape18"},
+ {"/dev/st19", FHDEV(DEV_TAPE_MAJOR, 19), "\\Device\\Tape19"},
+ {"/dev/st20", FHDEV(DEV_TAPE_MAJOR, 20), "\\Device\\Tape20"},
+ {"/dev/st21", FHDEV(DEV_TAPE_MAJOR, 21), "\\Device\\Tape21"},
+ {"/dev/st22", FHDEV(DEV_TAPE_MAJOR, 22), "\\Device\\Tape22"},
+ {"/dev/st23", FHDEV(DEV_TAPE_MAJOR, 23), "\\Device\\Tape23"},
+ {"/dev/st24", FHDEV(DEV_TAPE_MAJOR, 24), "\\Device\\Tape24"},
+ {"/dev/st25", FHDEV(DEV_TAPE_MAJOR, 25), "\\Device\\Tape25"},
+ {"/dev/st26", FHDEV(DEV_TAPE_MAJOR, 26), "\\Device\\Tape26"},
+ {"/dev/st27", FHDEV(DEV_TAPE_MAJOR, 27), "\\Device\\Tape27"},
+ {"/dev/st28", FHDEV(DEV_TAPE_MAJOR, 28), "\\Device\\Tape28"},
+ {"/dev/st29", FHDEV(DEV_TAPE_MAJOR, 29), "\\Device\\Tape29"},
+ {"/dev/st30", FHDEV(DEV_TAPE_MAJOR, 30), "\\Device\\Tape30"},
+ {"/dev/st31", FHDEV(DEV_TAPE_MAJOR, 31), "\\Device\\Tape31"},
+ {"/dev/st32", FHDEV(DEV_TAPE_MAJOR, 32), "\\Device\\Tape32"},
+ {"/dev/st33", FHDEV(DEV_TAPE_MAJOR, 33), "\\Device\\Tape33"},
+ {"/dev/st34", FHDEV(DEV_TAPE_MAJOR, 34), "\\Device\\Tape34"},
+ {"/dev/st35", FHDEV(DEV_TAPE_MAJOR, 35), "\\Device\\Tape35"},
+ {"/dev/st36", FHDEV(DEV_TAPE_MAJOR, 36), "\\Device\\Tape36"},
+ {"/dev/st37", FHDEV(DEV_TAPE_MAJOR, 37), "\\Device\\Tape37"},
+ {"/dev/st38", FHDEV(DEV_TAPE_MAJOR, 38), "\\Device\\Tape38"},
+ {"/dev/st39", FHDEV(DEV_TAPE_MAJOR, 39), "\\Device\\Tape39"},
+ {"/dev/st40", FHDEV(DEV_TAPE_MAJOR, 40), "\\Device\\Tape40"},
+ {"/dev/st41", FHDEV(DEV_TAPE_MAJOR, 41), "\\Device\\Tape41"},
+ {"/dev/st42", FHDEV(DEV_TAPE_MAJOR, 42), "\\Device\\Tape42"},
+ {"/dev/st43", FHDEV(DEV_TAPE_MAJOR, 43), "\\Device\\Tape43"},
+ {"/dev/st44", FHDEV(DEV_TAPE_MAJOR, 44), "\\Device\\Tape44"},
+ {"/dev/st45", FHDEV(DEV_TAPE_MAJOR, 45), "\\Device\\Tape45"},
+ {"/dev/st46", FHDEV(DEV_TAPE_MAJOR, 46), "\\Device\\Tape46"},
+ {"/dev/st47", FHDEV(DEV_TAPE_MAJOR, 47), "\\Device\\Tape47"},
+ {"/dev/st48", FHDEV(DEV_TAPE_MAJOR, 48), "\\Device\\Tape48"},
+ {"/dev/st49", FHDEV(DEV_TAPE_MAJOR, 49), "\\Device\\Tape49"},
+ {"/dev/st50", FHDEV(DEV_TAPE_MAJOR, 50), "\\Device\\Tape50"},
+ {"/dev/st51", FHDEV(DEV_TAPE_MAJOR, 51), "\\Device\\Tape51"},
+ {"/dev/st52", FHDEV(DEV_TAPE_MAJOR, 52), "\\Device\\Tape52"},
+ {"/dev/st53", FHDEV(DEV_TAPE_MAJOR, 53), "\\Device\\Tape53"},
+ {"/dev/st54", FHDEV(DEV_TAPE_MAJOR, 54), "\\Device\\Tape54"},
+ {"/dev/st55", FHDEV(DEV_TAPE_MAJOR, 55), "\\Device\\Tape55"},
+ {"/dev/st56", FHDEV(DEV_TAPE_MAJOR, 56), "\\Device\\Tape56"},
+ {"/dev/st57", FHDEV(DEV_TAPE_MAJOR, 57), "\\Device\\Tape57"},
+ {"/dev/st58", FHDEV(DEV_TAPE_MAJOR, 58), "\\Device\\Tape58"},
+ {"/dev/st59", FHDEV(DEV_TAPE_MAJOR, 59), "\\Device\\Tape59"},
+ {"/dev/st60", FHDEV(DEV_TAPE_MAJOR, 60), "\\Device\\Tape60"},
+ {"/dev/st61", FHDEV(DEV_TAPE_MAJOR, 61), "\\Device\\Tape61"},
+ {"/dev/st62", FHDEV(DEV_TAPE_MAJOR, 62), "\\Device\\Tape62"},
+ {"/dev/st63", FHDEV(DEV_TAPE_MAJOR, 63), "\\Device\\Tape63"},
+ {"/dev/st64", FHDEV(DEV_TAPE_MAJOR, 64), "\\Device\\Tape64"},
+ {"/dev/st65", FHDEV(DEV_TAPE_MAJOR, 65), "\\Device\\Tape65"},
+ {"/dev/st66", FHDEV(DEV_TAPE_MAJOR, 66), "\\Device\\Tape66"},
+ {"/dev/st67", FHDEV(DEV_TAPE_MAJOR, 67), "\\Device\\Tape67"},
+ {"/dev/st68", FHDEV(DEV_TAPE_MAJOR, 68), "\\Device\\Tape68"},
+ {"/dev/st69", FHDEV(DEV_TAPE_MAJOR, 69), "\\Device\\Tape69"},
+ {"/dev/st70", FHDEV(DEV_TAPE_MAJOR, 70), "\\Device\\Tape70"},
+ {"/dev/st71", FHDEV(DEV_TAPE_MAJOR, 71), "\\Device\\Tape71"},
+ {"/dev/st72", FHDEV(DEV_TAPE_MAJOR, 72), "\\Device\\Tape72"},
+ {"/dev/st73", FHDEV(DEV_TAPE_MAJOR, 73), "\\Device\\Tape73"},
+ {"/dev/st74", FHDEV(DEV_TAPE_MAJOR, 74), "\\Device\\Tape74"},
+ {"/dev/st75", FHDEV(DEV_TAPE_MAJOR, 75), "\\Device\\Tape75"},
+ {"/dev/st76", FHDEV(DEV_TAPE_MAJOR, 76), "\\Device\\Tape76"},
+ {"/dev/st77", FHDEV(DEV_TAPE_MAJOR, 77), "\\Device\\Tape77"},
+ {"/dev/st78", FHDEV(DEV_TAPE_MAJOR, 78), "\\Device\\Tape78"},
+ {"/dev/st79", FHDEV(DEV_TAPE_MAJOR, 79), "\\Device\\Tape79"},
+ {"/dev/st80", FHDEV(DEV_TAPE_MAJOR, 80), "\\Device\\Tape80"},
+ {"/dev/st81", FHDEV(DEV_TAPE_MAJOR, 81), "\\Device\\Tape81"},
+ {"/dev/st82", FHDEV(DEV_TAPE_MAJOR, 82), "\\Device\\Tape82"},
+ {"/dev/st83", FHDEV(DEV_TAPE_MAJOR, 83), "\\Device\\Tape83"},
+ {"/dev/st84", FHDEV(DEV_TAPE_MAJOR, 84), "\\Device\\Tape84"},
+ {"/dev/st85", FHDEV(DEV_TAPE_MAJOR, 85), "\\Device\\Tape85"},
+ {"/dev/st86", FHDEV(DEV_TAPE_MAJOR, 86), "\\Device\\Tape86"},
+ {"/dev/st87", FHDEV(DEV_TAPE_MAJOR, 87), "\\Device\\Tape87"},
+ {"/dev/st88", FHDEV(DEV_TAPE_MAJOR, 88), "\\Device\\Tape88"},
+ {"/dev/st89", FHDEV(DEV_TAPE_MAJOR, 89), "\\Device\\Tape89"},
+ {"/dev/st90", FHDEV(DEV_TAPE_MAJOR, 90), "\\Device\\Tape90"},
+ {"/dev/st91", FHDEV(DEV_TAPE_MAJOR, 91), "\\Device\\Tape91"},
+ {"/dev/st92", FHDEV(DEV_TAPE_MAJOR, 92), "\\Device\\Tape92"},
+ {"/dev/st93", FHDEV(DEV_TAPE_MAJOR, 93), "\\Device\\Tape93"},
+ {"/dev/st94", FHDEV(DEV_TAPE_MAJOR, 94), "\\Device\\Tape94"},
+ {"/dev/st95", FHDEV(DEV_TAPE_MAJOR, 95), "\\Device\\Tape95"},
+ {"/dev/st96", FHDEV(DEV_TAPE_MAJOR, 96), "\\Device\\Tape96"},
+ {"/dev/st97", FHDEV(DEV_TAPE_MAJOR, 97), "\\Device\\Tape97"},
+ {"/dev/st98", FHDEV(DEV_TAPE_MAJOR, 98), "\\Device\\Tape98"},
+ {"/dev/st99", FHDEV(DEV_TAPE_MAJOR, 99), "\\Device\\Tape99"},
+ {"/dev/st100", FHDEV(DEV_TAPE_MAJOR, 100), "\\Device\\Tape100"},
+ {"/dev/st101", FHDEV(DEV_TAPE_MAJOR, 101), "\\Device\\Tape101"},
+ {"/dev/st102", FHDEV(DEV_TAPE_MAJOR, 102), "\\Device\\Tape102"},
+ {"/dev/st103", FHDEV(DEV_TAPE_MAJOR, 103), "\\Device\\Tape103"},
+ {"/dev/st104", FHDEV(DEV_TAPE_MAJOR, 104), "\\Device\\Tape104"},
+ {"/dev/st105", FHDEV(DEV_TAPE_MAJOR, 105), "\\Device\\Tape105"},
+ {"/dev/st106", FHDEV(DEV_TAPE_MAJOR, 106), "\\Device\\Tape106"},
+ {"/dev/st107", FHDEV(DEV_TAPE_MAJOR, 107), "\\Device\\Tape107"},
+ {"/dev/st108", FHDEV(DEV_TAPE_MAJOR, 108), "\\Device\\Tape108"},
+ {"/dev/st109", FHDEV(DEV_TAPE_MAJOR, 109), "\\Device\\Tape109"},
+ {"/dev/st110", FHDEV(DEV_TAPE_MAJOR, 110), "\\Device\\Tape110"},
+ {"/dev/st111", FHDEV(DEV_TAPE_MAJOR, 111), "\\Device\\Tape111"},
+ {"/dev/st112", FHDEV(DEV_TAPE_MAJOR, 112), "\\Device\\Tape112"},
+ {"/dev/st113", FHDEV(DEV_TAPE_MAJOR, 113), "\\Device\\Tape113"},
+ {"/dev/st114", FHDEV(DEV_TAPE_MAJOR, 114), "\\Device\\Tape114"},
+ {"/dev/st115", FHDEV(DEV_TAPE_MAJOR, 115), "\\Device\\Tape115"},
+ {"/dev/st116", FHDEV(DEV_TAPE_MAJOR, 116), "\\Device\\Tape116"},
+ {"/dev/st117", FHDEV(DEV_TAPE_MAJOR, 117), "\\Device\\Tape117"},
+ {"/dev/st118", FHDEV(DEV_TAPE_MAJOR, 118), "\\Device\\Tape118"},
+ {"/dev/st119", FHDEV(DEV_TAPE_MAJOR, 119), "\\Device\\Tape119"},
+ {"/dev/st120", FHDEV(DEV_TAPE_MAJOR, 120), "\\Device\\Tape120"},
+ {"/dev/st121", FHDEV(DEV_TAPE_MAJOR, 121), "\\Device\\Tape121"},
+ {"/dev/st122", FHDEV(DEV_TAPE_MAJOR, 122), "\\Device\\Tape122"},
+ {"/dev/st123", FHDEV(DEV_TAPE_MAJOR, 123), "\\Device\\Tape123"},
+ {"/dev/st124", FHDEV(DEV_TAPE_MAJOR, 124), "\\Device\\Tape124"},
+ {"/dev/st125", FHDEV(DEV_TAPE_MAJOR, 125), "\\Device\\Tape125"},
+ {"/dev/st126", FHDEV(DEV_TAPE_MAJOR, 126), "\\Device\\Tape126"},
+ {"/dev/st127", FHDEV(DEV_TAPE_MAJOR, 127), "\\Device\\Tape127"},
+ {"/dev/tty", FH_TTY, "\\dev\\tty"},
+ {"/dev/tty0", FHDEV(DEV_TTYS_MAJOR, 0), "\\dev\\tty0"},
+ {"/dev/tty1", FHDEV(DEV_TTYS_MAJOR, 1), "\\dev\\tty1"},
+ {"/dev/tty2", FHDEV(DEV_TTYS_MAJOR, 2), "\\dev\\tty2"},
+ {"/dev/tty3", FHDEV(DEV_TTYS_MAJOR, 3), "\\dev\\tty3"},
+ {"/dev/tty4", FHDEV(DEV_TTYS_MAJOR, 4), "\\dev\\tty4"},
+ {"/dev/tty5", FHDEV(DEV_TTYS_MAJOR, 5), "\\dev\\tty5"},
+ {"/dev/tty6", FHDEV(DEV_TTYS_MAJOR, 6), "\\dev\\tty6"},
+ {"/dev/tty7", FHDEV(DEV_TTYS_MAJOR, 7), "\\dev\\tty7"},
+ {"/dev/tty8", FHDEV(DEV_TTYS_MAJOR, 8), "\\dev\\tty8"},
+ {"/dev/tty9", FHDEV(DEV_TTYS_MAJOR, 9), "\\dev\\tty9"},
+ {"/dev/tty10", FHDEV(DEV_TTYS_MAJOR, 10), "\\dev\\tty10"},
+ {"/dev/tty11", FHDEV(DEV_TTYS_MAJOR, 11), "\\dev\\tty11"},
+ {"/dev/tty12", FHDEV(DEV_TTYS_MAJOR, 12), "\\dev\\tty12"},
+ {"/dev/tty13", FHDEV(DEV_TTYS_MAJOR, 13), "\\dev\\tty13"},
+ {"/dev/tty14", FHDEV(DEV_TTYS_MAJOR, 14), "\\dev\\tty14"},
+ {"/dev/tty15", FHDEV(DEV_TTYS_MAJOR, 15), "\\dev\\tty15"},
+ {"/dev/tty16", FHDEV(DEV_TTYS_MAJOR, 16), "\\dev\\tty16"},
+ {"/dev/tty17", FHDEV(DEV_TTYS_MAJOR, 17), "\\dev\\tty17"},
+ {"/dev/tty18", FHDEV(DEV_TTYS_MAJOR, 18), "\\dev\\tty18"},
+ {"/dev/tty19", FHDEV(DEV_TTYS_MAJOR, 19), "\\dev\\tty19"},
+ {"/dev/tty20", FHDEV(DEV_TTYS_MAJOR, 20), "\\dev\\tty20"},
+ {"/dev/tty21", FHDEV(DEV_TTYS_MAJOR, 21), "\\dev\\tty21"},
+ {"/dev/tty22", FHDEV(DEV_TTYS_MAJOR, 22), "\\dev\\tty22"},
+ {"/dev/tty23", FHDEV(DEV_TTYS_MAJOR, 23), "\\dev\\tty23"},
+ {"/dev/tty24", FHDEV(DEV_TTYS_MAJOR, 24), "\\dev\\tty24"},
+ {"/dev/tty25", FHDEV(DEV_TTYS_MAJOR, 25), "\\dev\\tty25"},
+ {"/dev/tty26", FHDEV(DEV_TTYS_MAJOR, 26), "\\dev\\tty26"},
+ {"/dev/tty27", FHDEV(DEV_TTYS_MAJOR, 27), "\\dev\\tty27"},
+ {"/dev/tty28", FHDEV(DEV_TTYS_MAJOR, 28), "\\dev\\tty28"},
+ {"/dev/tty29", FHDEV(DEV_TTYS_MAJOR, 29), "\\dev\\tty29"},
+ {"/dev/tty30", FHDEV(DEV_TTYS_MAJOR, 30), "\\dev\\tty30"},
+ {"/dev/tty31", FHDEV(DEV_TTYS_MAJOR, 31), "\\dev\\tty31"},
+ {"/dev/tty32", FHDEV(DEV_TTYS_MAJOR, 32), "\\dev\\tty32"},
+ {"/dev/tty33", FHDEV(DEV_TTYS_MAJOR, 33), "\\dev\\tty33"},
+ {"/dev/tty34", FHDEV(DEV_TTYS_MAJOR, 34), "\\dev\\tty34"},
+ {"/dev/tty35", FHDEV(DEV_TTYS_MAJOR, 35), "\\dev\\tty35"},
+ {"/dev/tty36", FHDEV(DEV_TTYS_MAJOR, 36), "\\dev\\tty36"},
+ {"/dev/tty37", FHDEV(DEV_TTYS_MAJOR, 37), "\\dev\\tty37"},
+ {"/dev/tty38", FHDEV(DEV_TTYS_MAJOR, 38), "\\dev\\tty38"},
+ {"/dev/tty39", FHDEV(DEV_TTYS_MAJOR, 39), "\\dev\\tty39"},
+ {"/dev/tty40", FHDEV(DEV_TTYS_MAJOR, 40), "\\dev\\tty40"},
+ {"/dev/tty41", FHDEV(DEV_TTYS_MAJOR, 41), "\\dev\\tty41"},
+ {"/dev/tty42", FHDEV(DEV_TTYS_MAJOR, 42), "\\dev\\tty42"},
+ {"/dev/tty43", FHDEV(DEV_TTYS_MAJOR, 43), "\\dev\\tty43"},
+ {"/dev/tty44", FHDEV(DEV_TTYS_MAJOR, 44), "\\dev\\tty44"},
+ {"/dev/tty45", FHDEV(DEV_TTYS_MAJOR, 45), "\\dev\\tty45"},
+ {"/dev/tty46", FHDEV(DEV_TTYS_MAJOR, 46), "\\dev\\tty46"},
+ {"/dev/tty47", FHDEV(DEV_TTYS_MAJOR, 47), "\\dev\\tty47"},
+ {"/dev/tty48", FHDEV(DEV_TTYS_MAJOR, 48), "\\dev\\tty48"},
+ {"/dev/tty49", FHDEV(DEV_TTYS_MAJOR, 49), "\\dev\\tty49"},
+ {"/dev/tty50", FHDEV(DEV_TTYS_MAJOR, 50), "\\dev\\tty50"},
+ {"/dev/tty51", FHDEV(DEV_TTYS_MAJOR, 51), "\\dev\\tty51"},
+ {"/dev/tty52", FHDEV(DEV_TTYS_MAJOR, 52), "\\dev\\tty52"},
+ {"/dev/tty53", FHDEV(DEV_TTYS_MAJOR, 53), "\\dev\\tty53"},
+ {"/dev/tty54", FHDEV(DEV_TTYS_MAJOR, 54), "\\dev\\tty54"},
+ {"/dev/tty55", FHDEV(DEV_TTYS_MAJOR, 55), "\\dev\\tty55"},
+ {"/dev/tty56", FHDEV(DEV_TTYS_MAJOR, 56), "\\dev\\tty56"},
+ {"/dev/tty57", FHDEV(DEV_TTYS_MAJOR, 57), "\\dev\\tty57"},
+ {"/dev/tty58", FHDEV(DEV_TTYS_MAJOR, 58), "\\dev\\tty58"},
+ {"/dev/tty59", FHDEV(DEV_TTYS_MAJOR, 59), "\\dev\\tty59"},
+ {"/dev/tty60", FHDEV(DEV_TTYS_MAJOR, 60), "\\dev\\tty60"},
+ {"/dev/tty61", FHDEV(DEV_TTYS_MAJOR, 61), "\\dev\\tty61"},
+ {"/dev/tty62", FHDEV(DEV_TTYS_MAJOR, 62), "\\dev\\tty62"},
+ {"/dev/tty63", FHDEV(DEV_TTYS_MAJOR, 63), "\\dev\\tty63"},
+ {"/dev/ttyS0", FHDEV(DEV_SERIAL_MAJOR, 1), "\\\\.\\com1"},
+ {"/dev/ttyS1", FHDEV(DEV_SERIAL_MAJOR, 2), "\\\\.\\com2"},
+ {"/dev/ttyS2", FHDEV(DEV_SERIAL_MAJOR, 3), "\\\\.\\com3"},
+ {"/dev/ttyS3", FHDEV(DEV_SERIAL_MAJOR, 4), "\\\\.\\com4"},
+ {"/dev/ttyS4", FHDEV(DEV_SERIAL_MAJOR, 5), "\\\\.\\com5"},
+ {"/dev/ttyS5", FHDEV(DEV_SERIAL_MAJOR, 6), "\\\\.\\com6"},
+ {"/dev/ttyS6", FHDEV(DEV_SERIAL_MAJOR, 7), "\\\\.\\com7"},
+ {"/dev/ttyS7", FHDEV(DEV_SERIAL_MAJOR, 8), "\\\\.\\com8"},
+ {"/dev/ttyS8", FHDEV(DEV_SERIAL_MAJOR, 9), "\\\\.\\com9"},
+ {"/dev/ttyS9", FHDEV(DEV_SERIAL_MAJOR, 10), "\\\\.\\com10"},
+ {"/dev/ttyS10", FHDEV(DEV_SERIAL_MAJOR, 11), "\\\\.\\com11"},
+ {"/dev/ttyS11", FHDEV(DEV_SERIAL_MAJOR, 12), "\\\\.\\com12"},
+ {"/dev/ttyS12", FHDEV(DEV_SERIAL_MAJOR, 13), "\\\\.\\com13"},
+ {"/dev/ttyS13", FHDEV(DEV_SERIAL_MAJOR, 14), "\\\\.\\com14"},
+ {"/dev/ttyS14", FHDEV(DEV_SERIAL_MAJOR, 15), "\\\\.\\com15"},
+ {"/dev/ttyS15", FHDEV(DEV_SERIAL_MAJOR, 16), "\\\\.\\com16"},
+ {"/dev/ttym", FH_TTYM, "\\dev\\ttym"},
+ {"/dev/urandom", FH_URANDOM, "\\dev\\urandom"},
+ {"/dev/windows", FH_WINDOWS, "\\dev\\windows"},
+ {"/dev/zero", FH_ZERO, "\\dev\\zero"}
+};
+
+const device *console_dev = dev_storage + 20;
+const device *ttym_dev = dev_storage + 831;
+const device *ttys_dev = dev_storage + 751;
+const device *urandom_dev = dev_storage + 832;
+
+
+static KR_device_t KR_find_keyword (const char *KR_keyword, int KR_length)
+{
+
+ switch (KR_length)
+ {
+ case 8:
+ switch (KR_keyword [7])
+ {
+ case 'z':
+ if (strncmp (KR_keyword, "/dev/sdz", 8) == 0)
+ {
+{
+return dev_storage + 215;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'y':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty", 8) == 0)
+ {
+{
+return dev_storage + 750;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdy", 8) == 0)
+ {
+{
+return dev_storage + 214;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'x':
+ if (strncmp (KR_keyword, "/dev/sdx", 8) == 0)
+ {
+{
+return dev_storage + 213;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'w':
+ if (strncmp (KR_keyword, "/dev/sdw", 8) == 0)
+ {
+{
+return dev_storage + 212;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'v':
+ if (strncmp (KR_keyword, "/dev/sdv", 8) == 0)
+ {
+{
+return dev_storage + 211;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'u':
+ if (strncmp (KR_keyword, "/dev/sdu", 8) == 0)
+ {
+{
+return dev_storage + 210;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 't':
+ if (strncmp (KR_keyword, "/dev/sdt", 8) == 0)
+ {
+{
+return dev_storage + 209;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sds", 8) == 0)
+ {
+{
+return dev_storage + 208;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sdr", 8) == 0)
+ {
+{
+return dev_storage + 207;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'q':
+ if (strncmp (KR_keyword, "/dev/sdq", 8) == 0)
+ {
+{
+return dev_storage + 206;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'p':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdp", 8) == 0)
+ {
+{
+return dev_storage + 205;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/dsp", 8) == 0)
+ {
+{
+return dev_storage + 21;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'o':
+ if (strncmp (KR_keyword, "/dev/sdo", 8) == 0)
+ {
+{
+return dev_storage + 204;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/sdn", 8) == 0)
+ {
+{
+return dev_storage + 203;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'm':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdm", 8) == 0)
+ {
+{
+return dev_storage + 202;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'm':
+ if (strncmp (KR_keyword, "/dev/mem", 8) == 0)
+ {
+{
+return dev_storage + 40;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'l':
+ if (strncmp (KR_keyword, "/dev/sdl", 8) == 0)
+ {
+{
+return dev_storage + 201;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'k':
+ if (strncmp (KR_keyword, "/dev/sdk", 8) == 0)
+ {
+{
+return dev_storage + 200;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'j':
+ if (strncmp (KR_keyword, "/dev/sdj", 8) == 0)
+ {
+{
+return dev_storage + 199;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'i':
+ if (strncmp (KR_keyword, "/dev/sdi", 8) == 0)
+ {
+{
+return dev_storage + 198;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'h':
+ if (strncmp (KR_keyword, "/dev/sdh", 8) == 0)
+ {
+{
+return dev_storage + 197;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'g':
+ if (strncmp (KR_keyword, "/dev/sdg", 8) == 0)
+ {
+{
+return dev_storage + 196;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'f':
+ if (strncmp (KR_keyword, "/dev/sdf", 8) == 0)
+ {
+{
+return dev_storage + 195;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'e':
+ if (strncmp (KR_keyword, "/dev/sde", 8) == 0)
+ {
+{
+return dev_storage + 194;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/sdd", 8) == 0)
+ {
+{
+return dev_storage + 193;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/sdc", 8) == 0)
+ {
+{
+return dev_storage + 192;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'b':
+ if (strncmp (KR_keyword, "/dev/sdb", 8) == 0)
+ {
+{
+return dev_storage + 191;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'a':
+ if (strncmp (KR_keyword, "/dev/sda", 8) == 0)
+ {
+{
+return dev_storage + 190;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '9':
+ switch (KR_keyword [6])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/st9", 8) == 0)
+ {
+{
+return dev_storage + 631;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sr9", 8) == 0)
+ {
+{
+return dev_storage + 615;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/fd9", 8) == 0)
+ {
+{
+return dev_storage + 31;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '8':
+ switch (KR_keyword [6])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/st8", 8) == 0)
+ {
+{
+return dev_storage + 630;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sr8", 8) == 0)
+ {
+{
+return dev_storage + 614;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/fd8", 8) == 0)
+ {
+{
+return dev_storage + 30;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '7':
+ switch (KR_keyword [6])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/st7", 8) == 0)
+ {
+{
+return dev_storage + 629;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sr7", 8) == 0)
+ {
+{
+return dev_storage + 613;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/fd7", 8) == 0)
+ {
+{
+return dev_storage + 29;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '6':
+ switch (KR_keyword [6])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/st6", 8) == 0)
+ {
+{
+return dev_storage + 628;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sr6", 8) == 0)
+ {
+{
+return dev_storage + 612;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/fd6", 8) == 0)
+ {
+{
+return dev_storage + 28;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '5':
+ switch (KR_keyword [6])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/st5", 8) == 0)
+ {
+{
+return dev_storage + 627;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sr5", 8) == 0)
+ {
+{
+return dev_storage + 611;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/fd5", 8) == 0)
+ {
+{
+return dev_storage + 27;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '4':
+ switch (KR_keyword [6])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/st4", 8) == 0)
+ {
+{
+return dev_storage + 626;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sr4", 8) == 0)
+ {
+{
+return dev_storage + 610;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/fd4", 8) == 0)
+ {
+{
+return dev_storage + 26;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '3':
+ switch (KR_keyword [6])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/st3", 8) == 0)
+ {
+{
+return dev_storage + 625;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sr3", 8) == 0)
+ {
+{
+return dev_storage + 609;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/fd3", 8) == 0)
+ {
+{
+return dev_storage + 25;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '2':
+ switch (KR_keyword [6])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/st2", 8) == 0)
+ {
+{
+return dev_storage + 624;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sr2", 8) == 0)
+ {
+{
+return dev_storage + 608;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/fd2", 8) == 0)
+ {
+{
+return dev_storage + 24;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [6])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/st1", 8) == 0)
+ {
+{
+return dev_storage + 623;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sr1", 8) == 0)
+ {
+{
+return dev_storage + 607;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/fd1", 8) == 0)
+ {
+{
+return dev_storage + 23;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '0':
+ switch (KR_keyword [6])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/st0", 8) == 0)
+ {
+{
+return dev_storage + 622;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sr0", 8) == 0)
+ {
+{
+return dev_storage + 606;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/fd0", 8) == 0)
+ {
+{
+return dev_storage + 22;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 9:
+ switch (KR_keyword [8])
+ {
+ case 'x':
+ if (strncmp (KR_keyword, "/dev/ptmx", 9) == 0)
+ {
+{
+return dev_storage + 172;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 't':
+ if (strncmp (KR_keyword, "/dev/port", 9) == 0)
+ {
+{
+return dev_storage + 171;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'o':
+ switch (KR_keyword [5])
+ {
+ case 'z':
+ if (strncmp (KR_keyword, "/dev/zero", 9) == 0)
+ {
+{
+return dev_storage + 834;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'f':
+ if (strncmp (KR_keyword, "/dev/fifo", 9) == 0)
+ {
+{
+return dev_storage + 38;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'm':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/ttym", 9) == 0)
+ {
+{
+return dev_storage + 831;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'k':
+ if (strncmp (KR_keyword, "/dev/kmem", 9) == 0)
+ {
+{
+return dev_storage + 39;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'l':
+ if (strncmp (KR_keyword, "/dev/null", 9) == 0)
+ {
+{
+return dev_storage + 169;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'e':
+ if (strncmp (KR_keyword, "/dev/pipe", 9) == 0)
+ {
+{
+return dev_storage + 170;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '9':
+ switch (KR_keyword [7])
+ {
+ case 'z':
+ if (strncmp (KR_keyword, "/dev/sdz9", 9) == 0)
+ {
+{
+return dev_storage + 599;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'y':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty9", 9) == 0)
+ {
+{
+return dev_storage + 760;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdy9", 9) == 0)
+ {
+{
+return dev_storage + 584;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'x':
+ if (strncmp (KR_keyword, "/dev/sdx9", 9) == 0)
+ {
+{
+return dev_storage + 569;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'w':
+ if (strncmp (KR_keyword, "/dev/sdw9", 9) == 0)
+ {
+{
+return dev_storage + 554;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'v':
+ if (strncmp (KR_keyword, "/dev/sdv9", 9) == 0)
+ {
+{
+return dev_storage + 539;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'u':
+ if (strncmp (KR_keyword, "/dev/sdu9", 9) == 0)
+ {
+{
+return dev_storage + 524;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 't':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdt9", 9) == 0)
+ {
+{
+return dev_storage + 509;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst9", 9) == 0)
+ {
+{
+return dev_storage + 50;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sds9", 9) == 0)
+ {
+{
+return dev_storage + 494;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sdr9", 9) == 0)
+ {
+{
+return dev_storage + 479;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'q':
+ if (strncmp (KR_keyword, "/dev/sdq9", 9) == 0)
+ {
+{
+return dev_storage + 464;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'p':
+ if (strncmp (KR_keyword, "/dev/sdp9", 9) == 0)
+ {
+{
+return dev_storage + 449;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'o':
+ if (strncmp (KR_keyword, "/dev/sdo9", 9) == 0)
+ {
+{
+return dev_storage + 434;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/sdn9", 9) == 0)
+ {
+{
+return dev_storage + 419;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'm':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdm9", 9) == 0)
+ {
+{
+return dev_storage + 404;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/com9", 9) == 0)
+ {
+{
+return dev_storage + 10;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'l':
+ if (strncmp (KR_keyword, "/dev/sdl9", 9) == 0)
+ {
+{
+return dev_storage + 389;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'k':
+ if (strncmp (KR_keyword, "/dev/sdk9", 9) == 0)
+ {
+{
+return dev_storage + 374;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'j':
+ if (strncmp (KR_keyword, "/dev/sdj9", 9) == 0)
+ {
+{
+return dev_storage + 359;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'i':
+ if (strncmp (KR_keyword, "/dev/sdi9", 9) == 0)
+ {
+{
+return dev_storage + 344;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'h':
+ if (strncmp (KR_keyword, "/dev/sdh9", 9) == 0)
+ {
+{
+return dev_storage + 329;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'g':
+ if (strncmp (KR_keyword, "/dev/sdg9", 9) == 0)
+ {
+{
+return dev_storage + 314;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'f':
+ if (strncmp (KR_keyword, "/dev/sdf9", 9) == 0)
+ {
+{
+return dev_storage + 299;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'e':
+ if (strncmp (KR_keyword, "/dev/sde9", 9) == 0)
+ {
+{
+return dev_storage + 284;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ switch (KR_keyword [6])
+ {
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/sdd9", 9) == 0)
+ {
+{
+return dev_storage + 269;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/scd9", 9) == 0)
+ {
+{
+return dev_storage + 183;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/sdc9", 9) == 0)
+ {
+{
+return dev_storage + 254;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'b':
+ if (strncmp (KR_keyword, "/dev/sdb9", 9) == 0)
+ {
+{
+return dev_storage + 239;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'a':
+ if (strncmp (KR_keyword, "/dev/sda9", 9) == 0)
+ {
+{
+return dev_storage + 224;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '9':
+ if (strncmp (KR_keyword, "/dev/st99", 9) == 0)
+ {
+{
+return dev_storage + 721;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '8':
+ if (strncmp (KR_keyword, "/dev/st89", 9) == 0)
+ {
+{
+return dev_storage + 711;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '7':
+ if (strncmp (KR_keyword, "/dev/st79", 9) == 0)
+ {
+{
+return dev_storage + 701;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '6':
+ if (strncmp (KR_keyword, "/dev/st69", 9) == 0)
+ {
+{
+return dev_storage + 691;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '5':
+ if (strncmp (KR_keyword, "/dev/st59", 9) == 0)
+ {
+{
+return dev_storage + 681;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '4':
+ if (strncmp (KR_keyword, "/dev/st49", 9) == 0)
+ {
+{
+return dev_storage + 671;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '3':
+ if (strncmp (KR_keyword, "/dev/st39", 9) == 0)
+ {
+{
+return dev_storage + 661;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '2':
+ if (strncmp (KR_keyword, "/dev/st29", 9) == 0)
+ {
+{
+return dev_storage + 651;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ if (strncmp (KR_keyword, "/dev/st19", 9) == 0)
+ {
+{
+return dev_storage + 641;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '8':
+ switch (KR_keyword [7])
+ {
+ case 'z':
+ if (strncmp (KR_keyword, "/dev/sdz8", 9) == 0)
+ {
+{
+return dev_storage + 598;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'y':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty8", 9) == 0)
+ {
+{
+return dev_storage + 759;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdy8", 9) == 0)
+ {
+{
+return dev_storage + 583;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'x':
+ if (strncmp (KR_keyword, "/dev/sdx8", 9) == 0)
+ {
+{
+return dev_storage + 568;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'w':
+ if (strncmp (KR_keyword, "/dev/sdw8", 9) == 0)
+ {
+{
+return dev_storage + 553;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'v':
+ if (strncmp (KR_keyword, "/dev/sdv8", 9) == 0)
+ {
+{
+return dev_storage + 538;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'u':
+ if (strncmp (KR_keyword, "/dev/sdu8", 9) == 0)
+ {
+{
+return dev_storage + 523;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 't':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdt8", 9) == 0)
+ {
+{
+return dev_storage + 508;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst8", 9) == 0)
+ {
+{
+return dev_storage + 49;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sds8", 9) == 0)
+ {
+{
+return dev_storage + 493;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sdr8", 9) == 0)
+ {
+{
+return dev_storage + 478;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'q':
+ if (strncmp (KR_keyword, "/dev/sdq8", 9) == 0)
+ {
+{
+return dev_storage + 463;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'p':
+ if (strncmp (KR_keyword, "/dev/sdp8", 9) == 0)
+ {
+{
+return dev_storage + 448;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'o':
+ if (strncmp (KR_keyword, "/dev/sdo8", 9) == 0)
+ {
+{
+return dev_storage + 433;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/sdn8", 9) == 0)
+ {
+{
+return dev_storage + 418;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'm':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdm8", 9) == 0)
+ {
+{
+return dev_storage + 403;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/com8", 9) == 0)
+ {
+{
+return dev_storage + 9;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'l':
+ if (strncmp (KR_keyword, "/dev/sdl8", 9) == 0)
+ {
+{
+return dev_storage + 388;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'k':
+ if (strncmp (KR_keyword, "/dev/sdk8", 9) == 0)
+ {
+{
+return dev_storage + 373;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'j':
+ if (strncmp (KR_keyword, "/dev/sdj8", 9) == 0)
+ {
+{
+return dev_storage + 358;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'i':
+ if (strncmp (KR_keyword, "/dev/sdi8", 9) == 0)
+ {
+{
+return dev_storage + 343;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'h':
+ if (strncmp (KR_keyword, "/dev/sdh8", 9) == 0)
+ {
+{
+return dev_storage + 328;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'g':
+ if (strncmp (KR_keyword, "/dev/sdg8", 9) == 0)
+ {
+{
+return dev_storage + 313;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'f':
+ if (strncmp (KR_keyword, "/dev/sdf8", 9) == 0)
+ {
+{
+return dev_storage + 298;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'e':
+ if (strncmp (KR_keyword, "/dev/sde8", 9) == 0)
+ {
+{
+return dev_storage + 283;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ switch (KR_keyword [6])
+ {
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/sdd8", 9) == 0)
+ {
+{
+return dev_storage + 268;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/scd8", 9) == 0)
+ {
+{
+return dev_storage + 182;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/sdc8", 9) == 0)
+ {
+{
+return dev_storage + 253;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'b':
+ if (strncmp (KR_keyword, "/dev/sdb8", 9) == 0)
+ {
+{
+return dev_storage + 238;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'a':
+ if (strncmp (KR_keyword, "/dev/sda8", 9) == 0)
+ {
+{
+return dev_storage + 223;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '9':
+ if (strncmp (KR_keyword, "/dev/st98", 9) == 0)
+ {
+{
+return dev_storage + 720;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '8':
+ if (strncmp (KR_keyword, "/dev/st88", 9) == 0)
+ {
+{
+return dev_storage + 710;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '7':
+ if (strncmp (KR_keyword, "/dev/st78", 9) == 0)
+ {
+{
+return dev_storage + 700;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '6':
+ if (strncmp (KR_keyword, "/dev/st68", 9) == 0)
+ {
+{
+return dev_storage + 690;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '5':
+ if (strncmp (KR_keyword, "/dev/st58", 9) == 0)
+ {
+{
+return dev_storage + 680;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '4':
+ if (strncmp (KR_keyword, "/dev/st48", 9) == 0)
+ {
+{
+return dev_storage + 670;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '3':
+ if (strncmp (KR_keyword, "/dev/st38", 9) == 0)
+ {
+{
+return dev_storage + 660;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '2':
+ if (strncmp (KR_keyword, "/dev/st28", 9) == 0)
+ {
+{
+return dev_storage + 650;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ if (strncmp (KR_keyword, "/dev/st18", 9) == 0)
+ {
+{
+return dev_storage + 640;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '7':
+ switch (KR_keyword [7])
+ {
+ case 'z':
+ if (strncmp (KR_keyword, "/dev/sdz7", 9) == 0)
+ {
+{
+return dev_storage + 597;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'y':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty7", 9) == 0)
+ {
+{
+return dev_storage + 758;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdy7", 9) == 0)
+ {
+{
+return dev_storage + 582;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'x':
+ if (strncmp (KR_keyword, "/dev/sdx7", 9) == 0)
+ {
+{
+return dev_storage + 567;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'w':
+ if (strncmp (KR_keyword, "/dev/sdw7", 9) == 0)
+ {
+{
+return dev_storage + 552;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'v':
+ if (strncmp (KR_keyword, "/dev/sdv7", 9) == 0)
+ {
+{
+return dev_storage + 537;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'u':
+ if (strncmp (KR_keyword, "/dev/sdu7", 9) == 0)
+ {
+{
+return dev_storage + 522;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 't':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdt7", 9) == 0)
+ {
+{
+return dev_storage + 507;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst7", 9) == 0)
+ {
+{
+return dev_storage + 48;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sds7", 9) == 0)
+ {
+{
+return dev_storage + 492;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sdr7", 9) == 0)
+ {
+{
+return dev_storage + 477;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'q':
+ if (strncmp (KR_keyword, "/dev/sdq7", 9) == 0)
+ {
+{
+return dev_storage + 462;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'p':
+ if (strncmp (KR_keyword, "/dev/sdp7", 9) == 0)
+ {
+{
+return dev_storage + 447;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'o':
+ if (strncmp (KR_keyword, "/dev/sdo7", 9) == 0)
+ {
+{
+return dev_storage + 432;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/sdn7", 9) == 0)
+ {
+{
+return dev_storage + 417;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'm':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdm7", 9) == 0)
+ {
+{
+return dev_storage + 402;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/com7", 9) == 0)
+ {
+{
+return dev_storage + 8;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'l':
+ if (strncmp (KR_keyword, "/dev/sdl7", 9) == 0)
+ {
+{
+return dev_storage + 387;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'k':
+ if (strncmp (KR_keyword, "/dev/sdk7", 9) == 0)
+ {
+{
+return dev_storage + 372;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'j':
+ if (strncmp (KR_keyword, "/dev/sdj7", 9) == 0)
+ {
+{
+return dev_storage + 357;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'i':
+ if (strncmp (KR_keyword, "/dev/sdi7", 9) == 0)
+ {
+{
+return dev_storage + 342;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'h':
+ if (strncmp (KR_keyword, "/dev/sdh7", 9) == 0)
+ {
+{
+return dev_storage + 327;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'g':
+ if (strncmp (KR_keyword, "/dev/sdg7", 9) == 0)
+ {
+{
+return dev_storage + 312;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'f':
+ if (strncmp (KR_keyword, "/dev/sdf7", 9) == 0)
+ {
+{
+return dev_storage + 297;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'e':
+ if (strncmp (KR_keyword, "/dev/sde7", 9) == 0)
+ {
+{
+return dev_storage + 282;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ switch (KR_keyword [6])
+ {
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/sdd7", 9) == 0)
+ {
+{
+return dev_storage + 267;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/scd7", 9) == 0)
+ {
+{
+return dev_storage + 181;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/sdc7", 9) == 0)
+ {
+{
+return dev_storage + 252;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'b':
+ if (strncmp (KR_keyword, "/dev/sdb7", 9) == 0)
+ {
+{
+return dev_storage + 237;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'a':
+ if (strncmp (KR_keyword, "/dev/sda7", 9) == 0)
+ {
+{
+return dev_storage + 222;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '9':
+ if (strncmp (KR_keyword, "/dev/st97", 9) == 0)
+ {
+{
+return dev_storage + 719;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '8':
+ if (strncmp (KR_keyword, "/dev/st87", 9) == 0)
+ {
+{
+return dev_storage + 709;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '7':
+ if (strncmp (KR_keyword, "/dev/st77", 9) == 0)
+ {
+{
+return dev_storage + 699;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '6':
+ if (strncmp (KR_keyword, "/dev/st67", 9) == 0)
+ {
+{
+return dev_storage + 689;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '5':
+ if (strncmp (KR_keyword, "/dev/st57", 9) == 0)
+ {
+{
+return dev_storage + 679;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '4':
+ if (strncmp (KR_keyword, "/dev/st47", 9) == 0)
+ {
+{
+return dev_storage + 669;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '3':
+ if (strncmp (KR_keyword, "/dev/st37", 9) == 0)
+ {
+{
+return dev_storage + 659;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '2':
+ if (strncmp (KR_keyword, "/dev/st27", 9) == 0)
+ {
+{
+return dev_storage + 649;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ if (strncmp (KR_keyword, "/dev/st17", 9) == 0)
+ {
+{
+return dev_storage + 639;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '6':
+ switch (KR_keyword [7])
+ {
+ case 'z':
+ if (strncmp (KR_keyword, "/dev/sdz6", 9) == 0)
+ {
+{
+return dev_storage + 596;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'y':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty6", 9) == 0)
+ {
+{
+return dev_storage + 757;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdy6", 9) == 0)
+ {
+{
+return dev_storage + 581;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'x':
+ if (strncmp (KR_keyword, "/dev/sdx6", 9) == 0)
+ {
+{
+return dev_storage + 566;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'w':
+ if (strncmp (KR_keyword, "/dev/sdw6", 9) == 0)
+ {
+{
+return dev_storage + 551;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'v':
+ if (strncmp (KR_keyword, "/dev/sdv6", 9) == 0)
+ {
+{
+return dev_storage + 536;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'u':
+ if (strncmp (KR_keyword, "/dev/sdu6", 9) == 0)
+ {
+{
+return dev_storage + 521;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 't':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdt6", 9) == 0)
+ {
+{
+return dev_storage + 506;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst6", 9) == 0)
+ {
+{
+return dev_storage + 47;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sds6", 9) == 0)
+ {
+{
+return dev_storage + 491;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sdr6", 9) == 0)
+ {
+{
+return dev_storage + 476;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'q':
+ if (strncmp (KR_keyword, "/dev/sdq6", 9) == 0)
+ {
+{
+return dev_storage + 461;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'p':
+ if (strncmp (KR_keyword, "/dev/sdp6", 9) == 0)
+ {
+{
+return dev_storage + 446;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'o':
+ if (strncmp (KR_keyword, "/dev/sdo6", 9) == 0)
+ {
+{
+return dev_storage + 431;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/sdn6", 9) == 0)
+ {
+{
+return dev_storage + 416;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'm':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdm6", 9) == 0)
+ {
+{
+return dev_storage + 401;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/com6", 9) == 0)
+ {
+{
+return dev_storage + 7;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'l':
+ if (strncmp (KR_keyword, "/dev/sdl6", 9) == 0)
+ {
+{
+return dev_storage + 386;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'k':
+ if (strncmp (KR_keyword, "/dev/sdk6", 9) == 0)
+ {
+{
+return dev_storage + 371;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'j':
+ if (strncmp (KR_keyword, "/dev/sdj6", 9) == 0)
+ {
+{
+return dev_storage + 356;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'i':
+ if (strncmp (KR_keyword, "/dev/sdi6", 9) == 0)
+ {
+{
+return dev_storage + 341;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'h':
+ if (strncmp (KR_keyword, "/dev/sdh6", 9) == 0)
+ {
+{
+return dev_storage + 326;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'g':
+ if (strncmp (KR_keyword, "/dev/sdg6", 9) == 0)
+ {
+{
+return dev_storage + 311;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'f':
+ if (strncmp (KR_keyword, "/dev/sdf6", 9) == 0)
+ {
+{
+return dev_storage + 296;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'e':
+ if (strncmp (KR_keyword, "/dev/sde6", 9) == 0)
+ {
+{
+return dev_storage + 281;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ switch (KR_keyword [6])
+ {
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/sdd6", 9) == 0)
+ {
+{
+return dev_storage + 266;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/scd6", 9) == 0)
+ {
+{
+return dev_storage + 180;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/sdc6", 9) == 0)
+ {
+{
+return dev_storage + 251;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'b':
+ if (strncmp (KR_keyword, "/dev/sdb6", 9) == 0)
+ {
+{
+return dev_storage + 236;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'a':
+ if (strncmp (KR_keyword, "/dev/sda6", 9) == 0)
+ {
+{
+return dev_storage + 221;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '9':
+ if (strncmp (KR_keyword, "/dev/st96", 9) == 0)
+ {
+{
+return dev_storage + 718;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '8':
+ if (strncmp (KR_keyword, "/dev/st86", 9) == 0)
+ {
+{
+return dev_storage + 708;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '7':
+ if (strncmp (KR_keyword, "/dev/st76", 9) == 0)
+ {
+{
+return dev_storage + 698;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '6':
+ if (strncmp (KR_keyword, "/dev/st66", 9) == 0)
+ {
+{
+return dev_storage + 688;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '5':
+ if (strncmp (KR_keyword, "/dev/st56", 9) == 0)
+ {
+{
+return dev_storage + 678;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '4':
+ if (strncmp (KR_keyword, "/dev/st46", 9) == 0)
+ {
+{
+return dev_storage + 668;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '3':
+ if (strncmp (KR_keyword, "/dev/st36", 9) == 0)
+ {
+{
+return dev_storage + 658;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '2':
+ if (strncmp (KR_keyword, "/dev/st26", 9) == 0)
+ {
+{
+return dev_storage + 648;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ if (strncmp (KR_keyword, "/dev/st16", 9) == 0)
+ {
+{
+return dev_storage + 638;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '5':
+ switch (KR_keyword [7])
+ {
+ case 'z':
+ if (strncmp (KR_keyword, "/dev/sdz5", 9) == 0)
+ {
+{
+return dev_storage + 595;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'y':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty5", 9) == 0)
+ {
+{
+return dev_storage + 756;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdy5", 9) == 0)
+ {
+{
+return dev_storage + 580;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'x':
+ if (strncmp (KR_keyword, "/dev/sdx5", 9) == 0)
+ {
+{
+return dev_storage + 565;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'w':
+ if (strncmp (KR_keyword, "/dev/sdw5", 9) == 0)
+ {
+{
+return dev_storage + 550;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'v':
+ if (strncmp (KR_keyword, "/dev/sdv5", 9) == 0)
+ {
+{
+return dev_storage + 535;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'u':
+ if (strncmp (KR_keyword, "/dev/sdu5", 9) == 0)
+ {
+{
+return dev_storage + 520;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 't':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdt5", 9) == 0)
+ {
+{
+return dev_storage + 505;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst5", 9) == 0)
+ {
+{
+return dev_storage + 46;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sds5", 9) == 0)
+ {
+{
+return dev_storage + 490;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sdr5", 9) == 0)
+ {
+{
+return dev_storage + 475;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'q':
+ if (strncmp (KR_keyword, "/dev/sdq5", 9) == 0)
+ {
+{
+return dev_storage + 460;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'p':
+ if (strncmp (KR_keyword, "/dev/sdp5", 9) == 0)
+ {
+{
+return dev_storage + 445;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'o':
+ if (strncmp (KR_keyword, "/dev/sdo5", 9) == 0)
+ {
+{
+return dev_storage + 430;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/sdn5", 9) == 0)
+ {
+{
+return dev_storage + 415;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'm':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdm5", 9) == 0)
+ {
+{
+return dev_storage + 400;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/com5", 9) == 0)
+ {
+{
+return dev_storage + 6;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'l':
+ if (strncmp (KR_keyword, "/dev/sdl5", 9) == 0)
+ {
+{
+return dev_storage + 385;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'k':
+ if (strncmp (KR_keyword, "/dev/sdk5", 9) == 0)
+ {
+{
+return dev_storage + 370;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'j':
+ if (strncmp (KR_keyword, "/dev/sdj5", 9) == 0)
+ {
+{
+return dev_storage + 355;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'i':
+ if (strncmp (KR_keyword, "/dev/sdi5", 9) == 0)
+ {
+{
+return dev_storage + 340;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'h':
+ if (strncmp (KR_keyword, "/dev/sdh5", 9) == 0)
+ {
+{
+return dev_storage + 325;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'g':
+ if (strncmp (KR_keyword, "/dev/sdg5", 9) == 0)
+ {
+{
+return dev_storage + 310;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'f':
+ if (strncmp (KR_keyword, "/dev/sdf5", 9) == 0)
+ {
+{
+return dev_storage + 295;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'e':
+ if (strncmp (KR_keyword, "/dev/sde5", 9) == 0)
+ {
+{
+return dev_storage + 280;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ switch (KR_keyword [6])
+ {
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/sdd5", 9) == 0)
+ {
+{
+return dev_storage + 265;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/scd5", 9) == 0)
+ {
+{
+return dev_storage + 179;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/sdc5", 9) == 0)
+ {
+{
+return dev_storage + 250;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'b':
+ if (strncmp (KR_keyword, "/dev/sdb5", 9) == 0)
+ {
+{
+return dev_storage + 235;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'a':
+ if (strncmp (KR_keyword, "/dev/sda5", 9) == 0)
+ {
+{
+return dev_storage + 220;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '9':
+ if (strncmp (KR_keyword, "/dev/st95", 9) == 0)
+ {
+{
+return dev_storage + 717;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '8':
+ if (strncmp (KR_keyword, "/dev/st85", 9) == 0)
+ {
+{
+return dev_storage + 707;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '7':
+ if (strncmp (KR_keyword, "/dev/st75", 9) == 0)
+ {
+{
+return dev_storage + 697;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '6':
+ if (strncmp (KR_keyword, "/dev/st65", 9) == 0)
+ {
+{
+return dev_storage + 687;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '5':
+ if (strncmp (KR_keyword, "/dev/st55", 9) == 0)
+ {
+{
+return dev_storage + 677;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '4':
+ if (strncmp (KR_keyword, "/dev/st45", 9) == 0)
+ {
+{
+return dev_storage + 667;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '3':
+ if (strncmp (KR_keyword, "/dev/st35", 9) == 0)
+ {
+{
+return dev_storage + 657;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '2':
+ if (strncmp (KR_keyword, "/dev/st25", 9) == 0)
+ {
+{
+return dev_storage + 647;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [6])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/st15", 9) == 0)
+ {
+{
+return dev_storage + 637;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sr15", 9) == 0)
+ {
+{
+return dev_storage + 621;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/fd15", 9) == 0)
+ {
+{
+return dev_storage + 37;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '4':
+ switch (KR_keyword [7])
+ {
+ case 'z':
+ if (strncmp (KR_keyword, "/dev/sdz4", 9) == 0)
+ {
+{
+return dev_storage + 594;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'y':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty4", 9) == 0)
+ {
+{
+return dev_storage + 755;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdy4", 9) == 0)
+ {
+{
+return dev_storage + 579;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'x':
+ if (strncmp (KR_keyword, "/dev/sdx4", 9) == 0)
+ {
+{
+return dev_storage + 564;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'w':
+ if (strncmp (KR_keyword, "/dev/sdw4", 9) == 0)
+ {
+{
+return dev_storage + 549;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'v':
+ if (strncmp (KR_keyword, "/dev/sdv4", 9) == 0)
+ {
+{
+return dev_storage + 534;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'u':
+ if (strncmp (KR_keyword, "/dev/sdu4", 9) == 0)
+ {
+{
+return dev_storage + 519;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 't':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdt4", 9) == 0)
+ {
+{
+return dev_storage + 504;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst4", 9) == 0)
+ {
+{
+return dev_storage + 45;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sds4", 9) == 0)
+ {
+{
+return dev_storage + 489;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sdr4", 9) == 0)
+ {
+{
+return dev_storage + 474;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'q':
+ if (strncmp (KR_keyword, "/dev/sdq4", 9) == 0)
+ {
+{
+return dev_storage + 459;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'p':
+ if (strncmp (KR_keyword, "/dev/sdp4", 9) == 0)
+ {
+{
+return dev_storage + 444;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'o':
+ if (strncmp (KR_keyword, "/dev/sdo4", 9) == 0)
+ {
+{
+return dev_storage + 429;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/sdn4", 9) == 0)
+ {
+{
+return dev_storage + 414;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'm':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdm4", 9) == 0)
+ {
+{
+return dev_storage + 399;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/com4", 9) == 0)
+ {
+{
+return dev_storage + 5;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'l':
+ if (strncmp (KR_keyword, "/dev/sdl4", 9) == 0)
+ {
+{
+return dev_storage + 384;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'k':
+ if (strncmp (KR_keyword, "/dev/sdk4", 9) == 0)
+ {
+{
+return dev_storage + 369;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'j':
+ if (strncmp (KR_keyword, "/dev/sdj4", 9) == 0)
+ {
+{
+return dev_storage + 354;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'i':
+ if (strncmp (KR_keyword, "/dev/sdi4", 9) == 0)
+ {
+{
+return dev_storage + 339;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'h':
+ if (strncmp (KR_keyword, "/dev/sdh4", 9) == 0)
+ {
+{
+return dev_storage + 324;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'g':
+ if (strncmp (KR_keyword, "/dev/sdg4", 9) == 0)
+ {
+{
+return dev_storage + 309;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'f':
+ if (strncmp (KR_keyword, "/dev/sdf4", 9) == 0)
+ {
+{
+return dev_storage + 294;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'e':
+ if (strncmp (KR_keyword, "/dev/sde4", 9) == 0)
+ {
+{
+return dev_storage + 279;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ switch (KR_keyword [6])
+ {
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/sdd4", 9) == 0)
+ {
+{
+return dev_storage + 264;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/scd4", 9) == 0)
+ {
+{
+return dev_storage + 178;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/sdc4", 9) == 0)
+ {
+{
+return dev_storage + 249;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'b':
+ if (strncmp (KR_keyword, "/dev/sdb4", 9) == 0)
+ {
+{
+return dev_storage + 234;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'a':
+ if (strncmp (KR_keyword, "/dev/sda4", 9) == 0)
+ {
+{
+return dev_storage + 219;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '9':
+ if (strncmp (KR_keyword, "/dev/st94", 9) == 0)
+ {
+{
+return dev_storage + 716;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '8':
+ if (strncmp (KR_keyword, "/dev/st84", 9) == 0)
+ {
+{
+return dev_storage + 706;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '7':
+ if (strncmp (KR_keyword, "/dev/st74", 9) == 0)
+ {
+{
+return dev_storage + 696;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '6':
+ if (strncmp (KR_keyword, "/dev/st64", 9) == 0)
+ {
+{
+return dev_storage + 686;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '5':
+ if (strncmp (KR_keyword, "/dev/st54", 9) == 0)
+ {
+{
+return dev_storage + 676;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '4':
+ if (strncmp (KR_keyword, "/dev/st44", 9) == 0)
+ {
+{
+return dev_storage + 666;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '3':
+ if (strncmp (KR_keyword, "/dev/st34", 9) == 0)
+ {
+{
+return dev_storage + 656;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '2':
+ if (strncmp (KR_keyword, "/dev/st24", 9) == 0)
+ {
+{
+return dev_storage + 646;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [6])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/st14", 9) == 0)
+ {
+{
+return dev_storage + 636;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sr14", 9) == 0)
+ {
+{
+return dev_storage + 620;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/fd14", 9) == 0)
+ {
+{
+return dev_storage + 36;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '3':
+ switch (KR_keyword [7])
+ {
+ case 'z':
+ if (strncmp (KR_keyword, "/dev/sdz3", 9) == 0)
+ {
+{
+return dev_storage + 593;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'y':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty3", 9) == 0)
+ {
+{
+return dev_storage + 754;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdy3", 9) == 0)
+ {
+{
+return dev_storage + 578;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'x':
+ if (strncmp (KR_keyword, "/dev/sdx3", 9) == 0)
+ {
+{
+return dev_storage + 563;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'w':
+ if (strncmp (KR_keyword, "/dev/sdw3", 9) == 0)
+ {
+{
+return dev_storage + 548;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'v':
+ if (strncmp (KR_keyword, "/dev/sdv3", 9) == 0)
+ {
+{
+return dev_storage + 533;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'u':
+ if (strncmp (KR_keyword, "/dev/sdu3", 9) == 0)
+ {
+{
+return dev_storage + 518;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 't':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdt3", 9) == 0)
+ {
+{
+return dev_storage + 503;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst3", 9) == 0)
+ {
+{
+return dev_storage + 44;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sds3", 9) == 0)
+ {
+{
+return dev_storage + 488;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sdr3", 9) == 0)
+ {
+{
+return dev_storage + 473;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'q':
+ if (strncmp (KR_keyword, "/dev/sdq3", 9) == 0)
+ {
+{
+return dev_storage + 458;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'p':
+ if (strncmp (KR_keyword, "/dev/sdp3", 9) == 0)
+ {
+{
+return dev_storage + 443;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'o':
+ if (strncmp (KR_keyword, "/dev/sdo3", 9) == 0)
+ {
+{
+return dev_storage + 428;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/sdn3", 9) == 0)
+ {
+{
+return dev_storage + 413;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'm':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdm3", 9) == 0)
+ {
+{
+return dev_storage + 398;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/com3", 9) == 0)
+ {
+{
+return dev_storage + 4;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'l':
+ if (strncmp (KR_keyword, "/dev/sdl3", 9) == 0)
+ {
+{
+return dev_storage + 383;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'k':
+ if (strncmp (KR_keyword, "/dev/sdk3", 9) == 0)
+ {
+{
+return dev_storage + 368;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'j':
+ if (strncmp (KR_keyword, "/dev/sdj3", 9) == 0)
+ {
+{
+return dev_storage + 353;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'i':
+ if (strncmp (KR_keyword, "/dev/sdi3", 9) == 0)
+ {
+{
+return dev_storage + 338;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'h':
+ if (strncmp (KR_keyword, "/dev/sdh3", 9) == 0)
+ {
+{
+return dev_storage + 323;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'g':
+ if (strncmp (KR_keyword, "/dev/sdg3", 9) == 0)
+ {
+{
+return dev_storage + 308;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'f':
+ if (strncmp (KR_keyword, "/dev/sdf3", 9) == 0)
+ {
+{
+return dev_storage + 293;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'e':
+ if (strncmp (KR_keyword, "/dev/sde3", 9) == 0)
+ {
+{
+return dev_storage + 278;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ switch (KR_keyword [6])
+ {
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/sdd3", 9) == 0)
+ {
+{
+return dev_storage + 263;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/scd3", 9) == 0)
+ {
+{
+return dev_storage + 177;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/sdc3", 9) == 0)
+ {
+{
+return dev_storage + 248;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'b':
+ if (strncmp (KR_keyword, "/dev/sdb3", 9) == 0)
+ {
+{
+return dev_storage + 233;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'a':
+ if (strncmp (KR_keyword, "/dev/sda3", 9) == 0)
+ {
+{
+return dev_storage + 218;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '9':
+ if (strncmp (KR_keyword, "/dev/st93", 9) == 0)
+ {
+{
+return dev_storage + 715;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '8':
+ if (strncmp (KR_keyword, "/dev/st83", 9) == 0)
+ {
+{
+return dev_storage + 705;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '7':
+ if (strncmp (KR_keyword, "/dev/st73", 9) == 0)
+ {
+{
+return dev_storage + 695;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '6':
+ if (strncmp (KR_keyword, "/dev/st63", 9) == 0)
+ {
+{
+return dev_storage + 685;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '5':
+ if (strncmp (KR_keyword, "/dev/st53", 9) == 0)
+ {
+{
+return dev_storage + 675;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '4':
+ if (strncmp (KR_keyword, "/dev/st43", 9) == 0)
+ {
+{
+return dev_storage + 665;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '3':
+ if (strncmp (KR_keyword, "/dev/st33", 9) == 0)
+ {
+{
+return dev_storage + 655;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '2':
+ if (strncmp (KR_keyword, "/dev/st23", 9) == 0)
+ {
+{
+return dev_storage + 645;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [6])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/st13", 9) == 0)
+ {
+{
+return dev_storage + 635;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sr13", 9) == 0)
+ {
+{
+return dev_storage + 619;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/fd13", 9) == 0)
+ {
+{
+return dev_storage + 35;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '2':
+ switch (KR_keyword [7])
+ {
+ case 'z':
+ if (strncmp (KR_keyword, "/dev/sdz2", 9) == 0)
+ {
+{
+return dev_storage + 592;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'y':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty2", 9) == 0)
+ {
+{
+return dev_storage + 753;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdy2", 9) == 0)
+ {
+{
+return dev_storage + 577;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'x':
+ if (strncmp (KR_keyword, "/dev/sdx2", 9) == 0)
+ {
+{
+return dev_storage + 562;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'w':
+ if (strncmp (KR_keyword, "/dev/sdw2", 9) == 0)
+ {
+{
+return dev_storage + 547;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'v':
+ if (strncmp (KR_keyword, "/dev/sdv2", 9) == 0)
+ {
+{
+return dev_storage + 532;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'u':
+ if (strncmp (KR_keyword, "/dev/sdu2", 9) == 0)
+ {
+{
+return dev_storage + 517;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 't':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdt2", 9) == 0)
+ {
+{
+return dev_storage + 502;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst2", 9) == 0)
+ {
+{
+return dev_storage + 43;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sds2", 9) == 0)
+ {
+{
+return dev_storage + 487;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sdr2", 9) == 0)
+ {
+{
+return dev_storage + 472;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'q':
+ if (strncmp (KR_keyword, "/dev/sdq2", 9) == 0)
+ {
+{
+return dev_storage + 457;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'p':
+ if (strncmp (KR_keyword, "/dev/sdp2", 9) == 0)
+ {
+{
+return dev_storage + 442;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'o':
+ if (strncmp (KR_keyword, "/dev/sdo2", 9) == 0)
+ {
+{
+return dev_storage + 427;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/sdn2", 9) == 0)
+ {
+{
+return dev_storage + 412;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'm':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdm2", 9) == 0)
+ {
+{
+return dev_storage + 397;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/com2", 9) == 0)
+ {
+{
+return dev_storage + 3;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'l':
+ if (strncmp (KR_keyword, "/dev/sdl2", 9) == 0)
+ {
+{
+return dev_storage + 382;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'k':
+ if (strncmp (KR_keyword, "/dev/sdk2", 9) == 0)
+ {
+{
+return dev_storage + 367;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'j':
+ if (strncmp (KR_keyword, "/dev/sdj2", 9) == 0)
+ {
+{
+return dev_storage + 352;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'i':
+ if (strncmp (KR_keyword, "/dev/sdi2", 9) == 0)
+ {
+{
+return dev_storage + 337;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'h':
+ if (strncmp (KR_keyword, "/dev/sdh2", 9) == 0)
+ {
+{
+return dev_storage + 322;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'g':
+ if (strncmp (KR_keyword, "/dev/sdg2", 9) == 0)
+ {
+{
+return dev_storage + 307;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'f':
+ if (strncmp (KR_keyword, "/dev/sdf2", 9) == 0)
+ {
+{
+return dev_storage + 292;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'e':
+ if (strncmp (KR_keyword, "/dev/sde2", 9) == 0)
+ {
+{
+return dev_storage + 277;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ switch (KR_keyword [6])
+ {
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/sdd2", 9) == 0)
+ {
+{
+return dev_storage + 262;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/scd2", 9) == 0)
+ {
+{
+return dev_storage + 176;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/sdc2", 9) == 0)
+ {
+{
+return dev_storage + 247;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'b':
+ if (strncmp (KR_keyword, "/dev/sdb2", 9) == 0)
+ {
+{
+return dev_storage + 232;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'a':
+ if (strncmp (KR_keyword, "/dev/sda2", 9) == 0)
+ {
+{
+return dev_storage + 217;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '9':
+ if (strncmp (KR_keyword, "/dev/st92", 9) == 0)
+ {
+{
+return dev_storage + 714;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '8':
+ if (strncmp (KR_keyword, "/dev/st82", 9) == 0)
+ {
+{
+return dev_storage + 704;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '7':
+ if (strncmp (KR_keyword, "/dev/st72", 9) == 0)
+ {
+{
+return dev_storage + 694;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '6':
+ if (strncmp (KR_keyword, "/dev/st62", 9) == 0)
+ {
+{
+return dev_storage + 684;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '5':
+ if (strncmp (KR_keyword, "/dev/st52", 9) == 0)
+ {
+{
+return dev_storage + 674;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '4':
+ if (strncmp (KR_keyword, "/dev/st42", 9) == 0)
+ {
+{
+return dev_storage + 664;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '3':
+ if (strncmp (KR_keyword, "/dev/st32", 9) == 0)
+ {
+{
+return dev_storage + 654;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '2':
+ if (strncmp (KR_keyword, "/dev/st22", 9) == 0)
+ {
+{
+return dev_storage + 644;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [6])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/st12", 9) == 0)
+ {
+{
+return dev_storage + 634;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sr12", 9) == 0)
+ {
+{
+return dev_storage + 618;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/fd12", 9) == 0)
+ {
+{
+return dev_storage + 34;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [7])
+ {
+ case 'z':
+ if (strncmp (KR_keyword, "/dev/sdz1", 9) == 0)
+ {
+{
+return dev_storage + 591;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'y':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty1", 9) == 0)
+ {
+{
+return dev_storage + 752;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdy1", 9) == 0)
+ {
+{
+return dev_storage + 576;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'x':
+ if (strncmp (KR_keyword, "/dev/sdx1", 9) == 0)
+ {
+{
+return dev_storage + 561;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'w':
+ if (strncmp (KR_keyword, "/dev/sdw1", 9) == 0)
+ {
+{
+return dev_storage + 546;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'v':
+ if (strncmp (KR_keyword, "/dev/sdv1", 9) == 0)
+ {
+{
+return dev_storage + 531;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'u':
+ if (strncmp (KR_keyword, "/dev/sdu1", 9) == 0)
+ {
+{
+return dev_storage + 516;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 't':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdt1", 9) == 0)
+ {
+{
+return dev_storage + 501;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst1", 9) == 0)
+ {
+{
+return dev_storage + 42;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sds1", 9) == 0)
+ {
+{
+return dev_storage + 486;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sdr1", 9) == 0)
+ {
+{
+return dev_storage + 471;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'q':
+ if (strncmp (KR_keyword, "/dev/sdq1", 9) == 0)
+ {
+{
+return dev_storage + 456;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'p':
+ if (strncmp (KR_keyword, "/dev/sdp1", 9) == 0)
+ {
+{
+return dev_storage + 441;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'o':
+ if (strncmp (KR_keyword, "/dev/sdo1", 9) == 0)
+ {
+{
+return dev_storage + 426;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/sdn1", 9) == 0)
+ {
+{
+return dev_storage + 411;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'm':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdm1", 9) == 0)
+ {
+{
+return dev_storage + 396;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/com1", 9) == 0)
+ {
+{
+return dev_storage + 2;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'l':
+ if (strncmp (KR_keyword, "/dev/sdl1", 9) == 0)
+ {
+{
+return dev_storage + 381;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'k':
+ if (strncmp (KR_keyword, "/dev/sdk1", 9) == 0)
+ {
+{
+return dev_storage + 366;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'j':
+ if (strncmp (KR_keyword, "/dev/sdj1", 9) == 0)
+ {
+{
+return dev_storage + 351;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'i':
+ if (strncmp (KR_keyword, "/dev/sdi1", 9) == 0)
+ {
+{
+return dev_storage + 336;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'h':
+ if (strncmp (KR_keyword, "/dev/sdh1", 9) == 0)
+ {
+{
+return dev_storage + 321;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'g':
+ if (strncmp (KR_keyword, "/dev/sdg1", 9) == 0)
+ {
+{
+return dev_storage + 306;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'f':
+ if (strncmp (KR_keyword, "/dev/sdf1", 9) == 0)
+ {
+{
+return dev_storage + 291;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'e':
+ if (strncmp (KR_keyword, "/dev/sde1", 9) == 0)
+ {
+{
+return dev_storage + 276;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ switch (KR_keyword [6])
+ {
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/sdd1", 9) == 0)
+ {
+{
+return dev_storage + 261;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/scd1", 9) == 0)
+ {
+{
+return dev_storage + 175;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/sdc1", 9) == 0)
+ {
+{
+return dev_storage + 246;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'b':
+ if (strncmp (KR_keyword, "/dev/sdb1", 9) == 0)
+ {
+{
+return dev_storage + 231;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'a':
+ if (strncmp (KR_keyword, "/dev/sda1", 9) == 0)
+ {
+{
+return dev_storage + 216;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '9':
+ if (strncmp (KR_keyword, "/dev/st91", 9) == 0)
+ {
+{
+return dev_storage + 713;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '8':
+ if (strncmp (KR_keyword, "/dev/st81", 9) == 0)
+ {
+{
+return dev_storage + 703;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '7':
+ if (strncmp (KR_keyword, "/dev/st71", 9) == 0)
+ {
+{
+return dev_storage + 693;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '6':
+ if (strncmp (KR_keyword, "/dev/st61", 9) == 0)
+ {
+{
+return dev_storage + 683;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '5':
+ if (strncmp (KR_keyword, "/dev/st51", 9) == 0)
+ {
+{
+return dev_storage + 673;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '4':
+ if (strncmp (KR_keyword, "/dev/st41", 9) == 0)
+ {
+{
+return dev_storage + 663;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '3':
+ if (strncmp (KR_keyword, "/dev/st31", 9) == 0)
+ {
+{
+return dev_storage + 653;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '2':
+ if (strncmp (KR_keyword, "/dev/st21", 9) == 0)
+ {
+{
+return dev_storage + 643;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [6])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/st11", 9) == 0)
+ {
+{
+return dev_storage + 633;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sr11", 9) == 0)
+ {
+{
+return dev_storage + 617;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/fd11", 9) == 0)
+ {
+{
+return dev_storage + 33;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '0':
+ switch (KR_keyword [7])
+ {
+ case 'y':
+ if (strncmp (KR_keyword, "/dev/tty0", 9) == 0)
+ {
+{
+return dev_storage + 751;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 't':
+ if (strncmp (KR_keyword, "/dev/nst0", 9) == 0)
+ {
+{
+return dev_storage + 41;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'm':
+ if (strncmp (KR_keyword, "/dev/com0", 9) == 0)
+ {
+{
+return dev_storage + 1;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/scd0", 9) == 0)
+ {
+{
+return dev_storage + 174;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '9':
+ if (strncmp (KR_keyword, "/dev/st90", 9) == 0)
+ {
+{
+return dev_storage + 712;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '8':
+ if (strncmp (KR_keyword, "/dev/st80", 9) == 0)
+ {
+{
+return dev_storage + 702;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '7':
+ if (strncmp (KR_keyword, "/dev/st70", 9) == 0)
+ {
+{
+return dev_storage + 692;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '6':
+ if (strncmp (KR_keyword, "/dev/st60", 9) == 0)
+ {
+{
+return dev_storage + 682;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '5':
+ if (strncmp (KR_keyword, "/dev/st50", 9) == 0)
+ {
+{
+return dev_storage + 672;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '4':
+ if (strncmp (KR_keyword, "/dev/st40", 9) == 0)
+ {
+{
+return dev_storage + 662;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '3':
+ if (strncmp (KR_keyword, "/dev/st30", 9) == 0)
+ {
+{
+return dev_storage + 652;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '2':
+ if (strncmp (KR_keyword, "/dev/st20", 9) == 0)
+ {
+{
+return dev_storage + 642;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [6])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/st10", 9) == 0)
+ {
+{
+return dev_storage + 632;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sr10", 9) == 0)
+ {
+{
+return dev_storage + 616;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/fd10", 9) == 0)
+ {
+{
+return dev_storage + 32;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 10:
+ switch (KR_keyword [9])
+ {
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/conin", 10) == 0)
+ {
+{
+return dev_storage + 18;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '9':
+ switch (KR_keyword [8])
+ {
+ case 'S':
+ if (strncmp (KR_keyword, "/dev/ttyS9", 10) == 0)
+ {
+{
+return dev_storage + 824;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '9':
+ if (strncmp (KR_keyword, "/dev/nst99", 10) == 0)
+ {
+{
+return dev_storage + 140;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '8':
+ if (strncmp (KR_keyword, "/dev/nst89", 10) == 0)
+ {
+{
+return dev_storage + 130;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '7':
+ if (strncmp (KR_keyword, "/dev/nst79", 10) == 0)
+ {
+{
+return dev_storage + 120;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '6':
+ if (strncmp (KR_keyword, "/dev/nst69", 10) == 0)
+ {
+{
+return dev_storage + 110;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '5':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty59", 10) == 0)
+ {
+{
+return dev_storage + 810;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst59", 10) == 0)
+ {
+{
+return dev_storage + 100;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '4':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty49", 10) == 0)
+ {
+{
+return dev_storage + 800;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst49", 10) == 0)
+ {
+{
+return dev_storage + 90;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '3':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty39", 10) == 0)
+ {
+{
+return dev_storage + 790;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst39", 10) == 0)
+ {
+{
+return dev_storage + 80;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '2':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty29", 10) == 0)
+ {
+{
+return dev_storage + 780;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst29", 10) == 0)
+ {
+{
+return dev_storage + 70;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty19", 10) == 0)
+ {
+{
+return dev_storage + 770;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/st119", 10) == 0)
+ {
+{
+return dev_storage + 741;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst19", 10) == 0)
+ {
+{
+return dev_storage + 60;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '0':
+ if (strncmp (KR_keyword, "/dev/st109", 10) == 0)
+ {
+{
+return dev_storage + 731;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '8':
+ switch (KR_keyword [8])
+ {
+ case 'S':
+ if (strncmp (KR_keyword, "/dev/ttyS8", 10) == 0)
+ {
+{
+return dev_storage + 823;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '9':
+ if (strncmp (KR_keyword, "/dev/nst98", 10) == 0)
+ {
+{
+return dev_storage + 139;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '8':
+ if (strncmp (KR_keyword, "/dev/nst88", 10) == 0)
+ {
+{
+return dev_storage + 129;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '7':
+ if (strncmp (KR_keyword, "/dev/nst78", 10) == 0)
+ {
+{
+return dev_storage + 119;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '6':
+ if (strncmp (KR_keyword, "/dev/nst68", 10) == 0)
+ {
+{
+return dev_storage + 109;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '5':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty58", 10) == 0)
+ {
+{
+return dev_storage + 809;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst58", 10) == 0)
+ {
+{
+return dev_storage + 99;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '4':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty48", 10) == 0)
+ {
+{
+return dev_storage + 799;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst48", 10) == 0)
+ {
+{
+return dev_storage + 89;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '3':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty38", 10) == 0)
+ {
+{
+return dev_storage + 789;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst38", 10) == 0)
+ {
+{
+return dev_storage + 79;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '2':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty28", 10) == 0)
+ {
+{
+return dev_storage + 779;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst28", 10) == 0)
+ {
+{
+return dev_storage + 69;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty18", 10) == 0)
+ {
+{
+return dev_storage + 769;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/st118", 10) == 0)
+ {
+{
+return dev_storage + 740;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst18", 10) == 0)
+ {
+{
+return dev_storage + 59;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '0':
+ if (strncmp (KR_keyword, "/dev/st108", 10) == 0)
+ {
+{
+return dev_storage + 730;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '7':
+ switch (KR_keyword [8])
+ {
+ case 'S':
+ if (strncmp (KR_keyword, "/dev/ttyS7", 10) == 0)
+ {
+{
+return dev_storage + 822;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '9':
+ if (strncmp (KR_keyword, "/dev/nst97", 10) == 0)
+ {
+{
+return dev_storage + 138;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '8':
+ if (strncmp (KR_keyword, "/dev/nst87", 10) == 0)
+ {
+{
+return dev_storage + 128;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '7':
+ if (strncmp (KR_keyword, "/dev/nst77", 10) == 0)
+ {
+{
+return dev_storage + 118;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '6':
+ if (strncmp (KR_keyword, "/dev/nst67", 10) == 0)
+ {
+{
+return dev_storage + 108;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '5':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty57", 10) == 0)
+ {
+{
+return dev_storage + 808;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst57", 10) == 0)
+ {
+{
+return dev_storage + 98;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '4':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty47", 10) == 0)
+ {
+{
+return dev_storage + 798;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst47", 10) == 0)
+ {
+{
+return dev_storage + 88;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '3':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty37", 10) == 0)
+ {
+{
+return dev_storage + 788;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst37", 10) == 0)
+ {
+{
+return dev_storage + 78;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '2':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty27", 10) == 0)
+ {
+{
+return dev_storage + 778;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/st127", 10) == 0)
+ {
+{
+return dev_storage + 749;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst27", 10) == 0)
+ {
+{
+return dev_storage + 68;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty17", 10) == 0)
+ {
+{
+return dev_storage + 768;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/st117", 10) == 0)
+ {
+{
+return dev_storage + 739;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst17", 10) == 0)
+ {
+{
+return dev_storage + 58;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '0':
+ if (strncmp (KR_keyword, "/dev/st107", 10) == 0)
+ {
+{
+return dev_storage + 729;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '6':
+ switch (KR_keyword [8])
+ {
+ case 'S':
+ if (strncmp (KR_keyword, "/dev/ttyS6", 10) == 0)
+ {
+{
+return dev_storage + 821;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '9':
+ if (strncmp (KR_keyword, "/dev/nst96", 10) == 0)
+ {
+{
+return dev_storage + 137;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '8':
+ if (strncmp (KR_keyword, "/dev/nst86", 10) == 0)
+ {
+{
+return dev_storage + 127;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '7':
+ if (strncmp (KR_keyword, "/dev/nst76", 10) == 0)
+ {
+{
+return dev_storage + 117;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '6':
+ if (strncmp (KR_keyword, "/dev/nst66", 10) == 0)
+ {
+{
+return dev_storage + 107;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '5':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty56", 10) == 0)
+ {
+{
+return dev_storage + 807;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst56", 10) == 0)
+ {
+{
+return dev_storage + 97;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '4':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty46", 10) == 0)
+ {
+{
+return dev_storage + 797;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst46", 10) == 0)
+ {
+{
+return dev_storage + 87;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '3':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty36", 10) == 0)
+ {
+{
+return dev_storage + 787;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst36", 10) == 0)
+ {
+{
+return dev_storage + 77;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '2':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty26", 10) == 0)
+ {
+{
+return dev_storage + 777;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/st126", 10) == 0)
+ {
+{
+return dev_storage + 748;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst26", 10) == 0)
+ {
+{
+return dev_storage + 67;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty16", 10) == 0)
+ {
+{
+return dev_storage + 767;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/st116", 10) == 0)
+ {
+{
+return dev_storage + 738;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst16", 10) == 0)
+ {
+{
+return dev_storage + 57;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/com16", 10) == 0)
+ {
+{
+return dev_storage + 17;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '0':
+ if (strncmp (KR_keyword, "/dev/st106", 10) == 0)
+ {
+{
+return dev_storage + 728;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '5':
+ switch (KR_keyword [7])
+ {
+ case 'z':
+ if (strncmp (KR_keyword, "/dev/sdz15", 10) == 0)
+ {
+{
+return dev_storage + 605;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'y':
+ switch (KR_keyword [8])
+ {
+ case 'S':
+ if (strncmp (KR_keyword, "/dev/ttyS5", 10) == 0)
+ {
+{
+return dev_storage + 820;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '5':
+ if (strncmp (KR_keyword, "/dev/tty55", 10) == 0)
+ {
+{
+return dev_storage + 806;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '4':
+ if (strncmp (KR_keyword, "/dev/tty45", 10) == 0)
+ {
+{
+return dev_storage + 796;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '3':
+ if (strncmp (KR_keyword, "/dev/tty35", 10) == 0)
+ {
+{
+return dev_storage + 786;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '2':
+ if (strncmp (KR_keyword, "/dev/tty25", 10) == 0)
+ {
+{
+return dev_storage + 776;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty15", 10) == 0)
+ {
+{
+return dev_storage + 766;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdy15", 10) == 0)
+ {
+{
+return dev_storage + 590;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'x':
+ if (strncmp (KR_keyword, "/dev/sdx15", 10) == 0)
+ {
+{
+return dev_storage + 575;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'w':
+ if (strncmp (KR_keyword, "/dev/sdw15", 10) == 0)
+ {
+{
+return dev_storage + 560;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'v':
+ if (strncmp (KR_keyword, "/dev/sdv15", 10) == 0)
+ {
+{
+return dev_storage + 545;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'u':
+ if (strncmp (KR_keyword, "/dev/sdu15", 10) == 0)
+ {
+{
+return dev_storage + 530;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 't':
+ switch (KR_keyword [8])
+ {
+ case '9':
+ if (strncmp (KR_keyword, "/dev/nst95", 10) == 0)
+ {
+{
+return dev_storage + 136;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '8':
+ if (strncmp (KR_keyword, "/dev/nst85", 10) == 0)
+ {
+{
+return dev_storage + 126;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '7':
+ if (strncmp (KR_keyword, "/dev/nst75", 10) == 0)
+ {
+{
+return dev_storage + 116;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '6':
+ if (strncmp (KR_keyword, "/dev/nst65", 10) == 0)
+ {
+{
+return dev_storage + 106;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '5':
+ if (strncmp (KR_keyword, "/dev/nst55", 10) == 0)
+ {
+{
+return dev_storage + 96;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '4':
+ if (strncmp (KR_keyword, "/dev/nst45", 10) == 0)
+ {
+{
+return dev_storage + 86;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '3':
+ if (strncmp (KR_keyword, "/dev/nst35", 10) == 0)
+ {
+{
+return dev_storage + 76;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '2':
+ if (strncmp (KR_keyword, "/dev/nst25", 10) == 0)
+ {
+{
+return dev_storage + 66;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdt15", 10) == 0)
+ {
+{
+return dev_storage + 515;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst15", 10) == 0)
+ {
+{
+return dev_storage + 56;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sds15", 10) == 0)
+ {
+{
+return dev_storage + 500;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sdr15", 10) == 0)
+ {
+{
+return dev_storage + 485;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'q':
+ if (strncmp (KR_keyword, "/dev/sdq15", 10) == 0)
+ {
+{
+return dev_storage + 470;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'p':
+ if (strncmp (KR_keyword, "/dev/sdp15", 10) == 0)
+ {
+{
+return dev_storage + 455;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'o':
+ if (strncmp (KR_keyword, "/dev/sdo15", 10) == 0)
+ {
+{
+return dev_storage + 440;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/sdn15", 10) == 0)
+ {
+{
+return dev_storage + 425;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'm':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdm15", 10) == 0)
+ {
+{
+return dev_storage + 410;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/com15", 10) == 0)
+ {
+{
+return dev_storage + 16;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'l':
+ if (strncmp (KR_keyword, "/dev/sdl15", 10) == 0)
+ {
+{
+return dev_storage + 395;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'k':
+ if (strncmp (KR_keyword, "/dev/sdk15", 10) == 0)
+ {
+{
+return dev_storage + 380;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'j':
+ if (strncmp (KR_keyword, "/dev/sdj15", 10) == 0)
+ {
+{
+return dev_storage + 365;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'i':
+ if (strncmp (KR_keyword, "/dev/sdi15", 10) == 0)
+ {
+{
+return dev_storage + 350;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'h':
+ if (strncmp (KR_keyword, "/dev/sdh15", 10) == 0)
+ {
+{
+return dev_storage + 335;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'g':
+ if (strncmp (KR_keyword, "/dev/sdg15", 10) == 0)
+ {
+{
+return dev_storage + 320;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'f':
+ if (strncmp (KR_keyword, "/dev/sdf15", 10) == 0)
+ {
+{
+return dev_storage + 305;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'e':
+ if (strncmp (KR_keyword, "/dev/sde15", 10) == 0)
+ {
+{
+return dev_storage + 290;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ switch (KR_keyword [6])
+ {
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/sdd15", 10) == 0)
+ {
+{
+return dev_storage + 275;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/scd15", 10) == 0)
+ {
+{
+return dev_storage + 189;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/sdc15", 10) == 0)
+ {
+{
+return dev_storage + 260;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'b':
+ if (strncmp (KR_keyword, "/dev/sdb15", 10) == 0)
+ {
+{
+return dev_storage + 245;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'a':
+ if (strncmp (KR_keyword, "/dev/sda15", 10) == 0)
+ {
+{
+return dev_storage + 230;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [8])
+ {
+ case '2':
+ if (strncmp (KR_keyword, "/dev/st125", 10) == 0)
+ {
+{
+return dev_storage + 747;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ if (strncmp (KR_keyword, "/dev/st115", 10) == 0)
+ {
+{
+return dev_storage + 737;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '0':
+ if (strncmp (KR_keyword, "/dev/st105", 10) == 0)
+ {
+{
+return dev_storage + 727;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '4':
+ switch (KR_keyword [7])
+ {
+ case 'z':
+ if (strncmp (KR_keyword, "/dev/sdz14", 10) == 0)
+ {
+{
+return dev_storage + 604;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'y':
+ switch (KR_keyword [8])
+ {
+ case 'S':
+ if (strncmp (KR_keyword, "/dev/ttyS4", 10) == 0)
+ {
+{
+return dev_storage + 819;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '5':
+ if (strncmp (KR_keyword, "/dev/tty54", 10) == 0)
+ {
+{
+return dev_storage + 805;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '4':
+ if (strncmp (KR_keyword, "/dev/tty44", 10) == 0)
+ {
+{
+return dev_storage + 795;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '3':
+ if (strncmp (KR_keyword, "/dev/tty34", 10) == 0)
+ {
+{
+return dev_storage + 785;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '2':
+ if (strncmp (KR_keyword, "/dev/tty24", 10) == 0)
+ {
+{
+return dev_storage + 775;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty14", 10) == 0)
+ {
+{
+return dev_storage + 765;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdy14", 10) == 0)
+ {
+{
+return dev_storage + 589;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'x':
+ if (strncmp (KR_keyword, "/dev/sdx14", 10) == 0)
+ {
+{
+return dev_storage + 574;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'w':
+ if (strncmp (KR_keyword, "/dev/sdw14", 10) == 0)
+ {
+{
+return dev_storage + 559;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'v':
+ if (strncmp (KR_keyword, "/dev/sdv14", 10) == 0)
+ {
+{
+return dev_storage + 544;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'u':
+ if (strncmp (KR_keyword, "/dev/sdu14", 10) == 0)
+ {
+{
+return dev_storage + 529;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 't':
+ switch (KR_keyword [8])
+ {
+ case '9':
+ if (strncmp (KR_keyword, "/dev/nst94", 10) == 0)
+ {
+{
+return dev_storage + 135;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '8':
+ if (strncmp (KR_keyword, "/dev/nst84", 10) == 0)
+ {
+{
+return dev_storage + 125;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '7':
+ if (strncmp (KR_keyword, "/dev/nst74", 10) == 0)
+ {
+{
+return dev_storage + 115;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '6':
+ if (strncmp (KR_keyword, "/dev/nst64", 10) == 0)
+ {
+{
+return dev_storage + 105;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '5':
+ if (strncmp (KR_keyword, "/dev/nst54", 10) == 0)
+ {
+{
+return dev_storage + 95;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '4':
+ if (strncmp (KR_keyword, "/dev/nst44", 10) == 0)
+ {
+{
+return dev_storage + 85;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '3':
+ if (strncmp (KR_keyword, "/dev/nst34", 10) == 0)
+ {
+{
+return dev_storage + 75;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '2':
+ if (strncmp (KR_keyword, "/dev/nst24", 10) == 0)
+ {
+{
+return dev_storage + 65;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdt14", 10) == 0)
+ {
+{
+return dev_storage + 514;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst14", 10) == 0)
+ {
+{
+return dev_storage + 55;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sds14", 10) == 0)
+ {
+{
+return dev_storage + 499;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sdr14", 10) == 0)
+ {
+{
+return dev_storage + 484;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'q':
+ if (strncmp (KR_keyword, "/dev/sdq14", 10) == 0)
+ {
+{
+return dev_storage + 469;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'p':
+ if (strncmp (KR_keyword, "/dev/sdp14", 10) == 0)
+ {
+{
+return dev_storage + 454;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'o':
+ if (strncmp (KR_keyword, "/dev/sdo14", 10) == 0)
+ {
+{
+return dev_storage + 439;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/sdn14", 10) == 0)
+ {
+{
+return dev_storage + 424;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'm':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdm14", 10) == 0)
+ {
+{
+return dev_storage + 409;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/com14", 10) == 0)
+ {
+{
+return dev_storage + 15;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'l':
+ if (strncmp (KR_keyword, "/dev/sdl14", 10) == 0)
+ {
+{
+return dev_storage + 394;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'k':
+ if (strncmp (KR_keyword, "/dev/sdk14", 10) == 0)
+ {
+{
+return dev_storage + 379;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'j':
+ if (strncmp (KR_keyword, "/dev/sdj14", 10) == 0)
+ {
+{
+return dev_storage + 364;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'i':
+ if (strncmp (KR_keyword, "/dev/sdi14", 10) == 0)
+ {
+{
+return dev_storage + 349;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'h':
+ if (strncmp (KR_keyword, "/dev/sdh14", 10) == 0)
+ {
+{
+return dev_storage + 334;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'g':
+ if (strncmp (KR_keyword, "/dev/sdg14", 10) == 0)
+ {
+{
+return dev_storage + 319;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'f':
+ if (strncmp (KR_keyword, "/dev/sdf14", 10) == 0)
+ {
+{
+return dev_storage + 304;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'e':
+ if (strncmp (KR_keyword, "/dev/sde14", 10) == 0)
+ {
+{
+return dev_storage + 289;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ switch (KR_keyword [6])
+ {
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/sdd14", 10) == 0)
+ {
+{
+return dev_storage + 274;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/scd14", 10) == 0)
+ {
+{
+return dev_storage + 188;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/sdc14", 10) == 0)
+ {
+{
+return dev_storage + 259;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'b':
+ if (strncmp (KR_keyword, "/dev/sdb14", 10) == 0)
+ {
+{
+return dev_storage + 244;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'a':
+ if (strncmp (KR_keyword, "/dev/sda14", 10) == 0)
+ {
+{
+return dev_storage + 229;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [8])
+ {
+ case '2':
+ if (strncmp (KR_keyword, "/dev/st124", 10) == 0)
+ {
+{
+return dev_storage + 746;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ if (strncmp (KR_keyword, "/dev/st114", 10) == 0)
+ {
+{
+return dev_storage + 736;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '0':
+ if (strncmp (KR_keyword, "/dev/st104", 10) == 0)
+ {
+{
+return dev_storage + 726;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '3':
+ switch (KR_keyword [7])
+ {
+ case 'z':
+ if (strncmp (KR_keyword, "/dev/sdz13", 10) == 0)
+ {
+{
+return dev_storage + 603;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'y':
+ switch (KR_keyword [8])
+ {
+ case 'S':
+ if (strncmp (KR_keyword, "/dev/ttyS3", 10) == 0)
+ {
+{
+return dev_storage + 818;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '6':
+ if (strncmp (KR_keyword, "/dev/tty63", 10) == 0)
+ {
+{
+return dev_storage + 814;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '5':
+ if (strncmp (KR_keyword, "/dev/tty53", 10) == 0)
+ {
+{
+return dev_storage + 804;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '4':
+ if (strncmp (KR_keyword, "/dev/tty43", 10) == 0)
+ {
+{
+return dev_storage + 794;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '3':
+ if (strncmp (KR_keyword, "/dev/tty33", 10) == 0)
+ {
+{
+return dev_storage + 784;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '2':
+ if (strncmp (KR_keyword, "/dev/tty23", 10) == 0)
+ {
+{
+return dev_storage + 774;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty13", 10) == 0)
+ {
+{
+return dev_storage + 764;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdy13", 10) == 0)
+ {
+{
+return dev_storage + 588;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'x':
+ if (strncmp (KR_keyword, "/dev/sdx13", 10) == 0)
+ {
+{
+return dev_storage + 573;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'w':
+ if (strncmp (KR_keyword, "/dev/sdw13", 10) == 0)
+ {
+{
+return dev_storage + 558;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'v':
+ if (strncmp (KR_keyword, "/dev/sdv13", 10) == 0)
+ {
+{
+return dev_storage + 543;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'u':
+ if (strncmp (KR_keyword, "/dev/sdu13", 10) == 0)
+ {
+{
+return dev_storage + 528;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 't':
+ switch (KR_keyword [8])
+ {
+ case '9':
+ if (strncmp (KR_keyword, "/dev/nst93", 10) == 0)
+ {
+{
+return dev_storage + 134;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '8':
+ if (strncmp (KR_keyword, "/dev/nst83", 10) == 0)
+ {
+{
+return dev_storage + 124;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '7':
+ if (strncmp (KR_keyword, "/dev/nst73", 10) == 0)
+ {
+{
+return dev_storage + 114;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '6':
+ if (strncmp (KR_keyword, "/dev/nst63", 10) == 0)
+ {
+{
+return dev_storage + 104;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '5':
+ if (strncmp (KR_keyword, "/dev/nst53", 10) == 0)
+ {
+{
+return dev_storage + 94;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '4':
+ if (strncmp (KR_keyword, "/dev/nst43", 10) == 0)
+ {
+{
+return dev_storage + 84;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '3':
+ if (strncmp (KR_keyword, "/dev/nst33", 10) == 0)
+ {
+{
+return dev_storage + 74;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '2':
+ if (strncmp (KR_keyword, "/dev/nst23", 10) == 0)
+ {
+{
+return dev_storage + 64;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdt13", 10) == 0)
+ {
+{
+return dev_storage + 513;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst13", 10) == 0)
+ {
+{
+return dev_storage + 54;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sds13", 10) == 0)
+ {
+{
+return dev_storage + 498;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sdr13", 10) == 0)
+ {
+{
+return dev_storage + 483;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'q':
+ if (strncmp (KR_keyword, "/dev/sdq13", 10) == 0)
+ {
+{
+return dev_storage + 468;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'p':
+ if (strncmp (KR_keyword, "/dev/sdp13", 10) == 0)
+ {
+{
+return dev_storage + 453;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'o':
+ if (strncmp (KR_keyword, "/dev/sdo13", 10) == 0)
+ {
+{
+return dev_storage + 438;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/sdn13", 10) == 0)
+ {
+{
+return dev_storage + 423;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'm':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdm13", 10) == 0)
+ {
+{
+return dev_storage + 408;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/com13", 10) == 0)
+ {
+{
+return dev_storage + 14;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'l':
+ if (strncmp (KR_keyword, "/dev/sdl13", 10) == 0)
+ {
+{
+return dev_storage + 393;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'k':
+ if (strncmp (KR_keyword, "/dev/sdk13", 10) == 0)
+ {
+{
+return dev_storage + 378;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'j':
+ if (strncmp (KR_keyword, "/dev/sdj13", 10) == 0)
+ {
+{
+return dev_storage + 363;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'i':
+ if (strncmp (KR_keyword, "/dev/sdi13", 10) == 0)
+ {
+{
+return dev_storage + 348;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'h':
+ if (strncmp (KR_keyword, "/dev/sdh13", 10) == 0)
+ {
+{
+return dev_storage + 333;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'g':
+ if (strncmp (KR_keyword, "/dev/sdg13", 10) == 0)
+ {
+{
+return dev_storage + 318;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'f':
+ if (strncmp (KR_keyword, "/dev/sdf13", 10) == 0)
+ {
+{
+return dev_storage + 303;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'e':
+ if (strncmp (KR_keyword, "/dev/sde13", 10) == 0)
+ {
+{
+return dev_storage + 288;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ switch (KR_keyword [6])
+ {
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/sdd13", 10) == 0)
+ {
+{
+return dev_storage + 273;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/scd13", 10) == 0)
+ {
+{
+return dev_storage + 187;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/sdc13", 10) == 0)
+ {
+{
+return dev_storage + 258;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'b':
+ if (strncmp (KR_keyword, "/dev/sdb13", 10) == 0)
+ {
+{
+return dev_storage + 243;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'a':
+ if (strncmp (KR_keyword, "/dev/sda13", 10) == 0)
+ {
+{
+return dev_storage + 228;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [8])
+ {
+ case '2':
+ if (strncmp (KR_keyword, "/dev/st123", 10) == 0)
+ {
+{
+return dev_storage + 745;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ if (strncmp (KR_keyword, "/dev/st113", 10) == 0)
+ {
+{
+return dev_storage + 735;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '0':
+ if (strncmp (KR_keyword, "/dev/st103", 10) == 0)
+ {
+{
+return dev_storage + 725;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '2':
+ switch (KR_keyword [7])
+ {
+ case 'z':
+ if (strncmp (KR_keyword, "/dev/sdz12", 10) == 0)
+ {
+{
+return dev_storage + 602;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'y':
+ switch (KR_keyword [8])
+ {
+ case 'S':
+ if (strncmp (KR_keyword, "/dev/ttyS2", 10) == 0)
+ {
+{
+return dev_storage + 817;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '6':
+ if (strncmp (KR_keyword, "/dev/tty62", 10) == 0)
+ {
+{
+return dev_storage + 813;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '5':
+ if (strncmp (KR_keyword, "/dev/tty52", 10) == 0)
+ {
+{
+return dev_storage + 803;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '4':
+ if (strncmp (KR_keyword, "/dev/tty42", 10) == 0)
+ {
+{
+return dev_storage + 793;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '3':
+ if (strncmp (KR_keyword, "/dev/tty32", 10) == 0)
+ {
+{
+return dev_storage + 783;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '2':
+ if (strncmp (KR_keyword, "/dev/tty22", 10) == 0)
+ {
+{
+return dev_storage + 773;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty12", 10) == 0)
+ {
+{
+return dev_storage + 763;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdy12", 10) == 0)
+ {
+{
+return dev_storage + 587;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'x':
+ if (strncmp (KR_keyword, "/dev/sdx12", 10) == 0)
+ {
+{
+return dev_storage + 572;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'w':
+ if (strncmp (KR_keyword, "/dev/sdw12", 10) == 0)
+ {
+{
+return dev_storage + 557;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'v':
+ if (strncmp (KR_keyword, "/dev/sdv12", 10) == 0)
+ {
+{
+return dev_storage + 542;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'u':
+ if (strncmp (KR_keyword, "/dev/sdu12", 10) == 0)
+ {
+{
+return dev_storage + 527;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 't':
+ switch (KR_keyword [8])
+ {
+ case '9':
+ if (strncmp (KR_keyword, "/dev/nst92", 10) == 0)
+ {
+{
+return dev_storage + 133;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '8':
+ if (strncmp (KR_keyword, "/dev/nst82", 10) == 0)
+ {
+{
+return dev_storage + 123;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '7':
+ if (strncmp (KR_keyword, "/dev/nst72", 10) == 0)
+ {
+{
+return dev_storage + 113;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '6':
+ if (strncmp (KR_keyword, "/dev/nst62", 10) == 0)
+ {
+{
+return dev_storage + 103;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '5':
+ if (strncmp (KR_keyword, "/dev/nst52", 10) == 0)
+ {
+{
+return dev_storage + 93;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '4':
+ if (strncmp (KR_keyword, "/dev/nst42", 10) == 0)
+ {
+{
+return dev_storage + 83;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '3':
+ if (strncmp (KR_keyword, "/dev/nst32", 10) == 0)
+ {
+{
+return dev_storage + 73;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '2':
+ if (strncmp (KR_keyword, "/dev/nst22", 10) == 0)
+ {
+{
+return dev_storage + 63;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdt12", 10) == 0)
+ {
+{
+return dev_storage + 512;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst12", 10) == 0)
+ {
+{
+return dev_storage + 53;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sds12", 10) == 0)
+ {
+{
+return dev_storage + 497;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sdr12", 10) == 0)
+ {
+{
+return dev_storage + 482;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'q':
+ if (strncmp (KR_keyword, "/dev/sdq12", 10) == 0)
+ {
+{
+return dev_storage + 467;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'p':
+ if (strncmp (KR_keyword, "/dev/sdp12", 10) == 0)
+ {
+{
+return dev_storage + 452;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'o':
+ if (strncmp (KR_keyword, "/dev/sdo12", 10) == 0)
+ {
+{
+return dev_storage + 437;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/sdn12", 10) == 0)
+ {
+{
+return dev_storage + 422;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'm':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdm12", 10) == 0)
+ {
+{
+return dev_storage + 407;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/com12", 10) == 0)
+ {
+{
+return dev_storage + 13;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'l':
+ if (strncmp (KR_keyword, "/dev/sdl12", 10) == 0)
+ {
+{
+return dev_storage + 392;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'k':
+ if (strncmp (KR_keyword, "/dev/sdk12", 10) == 0)
+ {
+{
+return dev_storage + 377;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'j':
+ if (strncmp (KR_keyword, "/dev/sdj12", 10) == 0)
+ {
+{
+return dev_storage + 362;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'i':
+ if (strncmp (KR_keyword, "/dev/sdi12", 10) == 0)
+ {
+{
+return dev_storage + 347;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'h':
+ if (strncmp (KR_keyword, "/dev/sdh12", 10) == 0)
+ {
+{
+return dev_storage + 332;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'g':
+ if (strncmp (KR_keyword, "/dev/sdg12", 10) == 0)
+ {
+{
+return dev_storage + 317;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'f':
+ if (strncmp (KR_keyword, "/dev/sdf12", 10) == 0)
+ {
+{
+return dev_storage + 302;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'e':
+ if (strncmp (KR_keyword, "/dev/sde12", 10) == 0)
+ {
+{
+return dev_storage + 287;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ switch (KR_keyword [6])
+ {
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/sdd12", 10) == 0)
+ {
+{
+return dev_storage + 272;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/scd12", 10) == 0)
+ {
+{
+return dev_storage + 186;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/sdc12", 10) == 0)
+ {
+{
+return dev_storage + 257;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'b':
+ if (strncmp (KR_keyword, "/dev/sdb12", 10) == 0)
+ {
+{
+return dev_storage + 242;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'a':
+ if (strncmp (KR_keyword, "/dev/sda12", 10) == 0)
+ {
+{
+return dev_storage + 227;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [8])
+ {
+ case '2':
+ if (strncmp (KR_keyword, "/dev/st122", 10) == 0)
+ {
+{
+return dev_storage + 744;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ if (strncmp (KR_keyword, "/dev/st112", 10) == 0)
+ {
+{
+return dev_storage + 734;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '0':
+ if (strncmp (KR_keyword, "/dev/st102", 10) == 0)
+ {
+{
+return dev_storage + 724;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [7])
+ {
+ case 'z':
+ if (strncmp (KR_keyword, "/dev/sdz11", 10) == 0)
+ {
+{
+return dev_storage + 601;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'y':
+ switch (KR_keyword [8])
+ {
+ case 'S':
+ if (strncmp (KR_keyword, "/dev/ttyS1", 10) == 0)
+ {
+{
+return dev_storage + 816;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '6':
+ if (strncmp (KR_keyword, "/dev/tty61", 10) == 0)
+ {
+{
+return dev_storage + 812;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '5':
+ if (strncmp (KR_keyword, "/dev/tty51", 10) == 0)
+ {
+{
+return dev_storage + 802;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '4':
+ if (strncmp (KR_keyword, "/dev/tty41", 10) == 0)
+ {
+{
+return dev_storage + 792;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '3':
+ if (strncmp (KR_keyword, "/dev/tty31", 10) == 0)
+ {
+{
+return dev_storage + 782;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '2':
+ if (strncmp (KR_keyword, "/dev/tty21", 10) == 0)
+ {
+{
+return dev_storage + 772;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty11", 10) == 0)
+ {
+{
+return dev_storage + 762;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdy11", 10) == 0)
+ {
+{
+return dev_storage + 586;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'x':
+ if (strncmp (KR_keyword, "/dev/sdx11", 10) == 0)
+ {
+{
+return dev_storage + 571;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'w':
+ if (strncmp (KR_keyword, "/dev/sdw11", 10) == 0)
+ {
+{
+return dev_storage + 556;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'v':
+ if (strncmp (KR_keyword, "/dev/sdv11", 10) == 0)
+ {
+{
+return dev_storage + 541;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'u':
+ if (strncmp (KR_keyword, "/dev/sdu11", 10) == 0)
+ {
+{
+return dev_storage + 526;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 't':
+ switch (KR_keyword [8])
+ {
+ case '9':
+ if (strncmp (KR_keyword, "/dev/nst91", 10) == 0)
+ {
+{
+return dev_storage + 132;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '8':
+ if (strncmp (KR_keyword, "/dev/nst81", 10) == 0)
+ {
+{
+return dev_storage + 122;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '7':
+ if (strncmp (KR_keyword, "/dev/nst71", 10) == 0)
+ {
+{
+return dev_storage + 112;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '6':
+ if (strncmp (KR_keyword, "/dev/nst61", 10) == 0)
+ {
+{
+return dev_storage + 102;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '5':
+ if (strncmp (KR_keyword, "/dev/nst51", 10) == 0)
+ {
+{
+return dev_storage + 92;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '4':
+ if (strncmp (KR_keyword, "/dev/nst41", 10) == 0)
+ {
+{
+return dev_storage + 82;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '3':
+ if (strncmp (KR_keyword, "/dev/nst31", 10) == 0)
+ {
+{
+return dev_storage + 72;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '2':
+ if (strncmp (KR_keyword, "/dev/nst21", 10) == 0)
+ {
+{
+return dev_storage + 62;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdt11", 10) == 0)
+ {
+{
+return dev_storage + 511;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst11", 10) == 0)
+ {
+{
+return dev_storage + 52;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sds11", 10) == 0)
+ {
+{
+return dev_storage + 496;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sdr11", 10) == 0)
+ {
+{
+return dev_storage + 481;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'q':
+ if (strncmp (KR_keyword, "/dev/sdq11", 10) == 0)
+ {
+{
+return dev_storage + 466;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'p':
+ if (strncmp (KR_keyword, "/dev/sdp11", 10) == 0)
+ {
+{
+return dev_storage + 451;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'o':
+ if (strncmp (KR_keyword, "/dev/sdo11", 10) == 0)
+ {
+{
+return dev_storage + 436;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/sdn11", 10) == 0)
+ {
+{
+return dev_storage + 421;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'm':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdm11", 10) == 0)
+ {
+{
+return dev_storage + 406;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/com11", 10) == 0)
+ {
+{
+return dev_storage + 12;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'l':
+ if (strncmp (KR_keyword, "/dev/sdl11", 10) == 0)
+ {
+{
+return dev_storage + 391;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'k':
+ if (strncmp (KR_keyword, "/dev/sdk11", 10) == 0)
+ {
+{
+return dev_storage + 376;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'j':
+ if (strncmp (KR_keyword, "/dev/sdj11", 10) == 0)
+ {
+{
+return dev_storage + 361;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'i':
+ if (strncmp (KR_keyword, "/dev/sdi11", 10) == 0)
+ {
+{
+return dev_storage + 346;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'h':
+ if (strncmp (KR_keyword, "/dev/sdh11", 10) == 0)
+ {
+{
+return dev_storage + 331;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'g':
+ if (strncmp (KR_keyword, "/dev/sdg11", 10) == 0)
+ {
+{
+return dev_storage + 316;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'f':
+ if (strncmp (KR_keyword, "/dev/sdf11", 10) == 0)
+ {
+{
+return dev_storage + 301;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'e':
+ if (strncmp (KR_keyword, "/dev/sde11", 10) == 0)
+ {
+{
+return dev_storage + 286;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ switch (KR_keyword [6])
+ {
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/sdd11", 10) == 0)
+ {
+{
+return dev_storage + 271;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/scd11", 10) == 0)
+ {
+{
+return dev_storage + 185;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/sdc11", 10) == 0)
+ {
+{
+return dev_storage + 256;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'b':
+ if (strncmp (KR_keyword, "/dev/sdb11", 10) == 0)
+ {
+{
+return dev_storage + 241;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'a':
+ if (strncmp (KR_keyword, "/dev/sda11", 10) == 0)
+ {
+{
+return dev_storage + 226;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [8])
+ {
+ case '2':
+ if (strncmp (KR_keyword, "/dev/st121", 10) == 0)
+ {
+{
+return dev_storage + 743;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ if (strncmp (KR_keyword, "/dev/st111", 10) == 0)
+ {
+{
+return dev_storage + 733;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '0':
+ if (strncmp (KR_keyword, "/dev/st101", 10) == 0)
+ {
+{
+return dev_storage + 723;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '0':
+ switch (KR_keyword [7])
+ {
+ case 'z':
+ if (strncmp (KR_keyword, "/dev/sdz10", 10) == 0)
+ {
+{
+return dev_storage + 600;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'y':
+ switch (KR_keyword [8])
+ {
+ case 'S':
+ if (strncmp (KR_keyword, "/dev/ttyS0", 10) == 0)
+ {
+{
+return dev_storage + 815;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '6':
+ if (strncmp (KR_keyword, "/dev/tty60", 10) == 0)
+ {
+{
+return dev_storage + 811;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '5':
+ if (strncmp (KR_keyword, "/dev/tty50", 10) == 0)
+ {
+{
+return dev_storage + 801;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '4':
+ if (strncmp (KR_keyword, "/dev/tty40", 10) == 0)
+ {
+{
+return dev_storage + 791;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '3':
+ if (strncmp (KR_keyword, "/dev/tty30", 10) == 0)
+ {
+{
+return dev_storage + 781;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '2':
+ if (strncmp (KR_keyword, "/dev/tty20", 10) == 0)
+ {
+{
+return dev_storage + 771;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/tty10", 10) == 0)
+ {
+{
+return dev_storage + 761;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdy10", 10) == 0)
+ {
+{
+return dev_storage + 585;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'x':
+ if (strncmp (KR_keyword, "/dev/sdx10", 10) == 0)
+ {
+{
+return dev_storage + 570;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'w':
+ if (strncmp (KR_keyword, "/dev/sdw10", 10) == 0)
+ {
+{
+return dev_storage + 555;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'v':
+ if (strncmp (KR_keyword, "/dev/sdv10", 10) == 0)
+ {
+{
+return dev_storage + 540;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'u':
+ if (strncmp (KR_keyword, "/dev/sdu10", 10) == 0)
+ {
+{
+return dev_storage + 525;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 't':
+ switch (KR_keyword [8])
+ {
+ case '9':
+ if (strncmp (KR_keyword, "/dev/nst90", 10) == 0)
+ {
+{
+return dev_storage + 131;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '8':
+ if (strncmp (KR_keyword, "/dev/nst80", 10) == 0)
+ {
+{
+return dev_storage + 121;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '7':
+ if (strncmp (KR_keyword, "/dev/nst70", 10) == 0)
+ {
+{
+return dev_storage + 111;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '6':
+ if (strncmp (KR_keyword, "/dev/nst60", 10) == 0)
+ {
+{
+return dev_storage + 101;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '5':
+ if (strncmp (KR_keyword, "/dev/nst50", 10) == 0)
+ {
+{
+return dev_storage + 91;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '4':
+ if (strncmp (KR_keyword, "/dev/nst40", 10) == 0)
+ {
+{
+return dev_storage + 81;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '3':
+ if (strncmp (KR_keyword, "/dev/nst30", 10) == 0)
+ {
+{
+return dev_storage + 71;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '2':
+ if (strncmp (KR_keyword, "/dev/nst20", 10) == 0)
+ {
+{
+return dev_storage + 61;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdt10", 10) == 0)
+ {
+{
+return dev_storage + 510;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst10", 10) == 0)
+ {
+{
+return dev_storage + 51;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sds10", 10) == 0)
+ {
+{
+return dev_storage + 495;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'r':
+ if (strncmp (KR_keyword, "/dev/sdr10", 10) == 0)
+ {
+{
+return dev_storage + 480;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'q':
+ if (strncmp (KR_keyword, "/dev/sdq10", 10) == 0)
+ {
+{
+return dev_storage + 465;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'p':
+ if (strncmp (KR_keyword, "/dev/sdp10", 10) == 0)
+ {
+{
+return dev_storage + 450;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'o':
+ if (strncmp (KR_keyword, "/dev/sdo10", 10) == 0)
+ {
+{
+return dev_storage + 435;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/sdn10", 10) == 0)
+ {
+{
+return dev_storage + 420;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'm':
+ switch (KR_keyword [5])
+ {
+ case 's':
+ if (strncmp (KR_keyword, "/dev/sdm10", 10) == 0)
+ {
+{
+return dev_storage + 405;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/com10", 10) == 0)
+ {
+{
+return dev_storage + 11;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'l':
+ if (strncmp (KR_keyword, "/dev/sdl10", 10) == 0)
+ {
+{
+return dev_storage + 390;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'k':
+ if (strncmp (KR_keyword, "/dev/sdk10", 10) == 0)
+ {
+{
+return dev_storage + 375;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'j':
+ if (strncmp (KR_keyword, "/dev/sdj10", 10) == 0)
+ {
+{
+return dev_storage + 360;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'i':
+ if (strncmp (KR_keyword, "/dev/sdi10", 10) == 0)
+ {
+{
+return dev_storage + 345;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'h':
+ if (strncmp (KR_keyword, "/dev/sdh10", 10) == 0)
+ {
+{
+return dev_storage + 330;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'g':
+ if (strncmp (KR_keyword, "/dev/sdg10", 10) == 0)
+ {
+{
+return dev_storage + 315;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'f':
+ if (strncmp (KR_keyword, "/dev/sdf10", 10) == 0)
+ {
+{
+return dev_storage + 300;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'e':
+ if (strncmp (KR_keyword, "/dev/sde10", 10) == 0)
+ {
+{
+return dev_storage + 285;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'd':
+ switch (KR_keyword [6])
+ {
+ case 'd':
+ if (strncmp (KR_keyword, "/dev/sdd10", 10) == 0)
+ {
+{
+return dev_storage + 270;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/scd10", 10) == 0)
+ {
+{
+return dev_storage + 184;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/sdc10", 10) == 0)
+ {
+{
+return dev_storage + 255;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'b':
+ if (strncmp (KR_keyword, "/dev/sdb10", 10) == 0)
+ {
+{
+return dev_storage + 240;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'a':
+ if (strncmp (KR_keyword, "/dev/sda10", 10) == 0)
+ {
+{
+return dev_storage + 225;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [8])
+ {
+ case '2':
+ if (strncmp (KR_keyword, "/dev/st120", 10) == 0)
+ {
+{
+return dev_storage + 742;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ if (strncmp (KR_keyword, "/dev/st110", 10) == 0)
+ {
+{
+return dev_storage + 732;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '0':
+ if (strncmp (KR_keyword, "/dev/st100", 10) == 0)
+ {
+{
+return dev_storage + 722;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 11:
+ switch (KR_keyword [9])
+ {
+ case 'u':
+ if (strncmp (KR_keyword, "/dev/conout", 11) == 0)
+ {
+{
+return dev_storage + 19;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'o':
+ if (strncmp (KR_keyword, "/dev/random", 11) == 0)
+ {
+{
+return dev_storage + 173;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '2':
+ switch (KR_keyword [10])
+ {
+ case '7':
+ if (strncmp (KR_keyword, "/dev/nst127", 11) == 0)
+ {
+{
+return dev_storage + 168;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '6':
+ if (strncmp (KR_keyword, "/dev/nst126", 11) == 0)
+ {
+{
+return dev_storage + 167;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '5':
+ if (strncmp (KR_keyword, "/dev/nst125", 11) == 0)
+ {
+{
+return dev_storage + 166;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '4':
+ if (strncmp (KR_keyword, "/dev/nst124", 11) == 0)
+ {
+{
+return dev_storage + 165;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '3':
+ if (strncmp (KR_keyword, "/dev/nst123", 11) == 0)
+ {
+{
+return dev_storage + 164;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '2':
+ if (strncmp (KR_keyword, "/dev/nst122", 11) == 0)
+ {
+{
+return dev_storage + 163;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ if (strncmp (KR_keyword, "/dev/nst121", 11) == 0)
+ {
+{
+return dev_storage + 162;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '0':
+ if (strncmp (KR_keyword, "/dev/nst120", 11) == 0)
+ {
+{
+return dev_storage + 161;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [10])
+ {
+ case '9':
+ if (strncmp (KR_keyword, "/dev/nst119", 11) == 0)
+ {
+{
+return dev_storage + 160;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '8':
+ if (strncmp (KR_keyword, "/dev/nst118", 11) == 0)
+ {
+{
+return dev_storage + 159;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '7':
+ if (strncmp (KR_keyword, "/dev/nst117", 11) == 0)
+ {
+{
+return dev_storage + 158;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '6':
+ if (strncmp (KR_keyword, "/dev/nst116", 11) == 0)
+ {
+{
+return dev_storage + 157;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '5':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/ttyS15", 11) == 0)
+ {
+{
+return dev_storage + 830;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst115", 11) == 0)
+ {
+{
+return dev_storage + 156;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '4':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/ttyS14", 11) == 0)
+ {
+{
+return dev_storage + 829;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst114", 11) == 0)
+ {
+{
+return dev_storage + 155;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '3':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/ttyS13", 11) == 0)
+ {
+{
+return dev_storage + 828;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst113", 11) == 0)
+ {
+{
+return dev_storage + 154;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '2':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/ttyS12", 11) == 0)
+ {
+{
+return dev_storage + 827;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst112", 11) == 0)
+ {
+{
+return dev_storage + 153;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '1':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/ttyS11", 11) == 0)
+ {
+{
+return dev_storage + 826;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst111", 11) == 0)
+ {
+{
+return dev_storage + 152;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '0':
+ switch (KR_keyword [5])
+ {
+ case 't':
+ if (strncmp (KR_keyword, "/dev/ttyS10", 11) == 0)
+ {
+{
+return dev_storage + 825;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'n':
+ if (strncmp (KR_keyword, "/dev/nst110", 11) == 0)
+ {
+{
+return dev_storage + 151;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case '0':
+ switch (KR_keyword [10])
+ {
+ case '9':
+ if (strncmp (KR_keyword, "/dev/nst109", 11) == 0)
+ {
+{
+return dev_storage + 150;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '8':
+ if (strncmp (KR_keyword, "/dev/nst108", 11) == 0)
+ {
+{
+return dev_storage + 149;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '7':
+ if (strncmp (KR_keyword, "/dev/nst107", 11) == 0)
+ {
+{
+return dev_storage + 148;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '6':
+ if (strncmp (KR_keyword, "/dev/nst106", 11) == 0)
+ {
+{
+return dev_storage + 147;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '5':
+ if (strncmp (KR_keyword, "/dev/nst105", 11) == 0)
+ {
+{
+return dev_storage + 146;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '4':
+ if (strncmp (KR_keyword, "/dev/nst104", 11) == 0)
+ {
+{
+return dev_storage + 145;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '3':
+ if (strncmp (KR_keyword, "/dev/nst103", 11) == 0)
+ {
+{
+return dev_storage + 144;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '2':
+ if (strncmp (KR_keyword, "/dev/nst102", 11) == 0)
+ {
+{
+return dev_storage + 143;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '1':
+ if (strncmp (KR_keyword, "/dev/nst101", 11) == 0)
+ {
+{
+return dev_storage + 142;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case '0':
+ if (strncmp (KR_keyword, "/dev/nst100", 11) == 0)
+ {
+{
+return dev_storage + 141;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 12:
+ switch (KR_keyword [5])
+ {
+ case 'w':
+ if (strncmp (KR_keyword, "/dev/windows", 12) == 0)
+ {
+{
+return dev_storage + 833;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'u':
+ if (strncmp (KR_keyword, "/dev/urandom", 12) == 0)
+ {
+{
+return dev_storage + 832;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ case 'c':
+ if (strncmp (KR_keyword, "/dev/console", 12) == 0)
+ {
+{
+return dev_storage + 20;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+ case 14:
+ if (strncmp (KR_keyword, "/dev/clipboard", 14) == 0)
+ {
+{
+return dev_storage + 0;
+
+}
+ }
+ else
+ {
+{
+return NULL;
+
+}
+ }
+ default:
+{
+return NULL;
+
+}
+ }
+}
+
+
+
+
+
+
+void
+device::parse (const char *s)
+{
+ size_t len = strlen (s);
+ const device *dev = KR_find_keyword (s, len);
+
+ if (!dev)
+ *this = *fs_dev;
+ else
+ *this = *dev;
+}
+
+void
+device::init ()
+{
+ /* nothing to do... yet */
+}
+
+void
+device::parse (_major_t major, _minor_t minor)
+{
+ _dev_t dev = FHDEV (major, minor);
+
+ devn = 0;
+
+ for (unsigned i = 0; i < (sizeof (dev_storage) / sizeof (dev_storage[0])); i++)
+ if (dev_storage[i].devn == dev)
+ {
+ *this = dev_storage[i];
+ break;
+ }
+
+ if (!*this)
+ devn = FHDEV (major, minor);
+ return;
+}
+
+void
+device::parse (_dev_t dev)
+{
+ parse (_major (dev), _minor (dev));
+}
+
+void
+device::tty_to_real_device ()
+{
+ if (!real_tty_attached (myself))
+ *this = myself->ctty < 0 ? dev_bad_storage : *console_dev;
+ else
+ parse (DEV_TTYS_MAJOR, myself->ctty);
+}
+
+
+
diff --git a/winsup/cygwin/devices.in b/winsup/cygwin/devices.in
new file mode 100644
index 00000000000..1bcb73bc786
--- /dev/null
+++ b/winsup/cygwin/devices.in
@@ -0,0 +1,132 @@
+%import {
+#include "winsup.h"
+#include <sys/types.h>
+#include <stdlib.h>
+#include <ctype.h>
+#include <string.h>
+#include "devices.h"
+#include "sys/cygwin.h"
+#include "tty.h"
+#include "pinfo.h"
+typedef const device *KR_device_t;
+}
+%type KR_device_t
+%local {
+const device dev_cygdrive_storage =
+ {"/cygdrive", FH_CYGDRIVE, "/cygdrive"};
+
+const device dev_fs_storage =
+ {"", FH_FS, ""};
+
+const device dev_proc_storage =
+ {"", FH_PROC, ""};
+
+const device dev_registry_storage =
+ {"", FH_REGISTRY, ""};
+
+const device dev_piper_storage =
+ {"", FH_PIPER, ""};
+
+const device dev_pipew_storage =
+ {"", FH_PIPEW, ""};
+
+const device dev_tcp_storage =
+ {"", FH_TCP, ""};
+
+const device dev_udp_storage =
+ {"", FH_UDP, ""};
+
+const device dev_stream_storage =
+ {"", FH_STREAM, ""};
+
+const device dev_dgram_storage =
+ {"", FH_DGRAM, ""};
+
+const device dev_bad_storage =
+ {"", FH_BAD, ""};
+
+%storage_here
+}
+%%
+"/dev/tty", FH_TTY, "\\dev\\tty"
+"/dev/tty%(0-63)d", FHDEV(DEV_TTYS_MAJOR, {$1}), "\\dev\\tty{$1}", ttys_dev
+"/dev/console", FH_CONSOLE, "\\dev\\console", console_dev
+"/dev/ttym", FH_TTYM, "\\dev\\ttym", ttym_dev
+"/dev/ptmx", FH_PTYM, "\\dev\\ptmx"
+"/dev/windows", FH_WINDOWS, "\\dev\\windows"
+"/dev/dsp", FH_OSS_DSP, "\\dev\\dsp"
+"/dev/conin", FH_CONIN, "conin"
+"/dev/conout", FH_CONOUT, "conout"
+"/dev/null", FH_NULL, "nul"
+"/dev/zero", FH_ZERO, "\\dev\\zero"
+"/dev/random", FH_RANDOM, "\\dev\\random"
+"/dev/urandom", FH_URANDOM, "\\dev\\urandom", urandom_dev
+"/dev/mem", FH_MEM, "\\dev\\mem"
+"/dev/kmem", FH_KMEM, "\\dev\\mem"
+"/dev/clipboard", FH_CLIPBOARD, "\\dev\\clipboard"
+"/dev/port", FH_PORT, "\\dev\\port"
+"/dev/com%(0-16)d", FHDEV(DEV_SERIAL_MAJOR, {$1}), "\\\\.\\com{$1}"
+"/dev/ttyS%(0-15)d", FHDEV(DEV_SERIAL_MAJOR, {$1 + 1}), "\\\\.\\com{$1 + 1}"
+"/dev/pipe", FH_PIPE, "\\dev\\pipe"
+"/dev/fifo", FH_FIFO, "\\dev\\fifo"
+"/dev/st%(0-127)d", FHDEV(DEV_TAPE_MAJOR, {$1}), "\\Device\\Tape{$1}"
+"/dev/nst%(0-127)d", FHDEV(DEV_TAPE_MAJOR, {$1 + 128}), "\\Device\\Tape{$1}"
+"/dev/fd%(0-15)d", FHDEV(DEV_FLOPPY_MAJOR, {$1}), "\\Device\\Floppy{$1}"
+"/dev/scd%(0-15)d", FHDEV(DEV_CDROM_MAJOR, {$1}), "\\Device\\CdRom{$1}"
+"/dev/sr%(0-15)d", FHDEV(DEV_CDROM_MAJOR, {$1}), "\\Device\\CdRom{$1}"
+"/dev/sd%{a-z}s", FH_SD{uc $1}, "\\Device\\Harddisk{ord($1) - ord('a')}\\Partition0"
+"/dev/sd%{a-z}s%(1-15)d", FH_SD{uc $1} | {$2}, "\\Device\\Harddisk{ord($1) - ord('a')}\\Partition{$2 % 16}"
+%other {return NULL;}
+%%
+void
+device::parse (const char *s)
+{
+ size_t len = strlen (s);
+ const device *dev = KR_find_keyword (s, len);
+
+ if (!dev)
+ *this = *fs_dev;
+ else
+ *this = *dev;
+}
+
+void
+device::init ()
+{
+ /* nothing to do... yet */
+}
+
+void
+device::parse (_major_t major, _minor_t minor)
+{
+ _dev_t dev = FHDEV (major, minor);
+
+ devn = 0;
+
+ for (unsigned i = 0; i < (sizeof (dev_storage) / sizeof (dev_storage[0])); i++)
+ if (dev_storage[i].devn == dev)
+ {
+ *this = dev_storage[i];
+ break;
+ }
+
+ if (!*this)
+ devn = FHDEV (major, minor);
+ return;
+}
+
+void
+device::parse (_dev_t dev)
+{
+ parse (_major (dev), _minor (dev));
+}
+
+void
+device::tty_to_real_device ()
+{
+ if (!real_tty_attached (myself))
+ *this = myself->ctty < 0 ? dev_bad_storage : *console_dev;
+ else
+ parse (DEV_TTYS_MAJOR, myself->ctty);
+}
+
diff --git a/winsup/cygwin/fhandler.cc b/winsup/cygwin/fhandler.cc
new file mode 100644
index 00000000000..6d30709928f
--- /dev/null
+++ b/winsup/cygwin/fhandler.cc
@@ -0,0 +1,1316 @@
+/* fhandler.cc. See console.cc for fhandler_console functions.
+
+ Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+
+This file is part of Cygwin.
+
+This software is a copyrighted work licensed under the terms of the
+Cygwin license. Please consult the file "CYGWIN_LICENSE" for
+details. */
+
+#include "winsup.h"
+#include <unistd.h>
+#include <stdlib.h>
+#include <sys/cygwin.h>
+#include <sys/uio.h>
+#include <signal.h>
+#include "cygerrno.h"
+#include "perprocess.h"
+#include "security.h"
+#include "cygwin/version.h"
+#include "path.h"
+#include "fhandler.h"
+#include "dtable.h"
+#include "cygheap.h"
+#include "shared_info.h"
+#include "pinfo.h"
+#include <assert.h>
+#include <limits.h>
+#include <winioctl.h>
+
+static NO_COPY const int CHUNK_SIZE = 1024; /* Used for crlf conversions */
+
+struct __cygwin_perfile *perfile_table;
+
+DWORD binmode;
+
+inline fhandler_base&
+fhandler_base::operator =(fhandler_base& x)
+{
+ memcpy (this, &x, sizeof *this);
+ pc.set_normalized_path (x.pc.normalized_path);
+ rabuf = NULL;
+ ralen = 0;
+ raixget = 0;
+ raixput = 0;
+ rabuflen = 0;
+ return *this;
+}
+
+int
+fhandler_base::puts_readahead (const char *s, size_t len)
+{
+ int success = 1;
+ while ((*s || (len != (size_t) -1 && len--))
+ && (success = put_readahead (*s++) > 0))
+ continue;
+ return success;
+}
+
+int
+fhandler_base::put_readahead (char value)
+{
+ char *newrabuf;
+ if (raixput < rabuflen)
+ /* Nothing to do */;
+ else if ((newrabuf = (char *) realloc (rabuf, rabuflen += 32)))
+ rabuf = newrabuf;
+ else
+ return 0;
+
+ rabuf[raixput++] = value;
+ ralen++;
+ return 1;
+}
+
+int
+fhandler_base::get_readahead ()
+{
+ int chret = -1;
+ if (raixget < ralen)
+ chret = ((unsigned char) rabuf[raixget++]) & 0xff;
+ /* FIXME - not thread safe */
+ if (raixget >= ralen)
+ raixget = raixput = ralen = 0;
+ return chret;
+}
+
+int
+fhandler_base::peek_readahead (int queryput)
+{
+ int chret = -1;
+ if (!queryput && raixget < ralen)
+ chret = ((unsigned char) rabuf[raixget]) & 0xff;
+ else if (queryput && raixput > 0)
+ chret = ((unsigned char) rabuf[raixput - 1]) & 0xff;
+ return chret;
+}
+
+void
+fhandler_base::set_readahead_valid (int val, int ch)
+{
+ if (!val)
+ ralen = raixget = raixput = 0;
+ if (ch != -1)
+ put_readahead (ch);
+}
+
+int
+fhandler_base::eat_readahead (int n)
+{
+ int oralen = ralen;
+ if (n < 0)
+ n = ralen;
+ if (n > 0 && ralen)
+ {
+ if ((int) (ralen -= n) < 0)
+ ralen = 0;
+
+ if (raixget >= ralen)
+ raixget = raixput = ralen = 0;
+ else if (raixput > ralen)
+ raixput = ralen;
+ }
+
+ return oralen;
+}
+
+int
+fhandler_base::get_readahead_into_buffer (char *buf, size_t buflen)
+{
+ int ch;
+ int copied_chars = 0;
+
+ while (buflen)
+ if ((ch = get_readahead ()) < 0)
+ break;
+ else
+ {
+ buf[copied_chars++] = (unsigned char)(ch & 0xff);
+ buflen--;
+ }
+
+ return copied_chars;
+}
+
+/* Record the file name. and name hash */
+void
+fhandler_base::set_name (path_conv &in_pc)
+{
+ memcpy (&pc, &in_pc, in_pc.size ());
+ pc.set_normalized_path (in_pc.normalized_path);
+ namehash = hash_path_name (0, get_win32_name ());
+}
+
+/* Detect if we are sitting at EOF for conditions where Windows
+ returns an error but UNIX doesn't. */
+static int __stdcall
+is_at_eof (HANDLE h, DWORD err)
+{
+ DWORD size, upper1, curr;
+
+ size = GetFileSize (h, &upper1);
+ if (size != INVALID_FILE_SIZE || GetLastError () == NO_ERROR)
+ {
+ LONG upper2 = 0;
+ curr = SetFilePointer (h, 0, &upper2, FILE_CURRENT);
+ if (curr == size && upper1 == (DWORD) upper2)
+ return 1;
+ }
+
+ SetLastError (err);
+ return 0;
+}
+
+void
+fhandler_base::set_flags (int flags, int supplied_bin)
+{
+ int bin;
+ int fmode;
+ debug_printf ("flags %p, supplied_bin %p", flags, supplied_bin);
+ if ((bin = flags & (O_BINARY | O_TEXT)))
+ debug_printf ("O_TEXT/O_BINARY set in flags %p", bin);
+ else if (get_r_binset () && get_w_binset ())
+ bin = get_r_binary () ? O_BINARY : O_TEXT; // FIXME: Not quite right
+ else if ((fmode = get_default_fmode (flags)) & O_BINARY)
+ bin = O_BINARY;
+ else if (fmode & O_TEXT)
+ bin = O_TEXT;
+ else if (supplied_bin)
+ bin = supplied_bin;
+ else
+ bin = get_w_binary () || get_r_binary () || (binmode != O_TEXT)
+ ? O_BINARY : O_TEXT;
+
+ openflags = flags | bin;
+
+ bin &= O_BINARY;
+ set_r_binary (bin);
+ set_w_binary (bin);
+ syscall_printf ("filemode set to %s", bin ? "binary" : "text");
+}
+
+/* Normal file i/o handlers. */
+
+/* Cover function to ReadFile to achieve (as much as possible) Posix style
+ semantics and use of errno. */
+void
+fhandler_base::raw_read (void *ptr, size_t& ulen)
+{
+#define bytes_read ulen
+
+ HANDLE h = NULL; /* grumble */
+ int prio = 0; /* ditto */
+ DWORD len = ulen;
+
+ ulen = (size_t) -1;
+ if (read_state)
+ {
+ h = GetCurrentThread ();
+ prio = GetThreadPriority (h);
+ (void) SetThreadPriority (h, THREAD_PRIORITY_TIME_CRITICAL);
+ SetEvent (read_state);
+ }
+ BOOL res = ReadFile (get_handle (), ptr, len, (DWORD *) &ulen, 0);
+ if (read_state)
+ {
+ SetEvent (read_state);
+ (void) SetThreadPriority (h, prio);
+ }
+ if (!res)
+ {
+ /* Some errors are not really errors. Detect such cases here. */
+
+ DWORD errcode = GetLastError ();
+ switch (errcode)
+ {
+ case ERROR_BROKEN_PIPE:
+ /* This is really EOF. */
+ bytes_read = 0;
+ break;
+ case ERROR_MORE_DATA:
+ /* `bytes_read' is supposedly valid. */
+ break;
+ case ERROR_NOACCESS:
+ if (is_at_eof (get_handle (), errcode))
+ {
+ bytes_read = 0;
+ break;
+ }
+ case ERROR_INVALID_FUNCTION:
+ case ERROR_INVALID_PARAMETER:
+ case ERROR_INVALID_HANDLE:
+ if (openflags & O_DIROPEN)
+ {
+ set_errno (EISDIR);
+ bytes_read = (size_t) -1;
+ break;
+ }
+ default:
+ syscall_printf ("ReadFile %s failed, %E", get_name ());
+ __seterrno_from_win_error (errcode);
+ bytes_read = (size_t) -1;
+ break;
+ }
+ }
+#undef bytes_read
+}
+
+/* Cover function to WriteFile to provide Posix interface and semantics
+ (as much as possible). */
+int
+fhandler_base::raw_write (const void *ptr, size_t len)
+{
+ DWORD bytes_written;
+
+ if (!WriteFile (get_output_handle (), ptr, len, &bytes_written, 0))
+ {
+ if (GetLastError () == ERROR_DISK_FULL && bytes_written > 0)
+ return bytes_written;
+ __seterrno ();
+ if (get_errno () == EPIPE)
+ raise (SIGPIPE);
+ return -1;
+ }
+ return bytes_written;
+}
+
+#define ACCFLAGS(x) (x & (O_RDONLY | O_WRONLY | O_RDWR))
+int
+fhandler_base::get_default_fmode (int flags)
+{
+ int fmode = __fmode;
+ if (perfile_table)
+ {
+ size_t nlen = strlen (get_name ());
+ unsigned accflags = ACCFLAGS (flags);
+ for (__cygwin_perfile *pf = perfile_table; pf->name; pf++)
+ if (!*pf->name && ACCFLAGS (pf->flags) == accflags)
+ {
+ fmode = pf->flags & ~(O_RDONLY | O_WRONLY | O_RDWR);
+ break;
+ }
+ else
+ {
+ size_t pflen = strlen (pf->name);
+ const char *stem = get_name () + nlen - pflen;
+ if (pflen > nlen || (stem != get_name () && !isdirsep (stem[-1])))
+ continue;
+ else if (ACCFLAGS (pf->flags) == accflags && strcasematch (stem, pf->name))
+ {
+ fmode = pf->flags & ~(O_RDONLY | O_WRONLY | O_RDWR);
+ break;
+ }
+ }
+ }
+ return fmode;
+}
+
+bool
+fhandler_base::device_access_denied (int flags)
+{
+ int mode = 0;
+
+ if (flags & O_RDWR)
+ mode |= R_OK | W_OK;
+ if (flags & (O_WRONLY | O_APPEND))
+ mode |= W_OK;
+ if (!mode)
+ mode |= R_OK;
+
+ return access_worker (pc, mode, this);
+}
+
+/* Open system call handler function. */
+int
+fhandler_base::open (int flags, mode_t mode)
+{
+ int res = 0;
+ HANDLE x;
+ int file_attributes;
+ int shared;
+ int creation_distribution;
+ SECURITY_ATTRIBUTES sa = sec_none;
+ security_descriptor sd;
+
+ syscall_printf ("(%s, %p) query_open %d", get_win32_name (), flags, get_query_open ());
+
+ if (get_win32_name () == NULL)
+ {
+ set_errno (ENOENT);
+ goto done;
+ }
+
+ if (get_query_open ())
+ access = 0;
+ else if (get_major () == DEV_TAPE_MAJOR)
+ access = GENERIC_READ | GENERIC_WRITE;
+ else if ((flags & (O_RDONLY | O_WRONLY | O_RDWR)) == O_RDONLY)
+ access = GENERIC_READ;
+ else if ((flags & (O_RDONLY | O_WRONLY | O_RDWR)) == O_WRONLY)
+ access = GENERIC_WRITE;
+ else
+ access = GENERIC_READ | GENERIC_WRITE;
+
+ /* Allow reliable lseek on disk devices. */
+ if (get_major () == DEV_FLOPPY_MAJOR)
+ access |= GENERIC_READ;
+
+ /* FIXME: O_EXCL handling? */
+
+ if ((flags & O_TRUNC) && ((flags & O_ACCMODE) != O_RDONLY))
+ {
+ if (flags & O_CREAT)
+ creation_distribution = CREATE_ALWAYS;
+ else
+ creation_distribution = TRUNCATE_EXISTING;
+ }
+ else if (flags & O_CREAT)
+ creation_distribution = OPEN_ALWAYS;
+ else
+ creation_distribution = OPEN_EXISTING;
+
+ if ((flags & O_EXCL) && (flags & O_CREAT))
+ creation_distribution = CREATE_NEW;
+
+ if (flags & O_APPEND)
+ set_append_p ();
+
+ /* These flags are host dependent. */
+ shared = wincap.shared ();
+
+ file_attributes = FILE_ATTRIBUTE_NORMAL;
+ if (flags & O_DIROPEN)
+ file_attributes |= FILE_FLAG_BACKUP_SEMANTICS;
+ if (get_major () == DEV_SERIAL_MAJOR)
+ file_attributes |= FILE_FLAG_OVERLAPPED;
+
+#ifdef HIDDEN_DOT_FILES
+ if (flags & O_CREAT && dev ().isfs ())
+ {
+ char *c = strrchr (get_win32_name (), '\\');
+ if ((c && c[1] == '.') || *get_win32_name () == '.')
+ file_attributes |= FILE_ATTRIBUTE_HIDDEN;
+ }
+#endif
+
+ /* CreateFile() with dwDesiredAccess == 0 when called on remote
+ share returns some handle, even if file doesn't exist. This code
+ works around this bug. */
+ if (get_query_open () && isremote () &&
+ creation_distribution == OPEN_EXISTING && !pc.exists ())
+ {
+ set_errno (ENOENT);
+ goto done;
+ }
+
+ /* If mode has no write bits set, we set the R/O attribute. */
+ if (!(mode & (S_IWUSR | S_IWGRP | S_IWOTH)))
+ file_attributes |= FILE_ATTRIBUTE_READONLY;
+
+ /* If the file should actually be created and ntsec is on,
+ set files attributes. */
+ if (flags & O_CREAT && dev ().isfs () && allow_ntsec && has_acls ())
+ set_security_attribute (mode, &sa, sd);
+
+ x = CreateFile (get_win32_name (), access, shared, &sa, creation_distribution,
+ file_attributes, 0);
+
+ if (x == INVALID_HANDLE_VALUE)
+ {
+ if (!wincap.can_open_directories () && pc.isdir ())
+ {
+ if (flags & (O_CREAT | O_EXCL) == (O_CREAT | O_EXCL))
+ set_errno (EEXIST);
+ else if (flags & (O_WRONLY | O_RDWR))
+ set_errno (EISDIR);
+ else
+ set_nohandle (true);
+ }
+ else if (GetLastError () == ERROR_INVALID_HANDLE)
+ set_errno (ENOENT);
+ else
+ __seterrno ();
+ if (!get_nohandle ())
+ goto done;
+ }
+
+ syscall_printf ("%p = CreateFile (%s, %p, %p, %p, %p, %p, 0)",
+ x, get_win32_name (), access, shared, &sa,
+ creation_distribution, file_attributes);
+
+ set_io_handle (x);
+ set_flags (flags, pc.binmode ());
+
+ res = 1;
+ set_open_status ();
+done:
+ syscall_printf ("%d = fhandler_base::open (%s, %p)", res, get_win32_name (),
+ flags);
+ return res;
+}
+
+/* states:
+ open buffer in binary mode? Just do the read.
+
+ open buffer in text mode? Scan buffer for control zs and handle
+ the first one found. Then scan buffer, converting every \r\n into
+ an \n. If last char is an \r, look ahead one more char, if \n then
+ modify \r, if not, remember char.
+*/
+void
+fhandler_base::read (void *in_ptr, size_t& len)
+{
+ char *ptr = (char *) in_ptr;
+ ssize_t copied_chars = 0;
+ bool need_signal = !!read_state;
+ int c;
+
+ while (len)
+ if ((c = get_readahead ()) < 0)
+ break;
+ else
+ {
+ ptr[copied_chars++] = (unsigned char) (c & 0xff);
+ len--;
+ }
+
+ if (copied_chars && is_slow ())
+ {
+ len = (size_t) copied_chars;
+ goto out;
+ }
+
+ if (!len)
+ {
+ len = (size_t) copied_chars;
+ goto out;
+ }
+
+ raw_read (ptr + copied_chars, len);
+ need_signal = false;
+ if (!copied_chars)
+ /* nothing */;
+ else if ((ssize_t) len > 0)
+ len += copied_chars;
+ else
+ len = copied_chars;
+
+ if (get_r_binary () || len <= 0)
+ goto out;
+
+ /* Scan buffer and turn \r\n into \n */
+ char *src, *dst, *end;
+ src = (char *) ptr;
+ dst = (char *) ptr;
+ end = src + len - 1;
+
+ /* Read up to the last but one char - the last char needs special handling */
+ while (src < end)
+ {
+ if (*src == '\r' && src[1] == '\n')
+ src++;
+ *dst++ = *src++;
+ }
+
+ /* If not beyond end and last char is a '\r' then read one more
+ to see if we should translate this one too */
+ if (src > end)
+ /* nothing */;
+ else if (*src != '\r')
+ *dst++ = *src;
+ else
+ {
+ char c1;
+ size_t c1len = 1;
+ raw_read (&c1, c1len);
+ if (c1len <= 0)
+ /* nothing */;
+ else if (c1 == '\n')
+ *dst++ = '\n';
+ else
+ {
+ set_readahead_valid (1, c1);
+ *dst++ = *src;
+ }
+ }
+
+ len = dst - (char *) ptr;
+
+#ifndef NOSTRACE
+ if (strace.active)
+ {
+ char buf[16 * 6 + 1];
+ char *p = buf;
+
+ for (int i = 0; i < copied_chars && i < 16; ++i)
+ {
+ unsigned char c = ((unsigned char *) ptr)[i];
+ /* >= 33 so space prints in hex */
+ __small_sprintf (p, c >= 33 && c <= 127 ? " %c" : " %p", c);
+ p += strlen (p);
+ }
+ debug_printf ("read %d bytes (%s%s)", copied_chars, buf,
+ copied_chars > 16 ? " ..." : "");
+ }
+#endif
+
+out:
+ if (need_signal)
+ SetEvent (read_state);
+
+ debug_printf ("returning %d, %s mode", len,
+ get_r_binary () ? "binary" : "text");
+ return;
+}
+
+int
+fhandler_base::write (const void *ptr, size_t len)
+{
+ int res;
+
+ if (get_append_p ())
+ SetFilePointer (get_output_handle (), 0, 0, FILE_END);
+ else if (get_did_lseek ())
+ {
+ _off64_t actual_length, current_position;
+ DWORD size_high = 0;
+ LONG pos_high = 0;
+
+ set_did_lseek (0); /* don't do it again */
+
+ actual_length = GetFileSize (get_output_handle (), &size_high);
+ actual_length += ((_off64_t) size_high) << 32;
+
+ current_position = SetFilePointer (get_output_handle (), 0, &pos_high,
+ FILE_CURRENT);
+ current_position += ((_off64_t) pos_high) << 32;
+
+ if (current_position > actual_length)
+ {
+ if ((get_fs_flags (FILE_SUPPORTS_SPARSE_FILES))
+ && current_position >= actual_length + (128 * 1024))
+ {
+ /* If the file systemn supports sparse files and the application
+ is writing after a long seek beyond EOF, convert the file to
+ a sparse file. */
+ DWORD dw;
+ HANDLE h = get_output_handle ();
+ BOOL r = DeviceIoControl (h, FSCTL_SET_SPARSE, NULL, 0, NULL,
+ 0, &dw, NULL);
+ syscall_printf ("%d = DeviceIoControl(%p, FSCTL_SET_SPARSE, "
+ "NULL, 0, NULL, 0, &dw, NULL)", r, h);
+ }
+ else if (wincap.has_lseek_bug ())
+ {
+ /* Oops, this is the bug case - Win95 uses whatever is on the
+ disk instead of some known (safe) value, so we must seek
+ back and fill in the gap with zeros. - DJ
+ Note: this bug doesn't happen on NT4, even though the
+ documentation for WriteFile() says that it *may* happen
+ on any OS. */
+ char zeros[512];
+ int number_of_zeros_to_write = current_position - actual_length;
+ memset (zeros, 0, 512);
+ SetFilePointer (get_output_handle (), 0, NULL, FILE_END);
+ while (number_of_zeros_to_write > 0)
+ {
+ DWORD zeros_this_time = (number_of_zeros_to_write > 512
+ ? 512 : number_of_zeros_to_write);
+ DWORD written;
+ if (!WriteFile (get_output_handle (), zeros, zeros_this_time,
+ &written, NULL))
+ {
+ __seterrno ();
+ if (get_errno () == EPIPE)
+ raise (SIGPIPE);
+ /* This might fail, but it's the best we can hope for */
+ SetFilePointer (get_output_handle (), current_position, NULL,
+ FILE_BEGIN);
+ return -1;
+
+ }
+ if (written < zeros_this_time) /* just in case */
+ {
+ set_errno (ENOSPC);
+ /* This might fail, but it's the best we can hope for */
+ SetFilePointer (get_output_handle (), current_position, NULL,
+ FILE_BEGIN);
+ return -1;
+ }
+ number_of_zeros_to_write -= written;
+ }
+ }
+ }
+ }
+
+ if (get_w_binary ())
+ {
+ debug_printf ("binary write");
+ res = raw_write (ptr, len);
+ }
+ else
+ {
+ debug_printf ("text write");
+ /* This is the Microsoft/DJGPP way. Still not ideal, but it's
+ compatible.
+ Modified slightly by CGF 2000-10-07 */
+
+ int left_in_data = len;
+ char *data = (char *)ptr;
+ res = 0;
+
+ while (left_in_data > 0)
+ {
+ char buf[CHUNK_SIZE + 1], *buf_ptr = buf;
+ int left_in_buf = CHUNK_SIZE;
+
+ while (left_in_buf > 0 && left_in_data > 0)
+ {
+ char ch = *data++;
+ if (ch == '\n')
+ {
+ *buf_ptr++ = '\r';
+ left_in_buf--;
+ }
+ *buf_ptr++ = ch;
+ left_in_buf--;
+ left_in_data--;
+ if (left_in_data > 0 && ch == '\r' && *data == '\n')
+ {
+ *buf_ptr++ = *data++;
+ left_in_buf--;
+ left_in_data--;
+ }
+ }
+
+ /* We've got a buffer-full, or we're out of data. Write it out */
+ int nbytes;
+ int want = buf_ptr - buf;
+ if ((nbytes = raw_write (buf, want)) == want)
+ {
+ /* Keep track of how much written not counting additional \r's */
+ res = data - (char *)ptr;
+ continue;
+ }
+
+ if (nbytes == -1)
+ res = -1; /* Error */
+ else
+ res += nbytes; /* Partial write. Return total bytes written. */
+ break; /* All done */
+ }
+ }
+
+ debug_printf ("%d = write (%p, %d)", res, ptr, len);
+ return res;
+}
+
+ssize_t
+fhandler_base::readv (const struct iovec *const iov, const int iovcnt,
+ ssize_t tot)
+{
+ assert (iov);
+ assert (iovcnt >= 1);
+
+ size_t len = tot;
+ if (iovcnt == 1)
+ {
+ len = iov->iov_len;
+ read (iov->iov_base, len);
+ return len;
+ }
+
+ if (tot == -1) // i.e. if not pre-calculated by the caller.
+ {
+ len = 0;
+ const struct iovec *iovptr = iov + iovcnt;
+ do
+ {
+ iovptr -= 1;
+ len += iovptr->iov_len;
+ }
+ while (iovptr != iov);
+ }
+
+ assert (tot >= 0);
+
+ if (!len)
+ return 0;
+
+ char *buf = (char *) alloca (tot);
+
+ if (!buf)
+ {
+ set_errno (ENOMEM);
+ return -1;
+ }
+
+ read (buf, len);
+ ssize_t nbytes = (ssize_t) len;
+
+ const struct iovec *iovptr = iov;
+
+ while (nbytes > 0)
+ {
+ const int frag = min (nbytes, (ssize_t) iovptr->iov_len);
+ memcpy (iovptr->iov_base, buf, frag);
+ buf += frag;
+ iovptr += 1;
+ nbytes -= frag;
+ }
+
+ return len;
+}
+
+ssize_t
+fhandler_base::writev (const struct iovec *const iov, const int iovcnt,
+ ssize_t tot)
+{
+ assert (iov);
+ assert (iovcnt >= 1);
+
+ if (iovcnt == 1)
+ return write (iov->iov_base, iov->iov_len);
+
+ if (tot == -1) // i.e. if not pre-calculated by the caller.
+ {
+ tot = 0;
+ const struct iovec *iovptr = iov + iovcnt;
+ do
+ {
+ iovptr -= 1;
+ tot += iovptr->iov_len;
+ }
+ while (iovptr != iov);
+ }
+
+ assert (tot >= 0);
+
+ if (tot == 0)
+ return 0;
+
+ char *const buf = (char *) alloca (tot);
+
+ if (!buf)
+ {
+ set_errno (ENOMEM);
+ return -1;
+ }
+
+ char *bufptr = buf;
+ const struct iovec *iovptr = iov;
+ int nbytes = tot;
+
+ while (nbytes != 0)
+ {
+ const int frag = min (nbytes, (ssize_t) iovptr->iov_len);
+ memcpy (bufptr, iovptr->iov_base, frag);
+ bufptr += frag;
+ iovptr += 1;
+ nbytes -= frag;
+ }
+
+ return write (buf, tot);
+}
+
+_off64_t
+fhandler_base::lseek (_off64_t offset, int whence)
+{
+ _off64_t res;
+
+ /* 9x/Me doesn't support 64bit offsets. We trap that here and return
+ EINVAL. It doesn't make sense to simulate bigger offsets by a
+ SetFilePointer sequence since FAT and FAT32 don't support file
+ size >= 4GB anyway. */
+ if (!wincap.has_64bit_file_access ()
+ && (offset < LONG_MIN || offset > LONG_MAX))
+ {
+ debug_printf ("Win9x, offset not 32 bit.");
+ set_errno (EINVAL);
+ return (_off64_t)-1;
+ }
+
+ /* Seeks on text files is tough, we rewind and read till we get to the
+ right place. */
+
+ if (whence != SEEK_CUR || offset != 0)
+ {
+ if (whence == SEEK_CUR)
+ offset -= ralen - raixget;
+ set_readahead_valid (0);
+ }
+
+ debug_printf ("lseek (%s, %D, %d)", get_name (), offset, whence);
+
+ DWORD win32_whence = whence == SEEK_SET ? FILE_BEGIN
+ : (whence == SEEK_CUR ? FILE_CURRENT : FILE_END);
+
+ LONG off_low = ((__uint64_t) offset) & UINT32_MAX;
+ LONG *poff_high, off_high;
+ if (!wincap.has_64bit_file_access ())
+ poff_high = NULL;
+ else
+ {
+ off_high = ((__uint64_t) offset) >> 32LL;
+ poff_high = &off_high;
+ }
+
+ debug_printf ("setting file pointer to %u (high), %u (low)", off_high, off_low);
+ res = SetFilePointer (get_handle (), off_low, poff_high, win32_whence);
+ if (res == INVALID_SET_FILE_POINTER && GetLastError ())
+ {
+ __seterrno ();
+ }
+ else
+ {
+ if (poff_high)
+ res += (_off64_t) *poff_high << 32;
+
+ /* When next we write(), we will check to see if *this* seek went beyond
+ the end of the file, and back-seek and fill with zeros if so - DJ */
+ set_did_lseek ();
+
+ /* If this was a SEEK_CUR with offset 0, we still might have
+ readahead that we have to take into account when calculating
+ the actual position for the application. */
+ if (whence == SEEK_CUR)
+ res -= ralen - raixget;
+ }
+
+ return res;
+}
+
+int
+fhandler_base::close ()
+{
+ int res = -1;
+
+ syscall_printf ("closing '%s' handle %p", get_name (), get_handle ());
+ if (get_nohandle () || CloseHandle (get_handle ()))
+ res = 0;
+ else
+ {
+ paranoid_printf ("CloseHandle (%d <%s>) failed", get_handle (),
+ get_name ());
+
+ __seterrno ();
+ }
+ return res;
+}
+
+int
+fhandler_base::ioctl (unsigned int cmd, void *buf)
+{
+ int res;
+
+ switch (cmd)
+ {
+ case FIONBIO:
+ set_nonblocking (*(int *) buf);
+ res = 0;
+ break;
+ default:
+ set_errno (EINVAL);
+ res = -1;
+ break;
+ }
+
+ syscall_printf ("%d = ioctl (%x, %p)", res, cmd, buf);
+ return res;
+}
+
+int
+fhandler_base::lock (int, struct __flock64 *)
+{
+ set_errno (EINVAL);
+ return -1;
+}
+
+extern "C" char * __stdcall
+rootdir (char *full_path)
+{
+ /* Possible choices:
+ * d:... -> d:/
+ * \\server\share... -> \\server\share\
+ * else current drive.
+ */
+ char *root = full_path;
+
+ if (full_path[1] == ':')
+ strcpy (full_path + 2, "\\");
+ else if (full_path[0] == '\\' && full_path[1] == '\\')
+ {
+ char *cp = full_path + 2;
+ while (*cp && *cp != '\\')
+ cp++;
+ if (!*cp)
+ {
+ set_errno (ENOTDIR);
+ return NULL;
+ }
+ cp++;
+ while (*cp && *cp != '\\')
+ cp++;
+ strcpy (cp, "\\");
+ }
+ else
+ root = NULL;
+
+ return root;
+}
+
+int __stdcall
+fhandler_base::fstat (struct __stat64 *buf)
+{
+ debug_printf ("here");
+
+ if (is_fs_special ())
+ return fstat_fs (buf);
+
+ switch (get_device ())
+ {
+ case FH_PIPE:
+ buf->st_mode = S_IFIFO | STD_RBITS | STD_WBITS | S_IWGRP | S_IWOTH;
+ break;
+ case FH_PIPEW:
+ buf->st_mode = S_IFIFO | STD_WBITS | S_IWGRP | S_IWOTH;
+ break;
+ case FH_PIPER:
+ buf->st_mode = S_IFIFO | STD_RBITS;
+ break;
+ default:
+ buf->st_mode = S_IFCHR | STD_RBITS | STD_WBITS | S_IWGRP | S_IWOTH;
+ break;
+ }
+
+ buf->st_uid = geteuid32 ();
+ buf->st_gid = getegid32 ();
+ buf->st_nlink = 1;
+ buf->st_blksize = S_BLKSIZE;
+ time_as_timestruc_t (&buf->st_ctim);
+ buf->st_atim = buf->st_mtim = buf->st_ctim;
+ return 0;
+}
+
+void
+fhandler_base::init (HANDLE f, DWORD a, mode_t bin)
+{
+ set_io_handle (f);
+ access = a;
+ a &= GENERIC_READ | GENERIC_WRITE;
+ int flags = 0;
+ if (a == GENERIC_READ)
+ flags = O_RDONLY;
+ else if (a == GENERIC_WRITE)
+ flags = O_WRONLY;
+ else if (a == (GENERIC_READ | GENERIC_WRITE))
+ flags = O_RDWR;
+ set_flags (flags | bin);
+ set_open_status ();
+ debug_printf ("created new fhandler_base for handle %p, bin %d", f, get_r_binary ());
+}
+
+void
+fhandler_base::dump (void)
+{
+ paranoid_printf ("here");
+}
+
+int
+fhandler_base::dup (fhandler_base *child)
+{
+ debug_printf ("in fhandler_base dup");
+
+ HANDLE nh;
+ if (!get_nohandle ())
+ {
+ if (!DuplicateHandle (hMainProc, get_handle (), hMainProc, &nh, 0, TRUE,
+ DUPLICATE_SAME_ACCESS))
+ {
+ system_printf ("dup(%s) failed, handle %x, %E",
+ get_name (), get_handle ());
+ __seterrno ();
+ return -1;
+ }
+
+ child->set_io_handle (nh);
+ }
+ return 0;
+}
+
+int fhandler_base::fcntl (int cmd, void *arg)
+{
+ int res;
+
+ switch (cmd)
+ {
+ case F_GETFD:
+ res = get_close_on_exec () ? FD_CLOEXEC : 0;
+ break;
+ case F_SETFD:
+ set_close_on_exec ((int) arg);
+ res = 0;
+ break;
+ case F_GETFL:
+ res = get_flags ();
+ debug_printf ("GETFL: %d", res);
+ break;
+ case F_SETFL:
+ {
+ /*
+ * Only O_APPEND, O_ASYNC and O_NONBLOCK/O_NDELAY are allowed.
+ * Each other flag will be ignored.
+ * Since O_ASYNC isn't defined in fcntl.h it's currently
+ * ignored as well.
+ */
+ const int allowed_flags = O_APPEND | O_NONBLOCK_MASK;
+ int new_flags = (int) arg & allowed_flags;
+ /* Carefully test for the O_NONBLOCK or deprecated OLD_O_NDELAY flag.
+ Set only the flag that has been passed in. If both are set, just
+ record O_NONBLOCK. */
+ if ((new_flags & OLD_O_NDELAY) && (new_flags & O_NONBLOCK))
+ new_flags &= ~OLD_O_NDELAY;
+ set_flags ((get_flags () & ~allowed_flags) | new_flags);
+ }
+ res = 0;
+ break;
+ case F_GETLK:
+ case F_SETLK:
+ case F_SETLKW:
+ res = lock (cmd, (struct __flock64 *) arg);
+ break;
+ default:
+ set_errno (EINVAL);
+ res = -1;
+ break;
+ }
+ return res;
+}
+
+/* Base terminal handlers. These just return errors. */
+
+int
+fhandler_base::tcflush (int)
+{
+ set_errno (ENOTTY);
+ return -1;
+}
+
+int
+fhandler_base::tcsendbreak (int)
+{
+ set_errno (ENOTTY);
+ return -1;
+}
+
+int
+fhandler_base::tcdrain (void)
+{
+ set_errno (ENOTTY);
+ return -1;
+}
+
+int
+fhandler_base::tcflow (int)
+{
+ set_errno (ENOTTY);
+ return -1;
+}
+
+int
+fhandler_base::tcsetattr (int, const struct termios *)
+{
+ set_errno (ENOTTY);
+ return -1;
+}
+
+int
+fhandler_base::tcgetattr (struct termios *)
+{
+ set_errno (ENOTTY);
+ return -1;
+}
+
+int
+fhandler_base::tcsetpgrp (const pid_t)
+{
+ set_errno (ENOTTY);
+ return -1;
+}
+
+int
+fhandler_base::tcgetpgrp (void)
+{
+ set_errno (ENOTTY);
+ return -1;
+}
+
+void
+fhandler_base::operator delete (void *p)
+{
+ cfree (p);
+ return;
+}
+
+/* Normal I/O constructor */
+fhandler_base::fhandler_base ():
+ status (0),
+ access (0),
+ io_handle (NULL),
+ namehash (0),
+ openflags (0),
+ rabuf (NULL),
+ ralen (0),
+ raixget (0),
+ raixput (0),
+ rabuflen (0),
+ open_status (0),
+ fs_flags (0),
+ read_state (NULL),
+ archetype (NULL),
+ usecount (0)
+{
+}
+
+/* Normal I/O destructor */
+fhandler_base::~fhandler_base (void)
+{
+ if (!pc.normalized_path_size && pc.normalized_path)
+ cfree (pc.normalized_path);
+ if (rabuf)
+ free (rabuf);
+}
+
+/**********************************************************************/
+/* /dev/null */
+
+fhandler_dev_null::fhandler_dev_null () :
+ fhandler_base ()
+{
+}
+
+void
+fhandler_dev_null::dump (void)
+{
+ paranoid_printf ("here");
+}
+
+void
+fhandler_base::set_inheritance (HANDLE &h, int not_inheriting)
+{
+#ifdef DEBUGGING_AND_FDS_PROTECTED
+ HANDLE oh = h;
+#endif
+ /* Note that we could use SetHandleInformation here but it is not available
+ on all platforms. Test cases seem to indicate that using DuplicateHandle
+ in this fashion does not actually close the original handle, which is
+ what we want. If this changes in the future, we may be forced to use
+ SetHandleInformation on newer OS's */
+ if (!DuplicateHandle (hMainProc, h, hMainProc, &h, 0, !not_inheriting,
+ DUPLICATE_SAME_ACCESS | DUPLICATE_CLOSE_SOURCE))
+ debug_printf ("DuplicateHandle failed, %E");
+#ifdef DEBUGGING_AND_FDS_PROTECTED
+ if (h)
+ setclexec (oh, h, not_inheriting);
+#endif
+}
+
+void
+fhandler_base::fork_fixup (HANDLE parent, HANDLE &h, const char *name)
+{
+ if (/* !is_socket () && */ !get_close_on_exec ())
+ debug_printf ("handle %p already opened", h);
+ else if (!DuplicateHandle (parent, h, hMainProc, &h, 0, !get_close_on_exec (),
+ DUPLICATE_SAME_ACCESS))
+ system_printf ("%s - %E, handle %s<%p>", get_name (), name, h);
+#ifdef DEBUGGING_AND_FDS_PROTECTED
+ else if (get_close_on_exec ())
+ ProtectHandle (h); /* would have to be fancier than this */
+ else
+ /* ProtectHandleINH (h) */; /* Should already be protected */
+#endif
+}
+
+void
+fhandler_base::set_close_on_exec (int val)
+{
+ if (!get_nohandle ())
+ set_inheritance (io_handle, val);
+ set_close_on_exec_flag (val);
+ debug_printf ("set close_on_exec for %s to %d", get_name (), val);
+}
+
+void
+fhandler_base::fixup_after_fork (HANDLE parent)
+{
+ debug_printf ("inheriting '%s' from parent", get_name ());
+ if (!get_nohandle ())
+ fork_fixup (parent, io_handle, "io_handle");
+}
+
+bool
+fhandler_base::is_nonblocking ()
+{
+ return (openflags & O_NONBLOCK_MASK) != 0;
+}
+
+void
+fhandler_base::set_nonblocking (int yes)
+{
+ int current = openflags & O_NONBLOCK_MASK;
+ int new_flags = yes ? (!current ? O_NONBLOCK : current) : 0;
+ openflags = (openflags & ~O_NONBLOCK_MASK) | new_flags;
+}
+
+DIR *
+fhandler_base::opendir ()
+{
+ set_errno (ENOTDIR);
+ return NULL;
+}
+
+struct dirent *
+fhandler_base::readdir (DIR *)
+{
+ set_errno (ENOTDIR);
+ return NULL;
+}
+
+_off64_t
+fhandler_base::telldir (DIR *)
+{
+ set_errno (ENOTDIR);
+ return -1;
+}
+
+void
+fhandler_base::seekdir (DIR *, _off64_t)
+{
+ set_errno (ENOTDIR);
+ return;
+}
+
+void
+fhandler_base::rewinddir (DIR *)
+{
+ set_errno (ENOTDIR);
+ return;
+}
+
+int
+fhandler_base::closedir (DIR *)
+{
+ set_errno (ENOTDIR);
+ return -1;
+}
diff --git a/winsup/cygwin/fhandler_raw.cc b/winsup/cygwin/fhandler_raw.cc
new file mode 100644
index 00000000000..eb721a7e859
--- /dev/null
+++ b/winsup/cygwin/fhandler_raw.cc
@@ -0,0 +1,587 @@
+/* fhandler_raw.cc. See fhandler.h for a description of the fhandler classes.
+
+ Copyright 1999, 2000, 2001, 2002 Red Hat, Inc.
+
+ This file is part of Cygwin.
+
+ This software is a copyrighted work licensed under the terms of the
+ Cygwin license. Please consult the file "CYGWIN_LICENSE" for
+ details. */
+
+#include "winsup.h"
+#include <sys/termios.h>
+#include <unistd.h>
+
+#include <cygwin/rdevio.h>
+#include <sys/mtio.h>
+#include <ntdef.h>
+#include "cygerrno.h"
+#include "perprocess.h"
+#include "security.h"
+#include "path.h"
+#include "fhandler.h"
+#include "dtable.h"
+#include "cygheap.h"
+#include "ntdll.h"
+
+/* static wrapper functions to hide the effect of media changes and
+ bus resets which occurs after a new media is inserted. This is
+ also related to the used tape device. */
+
+static BOOL write_file (HANDLE fh, const void *buf, DWORD to_write,
+ DWORD *written, int *err)
+{
+ BOOL ret;
+
+ *err = 0;
+ if (!(ret = WriteFile (fh, buf, to_write, written, 0)))
+ {
+ if ((*err = GetLastError ()) == ERROR_MEDIA_CHANGED
+ || *err == ERROR_BUS_RESET)
+ {
+ *err = 0;
+ if (!(ret = WriteFile (fh, buf, to_write, written, 0)))
+ *err = GetLastError ();
+ }
+ }
+ syscall_printf ("%d (err %d) = WriteFile (%d, %d, write %d, written %d, 0)",
+ ret, *err, fh, buf, to_write, *written);
+ return ret;
+}
+
+static BOOL read_file (HANDLE fh, void *buf, DWORD to_read,
+ DWORD *read, int *err)
+{
+ BOOL ret;
+
+ *err = 0;
+ if (!(ret = ReadFile (fh, buf, to_read, read, 0)))
+ {
+ if ((*err = GetLastError ()) == ERROR_MEDIA_CHANGED
+ || *err == ERROR_BUS_RESET)
+ {
+ *err = 0;
+ if (!(ret = ReadFile (fh, buf, to_read, read, 0)))
+ *err = GetLastError ();
+ }
+ }
+ syscall_printf ("%d (err %d) = ReadFile (%d, %d, to_read %d, read %d, 0)",
+ ret, *err, fh, buf, to_read, *read);
+ return ret;
+}
+
+/**********************************************************************/
+/* fhandler_dev_raw */
+
+void
+fhandler_dev_raw::clear (void)
+{
+ devbuf = NULL;
+ devbufsiz = 0;
+ devbufstart = 0;
+ devbufend = 0;
+ eom_detected = 0;
+ eof_detected = 0;
+ lastblk_to_read = 0;
+ varblkop = 0;
+}
+
+int
+fhandler_dev_raw::writebuf (void)
+{
+ DWORD written;
+ int ret = 0;
+
+ if (is_writing && devbuf && devbufend)
+ {
+ DWORD to_write;
+ int ret = 0;
+
+ memset (devbuf + devbufend, 0, devbufsiz - devbufend);
+ if (get_major () != DEV_TAPE_MAJOR)
+ to_write = ((devbufend - 1) / 512 + 1) * 512;
+ else if (varblkop)
+ to_write = devbufend;
+ else
+ to_write = devbufsiz;
+ if (!write_file (get_handle (), devbuf, to_write, &written, &ret)
+ && is_eom (ret))
+ eom_detected = 1;
+ if (written)
+ has_written = 1;
+ devbufstart = devbufend = 0;
+ }
+ is_writing = 0;
+ return ret;
+}
+
+fhandler_dev_raw::fhandler_dev_raw ()
+ : fhandler_base ()
+{
+ clear ();
+ set_need_fork_fixup ();
+}
+
+fhandler_dev_raw::~fhandler_dev_raw (void)
+{
+ if (devbufsiz > 1L)
+ delete [] devbuf;
+ clear ();
+}
+
+int __stdcall
+fhandler_dev_raw::fstat (struct __stat64 *buf)
+{
+ debug_printf ("here");
+
+ if (get_major () == DEV_TAPE_MAJOR)
+ buf->st_mode = S_IFCHR | STD_RBITS | STD_WBITS | S_IWGRP | S_IWOTH;
+ else
+ buf->st_mode = S_IFBLK | STD_RBITS | STD_WBITS | S_IWGRP | S_IWOTH;
+
+ buf->st_uid = geteuid32 ();
+ buf->st_gid = getegid32 ();
+ buf->st_nlink = 1;
+ buf->st_blksize = S_BLKSIZE;
+ time_as_timestruc_t (&buf->st_ctim);
+ buf->st_atim = buf->st_mtim = buf->st_ctim;
+ return 0;
+}
+
+int
+fhandler_dev_raw::open (int flags, mode_t)
+{
+ if (!wincap.has_raw_devices ())
+ {
+ set_errno (ENOENT);
+ debug_printf ("%s is accessible under NT/W2K only", get_win32_name ());
+ return 0;
+ }
+
+ /* Check for illegal flags. */
+ if (flags & (O_APPEND | O_EXCL))
+ {
+ set_errno (EINVAL);
+ return 0;
+ }
+
+ /* Always open a raw device existing and binary. */
+ flags &= ~(O_CREAT | O_TRUNC);
+ flags |= O_BINARY;
+
+ DWORD access = GENERIC_READ | SYNCHRONIZE;
+ if (get_major () == DEV_TAPE_MAJOR
+ || (flags & (O_RDONLY | O_WRONLY | O_RDWR)) == O_WRONLY
+ || (flags & (O_RDONLY | O_WRONLY | O_RDWR)) == O_RDWR)
+ access |= GENERIC_WRITE;
+
+ extern void str2buf2uni (UNICODE_STRING &, WCHAR *, const char *);
+ UNICODE_STRING dev;
+ WCHAR devname[CYG_MAX_PATH + 1];
+ str2buf2uni (dev, devname, get_win32_name ());
+ OBJECT_ATTRIBUTES attr;
+ InitializeObjectAttributes (&attr, &dev, OBJ_CASE_INSENSITIVE, NULL, NULL);
+
+ HANDLE h;
+ IO_STATUS_BLOCK io;
+ NTSTATUS status = NtOpenFile (&h, access, &attr, &io, wincap.shared (),
+ FILE_SYNCHRONOUS_IO_NONALERT);
+ if (!NT_SUCCESS (status))
+ {
+ __seterrno_from_win_error (RtlNtStatusToDosError (status));
+ return 0;
+ }
+
+ set_io_handle (h);
+ set_flags ((flags & ~O_TEXT) | O_BINARY);
+
+ if (devbufsiz > 1L)
+ devbuf = new char [devbufsiz];
+
+ return 1;
+}
+
+int
+fhandler_dev_raw::close (void)
+{
+ return fhandler_base::close ();
+}
+
+void
+fhandler_dev_raw::raw_read (void *ptr, size_t& ulen)
+{
+ DWORD bytes_read = 0;
+ DWORD read2;
+ DWORD bytes_to_read;
+ int ret;
+ size_t len = ulen;
+ char *tgt;
+
+ /* In mode O_RDWR the buffer has to be written to device first */
+ ret = writebuf ();
+ if (ret)
+ {
+ if (is_eom (ret))
+ set_errno (ENOSPC);
+ else
+ __seterrno ();
+ goto err;
+ }
+
+ /* Checking a previous end of file */
+ if (eof_detected && !lastblk_to_read)
+ {
+ eof_detected = 0;
+ ulen = 0;
+ return;
+ }
+
+ /* Checking a previous end of media */
+ if (eom_detected && !lastblk_to_read)
+ {
+ set_errno (ENOSPC);
+ goto err;
+ }
+
+ if (devbuf)
+ {
+ while (len > 0)
+ {
+ if (devbufstart < devbufend)
+ {
+ bytes_to_read = min (len, devbufend - devbufstart);
+ debug_printf ("read %d bytes from buffer (rest %d)",
+ bytes_to_read, devbufstart - devbufend);
+ memcpy (ptr, devbuf + devbufstart, bytes_to_read);
+ len -= bytes_to_read;
+ ptr = (void *) ((char *) ptr + bytes_to_read);
+ bytes_read += bytes_to_read;
+ devbufstart += bytes_to_read;
+
+ if (lastblk_to_read)
+ {
+ lastblk_to_read = 0;
+ break;
+ }
+ }
+ if (len > 0)
+ {
+ if (!varblkop && len >= devbufsiz)
+ {
+ if (get_major () == DEV_TAPE_MAJOR)
+ bytes_to_read = (len / devbufsiz) * devbufsiz;
+ else
+ bytes_to_read = (len / 512) * 512;
+ tgt = (char *) ptr;
+ debug_printf ("read %d bytes direct from file",bytes_to_read);
+ }
+ else
+ {
+ bytes_to_read = devbufsiz;
+ tgt = devbuf;
+ if (varblkop)
+ debug_printf ("read variable bytes from file into buffer");
+ else
+ debug_printf ("read %d bytes from file into buffer",
+ bytes_to_read);
+ }
+ if (!read_file (get_handle (), tgt, bytes_to_read, &read2, &ret))
+ {
+ if (!is_eof (ret) && !is_eom (ret))
+ {
+ __seterrno ();
+ goto err;
+ }
+
+ if (is_eof (ret))
+ eof_detected = 1;
+ else
+ eom_detected = 1;
+
+ if (!read2)
+ {
+ if (!bytes_read && is_eom (ret))
+ {
+ debug_printf ("return -1, set errno to ENOSPC");
+ set_errno (ENOSPC);
+ goto err;
+ }
+ break;
+ }
+ lastblk_to_read = 1;
+ }
+ if (! read2)
+ break;
+ if (tgt == devbuf)
+ {
+ devbufstart = 0;
+ devbufend = read2;
+ }
+ else
+ {
+ len -= bytes_to_read;
+ ptr = (void *) ((char *) ptr + bytes_to_read);
+ bytes_read += bytes_to_read;
+ }
+ }
+ }
+ }
+ else if (!read_file (get_handle (), ptr, len, &bytes_read, &ret))
+ {
+ if (!is_eof (ret) && !is_eom (ret))
+ {
+ __seterrno ();
+ goto err;
+ }
+ if (bytes_read)
+ {
+ if (is_eof (ret))
+ eof_detected = 1;
+ else
+ eom_detected = 1;
+ }
+ else if (is_eom (ret))
+ {
+ debug_printf ("return -1, set errno to ENOSPC");
+ set_errno (ENOSPC);
+ goto err;
+ }
+ }
+
+ ulen = (size_t) bytes_read;
+ return;
+
+err:
+ ulen = (size_t) -1;
+ return;
+}
+
+int
+fhandler_dev_raw::raw_write (const void *ptr, size_t len)
+{
+ DWORD bytes_written = 0;
+ DWORD bytes_to_write;
+ DWORD written;
+ char *p = (char *) ptr;
+ char *tgt;
+ int ret;
+
+ /* Checking a previous end of media on tape */
+ if (eom_detected)
+ {
+ set_errno (ENOSPC);
+ return -1;
+ }
+
+ if (!is_writing)
+ {
+ devbufend = devbufstart;
+ devbufstart = 0;
+ }
+ is_writing = 1;
+
+ if (devbuf)
+ {
+ while (len > 0)
+ {
+ if (!varblkop &&
+ (len < devbufsiz || devbufend > 0) && devbufend < devbufsiz)
+ {
+ bytes_to_write = min (len, devbufsiz - devbufend);
+ memcpy (devbuf + devbufend, p, bytes_to_write);
+ bytes_written += bytes_to_write;
+ devbufend += bytes_to_write;
+ p += bytes_to_write;
+ len -= bytes_to_write;
+ }
+ else
+ {
+ if (varblkop)
+ {
+ bytes_to_write = len;
+ tgt = p;
+ }
+ else if (devbufend == devbufsiz)
+ {
+ bytes_to_write = devbufsiz;
+ tgt = devbuf;
+ }
+ else
+ {
+ bytes_to_write = (len / devbufsiz) * devbufsiz;
+ tgt = p;
+ }
+
+ ret = 0;
+ write_file (get_handle (), tgt, bytes_to_write, &written, &ret);
+ if (written)
+ has_written = 1;
+
+ if (ret)
+ {
+ if (!is_eom (ret))
+ {
+ __seterrno ();
+ return -1;
+ }
+
+ eom_detected = 1;
+
+ if (!written && !bytes_written)
+ {
+ set_errno (ENOSPC);
+ return -1;
+ }
+
+ if (tgt == p)
+ bytes_written += written;
+
+ break; // from while (len > 0)
+ }
+
+ if (tgt == devbuf)
+ {
+ if (written != devbufsiz)
+ memmove (devbuf, devbuf + written, devbufsiz - written);
+ devbufend = devbufsiz - written;
+ }
+ else
+ {
+ len -= written;
+ p += written;
+ bytes_written += written;
+ }
+ }
+ }
+ }
+ else if (len > 0)
+ {
+ if (!write_file (get_handle (), ptr, len, &bytes_written, &ret))
+ {
+ if (bytes_written)
+ has_written = 1;
+ if (!is_eom (ret))
+ {
+ __seterrno ();
+ return -1;
+ }
+ eom_detected = 1;
+ if (!bytes_written)
+ {
+ set_errno (ENOSPC);
+ return -1;
+ }
+ }
+ has_written = 1;
+ }
+ return bytes_written;
+}
+
+int
+fhandler_dev_raw::dup (fhandler_base *child)
+{
+ int ret = fhandler_base::dup (child);
+
+ if (! ret)
+ {
+ fhandler_dev_raw *fhc = (fhandler_dev_raw *) child;
+
+ fhc->devbufsiz = devbufsiz;
+ if (devbufsiz > 1L)
+ fhc->devbuf = new char [devbufsiz];
+ fhc->devbufstart = 0;
+ fhc->devbufend = 0;
+ fhc->eom_detected = eom_detected;
+ fhc->eof_detected = eof_detected;
+ fhc->lastblk_to_read = 0;
+ fhc->varblkop = varblkop;
+ }
+ return ret;
+}
+
+void
+fhandler_dev_raw::fixup_after_fork (HANDLE)
+{
+ devbufstart = 0;
+ devbufend = 0;
+ lastblk_to_read = 0;
+}
+
+void
+fhandler_dev_raw::fixup_after_exec (HANDLE)
+{
+ if (devbufsiz > 1L)
+ devbuf = new char [devbufsiz];
+ devbufstart = 0;
+ devbufend = 0;
+ lastblk_to_read = 0;
+}
+
+int
+fhandler_dev_raw::ioctl (unsigned int cmd, void *buf)
+{
+ int ret = NO_ERROR;
+
+ if (cmd == RDIOCDOP)
+ {
+ struct rdop *op = (struct rdop *) buf;
+
+ if (!op)
+ ret = ERROR_INVALID_PARAMETER;
+ else
+ switch (op->rd_op)
+ {
+ case RDSETBLK:
+ if (get_major () == DEV_TAPE_MAJOR)
+ {
+ struct mtop mop;
+
+ mop.mt_op = MTSETBLK;
+ mop.mt_count = op->rd_parm;
+ ret = ioctl (MTIOCTOP, &mop);
+ }
+ else if (op->rd_parm % 512)
+ ret = ERROR_INVALID_PARAMETER;
+ else if (devbuf && op->rd_parm < devbufend - devbufstart)
+ ret = ERROR_INVALID_PARAMETER;
+ else if (!devbuf || op->rd_parm != devbufsiz)
+ {
+ char *buf = new char [op->rd_parm];
+ if (devbufsiz > 1L)
+ {
+ memcpy (buf, devbuf + devbufstart, devbufend - devbufstart);
+ devbufend -= devbufstart;
+ delete [] devbuf;
+ }
+ else
+ devbufend = 0;
+
+ devbufstart = 0;
+ devbuf = buf;
+ devbufsiz = op->rd_parm;
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ else if (cmd == RDIOCGET)
+ {
+ struct rdget *get = (struct rdget *) buf;
+
+ if (!get)
+ ret = ERROR_INVALID_PARAMETER;
+ else
+ get->bufsiz = devbufsiz ? devbufsiz : 1L;
+ }
+ else
+ return fhandler_base::ioctl (cmd, buf);
+
+ if (ret != NO_ERROR)
+ {
+ SetLastError (ret);
+ __seterrno ();
+ return -1;
+ }
+ return 0;
+}