|
|
1.1 ! root 1: /* ! 2: * Core Definitions for QAPI/QMP Dispatch ! 3: * ! 4: * Copyright IBM, Corp. 2011 ! 5: * ! 6: * Authors: ! 7: * Anthony Liguori <[email protected]> ! 8: * Michael Roth <[email protected]> ! 9: * ! 10: * This work is licensed under the terms of the GNU LGPL, version 2.1 or later. ! 11: * See the COPYING.LIB file in the top-level directory. ! 12: * ! 13: */ ! 14: ! 15: #include "qapi/qmp-core.h" ! 16: ! 17: static QTAILQ_HEAD(, QmpCommand) qmp_commands = ! 18: QTAILQ_HEAD_INITIALIZER(qmp_commands); ! 19: ! 20: void qmp_register_command(const char *name, QmpCommandFunc *fn) ! 21: { ! 22: QmpCommand *cmd = qemu_mallocz(sizeof(*cmd)); ! 23: ! 24: cmd->name = name; ! 25: cmd->type = QCT_NORMAL; ! 26: cmd->fn = fn; ! 27: QTAILQ_INSERT_TAIL(&qmp_commands, cmd, node); ! 28: } ! 29: ! 30: QmpCommand *qmp_find_command(const char *name) ! 31: { ! 32: QmpCommand *i; ! 33: ! 34: QTAILQ_FOREACH(i, &qmp_commands, node) { ! 35: if (strcmp(i->name, name) == 0) { ! 36: return i; ! 37: } ! 38: } ! 39: return NULL; ! 40: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.