monitor: Port handler_2 to use QDict

This commit ports command handlers that receive two arguments to use
the new monitor's dictionary.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
Luiz Capitulino 2009-08-28 15:27:14 -03:00 committed by Anthony Liguori
parent d54908a55b
commit f18c16de4a
7 changed files with 35 additions and 20 deletions

View File

@ -48,7 +48,7 @@ static PCIDevice *qemu_pci_hot_add_nic(Monitor *mon,
return pci_nic_init(&nd_table[ret], "rtl8139", devaddr); return pci_nic_init(&nd_table[ret], "rtl8139", devaddr);
} }
void drive_hot_add(Monitor *mon, const char *pci_addr, const char *opts) void drive_hot_add(Monitor *mon, const QDict *qdict)
{ {
int dom, pci_bus; int dom, pci_bus;
unsigned slot; unsigned slot;
@ -56,6 +56,8 @@ void drive_hot_add(Monitor *mon, const char *pci_addr, const char *opts)
int success = 0; int success = 0;
PCIDevice *dev; PCIDevice *dev;
DriveInfo *dinfo; DriveInfo *dinfo;
const char *pci_addr = qdict_get_str(qdict, "pci_addr");
const char *opts = qdict_get_str(qdict, "opts");
if (pci_read_devaddr(mon, pci_addr, &dom, &pci_bus, &slot)) { if (pci_read_devaddr(mon, pci_addr, &dom, &pci_bus, &slot)) {
return; return;

View File

@ -52,10 +52,12 @@ void qemu_start_incoming_migration(const char *uri)
fprintf(stderr, "unknown migration protocol: %s\n", uri); fprintf(stderr, "unknown migration protocol: %s\n", uri);
} }
void do_migrate(Monitor *mon, int detach, const char *uri) void do_migrate(Monitor *mon, const QDict *qdict)
{ {
MigrationState *s = NULL; MigrationState *s = NULL;
const char *p; const char *p;
int detach = qdict_get_int(qdict, "detach");
const char *uri = qdict_get_str(qdict, "uri");
if (strstart(uri, "tcp:", &p)) if (strstart(uri, "tcp:", &p))
s = tcp_start_outgoing_migration(p, max_throttle, detach); s = tcp_start_outgoing_migration(p, max_throttle, detach);

View File

@ -50,7 +50,7 @@ struct FdMigrationState
void qemu_start_incoming_migration(const char *uri); void qemu_start_incoming_migration(const char *uri);
void do_migrate(Monitor *mon, int detach, const char *uri); void do_migrate(Monitor *mon, const QDict *qdict);
void do_migrate_cancel(Monitor *mon, const QDict *qdict); void do_migrate_cancel(Monitor *mon, const QDict *qdict);

View File

@ -452,9 +452,11 @@ static int eject_device(Monitor *mon, BlockDriverState *bs, int force)
return 0; return 0;
} }
static void do_eject(Monitor *mon, int force, const char *filename) static void do_eject(Monitor *mon, const QDict *qdict)
{ {
BlockDriverState *bs; BlockDriverState *bs;
int force = qdict_get_int(qdict, "force");
const char *filename = qdict_get_str(qdict, "filename");
bs = bdrv_find(filename); bs = bdrv_find(filename);
if (!bs) { if (!bs) {
@ -912,11 +914,13 @@ static void do_physical_memory_save(Monitor *mon, unsigned int valh,
fclose(f); fclose(f);
} }
static void do_sum(Monitor *mon, uint32_t start, uint32_t size) static void do_sum(Monitor *mon, const QDict *qdict)
{ {
uint32_t addr; uint32_t addr;
uint8_t buf[1]; uint8_t buf[1];
uint16_t sum; uint16_t sum;
uint32_t start = qdict_get_int(qdict, "start");
uint32_t size = qdict_get_int(qdict, "size");
sum = 0; sum = 0;
for(addr = start; addr < (start + size); addr++) { for(addr = start; addr < (start + size); addr++) {
@ -1600,9 +1604,10 @@ static void do_acl_reset(Monitor *mon, const QDict *qdict)
} }
} }
static void do_acl_policy(Monitor *mon, const char *aclname, static void do_acl_policy(Monitor *mon, const QDict *qdict)
const char *policy)
{ {
const char *aclname = qdict_get_str(qdict, "aclname");
const char *policy = qdict_get_str(qdict, "policy");
qemu_acl *acl = find_acl(mon, aclname); qemu_acl *acl = find_acl(mon, aclname);
if (acl) { if (acl) {
@ -1647,8 +1652,10 @@ static void do_acl_add(Monitor *mon, const char *aclname,
} }
} }
static void do_acl_remove(Monitor *mon, const char *aclname, const char *match) static void do_acl_remove(Monitor *mon, const QDict *qdict)
{ {
const char *aclname = qdict_get_str(qdict, "aclname");
const char *match = qdict_get_str(qdict, "match");
qemu_acl *acl = find_acl(mon, aclname); qemu_acl *acl = find_acl(mon, aclname);
int ret; int ret;
@ -2572,7 +2579,6 @@ static void monitor_handle_command(Monitor *mon, const char *cmdline)
void *str_allocated[MAX_ARGS]; void *str_allocated[MAX_ARGS];
void *args[MAX_ARGS]; void *args[MAX_ARGS];
void (*handler_d)(Monitor *mon, const QDict *qdict); void (*handler_d)(Monitor *mon, const QDict *qdict);
void (*handler_2)(Monitor *mon, void *arg0, void *arg1);
void (*handler_3)(Monitor *mon, void *arg0, void *arg1, void *arg2); void (*handler_3)(Monitor *mon, void *arg0, void *arg1, void *arg2);
void (*handler_4)(Monitor *mon, void *arg0, void *arg1, void *arg2, void (*handler_4)(Monitor *mon, void *arg0, void *arg1, void *arg2,
void *arg3); void *arg3);
@ -2865,13 +2871,10 @@ static void monitor_handle_command(Monitor *mon, const char *cmdline)
switch(nb_args) { switch(nb_args) {
case 0: case 0:
case 1: case 1:
case 2:
handler_d = cmd->handler; handler_d = cmd->handler;
handler_d(mon, qdict); handler_d(mon, qdict);
break; break;
case 2:
handler_2 = cmd->handler;
handler_2(mon, args[0], args[1]);
break;
case 3: case 3:
handler_3 = cmd->handler; handler_3 = cmd->handler;
handler_3(mon, args[0], args[1], args[2]); handler_3(mon, args[0], args[1], args[2]);

13
net.c
View File

@ -2822,8 +2822,11 @@ static int net_host_check_device(const char *device)
return 0; return 0;
} }
void net_host_device_add(Monitor *mon, const char *device, const char *opts) void net_host_device_add(Monitor *mon, const QDict *qdict)
{ {
const char *device = qdict_get_str(qdict, "device");
const char *opts = qdict_get_try_str(qdict, "opts");
if (!net_host_check_device(device)) { if (!net_host_check_device(device)) {
monitor_printf(mon, "invalid host network device %s\n", device); monitor_printf(mon, "invalid host network device %s\n", device);
return; return;
@ -2833,9 +2836,11 @@ void net_host_device_add(Monitor *mon, const char *device, const char *opts)
} }
} }
void net_host_device_remove(Monitor *mon, int vlan_id, const char *device) void net_host_device_remove(Monitor *mon, const QDict *qdict)
{ {
VLANClientState *vc; VLANClientState *vc;
int vlan_id = qdict_get_int(qdict, "vlan_id");
const char *device = qdict_get_str(qdict, "device");
vc = qemu_find_vlan_client_by_name(mon, vlan_id, device); vc = qemu_find_vlan_client_by_name(mon, vlan_id, device);
if (!vc) { if (!vc) {
@ -2900,10 +2905,12 @@ void do_info_network(Monitor *mon)
} }
} }
void do_set_link(Monitor *mon, const char *name, const char *up_or_down) void do_set_link(Monitor *mon, const QDict *qdict)
{ {
VLANState *vlan; VLANState *vlan;
VLANClientState *vc = NULL; VLANClientState *vc = NULL;
const char *name = qdict_get_str(qdict, "name");
const char *up_or_down = qdict_get_str(qdict, "up_or_down");
for (vlan = first_vlan; vlan != NULL; vlan = vlan->next) for (vlan = first_vlan; vlan != NULL; vlan = vlan->next)
for (vc = vlan->first_client; vc != NULL; vc = vc->next) for (vc = vlan->first_client; vc != NULL; vc = vc->next)

7
net.h
View File

@ -3,6 +3,7 @@
#include "sys-queue.h" #include "sys-queue.h"
#include "qemu-common.h" #include "qemu-common.h"
#include "qdict.h"
/* VLANs support */ /* VLANs support */
@ -80,7 +81,7 @@ void qemu_check_nic_model_list(NICInfo *nd, const char * const *models,
void qemu_handler_true(void *opaque); void qemu_handler_true(void *opaque);
void do_info_network(Monitor *mon); void do_info_network(Monitor *mon);
void do_set_link(Monitor *mon, const char *name, const char *up_or_down); void do_set_link(Monitor *mon, const QDict *qdict);
void do_info_usernet(Monitor *mon); void do_info_usernet(Monitor *mon);
@ -145,8 +146,8 @@ void net_slirp_redir(const char *redir_str);
void net_cleanup(void); void net_cleanup(void);
void net_client_check(void); void net_client_check(void);
void net_set_boot_mask(int boot_mask); void net_set_boot_mask(int boot_mask);
void net_host_device_add(Monitor *mon, const char *device, const char *opts); void net_host_device_add(Monitor *mon, const QDict *qdict);
void net_host_device_remove(Monitor *mon, int vlan_id, const char *device); void net_host_device_remove(Monitor *mon, const QDict *qdict);
#define DEFAULT_NETWORK_SCRIPT "/etc/qemu-ifup" #define DEFAULT_NETWORK_SCRIPT "/etc/qemu-ifup"
#define DEFAULT_NETWORK_DOWN_SCRIPT "/etc/qemu-ifdown" #define DEFAULT_NETWORK_DOWN_SCRIPT "/etc/qemu-ifdown"

View File

@ -212,7 +212,7 @@ void destroy_bdrvs(dev_match_fn *match_fn, void *arg);
/* pci-hotplug */ /* pci-hotplug */
void pci_device_hot_add(Monitor *mon, const char *pci_addr, const char *type, void pci_device_hot_add(Monitor *mon, const char *pci_addr, const char *type,
const char *opts); const char *opts);
void drive_hot_add(Monitor *mon, const char *pci_addr, const char *opts); void drive_hot_add(Monitor *mon, const QDict *qdict);
void pci_device_hot_remove(Monitor *mon, const char *pci_addr); void pci_device_hot_remove(Monitor *mon, const char *pci_addr);
void do_pci_device_hot_remove(Monitor *mon, const QDict *qdict); void do_pci_device_hot_remove(Monitor *mon, const QDict *qdict);
void pci_device_hot_remove_success(int pcibus, int slot); void pci_device_hot_remove_success(int pcibus, int slot);