From patchwork Fri Aug 1 05:27:14 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Beno=C3=AEt_Canet?= X-Patchwork-Id: 375546 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 327CC140140 for ; Fri, 1 Aug 2014 15:31:41 +1000 (EST) Received: from localhost ([::1]:59907 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XD5RL-00051O-4C for incoming@patchwork.ozlabs.org; Fri, 01 Aug 2014 01:31:39 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33503) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XD5OC-0007qo-3c for qemu-devel@nongnu.org; Fri, 01 Aug 2014 01:28:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XD5O2-0003eC-7w for qemu-devel@nongnu.org; Fri, 01 Aug 2014 01:28:24 -0400 Received: from lputeaux-656-01-25-125.w80-12.abo.wanadoo.fr ([80.12.84.125]:59405 helo=paradis.irqsave.net) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XD5O1-0003cC-Tb for qemu-devel@nongnu.org; Fri, 01 Aug 2014 01:28:14 -0400 Received: from localhost.localdomain (laure.irqsave.net [192.168.77.2]) by paradis.irqsave.net (Postfix) with ESMTP id C4704C3147; Fri, 1 Aug 2014 07:28:11 +0200 (CEST) From: =?UTF-8?q?Beno=C3=AEt=20Canet?= To: qemu-devel@nongnu.org Date: Fri, 1 Aug 2014 07:27:14 +0200 Message-Id: <1406870842-17988-17-git-send-email-benoit.canet@irqsave.net> X-Mailer: git-send-email 2.0.1 In-Reply-To: <1406870842-17988-1-git-send-email-benoit.canet@irqsave.net> References: <1406870842-17988-1-git-send-email-benoit.canet@irqsave.net> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] X-Received-From: 80.12.84.125 Cc: kwolf@redhat.com, =?UTF-8?q?Beno=C3=AEt=20Canet?= , Benoit Canet , mreitz@redhat.com, stefanha@redhat.com Subject: [Qemu-devel] [PATCH v1 16/24] monitor: Move more functions from monitor.c to monitor-system.c X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Signed-off-by: Benoit Canet --- monitor-system.c | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ monitor.c | 69 -------------------------------------------------------- 2 files changed, 69 insertions(+), 69 deletions(-) diff --git a/monitor-system.c b/monitor-system.c index 5b5f1ed..f8e4a10 100644 --- a/monitor-system.c +++ b/monitor-system.c @@ -2395,3 +2395,72 @@ int get_double(Monitor *mon, double *pval, const char **pp) size_t sizeof_mon_cmds = sizeof(mon_cmds); size_t sizeof_info_cmds = sizeof(info_cmds); + +static void bdrv_password_cb(void *opaque, const char *password, + void *readline_opaque) +{ + Monitor *mon = opaque; + BlockDriverState *bs = readline_opaque; + int ret = 0; + + if (bdrv_set_key(bs, password) != 0) { + monitor_printf(mon, "invalid password\n"); + ret = -EPERM; + } + if (mon->password_completion_cb) + mon->password_completion_cb(mon->password_opaque, ret); + + monitor_read_command(mon, 1); +} + +ReadLineState *monitor_get_rs(Monitor *mon) +{ + return mon->rs; +} + +int monitor_read_bdrv_key_start(Monitor *mon, BlockDriverState *bs, + BlockDriverCompletionFunc *completion_cb, + void *opaque) +{ + int err; + + if (!bdrv_key_required(bs)) { + if (completion_cb) + completion_cb(opaque, 0); + return 0; + } + + if (monitor_ctrl_mode(mon)) { + qerror_report(QERR_DEVICE_ENCRYPTED, bdrv_get_device_name(bs), + bdrv_get_encrypted_filename(bs)); + return -1; + } + + monitor_printf(mon, "%s (%s) is encrypted.\n", bdrv_get_device_name(bs), + bdrv_get_encrypted_filename(bs)); + + mon->password_completion_cb = completion_cb; + mon->password_opaque = opaque; + + err = monitor_read_password(mon, bdrv_password_cb, bs); + + if (err && completion_cb) + completion_cb(opaque, err); + + return err; +} + +int monitor_read_block_device_key(Monitor *mon, const char *device, + BlockDriverCompletionFunc *completion_cb, + void *opaque) +{ + BlockDriverState *bs; + + bs = bdrv_find(device); + if (!bs) { + monitor_printf(mon, "Device not found %s\n", device); + return -1; + } + + return monitor_read_bdrv_key_start(mon, bs, completion_cb, opaque); +} diff --git a/monitor.c b/monitor.c index 419da13..79b54e1 100644 --- a/monitor.c +++ b/monitor.c @@ -2978,75 +2978,6 @@ void monitor_init(CharDriverState *chr, int flags) default_mon = mon; } -static void bdrv_password_cb(void *opaque, const char *password, - void *readline_opaque) -{ - Monitor *mon = opaque; - BlockDriverState *bs = readline_opaque; - int ret = 0; - - if (bdrv_set_key(bs, password) != 0) { - monitor_printf(mon, "invalid password\n"); - ret = -EPERM; - } - if (mon->password_completion_cb) - mon->password_completion_cb(mon->password_opaque, ret); - - monitor_read_command(mon, 1); -} - -ReadLineState *monitor_get_rs(Monitor *mon) -{ - return mon->rs; -} - -int monitor_read_bdrv_key_start(Monitor *mon, BlockDriverState *bs, - BlockDriverCompletionFunc *completion_cb, - void *opaque) -{ - int err; - - if (!bdrv_key_required(bs)) { - if (completion_cb) - completion_cb(opaque, 0); - return 0; - } - - if (monitor_ctrl_mode(mon)) { - qerror_report(QERR_DEVICE_ENCRYPTED, bdrv_get_device_name(bs), - bdrv_get_encrypted_filename(bs)); - return -1; - } - - monitor_printf(mon, "%s (%s) is encrypted.\n", bdrv_get_device_name(bs), - bdrv_get_encrypted_filename(bs)); - - mon->password_completion_cb = completion_cb; - mon->password_opaque = opaque; - - err = monitor_read_password(mon, bdrv_password_cb, bs); - - if (err && completion_cb) - completion_cb(opaque, err); - - return err; -} - -int monitor_read_block_device_key(Monitor *mon, const char *device, - BlockDriverCompletionFunc *completion_cb, - void *opaque) -{ - BlockDriverState *bs; - - bs = bdrv_find(device); - if (!bs) { - monitor_printf(mon, "Device not found %s\n", device); - return -1; - } - - return monitor_read_bdrv_key_start(mon, bs, completion_cb, opaque); -} - QemuOptsList qemu_mon_opts = { .name = "mon", .implied_opt_name = "chardev",