1376253ecSaliguori #ifndef MONITOR_H 2376253ecSaliguori #define MONITOR_H 3376253ecSaliguori 4376253ecSaliguori #include "qemu-common.h" 57b1b5d19SPaolo Bonzini #include "qapi/qmp/qerror.h" 67b1b5d19SPaolo Bonzini #include "qapi/qmp/qdict.h" 7737e150eSPaolo Bonzini #include "block/block.h" 80150cd81SStefan Hajnoczi #include "qemu/readline.h" 9376253ecSaliguori 10376253ecSaliguori extern Monitor *cur_mon; 118631b608SMarkus Armbruster extern Monitor *default_mon; 12376253ecSaliguori 13731b0364Saliguori /* flags for monitor_init */ 14731b0364Saliguori #define MONITOR_IS_DEFAULT 0x01 15cde76ee1Saliguori #define MONITOR_USE_READLINE 0x02 16418173c7SLuiz Capitulino #define MONITOR_USE_CONTROL 0x04 1739eaab9aSDaniel P. Berrange #define MONITOR_USE_PRETTY 0x08 18731b0364Saliguori 198ac470c1SJan Kiszka /* flags for monitor commands */ 208ac470c1SJan Kiszka #define MONITOR_CMD_ASYNC 0x0001 218ac470c1SJan Kiszka 226620d3ceSMarkus Armbruster int monitor_cur_is_qmp(void); 236620d3ceSMarkus Armbruster 24731b0364Saliguori void monitor_init(CharDriverState *chr, int flags); 25376253ecSaliguori 26cde76ee1Saliguori int monitor_suspend(Monitor *mon); 27376253ecSaliguori void monitor_resume(Monitor *mon); 28376253ecSaliguori 290bbc47bbSLuiz Capitulino int monitor_read_bdrv_key_start(Monitor *mon, BlockDriverState *bs, 30*097310b5SMarkus Armbruster BlockCompletionFunc *completion_cb, 31376253ecSaliguori void *opaque); 32e42e818bSLuiz Capitulino int monitor_read_block_device_key(Monitor *mon, const char *device, 33*097310b5SMarkus Armbruster BlockCompletionFunc *completion_cb, 34e42e818bSLuiz Capitulino void *opaque); 35376253ecSaliguori 36a9940fc4SPaolo Bonzini int monitor_get_fd(Monitor *mon, const char *fdname, Error **errp); 37a96ed02fSNicholas Bellinger int monitor_handle_fd_param(Monitor *mon, const char *fdname); 385906366eSLaszlo Ersek int monitor_handle_fd_param2(Monitor *mon, const char *fdname, Error **errp); 397768e04cSMark McLoughlin 408b7968f7SStefan Weil void monitor_vprintf(Monitor *mon, const char *fmt, va_list ap) 418b7968f7SStefan Weil GCC_FMT_ATTR(2, 0); 42e5924d89SStefan Weil void monitor_printf(Monitor *mon, const char *fmt, ...) GCC_FMT_ATTR(2, 3); 43376253ecSaliguori void monitor_flush(Monitor *mon); 44b025c8b4SLuiz Capitulino int monitor_set_cpu(int cpu_index); 4599b7796fSLuiz Capitulino int monitor_get_cpu_index(void); 46376253ecSaliguori 47940cc30dSAdam Litke typedef void (MonitorCompletion)(void *opaque, QObject *ret_data); 48940cc30dSAdam Litke 49d6f46833SMarkus Armbruster void monitor_set_error(Monitor *mon, QError *qerror); 507060b478SAnthony Liguori void monitor_read_command(Monitor *mon, int show_prompt); 517060b478SAnthony Liguori ReadLineState *monitor_get_rs(Monitor *mon); 527060b478SAnthony Liguori int monitor_read_password(Monitor *mon, ReadLineFunc *readline_func, 537060b478SAnthony Liguori void *opaque); 54d6f46833SMarkus Armbruster 55eb6e8ea5SAnthony Liguori int qmp_qom_set(Monitor *mon, const QDict *qdict, QObject **ret); 56eb6e8ea5SAnthony Liguori 57eb6e8ea5SAnthony Liguori int qmp_qom_get(Monitor *mon, const QDict *qdict, QObject **ret); 58cff8b2c6SPaolo Bonzini int qmp_object_add(Monitor *mon, const QDict *qdict, QObject **ret); 59cff8b2c6SPaolo Bonzini void object_add(const char *type, const char *id, const QDict *qdict, 60cff8b2c6SPaolo Bonzini Visitor *v, Error **errp); 61eb6e8ea5SAnthony Liguori 62e446f70dSCorey Bryant AddfdInfo *monitor_fdset_add_fd(int fd, bool has_fdset_id, int64_t fdset_id, 63e446f70dSCorey Bryant bool has_opaque, const char *opaque, 64e446f70dSCorey Bryant Error **errp); 65adb696f3SCorey Bryant int monitor_fdset_get_fd(int64_t fdset_id, int flags); 66adb696f3SCorey Bryant int monitor_fdset_dup_fd_add(int64_t fdset_id, int dup_fd); 67b3dd1b8cSMichael S. Tsirkin void monitor_fdset_dup_fd_remove(int dup_fd); 68adb696f3SCorey Bryant int monitor_fdset_dup_fd_find(int dup_fd); 69adb696f3SCorey Bryant 70376253ecSaliguori #endif /* !MONITOR_H */ 71