1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
---------------------
HERCULES TODO IDEAS
---------------------
(in absolutely *NO* particular order)
BUG? 'cmdtgt' support needs re-worked to prevent e.g. DIAG8 commands from
being erroneously sent to (processed by) the guest instead of by Hercules.
Issue was raised by Martin Trbner [Martin@pi-sysprog.de] on the main Herc
list on 2/12/2010: setting 'cmdtgt', while handy in regards to letting you
issue panel commands directly to the guest without having to precede the
command with a '.', also unfortunately causes "hypervisor" commands (i.e.
Hercules commands) issued via DIAG8 to be processed as GUEST commands and
not Hercules (hypervisor) commands! Oops! (see "panel_command" function
in 'cmdtab.c' near line 390 in the "#ifdef OPTION_CMDTGT" block) The fix
MIGHT be to have an "internal" "panel_command" function that all of our
internal functions can use instead, which would set a flag to FORCE the
'cmdtab.c' logic to treat that specific call as "cmdtgt herc" instead?
Also provide separate zip file containing .PDB files for download for
Windows snapshots (but especially for final official Windows releases!)
so that on the rare occasion that Hercules ever does crash we're able
to determine exactly where the crash occurred. We cannot do that without
the .PDB files!
Design a more platform generic cpu features runtime check that checks for
the availability of certain processor features and then points some sysblk
function-pointers to the correct function. That way we can exploit certain
features if they're available. Of course going through a function pointer
may be too inefficient depending on where the function is being used, but
depending on what the function (feature) provides it may end up being an
overall gain than a loss.
E.g. (WIN64):
init_hostinfo:
BOOL WINAPI IsProcessorFeaturePresent( PF_COMPARE_EXCHANGE128 );
_INTEGRAL_MAX_BITS (machdep.h ==> _InterlockedCompareExchange128 ==> cmpxchg16b)
Support multiple command-line commands (i.e. cmdsep character).
Design a way for users to define command synonyms. (dynmod?)
Document all DIAGNOSE instruction support
Trace (instruction and/or device) to file instead of to console.
(Then new utility to format/display it offline).
Windows block device support (i.e. ability to define an entire drive
(Windows drive letter / partition) as a Hercules dasd)
BUG: instruction tracing: control registers not being shown for some
instructions which use/modify them. We need a better way to determine
if FPRs/CRs/ARs should be traced or not. (New bits in INSTR table?)
(see "display_inst_regs" function in "hscmisc.c")
Full 2540 reader/punch support! mode=1 (normal), mode=2 (binary/"card image")
hopper selection, etc.
Ability to specify highlighting for console messages via regex pattern.
Add MSVC support for 'MULTI_BYTE_ASSIST' (cpu.c "set_jump_pointers")
ISSUE: there's the possibility for "socketpair" function to connect to some
other socket other than the pair's listening socket due to some other socket
on the host already listening for connections on INADDR_LOOPBACK. Fix is to
change the "socketpair" function to use a starting port# and SO_REUSEADDR
in a 'setsockopt' call and detect (HSO_errno == HSO_EADDRINUSE) return code
in its 'bind' call and auto-retry again using next port# (in a loop). Refer
to the "console_connection_handler" function for reference.
Custom (dynmod?) default Code Page support
DUMP command (Windows only) to create on-demand mini-dump.
Device or facility per Gerhard Postpischil's 9/20/2007 suggestion
that allows one to generate random "problems" (i/o errors, machine
checks, etc) for better software error recovery testing.
Add new "+rdbwd" 3590-device-only option to set flag in
TapeCommands3590 table to allow/accept Read Backward CCW.
(Requested by "herc_fun" = Charlie <os_390@hotmail.com>)
Add 'auto' option to MAXRATES command, to have it also issue
the command automatically at the end of the interval (so you
can monitor the rate).
"Generic-ize" the 'qd' command so that it works for ANY device
instead of just dasd devices. SenseId and RDC (Read Device
Characteristics) information is valuable information to display
for devices other than dasd! (e.g. tape devices for example)
Add SRF (Suspend/Resume) support for tape devices.
Add SRF (Suspend/Resume) support for CTC devices.
BCTC support for sysplex'ing via GRS.
Generic native host SCSI support (mostly for tape,
but having it opens other interesting possibilities)
QDIO/QETH (custom Herc device driver to directly update guest storage)
Large block support in channel subsystem (blocks > 64K ==> 2MB maximum?)
|