aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/monitor/hmp.h1
-rw-r--r--include/net/net.h4
-rw-r--r--monitor/hmp-cmds.c1
-rw-r--r--monitor/misc.c1
-rw-r--r--net/net-hmp-cmds.c28
-rw-r--r--net/net.c28
6 files changed, 33 insertions, 30 deletions
diff --git a/include/monitor/hmp.h b/include/monitor/hmp.h
index d60d1305b8..a248ee9ed1 100644
--- a/include/monitor/hmp.h
+++ b/include/monitor/hmp.h
@@ -56,6 +56,7 @@ void hmp_ringbuf_read(Monitor *mon, const QDict *qdict);
void hmp_cont(Monitor *mon, const QDict *qdict);
void hmp_system_wakeup(Monitor *mon, const QDict *qdict);
void hmp_nmi(Monitor *mon, const QDict *qdict);
+void hmp_info_network(Monitor *mon, const QDict *qdict);
void hmp_set_link(Monitor *mon, const QDict *qdict);
void hmp_balloon(Monitor *mon, const QDict *qdict);
void hmp_loadvm(Monitor *mon, const QDict *qdict);
diff --git a/include/net/net.h b/include/net/net.h
index dc20b31e9f..fad589cc1d 100644
--- a/include/net/net.h
+++ b/include/net/net.h
@@ -115,6 +115,8 @@ struct NetClientState {
QTAILQ_HEAD(, NetFilterState) filters;
};
+typedef QTAILQ_HEAD(NetClientStateList, NetClientState) NetClientStateList;
+
typedef struct NICState {
NetClientState *ncs;
NICConf *conf;
@@ -196,7 +198,6 @@ int qemu_find_nic_model(NICInfo *nd, const char * const *models,
const char *default_model);
void print_net_client(Monitor *mon, NetClientState *nc);
-void hmp_info_network(Monitor *mon, const QDict *qdict);
void net_socket_rs_init(SocketReadState *rs,
SocketReadStateFinalize *finalize,
bool vnet_hdr);
@@ -222,6 +223,7 @@ extern NICInfo nd_table[MAX_NICS];
extern const char *host_net_devices[];
/* from net.c */
+extern NetClientStateList net_clients;
bool netdev_is_modern(const char *optarg);
void netdev_parse_modern(const char *optarg);
void net_client_parse(QemuOptsList *opts_list, const char *str);
diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c
index 90259d02d7..b059af7abd 100644
--- a/monitor/hmp-cmds.c
+++ b/monitor/hmp-cmds.c
@@ -15,7 +15,6 @@
#include "qemu/osdep.h"
#include "monitor/hmp.h"
-#include "net/net.h"
#include "sysemu/runstate.h"
#include "qemu/sockets.h"
#include "qemu/help_option.h"
diff --git a/monitor/misc.c b/monitor/misc.c
index bf3d863227..77a76b2b5f 100644
--- a/monitor/misc.c
+++ b/monitor/misc.c
@@ -26,7 +26,6 @@
#include "monitor-internal.h"
#include "monitor/qdev.h"
#include "exec/gdbstub.h"
-#include "net/net.h"
#include "net/slirp.h"
#include "ui/qemu-spice.h"
#include "qemu/ctype.h"
diff --git a/net/net-hmp-cmds.c b/net/net-hmp-cmds.c
index d7427ea4f8..41d326bf5f 100644
--- a/net/net-hmp-cmds.c
+++ b/net/net-hmp-cmds.c
@@ -16,7 +16,9 @@
#include "qemu/osdep.h"
#include "migration/misc.h"
#include "monitor/hmp.h"
+#include "monitor/monitor.h"
#include "net/net.h"
+#include "net/hub.h"
#include "qapi/clone-visitor.h"
#include "qapi/qapi-commands-net.h"
#include "qapi/qapi-visit-net.h"
@@ -25,6 +27,32 @@
#include "qemu/help_option.h"
#include "qemu/option.h"
+void hmp_info_network(Monitor *mon, const QDict *qdict)
+{
+ NetClientState *nc, *peer;
+ NetClientDriver type;
+
+ net_hub_info(mon);
+
+ QTAILQ_FOREACH(nc, &net_clients, next) {
+ peer = nc->peer;
+ type = nc->info->type;
+
+ /* Skip if already printed in hub info */
+ if (net_hub_id_for_client(nc, NULL) == 0) {
+ continue;
+ }
+
+ if (!peer || type == NET_CLIENT_DRIVER_NIC) {
+ print_net_client(mon, nc);
+ } /* else it's a netdev connected to a NIC, printed with the NIC */
+ if (peer && type == NET_CLIENT_DRIVER_NIC) {
+ monitor_printf(mon, " \\ ");
+ print_net_client(mon, peer);
+ }
+ }
+}
+
void hmp_set_link(Monitor *mon, const QDict *qdict)
{
const char *name = qdict_get_str(qdict, "name");
diff --git a/net/net.c b/net/net.c
index 2d01472998..251fc5ab55 100644
--- a/net/net.c
+++ b/net/net.c
@@ -63,7 +63,7 @@
#endif
static VMChangeStateEntry *net_change_state_entry;
-static QTAILQ_HEAD(, NetClientState) net_clients;
+NetClientStateList net_clients;
typedef struct NetdevQueueEntry {
Netdev *nd;
@@ -1345,32 +1345,6 @@ RxFilterInfoList *qmp_query_rx_filter(const char *name, Error **errp)
return filter_list;
}
-void hmp_info_network(Monitor *mon, const QDict *qdict)
-{
- NetClientState *nc, *peer;
- NetClientDriver type;
-
- net_hub_info(mon);
-
- QTAILQ_FOREACH(nc, &net_clients, next) {
- peer = nc->peer;
- type = nc->info->type;
-
- /* Skip if already printed in hub info */
- if (net_hub_id_for_client(nc, NULL) == 0) {
- continue;
- }
-
- if (!peer || type == NET_CLIENT_DRIVER_NIC) {
- print_net_client(mon, nc);
- } /* else it's a netdev connected to a NIC, printed with the NIC */
- if (peer && type == NET_CLIENT_DRIVER_NIC) {
- monitor_printf(mon, " \\ ");
- print_net_client(mon, peer);
- }
- }
-}
-
void colo_notify_filters_event(int event, Error **errp)
{
NetClientState *nc;