diff options
Diffstat (limited to 'include/chardev/char.h')
-rw-r--r-- | include/chardev/char.h | 81 |
1 files changed, 44 insertions, 37 deletions
diff --git a/include/chardev/char.h b/include/chardev/char.h index 6f0576e214..7becd8c80c 100644 --- a/include/chardev/char.h +++ b/include/chardev/char.h @@ -68,12 +68,11 @@ struct Chardev { }; /** - * @qemu_chr_new_from_opts: + * qemu_chr_new_from_opts: + * @opts: see qemu-config.c for a list of valid options * * Create a new character backend from a QemuOpts list. * - * @opts see qemu-config.c for a list of valid options - * * Returns: on success: a new character backend * otherwise: NULL; @errp specifies the error * or left untouched in case of help option @@ -82,17 +81,16 @@ Chardev *qemu_chr_new_from_opts(QemuOpts *opts, Error **errp); /** - * @qemu_chr_parse_common: + * qemu_chr_parse_common: + * @opts: the options that still need parsing + * @backend: a new backend * * Parse the common options available to all character backends. - * - * @opts the options that still need parsing - * @backend a new backend */ void qemu_chr_parse_common(QemuOpts *opts, ChardevCommon *backend); /** - * @qemu_chr_parse_opts: + * qemu_chr_parse_opts: * * Parse the options to the ChardevBackend struct. * @@ -102,49 +100,61 @@ ChardevBackend *qemu_chr_parse_opts(QemuOpts *opts, Error **errp); /** - * @qemu_chr_new: + * qemu_chr_new: + * @label: the name of the backend + * @filename: the URI * * Create a new character backend from a URI. - * - * @label the name of the backend - * @filename the URI + * Do not implicitly initialize a monitor if the chardev is muxed. * * Returns: a new character backend */ Chardev *qemu_chr_new(const char *label, const char *filename); /** - * @qemu_chr_change: + * qemu_chr_new_mux_mon: + * @label: the name of the backend + * @filename: the URI * - * Change an existing character backend + * Create a new character backend from a URI. + * Implicitly initialize a monitor if the chardev is muxed. + * + * Returns: a new character backend + */ +Chardev *qemu_chr_new_mux_mon(const char *label, const char *filename); + +/** +* qemu_chr_change: +* @opts: the new backend options * - * @opts the new backend options + * Change an existing character backend */ void qemu_chr_change(QemuOpts *opts, Error **errp); /** - * @qemu_chr_cleanup: + * qemu_chr_cleanup: * * Delete all chardevs (when leaving qemu) */ void qemu_chr_cleanup(void); /** - * @qemu_chr_new_noreplay: + * qemu_chr_new_noreplay: + * @label: the name of the backend + * @filename: the URI + * @permit_mux_mon: if chardev is muxed, initialize a monitor * * Create a new character backend from a URI. * Character device communications are not written * into the replay log. * - * @label the name of the backend - * @filename the URI - * * Returns: a new character backend */ -Chardev *qemu_chr_new_noreplay(const char *label, const char *filename); +Chardev *qemu_chr_new_noreplay(const char *label, const char *filename, + bool permit_mux_mon); /** - * @qemu_chr_be_can_write: + * qemu_chr_be_can_write: * * Determine how much data the front end can currently accept. This function * returns the number of bytes the front end can accept. If it returns 0, the @@ -156,43 +166,39 @@ Chardev *qemu_chr_new_noreplay(const char *label, const char *filename); int qemu_chr_be_can_write(Chardev *s); /** - * @qemu_chr_be_write: + * qemu_chr_be_write: + * @buf: a buffer to receive data from the front end + * @len: the number of bytes to receive from the front end * * Write data from the back end to the front end. Before issuing this call, * the caller should call @qemu_chr_be_can_write to determine how much data * the front end can currently accept. - * - * @buf a buffer to receive data from the front end - * @len the number of bytes to receive from the front end */ void qemu_chr_be_write(Chardev *s, uint8_t *buf, int len); /** - * @qemu_chr_be_write_impl: + * qemu_chr_be_write_impl: + * @buf: a buffer to receive data from the front end + * @len: the number of bytes to receive from the front end * * Implementation of back end writing. Used by replay module. - * - * @buf a buffer to receive data from the front end - * @len the number of bytes to receive from the front end */ void qemu_chr_be_write_impl(Chardev *s, uint8_t *buf, int len); /** - * @qemu_chr_be_update_read_handlers: + * qemu_chr_be_update_read_handlers: + * @context: the gcontext that will be used to attach the watch sources * * Invoked when frontend read handlers are setup - * - * @context the gcontext that will be used to attach the watch sources */ void qemu_chr_be_update_read_handlers(Chardev *s, GMainContext *context); /** - * @qemu_chr_be_event: + * qemu_chr_be_event: + * @event: the event to send * * Send an event from the back end to the front end. - * - * @event the event to send */ void qemu_chr_be_event(Chardev *s, int event); @@ -203,7 +209,8 @@ bool qemu_chr_has_feature(Chardev *chr, ChardevFeature feature); void qemu_chr_set_feature(Chardev *chr, ChardevFeature feature); -QemuOpts *qemu_chr_parse_compat(const char *label, const char *filename); +QemuOpts *qemu_chr_parse_compat(const char *label, const char *filename, + bool permit_mux_mon); int qemu_chr_write(Chardev *s, const uint8_t *buf, int len, bool write_all); #define qemu_chr_write_all(s, buf, len) qemu_chr_write(s, buf, len, true) int qemu_chr_wait_connected(Chardev *chr, Error **errp); |