From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yu Zhiguo Subject: xl: Add subcommand "xl debug-keys" Date: Wed, 19 May 2010 17:37:40 +0800 Message-ID: <4BF3B164.8000004@cn.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Stefano Stabellini , Keir Fraser Cc: "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org Can be used to send debug keys to Xen. Signed-off-by: Yu Zhiguo diff -r baccadfd9418 -r 60150e519923 tools/libxl/libxl.c --- a/tools/libxl/libxl.c Fri May 14 08:05:05 2010 +0100 +++ b/tools/libxl/libxl.c Thu May 20 01:39:03 2010 +0800 @@ -2807,6 +2807,15 @@ return 0; } +int libxl_send_debug_keys(struct libxl_ctx *ctx, char *keys) +{ + int rc; + + rc = xc_send_debug_keys(ctx->xch, keys); + + return rc; +} + uint32_t libxl_vm_get_start_time(struct libxl_ctx *ctx, uint32_t domid) { char *dompath = libxl_xs_get_dompath(ctx, domid); diff -r baccadfd9418 -r 60150e519923 tools/libxl/libxl.h --- a/tools/libxl/libxl.h Fri May 14 08:05:05 2010 +0100 +++ b/tools/libxl/libxl.h Thu May 20 01:39:03 2010 +0800 @@ -511,6 +511,7 @@ int libxl_send_trigger(struct libxl_ctx *ctx, uint32_t domid, char *trigger_name, uint32_t vcpuid); int libxl_send_sysrq(struct libxl_ctx *ctx, uint32_t domid, char sysrq); +int libxl_send_debug_keys(struct libxl_ctx *ctx, char *keys); uint32_t libxl_vm_get_start_time(struct libxl_ctx *ctx, uint32_t domid); #endif /* LIBXL_H */ diff -r baccadfd9418 -r 60150e519923 tools/libxl/xl_cmdimpl.c --- a/tools/libxl/xl_cmdimpl.c Fri May 14 08:05:05 2010 +0100 +++ b/tools/libxl/xl_cmdimpl.c Thu May 20 01:39:03 2010 +0800 @@ -3167,6 +3167,38 @@ exit(0); } +int main_debug_keys(int argc, char **argv) +{ + int opt = 0; + char *keys; + int rc; + + while ((opt = getopt(argc, argv, "h")) != -1) { + switch (opt) { + case 'h': + help("debug-keys"); + exit(0); + default: + fprintf(stderr, "option not supported\n"); + break; + } + } + if (optind >= argc) { + help("debug-keys"); + exit(2); + } + + keys = argv[optind]; + + rc = libxl_send_debug_keys(&ctx, keys); + if (rc) { + fprintf(stderr, "cannot send debug keys: %s\n", keys); + exit(1); + } + + exit(0); +} + int main_top(int argc, char **argv) { int opt; diff -r baccadfd9418 -r 60150e519923 tools/libxl/xl_cmdimpl.h --- a/tools/libxl/xl_cmdimpl.h Fri May 14 08:05:05 2010 +0100 +++ b/tools/libxl/xl_cmdimpl.h Thu May 20 01:39:03 2010 +0800 @@ -44,6 +44,7 @@ int main_rename(int argc, char **argv); int main_trigger(int argc, char **argv); int main_sysrq(int argc, char **argv); +int main_debug_keys(int argc, char **argv); int main_top(int argc, char **argv); int main_networkattach(int argc, char **argv); int main_networklist(int argc, char **argv); diff -r baccadfd9418 -r 60150e519923 tools/libxl/xl_cmdtable.c --- a/tools/libxl/xl_cmdtable.c Fri May 14 08:05:05 2010 +0100 +++ b/tools/libxl/xl_cmdtable.c Thu May 20 01:39:03 2010 +0800 @@ -182,6 +182,11 @@ "Send a sysrq to a domain", " ", }, + { "debug-keys", + &main_debug_keys, + "Send debug keys to Xen", + "", + }, { "top", &main_top, "Monitor a host and the domains in real time",