qemu/include/monitor/stats.h
<<
>>
Prefs
   1/*
   2 * Copyright (c) 2022 Oracle and/or its affiliates.
   3 *
   4 * This work is licensed under the terms of the GNU GPL, version 2.
   5 * See the COPYING file in the top-level directory.
   6 */
   7
   8#ifndef STATS_H
   9#define STATS_H
  10
  11#include "qapi/qapi-types-stats.h"
  12
  13typedef void StatRetrieveFunc(StatsResultList **result, StatsTarget target,
  14                              strList *names, strList *targets, Error **errp);
  15typedef void SchemaRetrieveFunc(StatsSchemaList **result, Error **errp);
  16
  17/*
  18 * Register callbacks for the QMP query-stats command.
  19 *
  20 * @provider: stats provider checked against QMP command arguments
  21 * @stats_fn: routine to query stats:
  22 * @schema_fn: routine to query stat schemas:
  23 */
  24void add_stats_callbacks(StatsProvider provider,
  25                         StatRetrieveFunc *stats_fn,
  26                         SchemaRetrieveFunc *schemas_fn);
  27
  28/*
  29 * Helper routines for adding stats entries to the results lists.
  30 */
  31void add_stats_entry(StatsResultList **, StatsProvider, const char *id,
  32                     StatsList *stats_list);
  33void add_stats_schema(StatsSchemaList **, StatsProvider, StatsTarget,
  34                      StatsSchemaValueList *);
  35
  36/*
  37 * True if a string matches the filter passed to the stats_fn callabck,
  38 * false otherwise.
  39 *
  40 * Note that an empty list means no filtering, i.e. all strings will
  41 * return true.
  42 */
  43bool apply_str_list_filter(const char *string, strList *list);
  44
  45#endif /* STATS_H */
  46