mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 23:33:54 -06:00
char: get rid of CharDriver
qemu_chr_new_from_opts() is modified to not need CharDriver backend[] array, but uses instead objectified qmp_query_chardev_backends() and char_get_class(). The alias field is moved outside in a ChardevAlias[], similar to QDevAlias for devices. "kind" and "parse" are moved to ChardevClass ("kind" is to be removed next) Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
8cddc46990
commit
88cace9f11
8 changed files with 161 additions and 223 deletions
|
@ -88,8 +88,6 @@ typedef struct CharBackend {
|
|||
int fe_open;
|
||||
} CharBackend;
|
||||
|
||||
typedef struct CharDriver CharDriver;
|
||||
|
||||
struct Chardev {
|
||||
Object parent_obj;
|
||||
|
||||
|
@ -476,6 +474,8 @@ typedef struct ChardevClass {
|
|||
ObjectClass parent_class;
|
||||
|
||||
bool internal; /* TODO: eventually use TYPE_USER_CREATABLE */
|
||||
ChardevBackendKind kind;
|
||||
void (*parse)(QemuOpts *opts, ChardevBackend *backend, Error **errp);
|
||||
|
||||
void (*open)(Chardev *chr, ChardevBackend *backend,
|
||||
bool *be_opened, Error **errp);
|
||||
|
@ -495,17 +495,9 @@ typedef struct ChardevClass {
|
|||
void (*chr_set_fe_open)(Chardev *chr, int fe_open);
|
||||
} ChardevClass;
|
||||
|
||||
struct CharDriver {
|
||||
ChardevBackendKind kind;
|
||||
const char *alias;
|
||||
void (*parse)(QemuOpts *opts, ChardevBackend *backend, Error **errp);
|
||||
};
|
||||
|
||||
Chardev *qemu_chardev_new(const char *id, const char *typename,
|
||||
ChardevBackend *backend, Error **errp);
|
||||
|
||||
void register_char_driver(const CharDriver *driver);
|
||||
|
||||
extern int term_escape_char;
|
||||
|
||||
/* console.c */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue