[PATCH 00/10] Misc cleanups

marcandre.lureau@redhat.com posted 10 patches 2 years ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20220422083639.3156978-1-marcandre.lureau@redhat.com
Maintainers: Kevin Wolf <kwolf@redhat.com>, Hanna Reitz <hreitz@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, Eric Blake <eblake@redhat.com>, Vladimir Sementsov-Ogievskiy <v.sementsov-og@mail.ru>, Alexander Bulekov <alxndr@bu.edu>, Bandan Das <bsd@redhat.com>, Stefan Hajnoczi <stefanha@redhat.com>, Thomas Huth <thuth@redhat.com>, Darren Kenny <darren.kenny@oracle.com>, Qiuhao Li <Qiuhao.Li@outlook.com>, Gerd Hoffmann <kraxel@redhat.com>, Laurent Vivier <lvivier@redhat.com>, "Michael S. Tsirkin" <mst@redhat.com>, Igor Mammedov <imammedo@redhat.com>, Ani Sinha <ani@anisinha.ca>, John Snow <jsnow@redhat.com>, Fam Zheng <fam@euphon.net>, Peter Maydell <peter.maydell@linaro.org>, "Cédric Le Goater" <clg@kaod.org>, Andrew Jeffery <andrew@aj.id.au>, Joel Stanley <joel@jms.id.au>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, Dmitry Fleytman <dmitry.fleytman@gmail.com>, Hannes Reinecke <hare@suse.com>, "Philippe Mathieu-Daudé" <f4bug@amsat.org>, Bin Meng <bin.meng@windriver.com>, Su Hang <suhang16@mails.ucas.ac.cn>, Daniel Henrique Barboza <danielhb413@gmail.com>, David Gibson <david@gibson.dropbear.id.au>, Greg Kurz <groug@kaod.org>, Coiby Xu <Coiby.Xu@gmail.com>, Juan Quintela <quintela@redhat.com>, "Dr. David Alan Gilbert" <dgilbert@redhat.com>, Havard Skinnemoen <hskinnemoen@google.com>, Tyrone Ting <kfting@nuvoton.com>, Keith Busch <kbusch@kernel.org>, Klaus Jensen <its@irrelevant.dk>, Markus Armbruster <armbru@redhat.com>, Zhang Chen <chen.zhang@intel.com>, Li Zhijian <lizhijian@fujitsu.com>, Stefan Berger <stefanb@linux.vnet.ibm.com>, Amit Shah <amit@kernel.org>, Vikram Garhwal <fnu.vikram@xilinx.com>, Francisco Iglesias <francisco.iglesias@xilinx.com>, Michael Roth <michael.roth@amd.com>, Stefan Weil <sw@weilnetz.de>
There is a newer version of this series
docs/devel/qtest.rst                          |   2 +-
include/qemu/atomic.h                         |   8 +-
include/qemu/cutils.h                         |   7 +
include/qemu/osdep.h                          |  12 -
include/sysemu/os-posix.h                     |   2 -
subprojects/libvhost-user/include/compiler.h  |   1 +
tests/qtest/acpi-utils.h                      |   2 +-
tests/qtest/boot-sector.h                     |   2 +-
tests/qtest/fuzz/fuzz.h                       |   2 +-
tests/qtest/libqmp.h                          |  52 ++++
tests/qtest/libqos/fw_cfg.h                   |   2 +-
tests/qtest/libqos/i2c.h                      |   2 +-
tests/qtest/libqos/libqos.h                   |   2 +-
tests/qtest/libqos/malloc.h                   |   2 +-
tests/qtest/libqos/pci.h                      |   2 +-
tests/qtest/libqos/sdhci-cmd.h                |   2 +-
tests/qtest/libqtest-single.h                 |   2 +-
tests/qtest/{libqos => }/libqtest.h           |  29 +-
tests/qtest/migration-helpers.h               |   2 +-
tests/qtest/tpm-emu.h                         |   2 +-
block/file-posix.c                            |  15 +
hw/misc/ivshmem.c                             |   2 +-
qemu-io.c                                     |   1 +
qemu-nbd.c                                    |   5 +-
storage-daemon/qemu-storage-daemon.c          |   1 +
tests/qtest/ac97-test.c                       |   2 +-
tests/qtest/ahci-test.c                       |   2 +-
tests/qtest/am53c974-test.c                   |   2 +-
tests/qtest/arm-cpu-features.c                |   2 +-
tests/qtest/aspeed_hace-test.c                |   2 +-
tests/qtest/boot-order-test.c                 |   2 +-
tests/qtest/boot-sector.c                     |   2 +-
tests/qtest/boot-serial-test.c                |   2 +-
tests/qtest/cdrom-test.c                      |   2 +-
tests/qtest/dbus-display-test.c               |   2 +-
tests/qtest/dbus-vmstate-test.c               |   2 +-
tests/qtest/device-introspect-test.c          |   2 +-
tests/qtest/device-plug-test.c                |   2 +-
tests/qtest/drive_del-test.c                  |   2 +-
tests/qtest/ds1338-test.c                     |   2 +-
tests/qtest/e1000-test.c                      |   2 +-
tests/qtest/eepro100-test.c                   |   2 +-
tests/qtest/endianness-test.c                 |   2 +-
tests/qtest/erst-test.c                       |   2 +-
tests/qtest/es1370-test.c                     |   2 +-
tests/qtest/fdc-test.c                        |   2 +-
tests/qtest/fuzz-e1000e-test.c                |   2 +-
tests/qtest/fuzz-lsi53c895a-test.c            |   2 +-
tests/qtest/fuzz-megasas-test.c               |   2 +-
tests/qtest/fuzz-sb16-test.c                  |   2 +-
tests/qtest/fuzz-sdcard-test.c                |   2 +-
tests/qtest/fuzz-virtio-scsi-test.c           |   2 +-
tests/qtest/fuzz-xlnx-dp-test.c               |   2 +-
tests/qtest/fuzz/fuzz.c                       |   3 +-
tests/qtest/fuzz/generic_fuzz.c               |   2 +-
tests/qtest/fuzz/i440fx_fuzz.c                |   2 +-
tests/qtest/fuzz/qos_fuzz.c                   |   2 +-
tests/qtest/fuzz/virtio_blk_fuzz.c            |   2 +-
tests/qtest/fuzz/virtio_net_fuzz.c            |   2 +-
tests/qtest/fuzz/virtio_scsi_fuzz.c           |   2 +-
tests/qtest/fw_cfg-test.c                     |   2 +-
tests/qtest/hd-geo-test.c                     |   2 +-
tests/qtest/hexloader-test.c                  |   2 +-
tests/qtest/ide-test.c                        |   2 +-
tests/qtest/ipoctal232-test.c                 |   2 +-
tests/qtest/ivshmem-test.c                    |   2 +-
tests/qtest/libqmp.c                          | 258 ++++++++++++++++++
.../libqos/aarch64-xlnx-zcu102-machine.c      |   2 +-
tests/qtest/libqos/ahci.c                     |   2 +-
tests/qtest/libqos/arm-imx25-pdk-machine.c    |   2 +-
tests/qtest/libqos/arm-n800-machine.c         |   2 +-
tests/qtest/libqos/arm-raspi2-machine.c       |   2 +-
tests/qtest/libqos/arm-sabrelite-machine.c    |   2 +-
tests/qtest/libqos/arm-smdkc210-machine.c     |   2 +-
tests/qtest/libqos/arm-virt-machine.c         |   2 +-
.../qtest/libqos/arm-xilinx-zynq-a9-machine.c |   2 +-
tests/qtest/libqos/e1000e.c                   |   2 +-
tests/qtest/libqos/fw_cfg.c                   |   2 +-
tests/qtest/libqos/i2c-imx.c                  |   2 +-
tests/qtest/libqos/i2c-omap.c                 |   2 +-
tests/qtest/libqos/i2c.c                      |   2 +-
tests/qtest/libqos/libqos.c                   |   2 +-
tests/qtest/libqos/pci-pc.c                   |   2 +-
tests/qtest/libqos/pci-spapr.c                |   2 +-
tests/qtest/libqos/ppc64_pseries-machine.c    |   2 +-
tests/qtest/libqos/qgraph.c                   |   2 +-
tests/qtest/libqos/qos_external.c             |   2 +-
tests/qtest/libqos/rtas.c                     |   2 +-
tests/qtest/libqos/sdhci-cmd.c                |   2 +-
tests/qtest/libqos/sdhci.c                    |   2 +-
tests/qtest/libqos/tpci200.c                  |   2 +-
tests/qtest/libqos/usb.c                      |   2 +-
tests/qtest/libqos/vhost-user-blk.c           |   2 +-
tests/qtest/libqos/virtio-9p.c                |   2 +-
tests/qtest/libqos/virtio-balloon.c           |   2 +-
tests/qtest/libqos/virtio-blk.c               |   2 +-
tests/qtest/libqos/virtio-iommu.c             |   2 +-
tests/qtest/libqos/virtio-mmio.c              |   2 +-
tests/qtest/libqos/virtio-net.c               |   2 +-
tests/qtest/libqos/virtio-pci.c               |   2 +-
tests/qtest/libqos/virtio-rng.c               |   2 +-
tests/qtest/libqos/virtio-scsi.c              |   2 +-
tests/qtest/libqos/virtio-serial.c            |   2 +-
tests/qtest/libqos/virtio.c                   |   2 +-
tests/qtest/libqos/x86_64_pc-machine.c        |   2 +-
tests/qtest/libqtest.c                        | 207 +-------------
tests/qtest/lpc-ich9-test.c                   |   2 +-
tests/qtest/m48t59-test.c                     |   2 +-
tests/qtest/machine-none-test.c               |   2 +-
tests/qtest/megasas-test.c                    |   2 +-
tests/qtest/microbit-test.c                   |   2 +-
tests/qtest/migration-test.c                  |   2 +-
tests/qtest/modules-test.c                    |   2 +-
tests/qtest/ne2000-test.c                     |   2 +-
tests/qtest/npcm7xx_adc-test.c                |   2 +-
tests/qtest/npcm7xx_pwm-test.c                |   2 +-
tests/qtest/npcm7xx_sdhci-test.c              |   2 +-
tests/qtest/npcm7xx_smbus-test.c              |   2 +-
tests/qtest/npcm7xx_watchdog_timer-test.c     |   2 +-
tests/qtest/numa-test.c                       |   2 +-
tests/qtest/nvme-test.c                       |   2 +-
tests/qtest/pca9552-test.c                    |   2 +-
tests/qtest/pci-test.c                        |   2 +-
tests/qtest/pcnet-test.c                      |   2 +-
tests/qtest/pflash-cfi02-test.c               |   2 +-
tests/qtest/pnv-xscom-test.c                  |   2 +-
tests/qtest/prom-env-test.c                   |   2 +-
tests/qtest/pvpanic-pci-test.c                |   2 +-
tests/qtest/pvpanic-test.c                    |   2 +-
tests/qtest/pxe-test.c                        |   2 +-
tests/qtest/q35-test.c                        |   2 +-
tests/qtest/qmp-cmd-test.c                    |   2 +-
tests/qtest/qmp-test.c                        |   2 +-
tests/qtest/qom-test.c                        |   2 +-
tests/qtest/rtas-test.c                       |   2 +-
tests/qtest/sdhci-test.c                      |   2 +-
tests/qtest/spapr-phb-test.c                  |   2 +-
tests/qtest/tco-test.c                        |   2 +-
tests/qtest/test-filter-mirror.c              |   2 +-
tests/qtest/test-filter-redirector.c          |   2 +-
tests/qtest/test-hmp.c                        |   2 +-
tests/qtest/tpm-crb-swtpm-test.c              |   2 +-
tests/qtest/tpm-tis-device-swtpm-test.c       |   2 +-
tests/qtest/tpm-tis-swtpm-test.c              |   2 +-
tests/qtest/tpm-util.c                        |   2 +-
tests/qtest/tulip-test.c                      |   2 +-
tests/qtest/virtio-net-failover.c             |   2 +-
tests/qtest/virtio-rng-test.c                 |   2 +-
tests/qtest/virtio-test.c                     |   2 +-
tests/qtest/vmgenid-test.c                    |   2 +-
tests/qtest/vmxnet3-test.c                    |   2 +-
tests/qtest/wdt_ib700-test.c                  |   2 +-
tests/qtest/xlnx-can-test.c                   |   2 +-
tests/unit/test-qga.c                         |   2 +-
util/coroutine-ucontext.c                     |   2 +-
util/cutils.c                                 | 108 ++++++++
util/event_notifier-posix.c                   |   8 +-
util/main-loop.c                              |   2 +-
util/oslib-posix.c                            | 118 --------
util/oslib-win32.c                            |  53 +---
scripts/oss-fuzz/output_reproducer.py         |   2 +-
tests/qtest/libqos/meson.build                |   5 +-
tests/unit/meson.build                        |   2 +-
163 files changed, 611 insertions(+), 570 deletions(-)
create mode 120000 subprojects/libvhost-user/include/compiler.h
create mode 100644 tests/qtest/libqmp.h
rename tests/qtest/{libqos => }/libqtest.h (95%)
create mode 100644 tests/qtest/libqmp.c
[PATCH 00/10] Misc cleanups
Posted by marcandre.lureau@redhat.com 2 years ago
From: Marc-André Lureau <marcandre.lureau@redhat.com>

