1 /* CMDTAB.H     (c) Copyright Roger Bowler, 1999-2009                */
2 /*              (c) Copyright "Fish" (David B. Trout), 2002-2009     */
3 /*              (c) Copyright Jan Jaeger, 2003-2009                  */
4 /*              Defines all Hercules Configuration statements        */
5 /*              and panel commands                                   */
6 
7 
8 //          command    type          function      one-line description...
9 // COMMAND ("sample"   PANEL,        sample_cmd,   "short help text", "long help text" )
10 // COMMAND ("sample2"  PANEL+CONFIG, sample2_cmd,  "short help text", NULL )  // No long help provided
11 // COMMAND ("sample3"  CONFIG,       sample3_cmd,  NULL, NULL ) // No help provided at all
12 // COMMAND ("sample4"  DISABLED,     sample4_cmd,  NULL, NULL ) // Disabled command - generally debugging only
13 
14 COMMAND ( "help",      PANEL,        HelpCommand,
15   "list all commands / command specific help",
16     "Enter \"help cmd\" where cmd is the command you need help\n"
17     "with. If the command has additional help text defined for it,\n"
18     "it will be displayed. Help text is usually limited to explaining\n"
19     "the format of the command and its various required or optional\n"
20     "parameters and is not meant to replace reading the documentation.\n" )
21 
22 COMMAND ( "?",         PANEL,        HelpCommand,  "alias for help\n", NULL )
23 
24 COMMAND ( "*",         CONFIG+PANEL, comment_cmd,  "Comment", NULL )
25 
26 COMMAND ( "#",         CONFIG+PANEL, comment_cmd,  "Comment\n", NULL )
27 
28 CMDABBR ( "message",1, PANEL,        msg_cmd,      "Display message on console a la VM", NULL )
29 CMDABBR ( "msg",1,     PANEL,        msg_cmd,      "Alias for message", NULL )
30 COMMAND ( "msgnoh",    PANEL,        msgnoh_cmd,   "Similar to \"message\" but no header\n", NULL )
31 
32 COMMAND ( "hst",       PANEL,        History,
33   "history of commands",
34     "Format: \"hst | hst n | hst l\". Command \"hst l\" or \"hst 0\" displays\n"
35     "list of last ten commands entered from command line\n"
36     "hst n, where n is a positive number retrieves n-th command from list\n"
37     "hst n, where n is a negative number retrieves n-th last command\n"
38     "hst without an argument works exactly as hst -1, it retrieves last command\n" )
39 
40 #if defined(OPTION_HAO)
41 COMMAND ( "hao",       PANEL,        hao_cmd,
42   "Hercules Automatic Operator",
43     "Format: \"hao  tgt <tgt> | cmd <cmd> | list <n> | del <n> | clear \".\n"
44     "  hao tgt <tgt> : define target rule (regex pattern) to react on\n"
45     "  hao cmd <cmd> : define command for previously defined rule\n"
46     "  hao list <n>  : list all rules/commands or only at index <n>\n"
47     "  hao del <n>   : delete the rule at index <n>\n"
48     "  hao clear     : delete all rules (stops automatic operator)\n" )
49 #endif /* defined(OPTION_HAO) */
50 
51 COMMAND ( "log",       PANEL,        log_cmd,      "direct log output", NULL )
52 
53 COMMAND ( "logopt",    PANEL+CONFIG, logopt_cmd,
54   "change log options",
55     "Format: \"logopt [timestamp | notimestamp]\".   Sets logging options.\n"
56     "\"timestamp\" inserts a time stamp in front of each log message.\n"
57     "\"notimestamp\" displays log messages with no time stamps.  Entering\n"
58     "the command with no arguments displays current logging options.\n"
59     "\"timestamp\" and \"notimestamp\" may be abbreviated as \"time\"\n"
60     "and \"notime\" respectively.\n"                                      )
61 
62 COMMAND ( "uptime",    PANEL,        uptime_cmd,   "display how long Hercules has been running\n", NULL )
63 COMMAND ( "version",   PANEL,        version_cmd,  "display version information\n", NULL )
64 
65 COMMAND ( "quit",      PANEL,        quit_cmd,     "terminate the emulator", NULL )
66 COMMAND ( "exit",      PANEL,        quit_cmd,     "(synonym for 'quit')\n", NULL )
67 
68 COMMAND ( "cpu",       PANEL,        cpu_cmd,
69   "Define target cpu for panel display and commands\n",
70     "Format: \"cpu hh\" where 'hh' is the hexadecimal cpu address of the cpu\n"
71     "in your multiprocessor configuration which you wish all panel commands\n"
72     "to apply to. For example, entering 'cpu 1F' followed by \"gpr\" will\n"
73     "display the general purpose registers for cpu 31 of your configuration.\n" )
74 
75 COMMAND ( "fcb",     PANEL,        fcb_cmd,
76   "display the current FCB (if only the printer is given)\n",
77    "Reset the fcb to the standard one \n"
78    "Load a fcb image \n" )
79 
80 COMMAND ( "start",     PANEL,        start_cmd,
81   "start CPU (or printer device if argument given)",
82     "Entering the 'start' command by itself simply starts a stopped\n"
83     "CPU, whereas 'start <devn>' presses the virtual start button on\n"
84     "printer device <devn>.\n"                                            )
85 
86 COMMAND ( "stop",      PANEL,        stop_cmd,
87   "stop CPU (or printer device if argument given)\n",
88     "Entering the 'stop' command by itself simply stops a running\n"
89     "CPU, whereas 'stop <devn>' presses the virtual stop button on\n"
90     "printer device <devn>, usually causing an INTREQ.\n"                 )
91 
92 COMMAND ( "startall",  PANEL,        startall_cmd, "start all CPU's", NULL )
93 
94 COMMAND ( "stopall",   PANEL,        stopall_cmd,  "stop all CPU's\n", NULL )
95 
96 #ifdef _FEATURE_CPU_RECONFIG
97 COMMAND ( "cf",        PANEL,        cf_cmd,
98   "Configure current CPU online or offline",
99     "Configure current CPU online or offline:  Format->  \"cf [on|off]\"\n"
100     "Where the 'current' CPU is defined as whatever CPU was defined as\n"
101     "the panel command target cpu via the \"cpu\" panel command. (Refer\n"
102     "to the 'cpu' command for further information) Entering 'cf' by itself\n"
103     "simply displays the current online/offline status of the current cpu.\n"
104     "Otherwise the current cpu is configured online or offline as specified.\n"
105     "Use 'cfall' to configure/display all CPUs online/offline state.\n"   )
106 
107 COMMAND ( "cfall",     PANEL,        cfall_cmd,    "configure all CPU's online or offline\n", NULL )
108 #endif
109 
110 #ifdef _FEATURE_SYSTEM_CONSOLE
111 COMMAND ( ".reply",    PANEL,        g_cmd,
112   "scp command",
113     "To reply to a system control program (i.e. guest operating system)\n"
114     "message that gets issued to the hercules console, prefix the reply\n"
115     "with a period.\n"                                                    )
116 
117 COMMAND ( "!message",  PANEL,        g_cmd,
118   "scp priority messsage",
119     "To enter a system control program (i.e. guest operating system)\n"
120     "priority command on the hercules console, simply prefix the command\n"
121     "with an exclamation point '!'.\n"                                    )
122 
123 COMMAND ( "ssd",       PANEL,        ssd_cmd,
124   "signal shutdown\n",
125     "The SSD (signal shutdown) command signals an imminent hypervisor shutdown to\n"
126     "the guest.  Guests who support this are supposed to perform a shutdown upon\n"
127     "receiving this request.\n"
128     "An implicit ssd command is given on a hercules \"quit\" command if the guest\n"
129     "supports ssd.  In that case hercules shutdown will be delayed until the guest\n"
130     "has shutdown or a 2nd quit command is given.\n"                      )
131 #endif
132 
133 #ifdef OPTION_PTTRACE
134 COMMAND ( "ptt",       PANEL+CONFIG, EXT_CMD(ptt_cmd),
135   "Set or display internal trace\n",
136 
137     "Format: \"ptt [options] [nnn]\"\n"
138     "When specified with no operands, the ptt command displays the trace options\n"
139     "and the contents of the internal trace table.\n"
140     "When specified with operands, the ptt command sets the trace options and/or\n"
141     "specifies which events are to be traced. If the last operand is numeric, it\n"
142     "sets the size of the trace table and activates the trace.\n"
143      "options:\n"
144      "  (no)error   - error trace\n"
145      "  (no)control - control trace\n"
146      "  (no)prog    - program interrupt trace\n"
147      "  (no)inter   - interlock failure trace\n"
148      "  (no)sie     - sie trace\n"
149      "  (no)signal  - signaling trace\n"
150      "  (no)io      - io trace\n"
151      "  (no)timer   - timer trace\n"
152      "  (no)threads - thread trace\n"
153      "  (no)logger  - logger trace\n"
154      "  (no)lock    - lock trace buffer\n"
155      "  (no)tod     - timestamp trace entries\n"
156      "  (no)wrap    - wrap trace buffer\n"
157      "  to=nnn      - trace buffer display timeout\n"
158      "  nnn         - trace buffer size\n"                                  )
159 #endif
160 
161 COMMAND ( "i",         PANEL,        i_cmd,        "generate I/O attention interrupt for device", NULL )
162 
163 COMMAND ( "ext",       PANEL,        ext_cmd,      "generate external interrupt", NULL )
164 
165 COMMAND ( "restart",   PANEL,        restart_cmd,  "generate restart interrupt", NULL )
166 
167 COMMAND ( "archmode",  PANEL+CONFIG, archmode_cmd,
168   "Set architecture mode",
169     "Format: \"archmode [S/370 | ESA/390 | z/Arch | ESAME]\". Entering the command\n"
170     "without any argument simply displays the current architecture mode. Entering\n"
171     "the command with an argument sets the architecture mode to the specified value.\n"
172     "Note: \"ESAME\" (Enterprise System Architecture, Modal Extensions) is simply a\n"
173     "synonym for \"z/Arch\". (they are identical to each other and mean the same thing)\n" )
174 
175 COMMAND ( "loadparm",  PANEL+CONFIG, loadparm_cmd, "set IPL parameter\n", NULL )
176 
177 COMMAND ( "lparname",  PANEL+CONFIG, lparname_cmd, "set LPAR name\n", NULL )
178 
179 COMMAND ( "lparnum",   PANEL+CONFIG, lparnum_cmd,  "set LPAR identification number\n", NULL )
180 
181 #if defined(OPTION_SET_STSI_INFO)
182 COMMAND ( "model",     CONFIG,       stsi_model_cmd,"Set STSI model code", NULL )
183 
184 COMMAND ( "plant",     CONFIG,       stsi_plant_cmd,"Set STSI plant code", NULL )
185 
186 COMMAND ( "manufacturer",CONFIG,     stsi_mfct_cmd,"Set STSI manufacturer code\n", NULL )
187 #endif /* defined(OPTION_SET_STSI_INFO) */
188 
189 COMMAND ( "pgmprdos",  CONFIG,        pgmprdos_cmd,"set LPP license setting\n", NULL )
190 
191 COMMAND ( "codepage",  CONFIG,        codepage_cmd,"set codepage conversion table\n", NULL )
192 
193 COMMAND ( "diag8cmd",  CONFIG,        diag8_cmd,   "Set diag8 command option\n", NULL )
194 
195 // The shcmdopt config statement should never be a command as it will introduce a possible integrity exposure *JJ
196 COMMAND ( "shcmdopt",  CONFIG,        shcmdopt_cmd,"Set diag8 sh option\n", NULL )
197 
198 COMMAND ( "legacysenseid",CONFIG,     lsid_cmd,    "set legacysenseid setting\n", NULL )
199 
200 COMMAND ( "ipl",       PANEL,         ipl_cmd,
201   "IPL Normal from device xxxx",
202     "Format: \"ipl nnnn [parm xxxxxxxxxxxxxx]\"\n"
203     "Performs the Initial Program Load manual control function. If the first operand\n"
204     "'nnnn' is a 1- to 4-digit hexadecimal number, a CCW-type IPL is initiated from\n"
205     "the indicated device number, and SCLP disk I/O is disabled.\n"
206     "Otherwise a list-directed IPL is performed from the .ins file named 'nnnn', and\n"
207     "SCLP disk I/O is enabled for the directory path where the .ins file is located.\n"
208     "An optional 'parm' keyword followed by a string can also be passed to the IPL\n"
209     "command processor. The string will be loaded into the low-order 32 bits of the\n"
210     "general purpose registers (4 characters per register for up to 64 bytes).\n"
211     "The PARM option behaves similarly to the VM IPL command.\n"          )
212 
213 COMMAND ( "iplc",      PANEL,        iplc_cmd,
214   "IPL Clear from device xxxx",
215     "Performs the Load Clear manual control function. See \"ipl\".\n"     )
216 
217 COMMAND ( "sysreset",  PANEL,        sysr_cmd,
218   "issue SYSTEM Reset manual operation",
219     "Performs the System Reset manual control function. A CPU and I/O\n"
220     "subsystem reset are performed.\n"                                    )
221 
222 COMMAND ( "sysclear",  PANEL,        sysc_cmd,
223   "issue SYSTEM Clear Reset manual operation",
224     "Performs the System Reset Clear manual control function. Same as\n"
225     "the \"sysreset\" command but also clears main storage to 0. Also, registers\n"
226     "control registers, etc.. are reset to their initial value. At this\n"
227     "point, the system is essentially in the same state as it was just after\n"
228     "having been started\n"                                               )
229 
230 COMMAND ( "store",     PANEL,        store_cmd,    "store CPU status at absolute zero\n", NULL )
231 
232 COMMAND ( "sclproot",  CONFIG+PANEL, sclproot_cmd,
233   "set SCLP base directory",
234     "Format: \"sclproot [path|NONE]\"\n"
235     "Enables SCLP disk I/O for the specified directory path, or disables SCLP disk\n"
236     "I/O if NONE is specified. A subsequent list-directed IPL resets the path to\n"
237     "the location of the .ins file, and a CCW-type IPL disables SCLP disk I/O.\n"
238     "If no operand is specified, sclproot displays the current setting.\n")
239 
240 #if defined(OPTION_HTTP_SERVER)
241 COMMAND ( "httproot",  CONFIG,       httproot_cmd, "Set HTTP server root directory", NULL )
242 
243 COMMAND ( "httpport",  CONFIG,       httpport_cmd, "Set HTTP server port\n", NULL )
244 
245 #if defined( HTTP_SERVER_CONNECT_KLUDGE )
246 COMMAND ( "HTTP_SERVER_CONNECT_KLUDGE", CONFIG, httpskm_cmd, "HTTP_SERVER_CONNECT_KLUDGE", NULL )
247 #endif // defined( HTTP_SERVER_CONNECT_KLUDGE )
248 #endif /*defined(OPTION_HTTP_SERVER)*/
249 
250 COMMAND ( "psw",       PANEL,        psw_cmd,
251   "display or alter program status word",
252     "Format: \"psw [operand ...]\" where 'operand ...' is one or more optional\n"
253     "parameters which modify the contents of the Program Status Word:\n\n"
254 
255     "  sm=xx                 system mask          (2 hex digits)\n"
256     "  pk=n                  protection key       (decimal 0 to 15)\n"
257     "  cmwp=x                C/M/W/P bits         (one hex digit)\n"
258     "  as=pri|sec|ar|home    address-space\n"
259     "  cc=n                  condition code       (decimal 0 to 3)\n"
260     "  pm=x                  program mask         (one hex digit)\n"
261     "  am=24|31|64           addressing mode\n"
262     "  ia=xxx                instruction address  (1 to 16 hex digits)\n\n"
263 
264     "Enter \"psw\" by itself to display the current PSW without altering it.\n" )
265 
266 COMMAND ( "gpr",       PANEL,        gpr_cmd,
267   "display or alter general purpose registers",
268     "Format: \"gpr [nn=xxxxxxxxxxxxxxxx]\" where 'nn' is the optional register\n"
269     "number (0 to 15) and 'xxxxxxxxxxxxxxxx' is the register value in hexadecimal\n"
270     "(1-8 hex digits for 32-bit registers or 1-16 hex digits for 64-bit registers).\n"
271     "Enter \"gpr\" by itself to display the register values without altering them.\n" )
272 
273 COMMAND ( "fpr",       PANEL,        fpr_cmd,       "display floating point registers", NULL )
274 
275 COMMAND ( "fpc",       PANEL,        fpc_cmd,       "display floating point control register", NULL )
276 
277 COMMAND ( "cr",        PANEL,        cr_cmd,
278   "display or alter control registers",
279     "Format: \"cr [nn=xxxxxxxxxxxxxxxx]\" where 'nn' is the optional control register\n"
280     "number (0 to 15) and 'xxxxxxxxxxxxxxxx' is the control register value in hex\n"
281     "(1-8 hex digits for 32-bit registers or 1-16 hex digits for 64-bit registers).\n"
282     "Enter \"cr\" by itself to display the control registers without altering them.\n" )
283 
284 COMMAND ( "ar",        PANEL,        ar_cmd,        "display access registers", NULL )
285 
286 COMMAND ( "pr",        PANEL,        pr_cmd,        "display prefix register", NULL )
287 
288 COMMAND ( "timerint",  PANEL+CONFIG, timerint_cmd,"display or set timers update interval", NULL )
289 
290 COMMAND ( "clocks",    PANEL,        clocks_cmd,    "display tod clkc and cpu timer", NULL )
291 
292 COMMAND ( "ipending",  PANEL,        ipending_cmd,  "display pending interrupts", NULL )
293 
294 COMMAND ( "ds",        PANEL,        ds_cmd,        "display subchannel", NULL )
295 
296 COMMAND ( "r",         PANEL,        r_cmd,
297   "display or alter real storage",
298     "Format: \"r addr[.len]\" or \"r addr-addr\" to display real\n"
299     "storage, or \"r addr=value\" to alter real storage, where 'value'\n"
300     "is a hex string of up to 32 pairs of digits.\n"                      )
301 
302 COMMAND ( "v",         PANEL,        v_cmd,
303   "display or alter virtual storage",
304     "Format: \"v [P|S|H] addr[.len]\" or \"v [P|S|H] addr-addr\" to display virtual\n"
305     "storage, or \"v [P|S|H] addr=value\" to alter virtual storage, where 'value'\n"
306     "is a hex string of up to 32 pairs of digits. The optional 'P' or 'S' or 'H'\n"
307     "will force Primary, Secondary, or Home translation instead of current PSW mode.\n" )
308 
309 COMMAND ( "u",         PANEL,        u_cmd,         "disassemble storage", NULL )
310 
311 COMMAND ( "devtmax",   PANEL+CONFIG, devtmax_cmd,   "display or set max device threads", NULL )
312 
313 COMMAND ( "k",         PANEL,        k_cmd,         "display cckd internal trace\n", NULL )
314 
315 COMMAND ( "attach",    PANEL,        attach_cmd,
316   "configure device",
317     "Format: \"attach devn type [arg...]\n"                               )
318 
319 COMMAND ( "detach",    PANEL,        detach_cmd,    "remove device", NULL )
320 
321 COMMAND ( "define",    PANEL,        define_cmd,
322   "rename device",
323     "Format: \"define olddevn newdevn\"\n"                                )
324 
325 COMMAND ( "devinit",   PANEL,        devinit_cmd,
326   "reinitialize device",
327     "Format: \"devinit devn [arg...]\"\n"
328     "If no arguments are given then the same arguments are used\n"
329     "as were used the last time the device was created/initialized.\n"    )
330 
331 COMMAND ( "devlist",   PANEL,        devlist_cmd,   "list device or all devices\n", NULL )
332 
333 COMMAND ( "qd",        PANEL,        qd_cmd,        "query dasd\n", NULL )
334 
335 COMMAND ( "mounted_tape_reinit", PANEL+CONFIG, mnttapri_cmd,  "Control tape initilisation", NULL )
336 
337 #if defined( OPTION_TAPE_AUTOMOUNT )
338 COMMAND ( "automount", PANEL+CONFIG, automount_cmd,
339   "Show/Update allowable tape automount directories\n",
340     "Format: \"automount  { add <dir> | del <dir> | list }\"\n"
341     "\n"
342     "Adds or deletes entries from the list of allowable/unallowable tape\n"
343     "automount directories, or lists all currently defined list entries,\n"
344     "if any.\n"
345     "\n"
346     "The format of the <dir> directory operand for add/del operations is\n"
347     "identical to that as described in the documentation for the AUTOMOUNT\n"
348     "configuration file statement (i.e. prefix with '+' or '-' as needed).\n"
349     "\n"
350     "The automount feature is appropriately enabled or disabled for all tape\n"
351     "devices as needed depending on the updated empty/non-empty list state.\n" )
352 #endif /* OPTION_TAPE_AUTOMOUNT */
353 
354 #if defined( OPTION_SCSI_TAPE )
355 COMMAND ( "auto_scsi_mount", PANEL+CONFIG, ascsimnt_cmd,  "Control SCSI tape mount", NULL )
356 
357 COMMAND ( "scsimount", PANEL,        scsimount_cmd,
358   "automatic SCSI tape mounts\n",
359     "Format:    \"scsimount  [ no | yes | 0-99 ]\".\n"
360     "\n"
361     "Displays or modifies the automatic SCSI tape mounts option.\n\n"
362     "When entered without any operands, it displays the current interval\n"
363     "and any pending tape mount requests. Entering 'no' (or 0 seconds)\n"
364     "disables automount detection.\n"
365     "\n"
366     "Entering a value between 1-99 seconds (or 'yes') enables the option\n"
367     "and specifies how often to query SCSI tape drives to automatically\n"
368     "detect when a tape has been mounted (upon which an unsolicited\n"
369     "device-attention interrupt will be presented to the guest operating\n"
370     "system). 'yes' is equivalent to specifying a 5 second interval.\n"   )
371 #endif /* defined( OPTION_SCSI_TAPE ) */
372 
373 COMMAND ( "cd",        PANEL,        cd_cmd,        "change directory", NULL )
374 
375 COMMAND ( "pwd",       PANEL,        pwd_cmd,       "print working directory", NULL )
376 
377 COMMAND ( "sh",        PANEL,        sh_cmd,
378   "shell command\n",
379     "Format: \"sh command [args...]\" where 'command' is any valid shell\n"
380     "command. The entered command and any arguments are passed as-is to the\n"
381     "shell for processing and the results are displayed on the console.\n" )
382 
383 COMMAND ( "cache",     PANEL,        EXT_CMD(cache_cmd), "cache command", NULL )
384 
385 COMMAND ( "cckd",      PANEL+CONFIG, cckd_cmd,       "cckd command", NULL )
386 
387 COMMAND ( "shrd",      PANEL,        EXT_CMD(shared_cmd), "shrd command", NULL )
388 
389 COMMAND ( "conkpalv",  PANEL+CONFIG, conkpalv_cmd,
390   "Display/alter console TCP keep-alive settings",
391     "Format: \"conkpalv (idle,intv,count)\" where 'idle', 'intv' and 'count' are the\n"
392     "new values for the TCP keep-alive settings for console connections:\n"
393     "- send probe when connection goes idle for 'idle' seconds\n"
394     "- wait maximum of 'intv' seconds for a response to probe\n"
395     "- disconnect after 'count' consecutive failed probes\n"
396     "The format must be exactly as shown, with each value separated from the next by\n"
397     "a single comma, no intervening spaces between them, surrounded by parenthesis.\n"
398     "The command \"conkpalv\" without any operand displays the current values.\n" )
399 
400 COMMAND ( "quiet",     PANEL,        quiet_cmd,
401   "Toggle automatic refresh of panel display data\n",
402     "'quiet' either disables automatic screen refreshing if it is\n"
403     "currently enabled or enables it if it is currently disabled.\n"
404     "When disabled you will no be able to see the response of any\n"
405     "entered commands nor any messages issued by the system nor be\n"
406     "able to scroll the display, etc. Basically all screen updating\n"
407     "is disabled. Entering 'quiet' again re-enables screen updating.\n"   )
408 
409 COMMAND ( "t",         PANEL,        trace_cmd,
410   "instruction trace",
411     "Format: \"t addr-addr\" or \"t addr:addr\" or \"t addr.length\"\n"
412     "sets the instruction tracing range (which is totally separate from\n"
413     "the instruction stepping and breaking range).\n"
414     "With or without a range, the t command displays whether instruction\n"
415     "tracing is on or off and the range if any.\n"
416     "The t command by itself does not activate instruction tracing.\n"
417     "Use the t+ command to activate instruction tracing.\n"
418     "\"t 0\" eliminates the range (all addresses will be traced).\n"      )
419 
420 COMMAND ( "t+",        PANEL,        trace_cmd,
421   "instruction trace on",
422     "Format: \"t+\" turns on instruction tracing. A range can be specified\n"
423     "as for the \"t\" command, otherwise the existing range is used. If there\n"
424     "is no range (or range was specified as 0) then all instructions will be\n"
425     "traced.\n"                                                           )
426 
427 COMMAND ( "t-",        PANEL,        trace_cmd,
428   "instruction trace off",
429     "Format: \"t-\" turns off instruction tracing.\n"                     )
430 
431 COMMAND ( "t?",        PANEL,        trace_cmd,
432   "instruction trace query",
433     "Format: \"t?\" displays whether instruction tracing is on or off\n"
434     "and the range if any.\n"                                             )
435 
436 COMMAND ( "s",         PANEL,        trace_cmd,
437   "instruction stepping",
438     "Format: \"s addr-addr\" or \"s addr:addr\" or \"s addr.length\"\n"
439     "sets the instruction stepping and instruction breaking range,\n"
440     "(which is totally separate from the instruction tracing range).\n"
441     "With or without a range, the s command displays whether instruction\n"
442     "stepping is on or off and the range if any.\n"
443     "The s command by itself does not activate instruction stepping.\n"
444     "Use the s+ command to activate instruction stepping.\n"
445     "\"s 0\" eliminates the range (all addresses will be stepped).\n"     )
446 
447 COMMAND ( "s+",        PANEL,        trace_cmd,
448   "instruction stepping on",
449     "Format: \"s+\" turns on instruction stepping. A range can be specified\n"
450     "as for the \"s\" command, otherwise the existing range is used. If there\n"
451     "is no range (or range was specified as 0) then the range includes all\n"
452     "addresses. When an instruction within the range is about to be executed,\n"
453     "the CPU is temporarily stopped and the next instruction is displayed.\n"
454     "You may then examine registers and/or storage, etc, before pressing Enter\n"
455     "to execute the instruction and stop at the next instruction. To turn\n"
456     "off instruction stepping and continue execution, enter the \"g\" command.\n" )
457 
458 COMMAND ( "s-",        PANEL,        trace_cmd,
459   "instruction stepping off",
460     "Format: \"s-\" turns off instruction stepping.\n"                    )
461 
462 COMMAND ( "s?",        PANEL,        trace_cmd,
463   "instruction stepping query",
464     "Format: \"s?\" displays whether instruction stepping is on or off\n"
465     "and the range if any.\n"                                             )
466 
467 COMMAND ( "b",         PANEL,        trace_cmd,
468   "set breakpoint",
469     "Format: \"b addr\" or \"b addr-addr\" where 'addr' is the instruction\n"
470     "address or range of addresses where you wish to halt execution. This\n"
471     "command is synonymous with the \"s+\" command.\n"                    )
472 
473 COMMAND ( "b+",        PANEL,        trace_cmd,    "set breakpoint", NULL )
474 
475 COMMAND ( "b-",        PANEL,        trace_cmd,
476   "delete breakpoint",
477     "Format: \"b-\"  This command is the same as \"s-\"\n"                )
478 
479 COMMAND ( "g",         PANEL,        g_cmd,        "turn off instruction stepping and start all CPUs\n", NULL )
480 
481 COMMAND ( "ostailor",  PANEL+CONFIG, ostailor_cmd,
482   "trace program interrupts",
483     "Format: \"ostailor quiet | os/390 | z/os | vm | vse | linux | null\". Specifies\n"
484     "the intended operating system. The effect is to reduce control panel message\n"
485     "traffic by selectively suppressing program check trace messages which are\n"
486     "considered normal in the specified environment. 'quiet' suppresses all\n"
487     "exception messages, whereas 'null' suppresses none of them. The other options\n"
488     "suppress some messages and not others depending on the specified o/s. Prefix\n"
489     "values with '+' to combine them with existing values or '-' to exclude them.\n"
490     "SEE ALSO the 'pgmtrace' command which allows you to further fine tune\n"
491     "the tracing of program interrupt exceptions.\n"                      )
492 
493 COMMAND ( "pgmtrace",  PANEL,        pgmtrace_cmd,
494   "trace program interrupts",
495     "Format: \"pgmtrace [-]intcode\" where 'intcode' is any valid program\n"
496     "interruption code in the range 0x01 to 0x40. Precede the interrupt code\n"
497     "with a '-' to stop tracing of that particular program interruption.\n" )
498 
499 COMMAND ( "savecore",  PANEL,        savecore_cmd,
500   "save a core image to file",
501     "Format: \"savecore filename [{start|*}] [{end|*}]\" where 'start' and 'end'\n"
502     "define the starting and ending addresss of the range of real storage to be\n"
503     "saved to file 'filename'.  '*' for either the start address or end address\n"
504     "(the default) means: \"the first/last byte of the first/last modified page\n"
505     "as determined by the storage-key 'changed' bit\".\n"                 )
506 
507 COMMAND ( "loadcore",  PANEL,        loadcore_cmd,
508   "load a core image file",
509     "Format: \"loadcore filename [address]\" where 'address' is the storage address\n"
510     "of where to begin loading memory. The file 'filename' is presumed to be a pure\n"
511     "binary image file previously created via the 'savecore' command. The default for\n"
512     "'address' is 0 (begining of storage).\n"                             )
513 
514 COMMAND ( "loadtext",  PANEL,        loadtext_cmd,
515   "load a text deck file\n",
516     "Format: \"loadtext filename [address]\". This command is essentially identical\n"
517     "to the 'loadcore' command except that it loads a text deck file with \"TXT\"\n"
518     "and \"END\" 80 byte records (i.e. an object deck).\n"                )
519 
520 #if defined(OPTION_DYNAMIC_LOAD)
521 COMMAND ( "modpath",   CONFIG,       modpath_cmd,  "set module load path", NULL )
522 COMMAND ( "ldmod",     CONFIG+PANEL, ldmod_cmd,    "load a module", NULL )
523 COMMAND ( "rmmod",     PANEL,        rmmod_cmd,    "delete a module", NULL )
524 COMMAND ( "lsmod",     PANEL,        lsmod_cmd,    "list dynamic modules", NULL )
525 COMMAND ( "lsdep",     PANEL,        lsdep_cmd,    "list module dependencies\n", NULL )
526 #endif /*defined(OPTION_DYNAMIC_LOAD)*/
527 
528 #ifdef OPTION_IODELAY_KLUDGE
529 COMMAND ( "iodelay",   PANEL+CONFIG, iodelay_cmd,   "display or set I/O delay value", NULL )
530 #endif
531 
532 COMMAND ( "ctc",       PANEL,        ctc_cmd,
533   "Enable/Disable CTC debugging",
534     "Format:  \"ctc  debug  { on | off }  [ <devnum> | ALL ]\".\n\n"
535     "Enables/disables debug packet tracing for the specified CTCI/LCS\n"
536     "device group(s) identified by <devnum> or for all CTCI/LCS device\n"
537     "groups if <devnum> is not specified or specified as 'ALL'.\n"        )
538 
539 #if defined(OPTION_W32_CTCI)
540 COMMAND ( "tt32",      PANEL,        tt32_cmd,
541   "control/query CTCI-W32 functionality",
542     "Format:  \"tt32   debug | nodebug | stats <devnum>\".\n"
543     "\n"
544     "Enables or disables global CTCI-W32 debug tracing\n"
545     "or displays TunTap32 stats for the specified CTC device.\n"          )
546 #endif
547 
548 COMMAND ( "toddrag",   PANEL+CONFIG, toddrag_cmd,  "display or set TOD clock drag factor", NULL )
549 
550 #ifdef PANEL_REFRESH_RATE
551 COMMAND ( "panrate",   PANEL+CONFIG, panrate_cmd,
552   "Display or set rate at which console refreshes",
553     "Format: \"panrate [nnn | fast | slow]\". Sets or displays the panel refresh rate.\n"
554     "panrate nnn sets the refresh rate to nnn milliseconds.\n"
555     "panrate fast sets the refresh rate to " MSTRING(PANEL_REFRESH_RATE_FAST) " milliseconds.\n"
556     "panrate slow sets the refresh rate to " MSTRING(PANEL_REFRESH_RATE_SLOW) " milliseconds.\n"
557     "If no operand is specified, panrate displays the current refresh rate.\n")
558 #endif
559 
560 COMMAND ( "pantitle",  CONFIG,       pantitle_cmd, "display or set console title", NULL )
561 
562 #ifdef OPTION_MSGHLD
563 COMMAND ( "msghld",    PANEL,        msghld_cmd,
564   "Display or set the timeout of held messages",
565     "Format: \"msghld [value | info | clear]\".\n"
566     "value: timeout value of held message in seconds\n"
567     "info:  displays the timeout value\n"
568     "clear: releases the held messages\n"                                 )
569 #endif
570 
571 COMMAND ( "syncio",    PANEL,        syncio_cmd,    "display syncio devices statistics", NULL )
572 
573 #if defined(OPTION_INSTRUCTION_COUNTING)
574 COMMAND ( "icount",    PANEL,        icount_cmd,    "display individual instruction counts", NULL )
575 #endif
576 
577 #ifdef OPTION_MIPS_COUNTING
578 COMMAND ( "maxrates",  PANEL,        maxrates_cmd,
579   "display maximum observed MIPS/SIOS rate for the\n"
580   "               defined interval or define a new reporting interval\n",
581     "Format: \"maxrates [nnnn]\" where 'nnnn' is the desired reporting\n"
582     "interval in minutes. Acceptable values are from 1 to 1440. The default\n"
583     "is 1440 minutes (one day). Entering \"maxrates\" by itself displays\n"
584     "the current highest rates observed during the defined intervals.\n"  )
585 #endif // OPTION_MIPS_COUNTING
586 
587 #if defined(_FEATURE_ASN_AND_LX_REUSE)
588 COMMAND ( "asn_and_lx_reuse", CONFIG, alrf_cmd, "Enable/Disable ASN and LX reuse facility", NULL )
589 COMMAND ( "alrf"            , CONFIG, alrf_cmd, "Alias for asn_and_lx_reuse\n", NULL )
590 #endif /* defined(_FEATURE_ASN_AND_LX_REUSE) */
591 
592 #if defined(OPTION_CONFIG_SYMBOLS)
593 COMMAND ( "defsym",    PANEL+CONFIG, defsym_cmd,
594   "Define symbol",
595     "Format: \"defsym symbol [value]\". Defines symbol 'symbol' to contain value 'value'.\n"
596     "The symbol can then be the object of a substitution for later panel commands.\n"
597     "If 'value' contains blanks or spaces, then it must be enclosed within quotes\n"
598     "or apostrophes. For more detailed information regarding symbol substitution\n"
599     "refer to the 'DEFSYM' configuration file statement in Hercules documentation.\n"
600     "Enter \"defsym\" by itself to display the values of all defined symbols.\n" )
601 #endif
602 
603 COMMAND ( "script",    PANEL,        script_cmd,
604   "Run a sequence of panel commands contained in a file",
605     "Format: \"script filename [...filename...]\". Sequentially executes the commands contained\n"
606     "within the file -filename-. The script file may also contain \"script\" commands,\n"
607     "but the system ensures that no more than 10 levels of script are invoked at any\n"
608     "one time (to avoid a recursion loop)\n"                              )
609 
610 COMMAND ( "cscript",   PANEL,        cscript_cmd,
611   "Cancels a running script thread\n",
612     "Format: \"cscript\". This command will cancel the currently running script.\n"
613     "if no script is running, no action is taken\n"                       )
614 
615 #if defined(FEATURE_ECPSVM)
616 COMMAND ( "evm",       PANEL,        evm_cmd_1,
617   "ECPS:VM Commands (Deprecated)",
618     "Format: \"evm\". This command is deprecated.\n"
619     "use \"ecpsvm\" instead\n"                                            )
620 
621 COMMAND ( "ecpsvm",    PANEL,        evm_cmd,
622   "ECPS:VM Commands\n",
623     "Format: \"ecpsvm\". This command invokes ECPS:VM Subcommands.\n"
624     "Type \"ecpsvm help\" to see a list of available commands\n"          )
625 #endif
626 
627 COMMAND ( "aea",       PANEL,        aea_cmd,       "Display AEA tables", NULL )
628 COMMAND ( "aia",       PANEL,        aia_cmd,       "Display AIA fields", NULL )
629 COMMAND ( "tlb",       PANEL,        tlb_cmd,       "Display TLB tables\n", NULL )
630 
631 #if defined(SIE_DEBUG_PERFMON)
632 COMMAND ( "spm",       PANEL,        spm_cmd,       "SIE performance monitor\n", NULL )
633 #endif
634 #if defined(OPTION_COUNTING)
635 COMMAND ( "count",     PANEL,        count_cmd,     "Display/clear overall instruction count\n", NULL )
636 #endif
637 COMMAND ( "sizeof",    PANEL,        sizeof_cmd,    "Display size of structures\n", NULL )
638 
639 COMMAND ( "suspend",   PANEL,        suspend_cmd,   "Suspend hercules", NULL )
640 
641 COMMAND ( "resume",    PANEL,        resume_cmd,    "Resume hercules\n", NULL )
642 
643 COMMAND ( "herclogo",  PANEL,        herclogo_cmd,
644   "Read a new hercules logo file\n",
645     "Format: \"herclogo [<filename>]\". Load a new logo file for 3270 terminal sessions\n"
646     "If no filename is specified, the built-in logo is used instead\n"    )
647 
648 COMMAND ( "traceopt",  CONFIG+PANEL, traceopt_cmd,
649   "Instruction trace display options\n",
650     "Format: \"traceopt [regsfirst | noregs | traditional]\". Determines how the\n"
651     "registers are displayed during instruction tracing and stepping. Entering\n"
652     "the command without any argument simply displays the current mode.\n" )
653 
654 COMMAND ( "symptom",   CONFIG,       traceopt_cmd, "Alias for traceopt\n", NULL )
655 
656 COMMAND ( "$zapcmd",   CONFIG,       zapcmd_cmd,   NULL, NULL )     // enable/disable commands and config statements
657 
658 COMMAND ( "$test",     DISABLED,     test_cmd,     NULL, NULL )     // enable in config with: $zapcmd $test cmd
659 
660 #ifdef OPTION_CMDTGT
661 COMMAND ( "cmdtgt",    PANEL,        cmdtgt_cmd,
662   "Specify the command target",
663     "Format: \"cmdtgt [herc | scp | pscp | ?]\". Specify the command target.\n" )
664 
665 COMMAND ( "herc",      PANEL,        herc_cmd,
666   "Hercules command",
667     "Format: \"herc [cmd]\". Send hercules cmd in any cmdtgt mode.\n"     )
668 
669 COMMAND ( "scp",       PANEL,        scp_cmd,
670   "Send scp command",
671     "Format: \"scp [cmd]\". Send scp cmd in any cmdtgt mode.\n"           )
672 
673 COMMAND ( "pscp",      PANEL,        prioscp_cmd,
674   "Send prio message scp command\n",
675     "Format: \"pscp [cmd]\". Send priority message cmd to scp in any cmdtgt mode.\n" )
676 #endif // OPTION_CMDTGT
677 
678 // The actual command table ends here, the next entries are just for help
679 // as the associated command are processed as part of commandline parsing
680 // and there are no forward references to be created
681 
682 #if !defined(_FW_REF)
683 COMMAND ( "sf+dev",    PANEL,        NULL,         "add shadow file", NULL )
684 
685 COMMAND ( "sf-dev",    PANEL,        NULL,         "delete shadow file", NULL )
686 
687 COMMAND ( "sfc",       PANEL,        NULL,         "compress shadow files", NULL )
688 
689 COMMAND ( "sfk",       PANEL,        NULL,
690   "Check shadow files",
691     "Format: \"sfk{*|xxxx} [n]\". Performs a chkdsk on the active shadow file\n"
692     "where xxxx is the device number (*=all cckd devices)\n"
693     "and n is the optional check level (default is 2):\n"
694     " -1 devhdr, cdevhdr, l1 table\n"
695     "  0 devhdr, cdevhdr, l1 table, l2 tables\n"
696     "  1 devhdr, cdevhdr, l1 table, l2 tables, free spaces\n"
697     "  2 devhdr, cdevhdr, l1 table, l2 tables, free spaces, trkhdrs\n"
698     "  3 devhdr, cdevhdr, l1 table, l2 tables, free spaces, trkimgs\n"
699     "  4 devhdr, cdevhdr. Build everything else from recovery\n"
700     "You probably don't want to use `4' unless you have a backup and are\n"
701     "prepared to wait a long time.\n"                                     )
702 
703 COMMAND ( "sfd",       PANEL,        NULL,         "display shadow file stats\n", NULL )
704 
705 COMMAND ( "t{+/-}dev", PANEL,        NULL,         "turn CCW tracing on/off", NULL )
706 
707 COMMAND ( "s{+/-}dev", PANEL,        NULL,         "turn CCW stepping on/off\n", NULL )
708 
709 #ifdef OPTION_CKD_KEY_TRACING
710 COMMAND ( "t{+/-}CKD", PANEL,        NULL,         "turn CKD_KEY tracing on/off\n", NULL )
711 #endif
712 
713 COMMAND ( "f{+/-}adr", PANEL,        NULL,         "mark frames unusable/usable\n", NULL )
714 #endif /*!defined(_FW_REF)*/
715