diff options
Diffstat (limited to 'meta/recipes-devtools/qemu/qemu/0008-chardev-connect-socket-to-a-spawned-command.patch')
-rw-r--r-- | meta/recipes-devtools/qemu/qemu/0008-chardev-connect-socket-to-a-spawned-command.patch | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/meta/recipes-devtools/qemu/qemu/0008-chardev-connect-socket-to-a-spawned-command.patch b/meta/recipes-devtools/qemu/qemu/0008-chardev-connect-socket-to-a-spawned-command.patch index 2afe4e9376..e5a2d4abca 100644 --- a/meta/recipes-devtools/qemu/qemu/0008-chardev-connect-socket-to-a-spawned-command.patch +++ b/meta/recipes-devtools/qemu/qemu/0008-chardev-connect-socket-to-a-spawned-command.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 20a09bb18907e67565c54fc505a741cbbef53f7f Mon Sep 17 00:00:00 2001 | 1 | From 9c1e976290e87a83ab1bfe38eb7ff3521ff0d684 Mon Sep 17 00:00:00 2001 |
2 | From: Alistair Francis <alistair.francis@xilinx.com> | 2 | From: Alistair Francis <alistair.francis@xilinx.com> |
3 | Date: Thu, 21 Dec 2017 11:35:16 -0800 | 3 | Date: Thu, 21 Dec 2017 11:35:16 -0800 |
4 | Subject: [PATCH] chardev: connect socket to a spawned command | 4 | Subject: [PATCH] chardev: connect socket to a spawned command |
@@ -44,6 +44,7 @@ as simple as possible. | |||
44 | Upstream-Status: Inappropriate [embedded specific] | 44 | Upstream-Status: Inappropriate [embedded specific] |
45 | 45 | ||
46 | Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> | 46 | Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> |
47 | |||
47 | --- | 48 | --- |
48 | chardev/char-socket.c | 102 ++++++++++++++++++++++++++++++++++++++++++ | 49 | chardev/char-socket.c | 102 ++++++++++++++++++++++++++++++++++++++++++ |
49 | chardev/char.c | 3 ++ | 50 | chardev/char.c | 3 ++ |
@@ -51,10 +52,10 @@ Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> | |||
51 | 3 files changed, 110 insertions(+) | 52 | 3 files changed, 110 insertions(+) |
52 | 53 | ||
53 | diff --git a/chardev/char-socket.c b/chardev/char-socket.c | 54 | diff --git a/chardev/char-socket.c b/chardev/char-socket.c |
54 | index 159e69c3b1..84778cf31a 100644 | 55 | index eaa8e8b6..959ed183 100644 |
55 | --- a/chardev/char-socket.c | 56 | --- a/chardev/char-socket.c |
56 | +++ b/chardev/char-socket.c | 57 | +++ b/chardev/char-socket.c |
57 | @@ -934,6 +934,68 @@ static gboolean socket_reconnect_timeout(gpointer opaque) | 58 | @@ -987,6 +987,68 @@ static gboolean socket_reconnect_timeout(gpointer opaque) |
58 | return false; | 59 | return false; |
59 | } | 60 | } |
60 | 61 | ||
@@ -123,7 +124,7 @@ index 159e69c3b1..84778cf31a 100644 | |||
123 | static void qmp_chardev_open_socket(Chardev *chr, | 124 | static void qmp_chardev_open_socket(Chardev *chr, |
124 | ChardevBackend *backend, | 125 | ChardevBackend *backend, |
125 | bool *be_opened, | 126 | bool *be_opened, |
126 | @@ -941,6 +1003,9 @@ static void qmp_chardev_open_socket(Chardev *chr, | 127 | @@ -994,6 +1056,9 @@ static void qmp_chardev_open_socket(Chardev *chr, |
127 | { | 128 | { |
128 | SocketChardev *s = SOCKET_CHARDEV(chr); | 129 | SocketChardev *s = SOCKET_CHARDEV(chr); |
129 | ChardevSocket *sock = backend->u.socket.data; | 130 | ChardevSocket *sock = backend->u.socket.data; |
@@ -133,7 +134,7 @@ index 159e69c3b1..84778cf31a 100644 | |||
133 | bool do_nodelay = sock->has_nodelay ? sock->nodelay : false; | 134 | bool do_nodelay = sock->has_nodelay ? sock->nodelay : false; |
134 | bool is_listen = sock->has_server ? sock->server : true; | 135 | bool is_listen = sock->has_server ? sock->server : true; |
135 | bool is_telnet = sock->has_telnet ? sock->telnet : false; | 136 | bool is_telnet = sock->has_telnet ? sock->telnet : false; |
136 | @@ -1008,6 +1073,14 @@ static void qmp_chardev_open_socket(Chardev *chr, | 137 | @@ -1072,6 +1137,14 @@ static void qmp_chardev_open_socket(Chardev *chr, |
137 | s->reconnect_time = reconnect; | 138 | s->reconnect_time = reconnect; |
138 | } | 139 | } |
139 | 140 | ||
@@ -145,10 +146,10 @@ index 159e69c3b1..84778cf31a 100644 | |||
145 | + *be_opened = true; | 146 | + *be_opened = true; |
146 | + } else | 147 | + } else |
147 | +#endif | 148 | +#endif |
148 | /* If reconnect_time is set, will do that in chr_machine_done. */ | 149 | if (s->reconnect_time) { |
149 | if (!s->reconnect_time) { | 150 | tcp_chr_connect_async(chr); |
150 | if (s->is_listen) { | 151 | } else { |
151 | @@ -1065,9 +1138,26 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend, | 152 | @@ -1131,9 +1204,26 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend, |
152 | const char *port = qemu_opt_get(opts, "port"); | 153 | const char *port = qemu_opt_get(opts, "port"); |
153 | const char *fd = qemu_opt_get(opts, "fd"); | 154 | const char *fd = qemu_opt_get(opts, "fd"); |
154 | const char *tls_creds = qemu_opt_get(opts, "tls-creds"); | 155 | const char *tls_creds = qemu_opt_get(opts, "tls-creds"); |
@@ -175,7 +176,7 @@ index 159e69c3b1..84778cf31a 100644 | |||
175 | if ((!!path + !!fd + !!host) != 1) { | 176 | if ((!!path + !!fd + !!host) != 1) { |
176 | error_setg(errp, | 177 | error_setg(errp, |
177 | "Exactly one of 'path', 'fd' or 'host' required"); | 178 | "Exactly one of 'path', 'fd' or 'host' required"); |
178 | @@ -1112,12 +1202,24 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend, | 179 | @@ -1180,12 +1270,24 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend, |
179 | sock->reconnect = reconnect; | 180 | sock->reconnect = reconnect; |
180 | sock->tls_creds = g_strdup(tls_creds); | 181 | sock->tls_creds = g_strdup(tls_creds); |
181 | 182 | ||
@@ -201,10 +202,10 @@ index 159e69c3b1..84778cf31a 100644 | |||
201 | addr->type = SOCKET_ADDRESS_LEGACY_KIND_INET; | 202 | addr->type = SOCKET_ADDRESS_LEGACY_KIND_INET; |
202 | addr->u.inet.data = g_new(InetSocketAddress, 1); | 203 | addr->u.inet.data = g_new(InetSocketAddress, 1); |
203 | diff --git a/chardev/char.c b/chardev/char.c | 204 | diff --git a/chardev/char.c b/chardev/char.c |
204 | index 76d866e6fe..9747d51d7c 100644 | 205 | index 152dde53..62d5b578 100644 |
205 | --- a/chardev/char.c | 206 | --- a/chardev/char.c |
206 | +++ b/chardev/char.c | 207 | +++ b/chardev/char.c |
207 | @@ -792,6 +792,9 @@ QemuOptsList qemu_chardev_opts = { | 208 | @@ -818,6 +818,9 @@ QemuOptsList qemu_chardev_opts = { |
208 | },{ | 209 | },{ |
209 | .name = "path", | 210 | .name = "path", |
210 | .type = QEMU_OPT_STRING, | 211 | .type = QEMU_OPT_STRING, |
@@ -215,10 +216,10 @@ index 76d866e6fe..9747d51d7c 100644 | |||
215 | .name = "host", | 216 | .name = "host", |
216 | .type = QEMU_OPT_STRING, | 217 | .type = QEMU_OPT_STRING, |
217 | diff --git a/qapi/char.json b/qapi/char.json | 218 | diff --git a/qapi/char.json b/qapi/char.json |
218 | index ae19dcd1ed..6de0f29bcd 100644 | 219 | index 79bac598..97bd161a 100644 |
219 | --- a/qapi/char.json | 220 | --- a/qapi/char.json |
220 | +++ b/qapi/char.json | 221 | +++ b/qapi/char.json |
221 | @@ -241,6 +241,10 @@ | 222 | @@ -242,6 +242,10 @@ |
222 | # | 223 | # |
223 | # @addr: socket address to listen on (server=true) | 224 | # @addr: socket address to listen on (server=true) |
224 | # or connect to (server=false) | 225 | # or connect to (server=false) |
@@ -229,7 +230,7 @@ index ae19dcd1ed..6de0f29bcd 100644 | |||
229 | # @tls-creds: the ID of the TLS credentials object (since 2.6) | 230 | # @tls-creds: the ID of the TLS credentials object (since 2.6) |
230 | # @server: create server socket (default: true) | 231 | # @server: create server socket (default: true) |
231 | # @wait: wait for incoming connection on server | 232 | # @wait: wait for incoming connection on server |
232 | @@ -258,6 +262,7 @@ | 233 | @@ -261,6 +265,7 @@ |
233 | # Since: 1.4 | 234 | # Since: 1.4 |
234 | ## | 235 | ## |
235 | { 'struct': 'ChardevSocket', 'data': { 'addr' : 'SocketAddressLegacy', | 236 | { 'struct': 'ChardevSocket', 'data': { 'addr' : 'SocketAddressLegacy', |