Message ID | 20230220100815.1624266-17-bin.meng@windriver.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | hw/9pfs: Add 9pfs support for Windows | expand |
On Monday, February 20, 2023 11:08:15 AM CET Bin Meng wrote: > From: Guohuai Shi <guohuai.shi@windriver.com> > > Enable virtfs configuration option for Windows host. > > Signed-off-by: Guohuai Shi <guohuai.shi@windriver.com> > Signed-off-by: Bin Meng <bin.meng@windriver.com> > --- > > meson.build | 10 +++++----- > fsdev/meson.build | 1 + > hw/9pfs/meson.build | 8 +++++--- > 3 files changed, 11 insertions(+), 8 deletions(-) > > diff --git a/meson.build b/meson.build > index a76c855312..9ddf254e78 100644 > --- a/meson.build > +++ b/meson.build > @@ -1755,16 +1755,16 @@ dbus_display = get_option('dbus_display') \ > .allowed() > > have_virtfs = get_option('virtfs') \ > - .require(targetos == 'linux' or targetos == 'darwin', > - error_message: 'virtio-9p (virtfs) requires Linux or macOS') \ > - .require(targetos == 'linux' or cc.has_function('pthread_fchdir_np'), > + .require(targetos == 'linux' or targetos == 'darwin' or targetos == 'windows', > + error_message: 'virtio-9p (virtfs) requires Linux or macOS or Windows') \ > + .require(targetos == 'linux' or targetos == 'windows' or cc.has_function('pthread_fchdir_np'), > error_message: 'virtio-9p (virtfs) on macOS requires the presence of pthread_fchdir_np') \ > - .require(targetos == 'darwin' or (libattr.found() and libcap_ng.found()), > + .require(targetos == 'darwin' or targetos == 'windows' or (libattr.found() and libcap_ng.found()), > error_message: 'virtio-9p (virtfs) on Linux requires libcap-ng-devel and libattr-devel') \ > .disable_auto_if(not have_tools and not have_system) \ > .allowed() > > -have_virtfs_proxy_helper = targetos != 'darwin' and have_virtfs and have_tools > +have_virtfs_proxy_helper = targetos != 'darwin' and targetos != 'windows' and have_virtfs and have_tools > > if get_option('block_drv_ro_whitelist') == '' > config_host_data.set('CONFIG_BDRV_RO_WHITELIST', '') > diff --git a/fsdev/meson.build b/fsdev/meson.build > index b632b66348..2aad081aef 100644 > --- a/fsdev/meson.build > +++ b/fsdev/meson.build > @@ -8,6 +8,7 @@ fsdev_ss.add(when: ['CONFIG_FSDEV_9P'], if_true: files( > ), if_false: files('qemu-fsdev-dummy.c')) > softmmu_ss.add_all(when: 'CONFIG_LINUX', if_true: fsdev_ss) > softmmu_ss.add_all(when: 'CONFIG_DARWIN', if_true: fsdev_ss) > +softmmu_ss.add_all(when: 'CONFIG_WIN32', if_true: fsdev_ss) > > if have_virtfs_proxy_helper > executable('virtfs-proxy-helper', > diff --git a/hw/9pfs/meson.build b/hw/9pfs/meson.build > index 12443b6ad5..aaa50e71f7 100644 > --- a/hw/9pfs/meson.build > +++ b/hw/9pfs/meson.build > @@ -2,7 +2,6 @@ fs_ss = ss.source_set() > fs_ss.add(files( > '9p-local.c', > '9p-posix-acl.c', > - '9p-proxy.c', > '9p-synth.c', > '9p-xattr-user.c', > '9p-xattr.c', > @@ -13,8 +12,11 @@ fs_ss.add(files( > 'coth.c', > 'coxattr.c', > )) > -fs_ss.add(when: 'CONFIG_LINUX', if_true: files('9p-util-linux.c')) > -fs_ss.add(when: 'CONFIG_DARWIN', if_true: files('9p-util-darwin.c')) > +fs_ss.add(when: 'CONFIG_LINUX', if_true: files('9p-proxy.c', > + '9p-util-linux.c')) > +fs_ss.add(when: 'CONFIG_DARWIN', if_true: files('9p-proxy.c', > + '9p-util-darwin.c')) > +fs_ss.add(when: 'CONFIG_WIN32', if_true: files('9p-util-win32.c')) > fs_ss.add(when: 'CONFIG_XEN', if_true: files('xen-9p-backend.c')) This no longer applies on master because CONFIG_XEN has been renamed to CONFIG_XEN_BUS. > softmmu_ss.add_all(when: 'CONFIG_FSDEV_9P', if_true: fs_ss) > >
diff --git a/meson.build b/meson.build index a76c855312..9ddf254e78 100644 --- a/meson.build +++ b/meson.build @@ -1755,16 +1755,16 @@ dbus_display = get_option('dbus_display') \ .allowed() have_virtfs = get_option('virtfs') \ - .require(targetos == 'linux' or targetos == 'darwin', - error_message: 'virtio-9p (virtfs) requires Linux or macOS') \ - .require(targetos == 'linux' or cc.has_function('pthread_fchdir_np'), + .require(targetos == 'linux' or targetos == 'darwin' or targetos == 'windows', + error_message: 'virtio-9p (virtfs) requires Linux or macOS or Windows') \ + .require(targetos == 'linux' or targetos == 'windows' or cc.has_function('pthread_fchdir_np'), error_message: 'virtio-9p (virtfs) on macOS requires the presence of pthread_fchdir_np') \ - .require(targetos == 'darwin' or (libattr.found() and libcap_ng.found()), + .require(targetos == 'darwin' or targetos == 'windows' or (libattr.found() and libcap_ng.found()), error_message: 'virtio-9p (virtfs) on Linux requires libcap-ng-devel and libattr-devel') \ .disable_auto_if(not have_tools and not have_system) \ .allowed() -have_virtfs_proxy_helper = targetos != 'darwin' and have_virtfs and have_tools +have_virtfs_proxy_helper = targetos != 'darwin' and targetos != 'windows' and have_virtfs and have_tools if get_option('block_drv_ro_whitelist') == '' config_host_data.set('CONFIG_BDRV_RO_WHITELIST', '') diff --git a/fsdev/meson.build b/fsdev/meson.build index b632b66348..2aad081aef 100644 --- a/fsdev/meson.build +++ b/fsdev/meson.build @@ -8,6 +8,7 @@ fsdev_ss.add(when: ['CONFIG_FSDEV_9P'], if_true: files( ), if_false: files('qemu-fsdev-dummy.c')) softmmu_ss.add_all(when: 'CONFIG_LINUX', if_true: fsdev_ss) softmmu_ss.add_all(when: 'CONFIG_DARWIN', if_true: fsdev_ss) +softmmu_ss.add_all(when: 'CONFIG_WIN32', if_true: fsdev_ss) if have_virtfs_proxy_helper executable('virtfs-proxy-helper', diff --git a/hw/9pfs/meson.build b/hw/9pfs/meson.build index 12443b6ad5..aaa50e71f7 100644 --- a/hw/9pfs/meson.build +++ b/hw/9pfs/meson.build @@ -2,7 +2,6 @@ fs_ss = ss.source_set() fs_ss.add(files( '9p-local.c', '9p-posix-acl.c', - '9p-proxy.c', '9p-synth.c', '9p-xattr-user.c', '9p-xattr.c', @@ -13,8 +12,11 @@ fs_ss.add(files( 'coth.c', 'coxattr.c', )) -fs_ss.add(when: 'CONFIG_LINUX', if_true: files('9p-util-linux.c')) -fs_ss.add(when: 'CONFIG_DARWIN', if_true: files('9p-util-darwin.c')) +fs_ss.add(when: 'CONFIG_LINUX', if_true: files('9p-proxy.c', + '9p-util-linux.c')) +fs_ss.add(when: 'CONFIG_DARWIN', if_true: files('9p-proxy.c', + '9p-util-darwin.c')) +fs_ss.add(when: 'CONFIG_WIN32', if_true: files('9p-util-win32.c')) fs_ss.add(when: 'CONFIG_XEN', if_true: files('xen-9p-backend.c')) softmmu_ss.add_all(when: 'CONFIG_FSDEV_9P', if_true: fs_ss)