summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/qemu/qemu/0008-chardev-connect-socket-to-a-spawned-command.patch
diff options
context:
space:
mode:
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.patch31
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 @@
1From 20a09bb18907e67565c54fc505a741cbbef53f7f Mon Sep 17 00:00:00 2001 1From 9c1e976290e87a83ab1bfe38eb7ff3521ff0d684 Mon Sep 17 00:00:00 2001
2From: Alistair Francis <alistair.francis@xilinx.com> 2From: Alistair Francis <alistair.francis@xilinx.com>
3Date: Thu, 21 Dec 2017 11:35:16 -0800 3Date: Thu, 21 Dec 2017 11:35:16 -0800
4Subject: [PATCH] chardev: connect socket to a spawned command 4Subject: [PATCH] chardev: connect socket to a spawned command
@@ -44,6 +44,7 @@ as simple as possible.
44Upstream-Status: Inappropriate [embedded specific] 44Upstream-Status: Inappropriate [embedded specific]
45 45
46Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> 46Signed-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
53diff --git a/chardev/char-socket.c b/chardev/char-socket.c 54diff --git a/chardev/char-socket.c b/chardev/char-socket.c
54index 159e69c3b1..84778cf31a 100644 55index 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);
203diff --git a/chardev/char.c b/chardev/char.c 204diff --git a/chardev/char.c b/chardev/char.c
204index 76d866e6fe..9747d51d7c 100644 205index 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,
217diff --git a/qapi/char.json b/qapi/char.json 218diff --git a/qapi/char.json b/qapi/char.json
218index ae19dcd1ed..6de0f29bcd 100644 219index 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',