[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 13/15] qapi: Improve documentation of file descriptor socket addr
From: |
Markus Armbruster |
Subject: |
[PATCH 13/15] qapi: Improve documentation of file descriptor socket addresses |
Date: |
Mon, 5 Feb 2024 08:47:07 +0100 |
SocketAddress branch @fd is documented in enum SocketAddressType,
unlike the other branches. That's because the branch's type is String
from common.json.
Use a local copy of String, so we can put the documentation in the
usual place.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
qapi/sockets.json | 40 +++++++++++++++++---------
include/hw/virtio/vhost-vsock-common.h | 1 +
chardev/char-socket.c | 2 +-
util/qemu-sockets.c | 3 +-
4 files changed, 31 insertions(+), 15 deletions(-)
diff --git a/qapi/sockets.json b/qapi/sockets.json
index c3b616731d..5e6af5504d 100644
--- a/qapi/sockets.json
+++ b/qapi/sockets.json
@@ -5,8 +5,6 @@
# = Socket data types
##
-{ 'include': 'common.json' }
-
##
# @NetworkAddressFamily:
#
@@ -116,6 +114,24 @@
'cid': 'str',
'port': 'str' } }
+##
+# @FdSocketAddress:
+#
+# A file descriptor name or number.
+#
+# @str: decimal is for file descriptor number, otherwise it's a file
+# descriptor name. Named file descriptors are permitted in
+# monitor commands, in combination with the 'getfd' command.
+# Decimal file descriptors are permitted at startup or other
+# contexts where no monitor context is active.
+#
+#
+# Since: 1.2
+##
+{ 'struct': 'FdSocketAddress',
+ 'data': {
+ 'str': 'str' } }
+
##
# @InetSocketAddressWrapper:
#
@@ -147,12 +163,14 @@
'data': { 'data': 'VsockSocketAddress' } }
##
-# @StringWrapper:
+# @FdSocketAddressWrapper:
+#
+# @data: file descriptor name or number
#
# Since: 1.3
##
-{ 'struct': 'StringWrapper',
- 'data': { 'data': 'String' } }
+{ 'struct': 'FdSocketAddressWrapper',
+ 'data': { 'data': 'FdSocketAddress' } }
##
# @SocketAddressLegacy:
@@ -173,7 +191,7 @@
'inet': 'InetSocketAddressWrapper',
'unix': 'UnixSocketAddressWrapper',
'vsock': 'VsockSocketAddressWrapper',
- 'fd': 'StringWrapper' } }
+ 'fd': 'FdSocketAddressWrapper' } }
##
# @SocketAddressType:
@@ -186,11 +204,7 @@
#
# @vsock: VMCI address
#
-# @fd: decimal is for file descriptor number, otherwise a file
-# descriptor name. Named file descriptors are permitted in
-# monitor commands, in combination with the 'getfd' command.
-# Decimal file descriptors are permitted at startup or other
-# contexts where no monitor context is active.
+# @fd: Socket file descriptor
#
# Since: 2.9
##
@@ -200,7 +214,7 @@
##
# @SocketAddress:
#
-# Captures the address of a socket, which could also be a named file
+# Captures the address of a socket, which could also be a socket file
# descriptor
#
# @type: Transport type
@@ -213,4 +227,4 @@
'data': { 'inet': 'InetSocketAddress',
'unix': 'UnixSocketAddress',
'vsock': 'VsockSocketAddress',
- 'fd': 'String' } }
+ 'fd': 'FdSocketAddress' } }
diff --git a/include/hw/virtio/vhost-vsock-common.h
b/include/hw/virtio/vhost-vsock-common.h
index 93c782101d..75a74e8a99 100644
--- a/include/hw/virtio/vhost-vsock-common.h
+++ b/include/hw/virtio/vhost-vsock-common.h
@@ -11,6 +11,7 @@
#ifndef QEMU_VHOST_VSOCK_COMMON_H
#define QEMU_VHOST_VSOCK_COMMON_H
+#include "qapi/qapi-types-common.h"
#include "hw/virtio/virtio.h"
#include "hw/virtio/vhost.h"
#include "qom/object.h"
diff --git a/chardev/char-socket.c b/chardev/char-socket.c
index 73947da188..ff8f845cca 100644
--- a/chardev/char-socket.c
+++ b/chardev/char-socket.c
@@ -1504,7 +1504,7 @@ static void qemu_chr_parse_socket(QemuOpts *opts,
ChardevBackend *backend,
};
} else {
addr->type = SOCKET_ADDRESS_TYPE_FD;
- addr->u.fd.data = g_new(String, 1);
+ addr->u.fd.data = g_new(FdSocketAddress, 1);
addr->u.fd.data->str = g_strdup(fd);
}
sock->addr = addr;
diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c
index 83e84b1186..60c44b2b56 100644
--- a/util/qemu-sockets.c
+++ b/util/qemu-sockets.c
@@ -1464,7 +1464,8 @@ SocketAddress *socket_address_flatten(SocketAddressLegacy
*addr_legacy)
break;
case SOCKET_ADDRESS_TYPE_FD:
addr->type = SOCKET_ADDRESS_TYPE_FD;
- QAPI_CLONE_MEMBERS(String, &addr->u.fd, addr_legacy->u.fd.data);
+ QAPI_CLONE_MEMBERS(FdSocketAddress, &addr->u.fd,
+ addr_legacy->u.fd.data);
break;
default:
abort();
--
2.43.0
- Re: [PATCH 10/15] qapi/yank: Clean up documentaion of yank, (continued)
- [PATCH 14/15] qapi: Move @String out of common.json to discourage reuse, Markus Armbruster, 2024/02/05
- [PATCH 12/15] qapi: Plug trivial documentation holes around former simple unions, Markus Armbruster, 2024/02/05
- [PATCH 07/15] qga/qapi-schema: Clean up documentation of guest-set-memory-blocks, Markus Armbruster, 2024/02/05
- [PATCH 05/15] sphinx/qapidoc: Drop code to generate doc for simple union tag, Markus Armbruster, 2024/02/05
- [PATCH 13/15] qapi: Improve documentation of file descriptor socket addresses,
Markus Armbruster <=
- [PATCH 01/15] docs/devel/qapi-code-gen: Normalize version refs x.y.0 to just x.y, Markus Armbruster, 2024/02/05
- [PATCH 09/15] qga/qapi-schema: Plug trivial documentation holes, Markus Armbruster, 2024/02/05
- Re: [PATCH 00/15] qapi: Require member documentation (with loophole), Peter Xu, 2024/02/06