@ -24,7 +24,6 @@
# include "qapi/error.h"
# include "qapi/qapi-commands-acpi.h"
# include "qapi/qapi-commands-control.h"
# include "qapi/qapi-commands-machine.h"
# include "qapi/qapi-commands-misc.h"
# include "qapi/qapi-commands-stats.h"
# include "qapi/type-helpers.h"
@ -42,24 +41,6 @@ NameInfo *qmp_query_name(Error **errp)
return info ;
}
KvmInfo * qmp_query_kvm ( Error * * errp )
{
KvmInfo * info = g_malloc0 ( sizeof ( * info ) ) ;
info - > enabled = kvm_enabled ( ) ;
info - > present = accel_find ( " kvm " ) ;
return info ;
}
UuidInfo * qmp_query_uuid ( Error * * errp )
{
UuidInfo * info = g_malloc0 ( sizeof ( * info ) ) ;
info - > UUID = qemu_uuid_unparse_strdup ( & qemu_uuid ) ;
return info ;
}
void qmp_quit ( Error * * errp )
{
shutdown_action = SHUTDOWN_ACTION_POWEROFF ;
@ -82,16 +63,6 @@ void qmp_stop(Error **errp)
}
}
void qmp_system_reset ( Error * * errp )
{
qemu_system_reset_request ( SHUTDOWN_CAUSE_HOST_QMP_SYSTEM_RESET ) ;
}
void qmp_system_powerdown ( Error * * errp )
{
qemu_system_powerdown_request ( ) ;
}
void qmp_cont ( Error * * errp )
{
BlockBackend * blk ;
@ -145,17 +116,6 @@ void qmp_cont(Error **errp)
}
}
void qmp_system_wakeup ( Error * * errp )
{
if ( ! qemu_wakeup_suspend_enabled ( ) ) {
error_setg ( errp ,
" wake-up from suspend is not supported by this guest " ) ;
return ;
}
qemu_system_wakeup_request ( QEMU_WAKEUP_REASON_OTHER , errp ) ;
}
void qmp_add_client ( const char * protocol , const char * fdname ,
bool has_skipauth , bool skipauth , bool has_tls , bool tls ,
Error * * errp )
@ -196,11 +156,6 @@ void qmp_add_client(const char *protocol, const char *fdname,
}
}
MemoryDeviceInfoList * qmp_query_memory_devices ( Error * * errp )
{
return qmp_memory_device_list ( ) ;
}
ACPIOSTInfoList * qmp_query_acpi_ospm_status ( Error * * errp )
{
bool ambig ;
@ -220,101 +175,6 @@ ACPIOSTInfoList *qmp_query_acpi_ospm_status(Error **errp)
return head ;
}
MemoryInfo * qmp_query_memory_size_summary ( Error * * errp )
{
MemoryInfo * mem_info = g_new0 ( MemoryInfo , 1 ) ;
MachineState * ms = MACHINE ( qdev_get_machine ( ) ) ;
mem_info - > base_memory = ms - > ram_size ;
mem_info - > plugged_memory = get_plugged_memory_size ( ) ;
mem_info - > has_plugged_memory =
mem_info - > plugged_memory ! = ( uint64_t ) - 1 ;
return mem_info ;
}
static int qmp_x_query_rdma_foreach ( Object * obj , void * opaque )
{
RdmaProvider * rdma ;
RdmaProviderClass * k ;
GString * buf = opaque ;
if ( object_dynamic_cast ( obj , INTERFACE_RDMA_PROVIDER ) ) {
rdma = RDMA_PROVIDER ( obj ) ;
k = RDMA_PROVIDER_GET_CLASS ( obj ) ;
if ( k - > format_statistics ) {
k - > format_statistics ( rdma , buf ) ;
} else {
g_string_append_printf ( buf ,
" RDMA statistics not available for %s. \n " ,
object_get_typename ( obj ) ) ;
}
}
return 0 ;
}
HumanReadableText * qmp_x_query_rdma ( Error * * errp )
{
g_autoptr ( GString ) buf = g_string_new ( " " ) ;
object_child_foreach_recursive ( object_get_root ( ) ,
qmp_x_query_rdma_foreach , buf ) ;
return human_readable_text_from_str ( buf ) ;
}
HumanReadableText * qmp_x_query_ramblock ( Error * * errp )
{
g_autoptr ( GString ) buf = ram_block_format ( ) ;
return human_readable_text_from_str ( buf ) ;
}
static int qmp_x_query_irq_foreach ( Object * obj , void * opaque )
{
InterruptStatsProvider * intc ;
InterruptStatsProviderClass * k ;
GString * buf = opaque ;
if ( object_dynamic_cast ( obj , TYPE_INTERRUPT_STATS_PROVIDER ) ) {
intc = INTERRUPT_STATS_PROVIDER ( obj ) ;
k = INTERRUPT_STATS_PROVIDER_GET_CLASS ( obj ) ;
uint64_t * irq_counts ;
unsigned int nb_irqs , i ;
if ( k - > get_statistics & &
k - > get_statistics ( intc , & irq_counts , & nb_irqs ) ) {
if ( nb_irqs > 0 ) {
g_string_append_printf ( buf , " IRQ statistics for %s: \n " ,
object_get_typename ( obj ) ) ;
for ( i = 0 ; i < nb_irqs ; i + + ) {
if ( irq_counts [ i ] > 0 ) {
g_string_append_printf ( buf , " %2d: % " PRId64 " \n " , i ,
irq_counts [ i ] ) ;
}
}
}
} else {
g_string_append_printf ( buf ,
" IRQ statistics not available for %s. \n " ,
object_get_typename ( obj ) ) ;
}
}
return 0 ;
}
HumanReadableText * qmp_x_query_irq ( Error * * errp )
{
g_autoptr ( GString ) buf = g_string_new ( " " ) ;
object_child_foreach_recursive ( object_get_root ( ) ,
qmp_x_query_irq_foreach , buf ) ;
return human_readable_text_from_str ( buf ) ;
}
typedef struct StatsCallbacks {
StatsProvider provider ;
StatRetrieveFunc * stats_cb ;