include/disas/dis-asm.h | 8 -------- include/qemu/bswap.h | 8 -------- include/qemu/envlist.h | 8 -------- include/qemu/rcu.h | 8 -------- include/qemu/rcu_queue.h | 8 -------- include/qemu/uri.h | 7 ------- include/sysemu/os-posix.h | 8 -------- include/sysemu/os-win32.h | 8 -------- 8 files changed, 63 deletions(-)
A handful of header files in QEMU are wrapped with extern "C" blocks.
These are not necessary: there are C++ source files anymore in QEMU,
and even where there were some, they did not include most of these
files anyway.
Remove them for consistency.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
include/disas/dis-asm.h | 8 --------
include/qemu/bswap.h | 8 --------
include/qemu/envlist.h | 8 --------
include/qemu/rcu.h | 8 --------
include/qemu/rcu_queue.h | 8 --------
include/qemu/uri.h | 7 -------
include/sysemu/os-posix.h | 8 --------
include/sysemu/os-win32.h | 8 --------
8 files changed, 63 deletions(-)
diff --git a/include/disas/dis-asm.h b/include/disas/dis-asm.h
index 64247ecb11f4..32cda9ef14c5 100644
--- a/include/disas/dis-asm.h
+++ b/include/disas/dis-asm.h
@@ -11,10 +11,6 @@
#include "qemu/bswap.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
typedef void *PTR;
typedef uint64_t bfd_vma;
typedef int64_t bfd_signed_vma;
@@ -506,8 +502,4 @@ static inline bfd_vma bfd_getb16(const bfd_byte *addr)
typedef bool bfd_boolean;
-#ifdef __cplusplus
-}
-#endif
-
#endif /* DISAS_DIS_ASM_H */
diff --git a/include/qemu/bswap.h b/include/qemu/bswap.h
index 346d05f2aab3..eb8923b1fe07 100644
--- a/include/qemu/bswap.h
+++ b/include/qemu/bswap.h
@@ -15,10 +15,6 @@
#define BSWAP_FROM_FALLBACKS
#endif /* ! CONFIG_MACHINE_BSWAP_H */
-#ifdef __cplusplus
-extern "C" {
-#endif
-
#ifdef BSWAP_FROM_BYTESWAP
static inline uint16_t bswap16(uint16_t x)
{
@@ -448,8 +444,4 @@ DO_STN_LDN_P(be)
#undef le_bswaps
#undef be_bswaps
-#ifdef __cplusplus
-}
-#endif
-
#endif /* BSWAP_H */
diff --git a/include/qemu/envlist.h b/include/qemu/envlist.h
index b9addcc11f7d..6006dfae44c3 100644
--- a/include/qemu/envlist.h
+++ b/include/qemu/envlist.h
@@ -1,10 +1,6 @@
#ifndef ENVLIST_H
#define ENVLIST_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
typedef struct envlist envlist_t;
envlist_t *envlist_create(void);
@@ -15,8 +11,4 @@ int envlist_parse_set(envlist_t *, const char *);
int envlist_parse_unset(envlist_t *, const char *);
char **envlist_to_environ(const envlist_t *, size_t *);
-#ifdef __cplusplus
-}
-#endif
-
#endif /* ENVLIST_H */
diff --git a/include/qemu/rcu.h b/include/qemu/rcu.h
index b063c6fde81d..313fc414bc2a 100644
--- a/include/qemu/rcu.h
+++ b/include/qemu/rcu.h
@@ -31,10 +31,6 @@
#include "qemu/sys_membarrier.h"
#include "qemu/coroutine-tls.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/*
* Important !
*
@@ -196,8 +192,4 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(RCUReadAuto, rcu_read_auto_unlock)
void rcu_add_force_rcu_notifier(Notifier *n);
void rcu_remove_force_rcu_notifier(Notifier *n);
-#ifdef __cplusplus
-}
-#endif
-
#endif /* QEMU_RCU_H */
diff --git a/include/qemu/rcu_queue.h b/include/qemu/rcu_queue.h
index 0e53ddd5305e..4e6298d47307 100644
--- a/include/qemu/rcu_queue.h
+++ b/include/qemu/rcu_queue.h
@@ -28,11 +28,6 @@
#include "qemu/queue.h"
#include "qemu/atomic.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
/*
* List access methods.
*/
@@ -311,7 +306,4 @@ extern "C" {
(var) && ((next) = qatomic_rcu_read(&(var)->field.sle_next), 1); \
(var) = (next))
-#ifdef __cplusplus
-}
-#endif
#endif /* QEMU_RCU_QUEUE_H */
diff --git a/include/qemu/uri.h b/include/qemu/uri.h
index d201c61260de..db5218c39ec0 100644
--- a/include/qemu/uri.h
+++ b/include/qemu/uri.h
@@ -53,10 +53,6 @@
#ifndef QEMU_URI_H
#define QEMU_URI_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/**
* URI:
*
@@ -105,7 +101,4 @@ struct QueryParams *query_params_new (int init_alloc);
extern QueryParams *query_params_parse (const char *query);
extern void query_params_free (QueryParams *ps);
-#ifdef __cplusplus
-}
-#endif
#endif /* QEMU_URI_H */
diff --git a/include/sysemu/os-posix.h b/include/sysemu/os-posix.h
index 58de7c994d85..616d07790445 100644
--- a/include/sysemu/os-posix.h
+++ b/include/sysemu/os-posix.h
@@ -38,10 +38,6 @@
#include <sys/sysmacros.h>
#endif
-#ifdef __cplusplus
-extern "C" {
-#endif
-
int os_parse_cmd_args(int index, const char *optarg);
void os_set_line_buffering(void);
void os_setup_early_signal_handling(void);
@@ -96,8 +92,4 @@ static inline void qemu_funlockfile(FILE *f)
funlockfile(f);
}
-#ifdef __cplusplus
-}
-#endif
-
#endif
diff --git a/include/sysemu/os-win32.h b/include/sysemu/os-win32.h
index 5b38c7bd0451..ef3d1a1b181e 100644
--- a/include/sysemu/os-win32.h
+++ b/include/sysemu/os-win32.h
@@ -47,10 +47,6 @@ typedef struct sockaddr_un {
#define SIO_AF_UNIX_GETPEERPID _WSAIOR(IOC_VENDOR, 256)
#endif
-#ifdef __cplusplus
-extern "C" {
-#endif
-
#if defined(_WIN64)
/* On w64, setjmp is implemented by _setjmp which needs a second parameter.
* If this parameter is NULL, longjump does no stack unwinding.
@@ -221,8 +217,4 @@ ssize_t qemu_recv_wrap(int sockfd, void *buf, size_t len, int flags);
ssize_t qemu_recvfrom_wrap(int sockfd, void *buf, size_t len, int flags,
struct sockaddr *addr, socklen_t *addrlen);
-#ifdef __cplusplus
-}
-#endif
-
#endif
--
2.38.1
On Tue, 2023-01-10 at 09:49 +0100, Paolo Bonzini wrote: > A handful of header files in QEMU are wrapped with extern "C" blocks. > These are not necessary: there are C++ source files anymore in QEMU, > and even where there were some, they did not include most of these > files anyway. > > Remove them for consistency. Are we allowed C++ in qemu? I ask because we have a full single-tenant implementation of XenStore lying around, designed to be VMM-internal... that just happens to be written in C++.
On Thu, Jan 12, 2023 at 01:10:13PM +0000, David Woodhouse wrote: > On Tue, 2023-01-10 at 09:49 +0100, Paolo Bonzini wrote: > > A handful of header files in QEMU are wrapped with extern "C" blocks. > > These are not necessary: there are C++ source files anymore in QEMU, > > and even where there were some, they did not include most of these > > files anyway. > > > > Remove them for consistency. > > > Are we allowed C++ in qemu? Not any more, we've just made an effort to eliminate the last part of QEMU emulator related code that was C++. All that's left is one part of the Windows installer for the guest agent. > I ask because we have a full single-tenant implementation of XenStore > lying around, designed to be VMM-internal... that just happens to be > written in C++. That's unfortunate :-( With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
On Thu, 12 Jan 2023 at 13:10, David Woodhouse <dwmw2@infradead.org> wrote: > > On Tue, 2023-01-10 at 09:49 +0100, Paolo Bonzini wrote: > > A handful of header files in QEMU are wrapped with extern "C" blocks. > > These are not necessary: there are C++ source files anymore in QEMU, > > and even where there were some, they did not include most of these > > files anyway. > > > > Remove them for consistency. > Are we allowed C++ in qemu? No; we've just managed to removed a couple of minor optional things that we'd allowed in, and removed the configure/build machinery for supporting having an optional C++ compiler. The only remaining bit of C++ is the Windows guest agent. thanks -- PMM
On Tue, 10 Jan 2023 at 09:33, Paolo Bonzini <pbonzini@redhat.com> wrote: > > A handful of header files in QEMU are wrapped with extern "C" blocks. > These are not necessary: there are C++ source files anymore in QEMU, > and even where there were some, they did not include most of these > files anyway. Any reason not to also take out the extern "C" block in osdep.h and the uses of QEMU_EXTERN_C ? thanks -- PMM
On 1/10/23 11:53, Peter Maydell wrote: > On Tue, 10 Jan 2023 at 09:33, Paolo Bonzini <pbonzini@redhat.com> wrote: >> >> A handful of header files in QEMU are wrapped with extern "C" blocks. >> These are not necessary: there are C++ source files anymore in QEMU, >> and even where there were some, they did not include most of these >> files anyway. > > Any reason not to also take out the extern "C" block in osdep.h > and the uses of QEMU_EXTERN_C ? qemu/osdep.h is still included by the C++ sources in qga/vss-win32. Paolo
On Wed, 11 Jan 2023 at 09:14, Paolo Bonzini <pbonzini@redhat.com> wrote: > > On 1/10/23 11:53, Peter Maydell wrote: > > On Tue, 10 Jan 2023 at 09:33, Paolo Bonzini <pbonzini@redhat.com> wrote: > >> > >> A handful of header files in QEMU are wrapped with extern "C" blocks. > >> These are not necessary: there are C++ source files anymore in QEMU, > >> and even where there were some, they did not include most of these > >> files anyway. > > > > Any reason not to also take out the extern "C" block in osdep.h > > and the uses of QEMU_EXTERN_C ? > > qemu/osdep.h is still included by the C++ sources in qga/vss-win32. If anything C++ still includes osdep.h then you can't remove the handling of this from os-win32.h and os-posix.h, because those files are included from osdep.h. thanks -- PMM
On 1/12/23 12:05, Peter Maydell wrote: > On Wed, 11 Jan 2023 at 09:14, Paolo Bonzini<pbonzini@redhat.com> wrote: >> On 1/10/23 11:53, Peter Maydell wrote: >>> On Tue, 10 Jan 2023 at 09:33, Paolo Bonzini<pbonzini@redhat.com> wrote: >>>> A handful of header files in QEMU are wrapped with extern "C" blocks. >>>> These are not necessary: there are C++ source files anymore in QEMU, >>>> and even where there were some, they did not include most of these >>>> files anyway. >>> Any reason not to also take out the extern "C" block in osdep.h >>> and the uses of QEMU_EXTERN_C ? >> qemu/osdep.h is still included by the C++ sources in qga/vss-win32. > If anything C++ still includes osdep.h then you can't remove > the handling of this from os-win32.h and os-posix.h, because > those files are included from osdep.h. Oh, I was confused by them being in sysemu/. I'll revert those two. Paolo
On Tue, Jan 10, 2023 at 09:49:46AM +0100, Paolo Bonzini wrote: > A handful of header files in QEMU are wrapped with extern "C" blocks. > These are not necessary: there are C++ source files anymore in QEMU, s/are/are no/ > and even where there were some, they did not include most of these > files anyway. > > Remove them for consistency. > > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
© 2016 - 2024 Red Hat, Inc.