annotate cp/shell/cmd_query.c @ 650:6fca4100a886

include: change uint64_t LP64 definition to be unsigned long This matches what is normally used in the Unix world. Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
author Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
date Tue, 30 Jul 2019 14:56:02 -0400
parents dad0b2bc37c0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
422
c9107a12fd7d Happy New Year! - Add copyright notices
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 421
diff changeset
1 /*
650
6fca4100a886 include: change uint64_t LP64 definition to be unsigned long
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 618
diff changeset
2 * (C) Copyright 2007-2019 Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
422
c9107a12fd7d Happy New Year! - Add copyright notices
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 421
diff changeset
3 *
c9107a12fd7d Happy New Year! - Add copyright notices
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 421
diff changeset
4 * This file is released under the GPLv2. See the COPYING file for more
c9107a12fd7d Happy New Year! - Add copyright notices
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 421
diff changeset
5 * details.
c9107a12fd7d Happy New Year! - Add copyright notices
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 421
diff changeset
6 */
c9107a12fd7d Happy New Year! - Add copyright notices
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 421
diff changeset
7
215
430f8e46243f cp: clean up guest_state and directory handling
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 198
diff changeset
8 static char *__guest_state_to_str(enum virt_cpustate st)
178
bbbb45f1b096 cp: QUERY VIRTUAL should display information about the cpu state
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 164
diff changeset
9 {
bbbb45f1b096 cp: QUERY VIRTUAL should display information about the cpu state
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 164
diff changeset
10 switch (st) {
bbbb45f1b096 cp: QUERY VIRTUAL should display information about the cpu state
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 164
diff changeset
11 case GUEST_STOPPED: return "STOPPED";
198
0e65c357417c cp: define all 4 possible CPU states
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 178
diff changeset
12 case GUEST_OPERATING: return "RUNNING";
0e65c357417c cp: define all 4 possible CPU states
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 178
diff changeset
13 case GUEST_LOAD: return "LOADING";
0e65c357417c cp: define all 4 possible CPU states
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 178
diff changeset
14 case GUEST_CHECKSTOP: return "CHECK-STOP";
178
bbbb45f1b096 cp: QUERY VIRTUAL should display information about the cpu state
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 164
diff changeset
15 }
bbbb45f1b096 cp: QUERY VIRTUAL should display information about the cpu state
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 164
diff changeset
16
bbbb45f1b096 cp: QUERY VIRTUAL should display information about the cpu state
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 164
diff changeset
17 return "???";
bbbb45f1b096 cp: QUERY VIRTUAL should display information about the cpu state
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 164
diff changeset
18 }
bbbb45f1b096 cp: QUERY VIRTUAL should display information about the cpu state
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 164
diff changeset
19
559
a46925302e15 cp: sched.h accumulated tons of structs that belong into vcpu.h
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 528
diff changeset
20 static void display_rdev(struct device *dev, void *priv)
219
edecad50db8f cp: QUERY REAL command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 218
diff changeset
21 {
592
732345b0925c cp: guest layer revamp, part 1
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 591
diff changeset
22 struct virt_cons *con = priv;
273
f8b8c66ef132 drivers: added snprintf device type callback
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 264
diff changeset
23 char buf[40];
f8b8c66ef132 drivers: added snprintf device type callback
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 264
diff changeset
24
295
74653d30aedf cp: Be safer when invoking the snprintf device callback
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 273
diff changeset
25 buf[0] = '\0';
74653d30aedf cp: Be safer when invoking the snprintf device callback
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 273
diff changeset
26
592
732345b0925c cp: guest layer revamp, part 1
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 591
diff changeset
27 mutex_lock(&dev->lock);
732345b0925c cp: guest layer revamp, part 1
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 591
diff changeset
28
273
f8b8c66ef132 drivers: added snprintf device type callback
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 264
diff changeset
29 if (dev->dev && dev->dev->snprintf)
f8b8c66ef132 drivers: added snprintf device type callback
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 264
diff changeset
30 dev->dev->snprintf(dev, buf, 40);
f8b8c66ef132 drivers: added snprintf device type callback
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 264
diff changeset
31
392
a18269e971e0 cp: Q R displays 'FREE' for all unused devices
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 388
diff changeset
32 con_printf(con, "%-4s %04X %04X %s%sSCH = %05X\n",
273
f8b8c66ef132 drivers: added snprintf device type callback
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 264
diff changeset
33 type2name(dev->type), dev->ccuu, dev->type, buf,
592
732345b0925c cp: guest layer revamp, part 1
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 591
diff changeset
34 dev->in_use ? "" : "FREE ",
219
edecad50db8f cp: QUERY REAL command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 218
diff changeset
35 dev->sch);
592
732345b0925c cp: guest layer revamp, part 1
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 591
diff changeset
36
732345b0925c cp: guest layer revamp, part 1
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 591
diff changeset
37 mutex_unlock(&dev->lock);
219
edecad50db8f cp: QUERY REAL command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 218
diff changeset
38 }
edecad50db8f cp: QUERY REAL command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 218
diff changeset
39
592
732345b0925c cp: guest layer revamp, part 1
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 591
diff changeset
40 static void display_vdev(struct virt_cons *con, struct virt_device *vdev)
218
3f9416513c01 cp: move bulk of QUERY VIRTUAL into a separate function
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 215
diff changeset
41 {
592
732345b0925c cp: guest layer revamp, part 1
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 591
diff changeset
42 struct virt_sys *sys = container_of(con, struct virt_sys, console);
732345b0925c cp: guest layer revamp, part 1
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 591
diff changeset
43
528
3dc5f9562458 cp: add a lock to the virt device struct
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 510
diff changeset
44 mutex_lock(&vdev->lock);
3dc5f9562458 cp: add a lock to the virt device struct
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 510
diff changeset
45
251
a7f5790ff977 cp: a proper virtual device
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 238
diff changeset
46 switch (vdev->vtype) {
218
3f9416513c01 cp: move bulk of QUERY VIRTUAL into a separate function
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 215
diff changeset
47 case VDEV_CONS:
334
90ff6a273dac cp: QUERY VIRTUAL should output the TS/NOTS var
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 325
diff changeset
48 con_printf(con, "CONS %04X 3215 ON %s %04X %s SCH = %05X\n",
251
a7f5790ff977 cp: a proper virtual device
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 238
diff changeset
49 vdev->pmcw.dev_num,
618
dad0b2bc37c0 cp: define a FIXME macro that leaves a sclp message
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 599
diff changeset
50 type2name(con->dev->type),
334
90ff6a273dac cp: QUERY VIRTUAL should output the TS/NOTS var
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 325
diff changeset
51 con->dev->ccuu,
592
732345b0925c cp: guest layer revamp, part 1
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 591
diff changeset
52 sys->print_ts ? "TS" : "NOTS",
334
90ff6a273dac cp: QUERY VIRTUAL should output the TS/NOTS var
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 325
diff changeset
53 vdev->sch);
218
3f9416513c01 cp: move bulk of QUERY VIRTUAL into a separate function
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 215
diff changeset
54 break;
3f9416513c01 cp: move bulk of QUERY VIRTUAL into a separate function
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 215
diff changeset
55 case VDEV_DED:
388
3c9319e6ffc2 cp: Q V should list device type for dedicated devices
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 385
diff changeset
56 con_printf(con, "%-4s %04X %04X ON DEV %04X SCH = %05X\n",
385
1e1a1f6f4209 cp: Q V - display info about dedicated devices
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 346
diff changeset
57 type2name(vdev->type),
1e1a1f6f4209 cp: Q V - display info about dedicated devices
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 346
diff changeset
58 vdev->pmcw.dev_num,
388
3c9319e6ffc2 cp: Q V should list device type for dedicated devices
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 385
diff changeset
59 vdev->type,
385
1e1a1f6f4209 cp: Q V - display info about dedicated devices
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 346
diff changeset
60 vdev->u.dedicate.rdev->ccuu,
1e1a1f6f4209 cp: Q V - display info about dedicated devices
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 346
diff changeset
61 vdev->sch);
218
3f9416513c01 cp: move bulk of QUERY VIRTUAL into a separate function
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 215
diff changeset
62 break;
3f9416513c01 cp: move bulk of QUERY VIRTUAL into a separate function
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 215
diff changeset
63 case VDEV_SPOOL:
3f9416513c01 cp: move bulk of QUERY VIRTUAL into a separate function
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 215
diff changeset
64 con_printf(con, "%-4s %04X %04X SCH = %05X\n",
251
a7f5790ff977 cp: a proper virtual device
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 238
diff changeset
65 type2name(vdev->type),
a7f5790ff977 cp: a proper virtual device
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 238
diff changeset
66 vdev->pmcw.dev_num, vdev->type,
a7f5790ff977 cp: a proper virtual device
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 238
diff changeset
67 vdev->sch);
218
3f9416513c01 cp: move bulk of QUERY VIRTUAL into a separate function
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 215
diff changeset
68 break;
3f9416513c01 cp: move bulk of QUERY VIRTUAL into a separate function
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 215
diff changeset
69 case VDEV_MDISK:
618
dad0b2bc37c0 cp: define a FIXME macro that leaves a sclp message
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 599
diff changeset
70 FIXME("cyl count & rdev");
218
3f9416513c01 cp: move bulk of QUERY VIRTUAL into a separate function
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 215
diff changeset
71 con_printf(con, "DASD %04X 3390 %6d CYL ON DASD %04X SCH = %05X\n",
251
a7f5790ff977 cp: a proper virtual device
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 238
diff changeset
72 vdev->pmcw.dev_num,
a7f5790ff977 cp: a proper virtual device
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 238
diff changeset
73 0, /* FIXME: cyl count */
a7f5790ff977 cp: a proper virtual device
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 238
diff changeset
74 0, /* FIXME: rdev */
a7f5790ff977 cp: a proper virtual device
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 238
diff changeset
75 vdev->sch);
218
3f9416513c01 cp: move bulk of QUERY VIRTUAL into a separate function
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 215
diff changeset
76 break;
3f9416513c01 cp: move bulk of QUERY VIRTUAL into a separate function
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 215
diff changeset
77 case VDEV_LINK:
618
dad0b2bc37c0 cp: define a FIXME macro that leaves a sclp message
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 599
diff changeset
78 FIXME("userid & vdev #");
218
3f9416513c01 cp: move bulk of QUERY VIRTUAL into a separate function
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 215
diff changeset
79 con_printf(con, "LINK %04X TO %s %04X SCH = %05X\n",
251
a7f5790ff977 cp: a proper virtual device
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 238
diff changeset
80 vdev->pmcw.dev_num,
a7f5790ff977 cp: a proper virtual device
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 238
diff changeset
81 "????", /* FIXME: userid */
a7f5790ff977 cp: a proper virtual device
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 238
diff changeset
82 0xffff, /* FIXME: user's vdev # */
a7f5790ff977 cp: a proper virtual device
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 238
diff changeset
83 vdev->sch);
218
3f9416513c01 cp: move bulk of QUERY VIRTUAL into a separate function
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 215
diff changeset
84 break;
3f9416513c01 cp: move bulk of QUERY VIRTUAL into a separate function
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 215
diff changeset
85 default:
3f9416513c01 cp: move bulk of QUERY VIRTUAL into a separate function
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 215
diff changeset
86 con_printf(con, "???? unknown device type (%04X, %05X)\n",
251
a7f5790ff977 cp: a proper virtual device
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 238
diff changeset
87 vdev->pmcw.dev_num, vdev->sch);
218
3f9416513c01 cp: move bulk of QUERY VIRTUAL into a separate function
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 215
diff changeset
88 break;
3f9416513c01 cp: move bulk of QUERY VIRTUAL into a separate function
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 215
diff changeset
89 }
528
3dc5f9562458 cp: add a lock to the virt device struct
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 510
diff changeset
90
3dc5f9562458 cp: add a lock to the virt device struct
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 510
diff changeset
91 mutex_unlock(&vdev->lock);
218
3f9416513c01 cp: move bulk of QUERY VIRTUAL into a separate function
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 215
diff changeset
92 }
3f9416513c01 cp: move bulk of QUERY VIRTUAL into a separate function
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 215
diff changeset
93
559
a46925302e15 cp: sched.h accumulated tons of structs that belong into vcpu.h
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 528
diff changeset
94 static void display_task(struct task *task, void *priv)
238
79d3f8563cd4 cp: QUERY TASK command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 234
diff changeset
95 {
592
732345b0925c cp: guest layer revamp, part 1
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 591
diff changeset
96 struct virt_cons *con = priv;
299
64807141b352 sched: added all the bits necessary to have a mutex
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 295
diff changeset
97 char state;
64807141b352 sched: added all the bits necessary to have a mutex
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 295
diff changeset
98
64807141b352 sched: added all the bits necessary to have a mutex
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 295
diff changeset
99 switch(task->state) {
64807141b352 sched: added all the bits necessary to have a mutex
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 295
diff changeset
100 case TASK_RUNNING: state = 'R'; break;
64807141b352 sched: added all the bits necessary to have a mutex
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 295
diff changeset
101 case TASK_SLEEPING: state = 'S'; break;
64807141b352 sched: added all the bits necessary to have a mutex
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 295
diff changeset
102 case TASK_LOCKED: state = 'L'; break;
510
86d2e037205d cp/shell: added TASK_ZOMBIE state character
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 441
diff changeset
103 case TASK_ZOMBIE: state = 'Z'; break;
299
64807141b352 sched: added all the bits necessary to have a mutex
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 295
diff changeset
104 default: state = '?'; break;
64807141b352 sched: added all the bits necessary to have a mutex
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 295
diff changeset
105 }
64807141b352 sched: added all the bits necessary to have a mutex
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 295
diff changeset
106
599
0a0b076339ca cp: guest layer revamp, part 2
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 592
diff changeset
107 con_printf(con, "%*s %p %c\n", -TASK_NAME_LEN, task->name,
0a0b076339ca cp: guest layer revamp, part 2
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 592
diff changeset
108 task, state);
238
79d3f8563cd4 cp: QUERY TASK command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 234
diff changeset
109 }
79d3f8563cd4 cp: QUERY TASK command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 234
diff changeset
110
234
29d6f072fc51 Some documentation for the implemented commands
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 219
diff changeset
111 /*
29d6f072fc51 Some documentation for the implemented commands
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 219
diff changeset
112 *!!! QUERY TIME
342
64886ec8f6a8 manual: rework the CP commands comment syntax
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 340
diff changeset
113 *!! SYNTAX
346
3a8933aeb8d7 manual: fix command names with spaces
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 342
diff changeset
114 *! \tok{\sc Query} \tok{\sc TIME}
342
64886ec8f6a8 manual: rework the CP commands comment syntax
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 340
diff changeset
115 *!! XATNYS
234
29d6f072fc51 Some documentation for the implemented commands
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 219
diff changeset
116 *!! AUTH G
29d6f072fc51 Some documentation for the implemented commands
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 219
diff changeset
117 *!! PURPOSE
29d6f072fc51 Some documentation for the implemented commands
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 219
diff changeset
118 *! Displays the current time
264
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
119 */
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
120 static int cmd_query_cplevel(struct virt_sys *sys, char *cmd, int len)
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
121 {
591
d953d7d4d89d cp: revamp directory handling
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 562
diff changeset
122 SHELL_CMD_AUTH(sys, G);
d953d7d4d89d cp: revamp directory handling
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 562
diff changeset
123
264
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
124 con_printf(sys->con, "HVF version " VERSION "\n");
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
125 con_printf(sys->con, "IPL at %02d:%02d:%02d UTC %04d-%02d-%02d\n",
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
126 ipltime.th, ipltime.tm, ipltime.ts, ipltime.dy,
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
127 ipltime.dm, ipltime.dd);
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
128
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
129 return 0;
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
130 }
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
131
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
132 /*
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
133 *!!! QUERY CPLEVEL
342
64886ec8f6a8 manual: rework the CP commands comment syntax
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 340
diff changeset
134 *!! SYNTAX
346
3a8933aeb8d7 manual: fix command names with spaces
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 342
diff changeset
135 *! \tok{\sc Query} \tok{\sc CPLEVEL}
342
64886ec8f6a8 manual: rework the CP commands comment syntax
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 340
diff changeset
136 *!! XATNYS
264
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
137 *!! AUTH G
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
138 *!! PURPOSE
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
139 *! Displays the HVF version and time of IPL
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
140 */
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
141 static int cmd_query_time(struct virt_sys *sys, char *cmd, int len)
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
142 {
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
143 struct datetime dt;
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
144
591
d953d7d4d89d cp: revamp directory handling
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 562
diff changeset
145 SHELL_CMD_AUTH(sys, G);
d953d7d4d89d cp: revamp directory handling
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 562
diff changeset
146
264
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
147 get_parsed_tod(&dt);
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
148
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
149 con_printf(sys->con, "TIME IS %02d:%02d:%02d UTC %04d-%02d-%02d\n",
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
150 dt.th, dt.tm, dt.ts, dt.dy, dt.dm, dt.dd);
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
151
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
152 return 0;
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
153 }
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
154
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
155 /*
419
c6d653e59cf7 cp: added QUERY ARCHMODE to display current architecture mode
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 392
diff changeset
156 *!!! QUERY ARCHMODE
c6d653e59cf7 cp: added QUERY ARCHMODE to display current architecture mode
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 392
diff changeset
157 *!! SYNTAX
c6d653e59cf7 cp: added QUERY ARCHMODE to display current architecture mode
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 392
diff changeset
158 *! \tok{\sc Query} \tok{\sc ARCHMODE}
c6d653e59cf7 cp: added QUERY ARCHMODE to display current architecture mode
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 392
diff changeset
159 *!! XATNYS
c6d653e59cf7 cp: added QUERY ARCHMODE to display current architecture mode
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 392
diff changeset
160 *!! AUTH G
c6d653e59cf7 cp: added QUERY ARCHMODE to display current architecture mode
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 392
diff changeset
161 *!! PURPOSE
c6d653e59cf7 cp: added QUERY ARCHMODE to display current architecture mode
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 392
diff changeset
162 *! Displays the virtual machine's current architecture mode.
c6d653e59cf7 cp: added QUERY ARCHMODE to display current architecture mode
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 392
diff changeset
163 */
c6d653e59cf7 cp: added QUERY ARCHMODE to display current architecture mode
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 392
diff changeset
164 static int cmd_query_archmode(struct virt_sys *sys, char *cmd, int len)
c6d653e59cf7 cp: added QUERY ARCHMODE to display current architecture mode
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 392
diff changeset
165 {
591
d953d7d4d89d cp: revamp directory handling
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 562
diff changeset
166 char *mode;
d953d7d4d89d cp: revamp directory handling
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 562
diff changeset
167
d953d7d4d89d cp: revamp directory handling
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 562
diff changeset
168 SHELL_CMD_AUTH(sys, G);
d953d7d4d89d cp: revamp directory handling
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 562
diff changeset
169
599
0a0b076339ca cp: guest layer revamp, part 2
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 592
diff changeset
170 mode = (VCPU_ZARCH(sys->cpu)) ? "z/Arch" : "ESA390";
419
c6d653e59cf7 cp: added QUERY ARCHMODE to display current architecture mode
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 392
diff changeset
171
c6d653e59cf7 cp: added QUERY ARCHMODE to display current architecture mode
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 392
diff changeset
172 con_printf(sys->con, "ARCHMODE = %s\n", mode);
c6d653e59cf7 cp: added QUERY ARCHMODE to display current architecture mode
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 392
diff changeset
173
c6d653e59cf7 cp: added QUERY ARCHMODE to display current architecture mode
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 392
diff changeset
174 return 0;
c6d653e59cf7 cp: added QUERY ARCHMODE to display current architecture mode
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 392
diff changeset
175 }
c6d653e59cf7 cp: added QUERY ARCHMODE to display current architecture mode
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 392
diff changeset
176
c6d653e59cf7 cp: added QUERY ARCHMODE to display current architecture mode
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 392
diff changeset
177 /*
234
29d6f072fc51 Some documentation for the implemented commands
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 219
diff changeset
178 *!!! QUERY VIRTUAL
342
64886ec8f6a8 manual: rework the CP commands comment syntax
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 340
diff changeset
179 *!! SYNTAX
346
3a8933aeb8d7 manual: fix command names with spaces
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 342
diff changeset
180 *! \tok{\sc Query} \tok{\sc Virtual}
342
64886ec8f6a8 manual: rework the CP commands comment syntax
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 340
diff changeset
181 *!! XATNYS
234
29d6f072fc51 Some documentation for the implemented commands
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 219
diff changeset
182 *!! AUTH G
29d6f072fc51 Some documentation for the implemented commands
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 219
diff changeset
183 *!! PURPOSE
29d6f072fc51 Some documentation for the implemented commands
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 219
diff changeset
184 *! Lists all of the guest's virtual devices
264
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
185 */
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
186 static int cmd_query_virtual(struct virt_sys *sys, char *cmd, int len)
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
187 {
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
188 struct virt_device *vdev;
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
189
591
d953d7d4d89d cp: revamp directory handling
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 562
diff changeset
190 SHELL_CMD_AUTH(sys, G);
d953d7d4d89d cp: revamp directory handling
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 562
diff changeset
191
650
6fca4100a886 include: change uint64_t LP64 definition to be unsigned long
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 618
diff changeset
192 con_printf(sys->con, "CPU 00 ID %016lX %s\n",
599
0a0b076339ca cp: guest layer revamp, part 2
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 592
diff changeset
193 sys->cpu->cpuid,
0a0b076339ca cp: guest layer revamp, part 2
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 592
diff changeset
194 __guest_state_to_str(sys->cpu->state));
650
6fca4100a886 include: change uint64_t LP64 definition to be unsigned long
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 618
diff changeset
195 con_printf(sys->con, "STORAGE = %luM\n", sys->directory->storage_size >> 20);
264
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
196
562
faa272e7a657 cp: added a macro for easy iteration through virtual devices
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 559
diff changeset
197 for_each_vdev(sys, vdev)
264
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
198 display_vdev(sys->con, vdev);
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
199
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
200 return 0;
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
201 }
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
202
429
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
203 static void __cmd_query_real_cpus(struct virt_sys *sys)
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
204 {
650
6fca4100a886 include: change uint64_t LP64 definition to be unsigned long
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 618
diff changeset
205 con_printf(sys->con, "CPU %02d ID %016lX RUNNING\n",
429
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
206 getcpuaddr(),
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
207 getcpuid());
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
208 }
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
209
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
210 static void __cmd_query_real_stor(struct virt_sys *sys)
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
211 {
650
6fca4100a886 include: change uint64_t LP64 definition to be unsigned long
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 618
diff changeset
212 con_printf(sys->con, "STORAGE = %luM\n", memsize >> 20);
429
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
213 }
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
214
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
215 enum {
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
216 QUERY_CPUS = 1 << 0,
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
217 QUERY_STOR = 1 << 1,
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
218 QUERY_DEVS = 1 << 2,
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
219 QUERY_DEVNUM = 1 << 3,
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
220 };
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
221
264
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
222 /*
234
29d6f072fc51 Some documentation for the implemented commands
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 219
diff changeset
223 *!!! QUERY REAL
342
64886ec8f6a8 manual: rework the CP commands comment syntax
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 340
diff changeset
224 *!! SYNTAX
346
3a8933aeb8d7 manual: fix command names with spaces
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 342
diff changeset
225 *! \tok{\sc Query} \tok{\sc Real}
429
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
226 *! \begin{stack}
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
227 *! \\
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
228 *! \tok{\sc\bf ALL} \\
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
229 *! \tok{\sc CPUS} \\
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
230 *! \tok{\sc STORage} \\
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
231 *! <rdev>
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
232 *! \end{stack}
342
64886ec8f6a8 manual: rework the CP commands comment syntax
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 340
diff changeset
233 *!! XATNYS
591
d953d7d4d89d cp: revamp directory handling
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 562
diff changeset
234 *!! AUTH B
234
29d6f072fc51 Some documentation for the implemented commands
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 219
diff changeset
235 *!! PURPOSE
429
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
236 *! \cbstart
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
237 *! Lists the host's real devices, CPUs, and storage
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
238 *! \cbend
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
239 *!! NOTES
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
240 *! \cbstart
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
241 *! \item Specifying real device numbers is not supported at the moment.
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
242 *! Instead, use QUERY REAL ALL to display all devices attached to the
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
243 *! system.
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
244 *! \cbend
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
245 *!! SETON
264
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
246 */
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
247 static int cmd_query_real(struct virt_sys *sys, char *cmd, int len)
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
248 {
429
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
249 int what = 0;
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
250 u64 devnum;
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
251
591
d953d7d4d89d cp: revamp directory handling
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 562
diff changeset
252 SHELL_CMD_AUTH(sys, B);
340
cb37afdb8040 cp: added auth level checks to all the non G-level commands
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 334
diff changeset
253
429
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
254 if (strnlen(cmd, len) == 0) {
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
255 what = QUERY_CPUS | QUERY_STOR | QUERY_DEVS;
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
256 } else if (!strcasecmp(cmd, "ALL")) {
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
257 what = QUERY_CPUS | QUERY_STOR | QUERY_DEVS;
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
258 } else if (!strcasecmp(cmd, "CPUS")) {
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
259 what = QUERY_CPUS;
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
260 } else if (!strcasecmp(cmd, "STOR") ||
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
261 !strcasecmp(cmd, "STORA") ||
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
262 !strcasecmp(cmd, "STORAG") ||
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
263 !strcasecmp(cmd, "STORAGE")) {
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
264 what = QUERY_STOR;
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
265 } else {
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
266 cmd = __extract_hex(cmd, &devnum);
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
267 if (IS_ERR(cmd))
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
268 return PTR_ERR(cmd);
264
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
269
429
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
270 /* sch number must be: X'0000____' */
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
271 if (devnum & ~0xffffull)
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
272 return -EINVAL;
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
273
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
274 what = QUERY_DEVNUM;
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
275 }
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
276
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
277 if (what & QUERY_CPUS)
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
278 __cmd_query_real_cpus(sys);
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
279
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
280 if (what & QUERY_STOR)
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
281 __cmd_query_real_stor(sys);
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
282
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
283 if (what & QUERY_DEVS)
559
a46925302e15 cp: sched.h accumulated tons of structs that belong into vcpu.h
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 528
diff changeset
284 list_devices(display_rdev, sys->con);
429
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
285 if (what & QUERY_DEVNUM)
780010640eee cp/shell: add options to QUERY REAL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 427
diff changeset
286 con_printf(sys->con, "not implemented\n");
264
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
287
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
288 return 0;
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
289 }
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
290
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
291 /*
238
79d3f8563cd4 cp: QUERY TASK command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 234
diff changeset
292 *!!! QUERY TASK
342
64886ec8f6a8 manual: rework the CP commands comment syntax
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 340
diff changeset
293 *!! SYNTAX
346
3a8933aeb8d7 manual: fix command names with spaces
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 342
diff changeset
294 *! \tok{\sc Query} \tok{\sc Task}
342
64886ec8f6a8 manual: rework the CP commands comment syntax
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 340
diff changeset
295 *!! XATNYS
591
d953d7d4d89d cp: revamp directory handling
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 562
diff changeset
296 *!! AUTH E
238
79d3f8563cd4 cp: QUERY TASK command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 234
diff changeset
297 *!! PURPOSE
79d3f8563cd4 cp: QUERY TASK command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 234
diff changeset
298 *! Lists all of the tasks running on the host. This includes guest virtual
79d3f8563cd4 cp: QUERY TASK command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 234
diff changeset
299 *! cpu tasks, as well as system helper tasks.
234
29d6f072fc51 Some documentation for the implemented commands
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 219
diff changeset
300 */
264
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
301 static int cmd_query_task(struct virt_sys *sys, char *cmd, int len)
140
4115752a3503 cp: revamp of command parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
302 {
591
d953d7d4d89d cp: revamp directory handling
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 562
diff changeset
303 SHELL_CMD_AUTH(sys, E);
340
cb37afdb8040 cp: added auth level checks to all the non G-level commands
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 334
diff changeset
304
559
a46925302e15 cp: sched.h accumulated tons of structs that belong into vcpu.h
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 528
diff changeset
305 list_tasks(display_task, sys->con);
150
58af4cf69cda cp: Implement QUERY CPLEVEL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 140
diff changeset
306
140
4115752a3503 cp: revamp of command parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
307 return 0;
4115752a3503 cp: revamp of command parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
308 }
264
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
309
592
732345b0925c cp: guest layer revamp, part 1
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 591
diff changeset
310 static void display_names(struct virt_cons *con, struct virt_sys *sys)
304
8f0feecc0a0e cp: QUERY NAMES command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 299
diff changeset
311 {
8f0feecc0a0e cp: QUERY NAMES command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 299
diff changeset
312 con_printf(con, "%s %04X %-8s\n", type2name(sys->con->dev->type),
8f0feecc0a0e cp: QUERY NAMES command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 299
diff changeset
313 sys->con->dev->ccuu, sys->directory->userid);
8f0feecc0a0e cp: QUERY NAMES command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 299
diff changeset
314 }
8f0feecc0a0e cp: QUERY NAMES command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 299
diff changeset
315
8f0feecc0a0e cp: QUERY NAMES command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 299
diff changeset
316 /*
8f0feecc0a0e cp: QUERY NAMES command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 299
diff changeset
317 *!!! QUERY NAMES
342
64886ec8f6a8 manual: rework the CP commands comment syntax
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 340
diff changeset
318 *!! SYNTAX
346
3a8933aeb8d7 manual: fix command names with spaces
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 342
diff changeset
319 *! \tok{\sc Query} \tok{\sc NAMes}
342
64886ec8f6a8 manual: rework the CP commands comment syntax
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 340
diff changeset
320 *!! XATNYS
304
8f0feecc0a0e cp: QUERY NAMES command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 299
diff changeset
321 *!! AUTH G
8f0feecc0a0e cp: QUERY NAMES command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 299
diff changeset
322 *!! PURPOSE
8f0feecc0a0e cp: QUERY NAMES command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 299
diff changeset
323 *! Lists all of the logged in users.
8f0feecc0a0e cp: QUERY NAMES command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 299
diff changeset
324 */
8f0feecc0a0e cp: QUERY NAMES command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 299
diff changeset
325 static int cmd_query_names(struct virt_sys *sys, char *cmd, int len)
8f0feecc0a0e cp: QUERY NAMES command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 299
diff changeset
326 {
591
d953d7d4d89d cp: revamp directory handling
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 562
diff changeset
327 SHELL_CMD_AUTH(sys, G);
d953d7d4d89d cp: revamp directory handling
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 562
diff changeset
328
304
8f0feecc0a0e cp: QUERY NAMES command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 299
diff changeset
329 list_users(sys->con, display_names);
8f0feecc0a0e cp: QUERY NAMES command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 299
diff changeset
330
8f0feecc0a0e cp: QUERY NAMES command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 299
diff changeset
331 return 0;
8f0feecc0a0e cp: QUERY NAMES command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 299
diff changeset
332 }
8f0feecc0a0e cp: QUERY NAMES command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 299
diff changeset
333
427
58a3d827a9d9 cp/shell: added Q USERID command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 422
diff changeset
334 /*
58a3d827a9d9 cp/shell: added Q USERID command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 422
diff changeset
335 *!!! QUERY USERID
58a3d827a9d9 cp/shell: added Q USERID command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 422
diff changeset
336 *!! SYNTAX
58a3d827a9d9 cp/shell: added Q USERID command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 422
diff changeset
337 *! \tok{\sc Query} \tok{\sc USERID}
58a3d827a9d9 cp/shell: added Q USERID command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 422
diff changeset
338 *!! XATNYS
58a3d827a9d9 cp/shell: added Q USERID command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 422
diff changeset
339 *!! AUTH G
58a3d827a9d9 cp/shell: added Q USERID command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 422
diff changeset
340 *!! PURPOSE
58a3d827a9d9 cp/shell: added Q USERID command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 422
diff changeset
341 *! Displays the current user id.
58a3d827a9d9 cp/shell: added Q USERID command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 422
diff changeset
342 */
58a3d827a9d9 cp/shell: added Q USERID command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 422
diff changeset
343 static int cmd_query_userid(struct virt_sys *sys, char *cmd, int len)
58a3d827a9d9 cp/shell: added Q USERID command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 422
diff changeset
344 {
591
d953d7d4d89d cp: revamp directory handling
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 562
diff changeset
345 SHELL_CMD_AUTH(sys, G);
d953d7d4d89d cp: revamp directory handling
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 562
diff changeset
346
427
58a3d827a9d9 cp/shell: added Q USERID command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 422
diff changeset
347 con_printf(sys->con, "%s\n", sys->directory->userid);
58a3d827a9d9 cp/shell: added Q USERID command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 422
diff changeset
348 return 0;
58a3d827a9d9 cp/shell: added Q USERID command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 422
diff changeset
349 }
58a3d827a9d9 cp/shell: added Q USERID command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 422
diff changeset
350
264
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
351 static struct cpcmd cmd_tbl_query[] = {
419
c6d653e59cf7 cp: added QUERY ARCHMODE to display current architecture mode
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 392
diff changeset
352 {"ARCHMODE", cmd_query_archmode, NULL},
c6d653e59cf7 cp: added QUERY ARCHMODE to display current architecture mode
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 392
diff changeset
353
264
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
354 {"CPLEVEL", cmd_query_cplevel, NULL},
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
355
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
356 {"TIME", cmd_query_time, NULL},
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
357
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
358 {"VIRTUAL", cmd_query_virtual, NULL},
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
359 {"VIRTUA", cmd_query_virtual, NULL},
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
360 {"VIRTU", cmd_query_virtual, NULL},
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
361 {"VIRT", cmd_query_virtual, NULL},
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
362 {"VIR", cmd_query_virtual, NULL},
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
363 {"VI", cmd_query_virtual, NULL},
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
364 {"V", cmd_query_virtual, NULL},
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
365
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
366 {"REAL", cmd_query_real, NULL},
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
367 {"REA", cmd_query_real, NULL},
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
368 {"RE", cmd_query_real, NULL},
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
369 {"R", cmd_query_real, NULL},
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
370
304
8f0feecc0a0e cp: QUERY NAMES command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 299
diff changeset
371 {"NAMES", cmd_query_names, NULL},
8f0feecc0a0e cp: QUERY NAMES command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 299
diff changeset
372 {"NAME", cmd_query_names, NULL},
8f0feecc0a0e cp: QUERY NAMES command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 299
diff changeset
373 {"NAM", cmd_query_names, NULL},
8f0feecc0a0e cp: QUERY NAMES command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 299
diff changeset
374
264
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
375 {"TASK", cmd_query_task, NULL},
427
58a3d827a9d9 cp/shell: added Q USERID command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 422
diff changeset
376
58a3d827a9d9 cp/shell: added Q USERID command
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 422
diff changeset
377 {"USERID", cmd_query_userid, NULL},
264
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
378 {"", NULL, NULL},
53102fc45168 cp: use table-driven QUERY subcommand parsing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 259
diff changeset
379 };