summaryrefslogtreecommitdiff
path: root/hxtool
diff options
context:
space:
mode:
authorJan Kiszka <jan.kiszka@siemens.com>2010-05-31 14:43:31 -0300
committerAnthony Liguori <aliguori@us.ibm.com>2010-06-01 13:48:43 -0500
commitb40292e7115da8814da3d8acd33267202d27d678 (patch)
tree2e123a9a07e8ba2e41f05d2feec31c3d9de91177 /hxtool
parent33572ece26744889b14b7d72ac81870d076725ac (diff)
QMP: Introduce commands documentation
One of the most important missing feature in QMP today is its supported commands documentation. The plan is to make it part of self-description support, however self-description is a big task we have been postponing for a long time now and still don't know when it's going to be done. In order not to compromise QMP adoption and make users' life easier, this commit adds a simple text documentation which fully describes all QMP supported commands. This is not ideal for a number of reasons (harder to maintain, text-only, etc) but does improve the current situation. To avoid at least divering from the user monitor help and texi snippets, QMP bits are also maintained inside qemu-monitor.hx, and hxtool is extended to generate a single text file from them. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'hxtool')
-rw-r--r--hxtool44
1 files changed, 43 insertions, 1 deletions
diff --git a/hxtool b/hxtool
index 8f655320be..d499dc08ab 100644
--- a/hxtool
+++ b/hxtool
@@ -7,7 +7,7 @@ hxtoh()
case $str in
HXCOMM*)
;;
- STEXI*|ETEXI*) flag=$(($flag^1))
+ STEXI*|ETEXI*|SQMP*|EQMP*) flag=$(($flag^1))
;;
*)
test $flag -eq 1 && printf "%s\n" "$str"
@@ -38,6 +38,12 @@ hxtotexi()
fi
flag=0
;;
+ SQMP*|EQMP*)
+ if test $flag -eq 1 ; then
+ echo "line $line: syntax error: expected ETEXI, found $str" >&2
+ exit 1
+ fi
+ ;;
DEFHEADING*)
echo "$(expr "$str" : "DEFHEADING(\(.*\))")"
;;
@@ -49,9 +55,45 @@ hxtotexi()
done
}
+hxtoqmp()
+{
+ IFS=
+ flag=0
+ while read -r str; do
+ case "$str" in
+ HXCOMM*)
+ ;;
+ SQMP*)
+ if test $flag -eq 1 ; then
+ echo "line $line: syntax error: expected EQMP, found $str" >&2
+ exit 1
+ fi
+ flag=1
+ ;;
+ EQMP*)
+ if test $flag -ne 1 ; then
+ echo "line $line: syntax error: expected SQMP, found $str" >&2
+ exit 1
+ fi
+ flag=0
+ ;;
+ STEXI*|ETEXI*)
+ if test $flag -eq 1 ; then
+ echo "line $line: syntax error: expected EQMP, found $str" >&2
+ exit 1
+ fi
+ ;;
+ *)
+ test $flag -eq 1 && echo "$str"
+ ;;
+ esac
+ done
+}
+
case "$1" in
"-h") hxtoh ;;
"-t") hxtotexi ;;
+"-q") hxtoqmp ;;
*) exit 1 ;;
esac