[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v11 1/7] net/vmnet: add vmnet dependency and customizable opt
From: |
Roman Bolshakov |
Subject: |
Re: [PATCH v11 1/7] net/vmnet: add vmnet dependency and customizable option |
Date: |
Wed, 12 Jan 2022 19:53:05 +0300 |
On Wed, Jan 12, 2022 at 03:21:44PM +0300, Vladislav Yaroshchuk wrote:
> vmnet.framework dependency is added with 'vmnet' option
> to enable or disable it. Default value is 'auto'.
>
> vmnet features to be used are available since macOS 11.0,
> corresponding probe is created into meson.build.
>
> Signed-off-by: Vladislav Yaroshchuk <yaroshchuk2000@gmail.com>
> ---
> meson.build | 23 ++++++++++++++++++++++-
> meson_options.txt | 2 ++
> scripts/meson-buildoptions.sh | 3 +++
> 3 files changed, 27 insertions(+), 1 deletion(-)
>
> diff --git a/meson.build b/meson.build
> index c1b1db1e28..b912c9cb91 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -496,6 +496,24 @@ if cocoa.found() and get_option('gtk').enabled()
> error('Cocoa and GTK+ cannot be enabled at the same time')
> endif
>
> +vmnet = dependency('appleframeworks', modules: 'vmnet', required:
> get_option('vmnet'))
> +vmnet_11_0_api = false
> +if vmnet.found() and not cc.has_header_symbol('vmnet/vmnet.h',
> + 'VMNET_BRIDGED_MODE',
> + dependencies: vmnet)
> + vmnet = not_found
> + if get_option('vmnet').enabled()
> + error('vmnet.framework API is outdated')
> + else
> + warning('vmnet.framework API is outdated, disabling')
> + endif
> +endif
> +if vmnet.found() and cc.has_header_symbol('vmnet/vmnet.h',
> + 'VMNET_SHARING_SERVICE_BUSY',
> + dependencies: vmnet)
> + vmnet_11_0_api = true
> +endif
> +
> seccomp = not_found
> if not get_option('seccomp').auto() or have_system or have_tools
> seccomp = dependency('libseccomp', version: '>=2.3.0',
> @@ -1492,6 +1510,8 @@ config_host_data.set('CONFIG_SECCOMP', seccomp.found())
> config_host_data.set('CONFIG_SNAPPY', snappy.found())
> config_host_data.set('CONFIG_USB_LIBUSB', libusb.found())
> config_host_data.set('CONFIG_VDE', vde.found())
> +config_host_data.set('CONFIG_VMNET', vmnet.found())
> +config_host_data.set('CONFIG_VMNET_11_0_API', vmnet_11_0_api)
Hi Vladislav,
There might be more functionality coming in the next macOS versions but
we likely don't want to add them as extra CONFIG defines. Instead we
wrap new symbols/functions/code that are avaialble above Big Sur in the
code as:
#if defined(MAC_OS_VERSION_11_0) && \
MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_VERSION_11_0
xpc_dictionary_set_bool(
if_desc,
vmnet_enable_isolation_key,
options->isolated
);
#endif
Please see similar thread here:
https://lists.gnu.org/archive/html/qemu-devel/2022-01/msg01915.html
Thanks,
Roman
> config_host_data.set('CONFIG_VHOST_USER_BLK_SERVER',
> have_vhost_user_blk_server)
> config_host_data.set('CONFIG_VNC', vnc.found())
> config_host_data.set('CONFIG_VNC_JPEG', jpeg.found())
> @@ -3406,7 +3426,8 @@ summary(summary_info, bool_yn: true, section: 'Crypto')
> # Libraries
> summary_info = {}
> if targetos == 'darwin'
> - summary_info += {'Cocoa support': cocoa}
> + summary_info += {'Cocoa support': cocoa}
> + summary_info += {'vmnet.framework support': vmnet}
> endif
> summary_info += {'SDL support': sdl}
> summary_info += {'SDL image support': sdl_image}
> diff --git a/meson_options.txt b/meson_options.txt
> index 921967eddb..701e1381f9 100644
> --- a/meson_options.txt
> +++ b/meson_options.txt
> @@ -151,6 +151,8 @@ option('netmap', type : 'feature', value : 'auto',
> description: 'netmap network backend support')
> option('vde', type : 'feature', value : 'auto',
> description: 'vde network backend support')
> +option('vmnet', type : 'feature', value : 'auto',
> + description: 'vmnet.framework network backend support')
> option('virglrenderer', type : 'feature', value : 'auto',
> description: 'virgl rendering support')
> option('vnc', type : 'feature', value : 'auto',
> diff --git a/scripts/meson-buildoptions.sh b/scripts/meson-buildoptions.sh
> index 50bd7bed4d..cdcece4b05 100644
> --- a/scripts/meson-buildoptions.sh
> +++ b/scripts/meson-buildoptions.sh
> @@ -84,6 +84,7 @@ meson_options_help() {
> printf "%s\n" ' u2f U2F emulation support'
> printf "%s\n" ' usb-redir libusbredir support'
> printf "%s\n" ' vde vde network backend support'
> + printf "%s\n" ' vmnet vmnet.framework network backend support'
> printf "%s\n" ' vhost-user-blk-server'
> printf "%s\n" ' build vhost-user-blk server'
> printf "%s\n" ' virglrenderer virgl rendering support'
> @@ -248,6 +249,8 @@ _meson_option_parse() {
> --disable-usb-redir) printf "%s" -Dusb_redir=disabled ;;
> --enable-vde) printf "%s" -Dvde=enabled ;;
> --disable-vde) printf "%s" -Dvde=disabled ;;
> + --enable-vmnet) printf "%s" -Dvmnet=enabled ;;
> + --disable-vmnet) printf "%s" -Dvmnet=disabled ;;
> --enable-vhost-user-blk-server) printf "%s"
> -Dvhost_user_blk_server=enabled ;;
> --disable-vhost-user-blk-server) printf "%s"
> -Dvhost_user_blk_server=disabled ;;
> --enable-virglrenderer) printf "%s" -Dvirglrenderer=enabled ;;
> --
> 2.23.0
>
>
- [PATCH v11 0/7] Add vmnet.framework based network backend, Vladislav Yaroshchuk, 2022/01/12
- [PATCH v11 1/7] net/vmnet: add vmnet dependency and customizable option, Vladislav Yaroshchuk, 2022/01/12
- Re: [PATCH v11 1/7] net/vmnet: add vmnet dependency and customizable option,
Roman Bolshakov <=
- [PATCH v11 2/7] net/vmnet: add vmnet backends to qapi/net, Vladislav Yaroshchuk, 2022/01/12
- [PATCH v11 3/7] net/vmnet: implement shared mode (vmnet-shared), Vladislav Yaroshchuk, 2022/01/12
- [PATCH v11 5/7] net/vmnet: implement bridged mode (vmnet-bridged), Vladislav Yaroshchuk, 2022/01/12
- [PATCH v11 6/7] net/vmnet: update qemu-options.hx, Vladislav Yaroshchuk, 2022/01/12
- [PATCH v11 4/7] net/vmnet: implement host mode (vmnet-host), Vladislav Yaroshchuk, 2022/01/12
- [PATCH v11 7/7] net/vmnet: update MAINTAINERS list, Vladislav Yaroshchuk, 2022/01/12