mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-23 11:39:53 +00:00
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:
parent
d54908a55b
commit
f18c16de4a
@ -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;
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
23
monitor.c
23
monitor.c
@ -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
13
net.c
@ -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
7
net.h
@ -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"
|
||||||
|
2
sysemu.h
2
sysemu.h
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user