Hi,

Another batch of cleanup patches, mostly while working on moving the common code
in some future subprojects. (a few patches have been posted and reviewed
earlier)

Marc-André Lureau (10):
  Use QEMU_SANITIZE_THREAD
  Use QEMU_SANITIZE_ADDRESS
  include: move qemu_*_exec_dir() to cutils
  tests: move libqtest.h back under qtest/
  libqtest: split QMP part in libqmp
  Replace qemu_pipe() with g_unix_open_pipe()
  tests: make libqmp buildable for win32
  Use g_unix_set_fd_nonblocking()
  block: move fcntl_setfl()
  util/win32: simplify qemu_get_local_state_dir()

 docs/devel/qtest.rst                          |   2 +-
 include/qemu/atomic.h                         |   8 +-
 include/qemu/cutils.h                         |   7 +
 include/qemu/osdep.h                          |  12 -
 include/sysemu/os-posix.h                     |   2 -
 subprojects/libvhost-user/include/compiler.h  |   1 +
 tests/qtest/acpi-utils.h                      |   2 +-
 tests/qtest/boot-sector.h                     |   2 +-
 tests/qtest/fuzz/fuzz.h                       |   2 +-
 tests/qtest/libqmp.h                          |  52 ++++
 tests/qtest/libqos/fw_cfg.h                   |   2 +-
 tests/qtest/libqos/i2c.h                      |   2 +-
 tests/qtest/libqos/libqos.h                   |   2 +-
 tests/qtest/libqos/malloc.h                   |   2 +-
 tests/qtest/libqos/pci.h                      |   2 +-
 tests/qtest/libqos/sdhci-cmd.h                |   2 +-
 tests/qtest/libqtest-single.h                 |   2 +-
 tests/qtest/{libqos => }/libqtest.h           |  29 +-
 tests/qtest/migration-helpers.h               |   2 +-
 tests/qtest/tpm-emu.h                         |   2 +-
 block/file-posix.c                            |  15 +
 hw/misc/ivshmem.c                             |   2 +-
 qemu-io.c                                     |   1 +
 qemu-nbd.c                                    |   5 +-
 storage-daemon/qemu-storage-daemon.c          |   1 +
 tests/qtest/ac97-test.c                       |   2 +-
 tests/qtest/ahci-test.c                       |   2 +-
 tests/qtest/am53c974-test.c                   |   2 +-
 tests/qtest/arm-cpu-features.c                |   2 +-
 tests/qtest/aspeed_hace-test.c                |   2 +-
 tests/qtest/boot-order-test.c                 |   2 +-
 tests/qtest/boot-sector.c                     |   2 +-
 tests/qtest/boot-serial-test.c                |   2 +-
 tests/qtest/cdrom-test.c                      |   2 +-
 tests/qtest/dbus-display-test.c               |   2 +-
 tests/qtest/dbus-vmstate-test.c               |   2 +-
 tests/qtest/device-introspect-test.c          |   2 +-
 tests/qtest/device-plug-test.c                |   2 +-
 tests/qtest/drive_del-test.c                  |   2 +-
 tests/qtest/ds1338-test.c                     |   2 +-
 tests/qtest/e1000-test.c                      |   2 +-
 tests/qtest/eepro100-test.c                   |   2 +-
 tests/qtest/endianness-test.c                 |   2 +-
 tests/qtest/erst-test.c                       |   2 +-
 tests/qtest/es1370-test.c                     |   2 +-
 tests/qtest/fdc-test.c                        |   2 +-
 tests/qtest/fuzz-e1000e-test.c                |   2 +-
 tests/qtest/fuzz-lsi53c895a-test.c            |   2 +-
 tests/qtest/fuzz-megasas-test.c               |   2 +-
 tests/qtest/fuzz-sb16-test.c                  |   2 +-
 tests/qtest/fuzz-sdcard-test.c                |   2 +-
 tests/qtest/fuzz-virtio-scsi-test.c           |   2 +-
 tests/qtest/fuzz-xlnx-dp-test.c               |   2 +-
 tests/qtest/fuzz/fuzz.c                       |   3 +-
 tests/qtest/fuzz/generic_fuzz.c               |   2 +-
 tests/qtest/fuzz/i440fx_fuzz.c                |   2 +-
 tests/qtest/fuzz/qos_fuzz.c                   |   2 +-
 tests/qtest/fuzz/virtio_blk_fuzz.c            |   2 +-
 tests/qtest/fuzz/virtio_net_fuzz.c            |   2 +-
 tests/qtest/fuzz/virtio_scsi_fuzz.c           |   2 +-
 tests/qtest/fw_cfg-test.c                     |   2 +-
 tests/qtest/hd-geo-test.c                     |   2 +-
 tests/qtest/hexloader-test.c                  |   2 +-
 tests/qtest/ide-test.c                        |   2 +-
 tests/qtest/ipoctal232-test.c                 |   2 +-
 tests/qtest/ivshmem-test.c                    |   2 +-
 tests/qtest/libqmp.c                          | 258 ++++++++++++++++++
 .../libqos/aarch64-xlnx-zcu102-machine.c      |   2 +-
 tests/qtest/libqos/ahci.c                     |   2 +-
 tests/qtest/libqos/arm-imx25-pdk-machine.c    |   2 +-
 tests/qtest/libqos/arm-n800-machine.c         |   2 +-
 tests/qtest/libqos/arm-raspi2-machine.c       |   2 +-
 tests/qtest/libqos/arm-sabrelite-machine.c    |   2 +-
 tests/qtest/libqos/arm-smdkc210-machine.c     |   2 +-
 tests/qtest/libqos/arm-virt-machine.c         |   2 +-
 .../qtest/libqos/arm-xilinx-zynq-a9-machine.c |   2 +-
 tests/qtest/libqos/e1000e.c                   |   2 +-
 tests/qtest/libqos/fw_cfg.c                   |   2 +-
 tests/qtest/libqos/i2c-imx.c                  |   2 +-
 tests/qtest/libqos/i2c-omap.c                 |   2 +-
 tests/qtest/libqos/i2c.c                      |   2 +-
 tests/qtest/libqos/libqos.c                   |   2 +-
 tests/qtest/libqos/pci-pc.c                   |   2 +-
 tests/qtest/libqos/pci-spapr.c                |   2 +-
 tests/qtest/libqos/ppc64_pseries-machine.c    |   2 +-
 tests/qtest/libqos/qgraph.c                   |   2 +-
 tests/qtest/libqos/qos_external.c             |   2 +-
 tests/qtest/libqos/rtas.c                     |   2 +-
 tests/qtest/libqos/sdhci-cmd.c                |   2 +-
 tests/qtest/libqos/sdhci.c                    |   2 +-
 tests/qtest/libqos/tpci200.c                  |   2 +-
 tests/qtest/libqos/usb.c                      |   2 +-
 tests/qtest/libqos/vhost-user-blk.c           |   2 +-
 tests/qtest/libqos/virtio-9p.c                |   2 +-
 tests/qtest/libqos/virtio-balloon.c           |   2 +-
 tests/qtest/libqos/virtio-blk.c               |   2 +-
 tests/qtest/libqos/virtio-iommu.c             |   2 +-
 tests/qtest/libqos/virtio-mmio.c              |   2 +-
 tests/qtest/libqos/virtio-net.c               |   2 +-
 tests/qtest/libqos/virtio-pci.c               |   2 +-
 tests/qtest/libqos/virtio-rng.c               |   2 +-
 tests/qtest/libqos/virtio-scsi.c              |   2 +-
 tests/qtest/libqos/virtio-serial.c            |   2 +-
 tests/qtest/libqos/virtio.c                   |   2 +-
 tests/qtest/libqos/x86_64_pc-machine.c        |   2 +-
 tests/qtest/libqtest.c                        | 207 +-------------
 tests/qtest/lpc-ich9-test.c                   |   2 +-
 tests/qtest/m48t59-test.c                     |   2 +-
 tests/qtest/machine-none-test.c               |   2 +-
 tests/qtest/megasas-test.c                    |   2 +-
 tests/qtest/microbit-test.c                   |   2 +-
 tests/qtest/migration-test.c                  |   2 +-
 tests/qtest/modules-test.c                    |   2 +-
 tests/qtest/ne2000-test.c                     |   2 +-
 tests/qtest/npcm7xx_adc-test.c                |   2 +-
 tests/qtest/npcm7xx_pwm-test.c                |   2 +-
 tests/qtest/npcm7xx_sdhci-test.c              |   2 +-
 tests/qtest/npcm7xx_smbus-test.c              |   2 +-
 tests/qtest/npcm7xx_watchdog_timer-test.c     |   2 +-
 tests/qtest/numa-test.c                       |   2 +-
 tests/qtest/nvme-test.c                       |   2 +-
 tests/qtest/pca9552-test.c                    |   2 +-
 tests/qtest/pci-test.c                        |   2 +-
 tests/qtest/pcnet-test.c                      |   2 +-
 tests/qtest/pflash-cfi02-test.c               |   2 +-
 tests/qtest/pnv-xscom-test.c                  |   2 +-
 tests/qtest/prom-env-test.c                   |   2 +-
 tests/qtest/pvpanic-pci-test.c                |   2 +-
 tests/qtest/pvpanic-test.c                    |   2 +-
 tests/qtest/pxe-test.c                        |   2 +-
 tests/qtest/q35-test.c                        |   2 +-
 tests/qtest/qmp-cmd-test.c                    |   2 +-
 tests/qtest/qmp-test.c                        |   2 +-
 tests/qtest/qom-test.c                        |   2 +-
 tests/qtest/rtas-test.c                       |   2 +-
 tests/qtest/sdhci-test.c                      |   2 +-
 tests/qtest/spapr-phb-test.c                  |   2 +-
 tests/qtest/tco-test.c                        |   2 +-
 tests/qtest/test-filter-mirror.c              |   2 +-
 tests/qtest/test-filter-redirector.c          |   2 +-
 tests/qtest/test-hmp.c                        |   2 +-
 tests/qtest/tpm-crb-swtpm-test.c              |   2 +-
 tests/qtest/tpm-tis-device-swtpm-test.c       |   2 +-
 tests/qtest/tpm-tis-swtpm-test.c              |   2 +-
 tests/qtest/tpm-util.c                        |   2 +-
 tests/qtest/tulip-test.c                      |   2 +-
 tests/qtest/virtio-net-failover.c             |   2 +-
 tests/qtest/virtio-rng-test.c                 |   2 +-
 tests/qtest/virtio-test.c                     |   2 +-
 tests/qtest/vmgenid-test.c                    |   2 +-
 tests/qtest/vmxnet3-test.c                    |   2 +-
 tests/qtest/wdt_ib700-test.c                  |   2 +-
 tests/qtest/xlnx-can-test.c                   |   2 +-
 tests/unit/test-qga.c                         |   2 +-
 util/coroutine-ucontext.c                     |   2 +-
 util/cutils.c                                 | 108 ++++++++
 util/event_notifier-posix.c                   |   8 +-
 util/main-loop.c                              |   2 +-
 util/oslib-posix.c                            | 118 --------
 util/oslib-win32.c                            |  53 +---
 scripts/oss-fuzz/output_reproducer.py         |   2 +-
 tests/qtest/libqos/meson.build                |   5 +-
 tests/unit/meson.build                        |   2 +-
 163 files changed, 611 insertions(+), 570 deletions(-)
 create mode 120000 subprojects/libvhost-user/include/compiler.h
 create mode 100644 tests/qtest/libqmp.h
 rename tests/qtest/{libqos => }/libqtest.h (95%)
 create mode 100644 tests/qtest/libqmp.c

-- 
2.36.0