4e647fa085
shm_open() creates and opens a new POSIX shared memory object. A POSIX shared memory object allows creating memory backend with an associated file descriptor that can be shared with external processes (e.g. vhost-user). The new `memory-backend-shm` can be used as an alternative when `memory-backend-memfd` is not available (Linux only), since shm_open() should be provided by any POSIX-compliant operating system. This backend mimics memfd, allocating memory that is practically anonymous. In theory shm_open() requires a name, but this is allocated for a short time interval and shm_unlink() is called right after shm_open(). After that, only fd is shared with external processes (e.g., vhost-user) as if it were associated with anonymous memory. In the future we may also allow the user to specify the name to be passed to shm_open(), but for now we keep the backend simple, mimicking anonymous memory such as memfd. Acked-by: David Hildenbrand <david@redhat.com> Acked-by: Stefan Hajnoczi <stefanha@redhat.com> Acked-by: Markus Armbruster <armbru@redhat.com> (QAPI schema) Signed-off-by: Stefano Garzarella <sgarzare@redhat.com> Message-Id: <20240618100519.145853-1-sgarzare@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
37 lines
1.0 KiB
Meson
37 lines
1.0 KiB
Meson
system_ss.add([files(
|
|
'cryptodev-builtin.c',
|
|
'cryptodev-hmp-cmds.c',
|
|
'cryptodev.c',
|
|
'hostmem-ram.c',
|
|
'hostmem.c',
|
|
'rng-builtin.c',
|
|
'rng-egd.c',
|
|
'rng.c',
|
|
'confidential-guest-support.c',
|
|
), numa])
|
|
|
|
if host_os != 'windows'
|
|
system_ss.add(files('rng-random.c'))
|
|
system_ss.add(files('hostmem-file.c'))
|
|
system_ss.add([files('hostmem-shm.c'), rt])
|
|
endif
|
|
if host_os == 'linux'
|
|
system_ss.add(files('hostmem-memfd.c'))
|
|
system_ss.add(files('host_iommu_device.c'))
|
|
endif
|
|
if keyutils.found()
|
|
system_ss.add(keyutils, files('cryptodev-lkcf.c'))
|
|
endif
|
|
if have_vhost_user
|
|
system_ss.add(when: 'CONFIG_VIRTIO', if_true: files('vhost-user.c'))
|
|
endif
|
|
system_ss.add(when: 'CONFIG_VIRTIO_CRYPTO', if_true: files('cryptodev-vhost.c'))
|
|
system_ss.add(when: 'CONFIG_IOMMUFD', if_true: files('iommufd.c'))
|
|
if have_vhost_user_crypto
|
|
system_ss.add(when: 'CONFIG_VIRTIO_CRYPTO', if_true: files('cryptodev-vhost-user.c'))
|
|
endif
|
|
system_ss.add(when: gio, if_true: files('dbus-vmstate.c'))
|
|
system_ss.add(when: 'CONFIG_SGX', if_true: files('hostmem-epc.c'))
|
|
|
|
subdir('tpm')
|