1
A largish pullreq but it's almost all docs fixes.
1
v2: drop npcm7xx sdhci tests: new tests assert on some platforms.
2
2
3
-- PMM
3
-- PMM
4
4
5
The following changes since commit 10a3c4a4b3e14208cfed274514d1911e5230935f:
5
The following changes since commit e670f6d825d4dee248b311197fd4048469d6772b:
6
6
7
Merge remote-tracking branch 'remotes/jasowang/tags/net-pull-request' into staging (2021-08-02 09:47:07 +0100)
7
Merge remote-tracking branch 'remotes/legoater/tags/pull-ppc-20220218' into staging (2022-02-20 15:05:41 +0000)
8
8
9
are available in the Git repository at:
9
are available in the Git repository at:
10
10
11
https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20210802
11
https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20220221-1
12
12
13
for you to fetch changes up to 4a64939db76b10d8d41d2af3c6aad8142da55450:
13
for you to fetch changes up to ca511604925eef8572e22ecbf0d3c758d7277924:
14
14
15
docs: Move user-facing barrier docs into system manual (2021-08-02 12:55:51 +0100)
15
ui/cocoa: Fix the leak of qemu_console_get_label (2022-02-21 13:30:21 +0000)
16
16
17
----------------------------------------------------------------
17
----------------------------------------------------------------
18
target-arm queue:
18
arm, cocoa and misc:
19
* Add documentation of Arm 'mainstone', 'kzm', 'imx25-pdk' boards
19
* MAINTAINERS file updates
20
* MAINTAINERS: Don't list Andrzej Zaborowski for various components
20
* Mark remaining global TypeInfo instances as const
21
* docs: Remove stale TODO comments about license and version
21
* checkpatch: Ensure that TypeInfos are const
22
* docs: Move licence/copyright from HTML output to rST comments
22
* arm hvf: Handle unknown ID registers as RES0
23
* docs: Format literal text correctly
23
* Make KVM -cpu max exactly like -cpu host
24
* hw/arm/boot: Report error if there is no fw_cfg device in the machine
24
* Fix '-cpu max' for HVF
25
* docs: rSTify barrier.txt and bootindex.txt
25
* Support PAuth extension for hvf
26
* Kconfig: Add I2C_DEVICES device group
27
* Kconfig: Add 'imply I2C_DEVICES' on boards with available i2c bus
28
* hw/arm/armv7m: Handle disconnected clock inputs
29
* osdep.h: pull out various things into new header files
30
* hw/timer: fix a9gtimer vmstate
31
* hw/arm: add initial mori-bmc board
32
* ui/cocoa: Remove allowedFileTypes restriction in SavePanel
33
* ui/cocoa: Do not alert even without block devices
34
* ui/cocoa: Fix the leak of qemu_console_get_label
26
35
27
----------------------------------------------------------------
36
----------------------------------------------------------------
28
Peter Maydell (21):
37
Akihiko Odaki (3):
29
docs: Add documentation of Arm 'mainstone' board
38
MAINTAINERS: Add Akihiko Odaki to macOS-relateds
30
docs: Add documentation of Arm 'kzm' board
39
ui/cocoa: Do not alert even without block devices
31
docs: Add documentation of Arm 'imx25-pdk' board
40
ui/cocoa: Fix the leak of qemu_console_get_label
32
MAINTAINERS: Don't list Andrzej Zaborowski for various components
33
docs: Remove stale TODO comments about license and version
34
docs: Move licence/copyright from HTML output to rST comments
35
docs/devel/build-system.rst: Format literals correctly
36
docs/devel/build-system.rst: Correct typo in example code
37
docs/devel/ebpf_rss.rst: Format literals correctly
38
docs/devel/migration.rst: Format literals correctly
39
docs/devel: Format literals correctly
40
docs/system/s390x/protvirt.rst: Format literals correctly
41
docs/system/arm/cpu-features.rst: Format literals correctly
42
docs: Format literals correctly
43
docs/about/removed-features: Fix markup error
44
docs/tools/virtiofsd.rst: Delete stray backtick
45
hw/arm/boot: Report error if there is no fw_cfg device in the machine
46
docs: Move bootindex.txt into system section and rstify
47
docs: Move the protocol part of barrier.txt into interop
48
ui/input-barrier: Move TODOs from barrier.txt to a comment
49
docs: Move user-facing barrier docs into system manual
50
41
51
docs/about/index.rst | 2 +-
42
Alexander Graf (2):
52
docs/about/removed-features.rst | 2 +-
43
hvf: arm: Use macros for sysreg shift/masking
53
docs/barrier.txt | 370 -----------------------
44
hvf: arm: Handle unknown ID registers as RES0
54
docs/bootindex.txt | 52 ----
55
docs/devel/build-system.rst | 160 +++++-----
56
docs/devel/ebpf_rss.rst | 18 +-
57
docs/devel/migration.rst | 36 +--
58
docs/devel/qgraph.rst | 8 +-
59
docs/devel/tcg-plugins.rst | 14 +-
60
docs/devel/testing.rst | 8 +-
61
docs/interop/barrier.rst | 426 +++++++++++++++++++++++++++
62
docs/interop/index.rst | 1 +
63
docs/interop/live-block-operations.rst | 2 +-
64
docs/interop/qemu-ga-ref.rst | 9 -
65
docs/interop/qemu-qmp-ref.rst | 9 -
66
docs/interop/qemu-storage-daemon-qmp-ref.rst | 9 -
67
docs/interop/vhost-user-gpu.rst | 7 +-
68
docs/interop/vhost-user.rst | 12 +-
69
docs/system/arm/cpu-features.rst | 116 ++++----
70
docs/system/arm/imx25-pdk.rst | 19 ++
71
docs/system/arm/kzm.rst | 18 ++
72
docs/system/arm/mainstone.rst | 25 ++
73
docs/system/arm/nuvoton.rst | 2 +-
74
docs/system/arm/sbsa.rst | 4 +-
75
docs/system/arm/virt.rst | 2 +-
76
docs/system/barrier.rst | 44 +++
77
docs/system/bootindex.rst | 76 +++++
78
docs/system/cpu-hotplug.rst | 2 +-
79
docs/system/generic-loader.rst | 4 +-
80
docs/system/guest-loader.rst | 6 +-
81
docs/system/index.rst | 2 +
82
docs/system/ppc/powernv.rst | 8 +-
83
docs/system/riscv/microchip-icicle-kit.rst | 2 +-
84
docs/system/riscv/virt.rst | 2 +-
85
docs/system/s390x/protvirt.rst | 12 +-
86
docs/system/target-arm.rst | 3 +
87
docs/tools/virtiofsd.rst | 2 +-
88
hw/arm/boot.c | 9 +
89
hw/arm/sbsa-ref.c | 7 -
90
ui/input-barrier.c | 5 +
91
MAINTAINERS | 8 +-
92
41 files changed, 849 insertions(+), 674 deletions(-)
93
delete mode 100644 docs/barrier.txt
94
delete mode 100644 docs/bootindex.txt
95
create mode 100644 docs/interop/barrier.rst
96
create mode 100644 docs/system/arm/imx25-pdk.rst
97
create mode 100644 docs/system/arm/kzm.rst
98
create mode 100644 docs/system/arm/mainstone.rst
99
create mode 100644 docs/system/barrier.rst
100
create mode 100644 docs/system/bootindex.rst
101
45
46
Ani Sinha (1):
47
MAINTAINERS: Adding myself as a reviewer of some components
48
49
Bernhard Beschow (2):
50
Mark remaining global TypeInfo instances as const
51
checkpatch: Ensure that TypeInfos are const
52
53
Patrick Venture (1):
54
hw/arm: add initial mori-bmc board
55
56
Pavel Dovgalyuk (1):
57
hw/timer: fix a9gtimer vmstate
58
59
Peter Maydell (14):
60
target/arm: Move '-cpu host' code to cpu64.c
61
target/arm: Use aarch64_cpu_register() for 'host' CPU type
62
target/arm: Make KVM -cpu max exactly like -cpu host
63
target/arm: Unindent unnecessary else-clause
64
target/arm: Fix '-cpu max' for HVF
65
target/arm: Support PAuth extension for hvf
66
Kconfig: Add I2C_DEVICES device group
67
Kconfig: Add 'imply I2C_DEVICES' on boards with available i2c bus
68
hw/arm/armv7m: Handle disconnected clock inputs
69
include: Move qemu_madvise() and related #defines to new qemu/madvise.h
70
include: Move qemu_mprotect_*() to new qemu/mprotect.h
71
include: Move QEMU_MAP_* constants to mmap-alloc.h
72
include: Move qemu_[id]cache_* declarations to new qemu/cacheinfo.h
73
include: Move hardware version declarations to new qemu/hw-version.h
74
75
Philippe Mathieu-Daudé (1):
76
ui/cocoa: Remove allowedFileTypes restriction in SavePanel
77
78
docs/devel/kconfig.rst | 8 +-
79
docs/system/arm/nuvoton.rst | 1 +
80
include/qemu/cacheinfo.h | 21 +++
81
include/qemu/hw-version.h | 27 ++++
82
include/qemu/madvise.h | 95 +++++++++++++
83
include/qemu/mmap-alloc.h | 23 +++
84
include/qemu/mprotect.h | 14 ++
85
include/qemu/osdep.h | 132 ------------------
86
accel/tcg/translate-all.c | 1 +
87
backends/hostmem-file.c | 1 +
88
backends/hostmem.c | 1 +
89
hw/arm/armv7m.c | 26 +++-
90
hw/arm/npcm7xx_boards.c | 32 +++++
91
hw/arm/nseries.c | 1 +
92
hw/core/generic-loader.c | 2 +-
93
hw/core/guest-loader.c | 2 +-
94
hw/display/bcm2835_fb.c | 2 +-
95
hw/display/i2c-ddc.c | 2 +-
96
hw/display/macfb.c | 4 +-
97
hw/display/virtio-vga.c | 2 +-
98
hw/dma/bcm2835_dma.c | 2 +-
99
hw/i386/pc_piix.c | 2 +-
100
hw/i386/sgx-epc.c | 2 +-
101
hw/ide/core.c | 1 +
102
hw/intc/bcm2835_ic.c | 2 +-
103
hw/intc/bcm2836_control.c | 2 +-
104
hw/ipmi/ipmi.c | 4 +-
105
hw/mem/nvdimm.c | 2 +-
106
hw/mem/pc-dimm.c | 2 +-
107
hw/misc/bcm2835_mbox.c | 2 +-
108
hw/misc/bcm2835_powermgt.c | 2 +-
109
hw/misc/bcm2835_property.c | 2 +-
110
hw/misc/bcm2835_rng.c | 2 +-
111
hw/misc/pvpanic-isa.c | 2 +-
112
hw/misc/pvpanic-pci.c | 2 +-
113
hw/net/fsl_etsec/etsec.c | 2 +-
114
hw/ppc/prep_systemio.c | 2 +-
115
hw/ppc/spapr_iommu.c | 2 +-
116
hw/s390x/s390-pci-bus.c | 2 +-
117
hw/s390x/sclp.c | 2 +-
118
hw/s390x/tod-kvm.c | 2 +-
119
hw/s390x/tod-tcg.c | 2 +-
120
hw/s390x/tod.c | 2 +-
121
hw/scsi/lsi53c895a.c | 2 +-
122
hw/scsi/megasas.c | 1 +
123
hw/scsi/scsi-bus.c | 1 +
124
hw/scsi/scsi-disk.c | 1 +
125
hw/sd/allwinner-sdhost.c | 2 +-
126
hw/sd/aspeed_sdhci.c | 2 +-
127
hw/sd/bcm2835_sdhost.c | 2 +-
128
hw/sd/cadence_sdhci.c | 2 +-
129
hw/sd/npcm7xx_sdhci.c | 2 +-
130
hw/timer/a9gtimer.c | 21 +++
131
hw/usb/dev-mtp.c | 2 +-
132
hw/usb/host-libusb.c | 2 +-
133
hw/vfio/igd.c | 2 +-
134
hw/virtio/virtio-balloon.c | 1 +
135
hw/virtio/virtio-pmem.c | 2 +-
136
migration/postcopy-ram.c | 1 +
137
migration/qemu-file.c | 1 +
138
migration/ram.c | 1 +
139
plugins/loader.c | 1 +
140
qom/object.c | 4 +-
141
softmmu/physmem.c | 1 +
142
softmmu/vl.c | 1 +
143
target/arm/cpu.c | 30 ----
144
target/arm/cpu64.c | 331 ++++++++++++++++++++++++--------------------
145
target/arm/hvf/hvf.c | 83 ++++++++---
146
target/i386/cpu.c | 1 +
147
target/s390x/cpu_models.c | 1 +
148
tcg/region.c | 3 +
149
tcg/tcg.c | 1 +
150
util/atomic64.c | 1 +
151
util/cacheflush.c | 1 +
152
util/cacheinfo.c | 1 +
153
util/osdep.c | 3 +
154
util/oslib-posix.c | 1 +
155
MAINTAINERS | 5 +
156
hw/arm/Kconfig | 10 ++
157
hw/i2c/Kconfig | 5 +
158
hw/rtc/Kconfig | 2 +
159
hw/sensor/Kconfig | 5 +
160
scripts/checkpatch.pl | 1 +
161
ui/cocoa.m | 15 +-
162
84 files changed, 606 insertions(+), 393 deletions(-)
163
create mode 100644 include/qemu/cacheinfo.h
164
create mode 100644 include/qemu/hw-version.h
165
create mode 100644 include/qemu/madvise.h
166
create mode 100644 include/qemu/mprotect.h
167
diff view generated by jsdifflib
Deleted patch
1
Add brief documentation of the Arm 'mainstone' board.
2
1
3
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
4
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
5
Message-id: 20210722175229.29065-2-peter.maydell@linaro.org
6
---
7
docs/system/arm/mainstone.rst | 25 +++++++++++++++++++++++++
8
docs/system/target-arm.rst | 1 +
9
MAINTAINERS | 1 +
10
3 files changed, 27 insertions(+)
11
create mode 100644 docs/system/arm/mainstone.rst
12
13
diff --git a/docs/system/arm/mainstone.rst b/docs/system/arm/mainstone.rst
14
new file mode 100644
15
index XXXXXXX..XXXXXXX
16
--- /dev/null
17
+++ b/docs/system/arm/mainstone.rst
18
@@ -XXX,XX +XXX,XX @@
19
+Intel Mainstone II board (``mainstone``)
20
+========================================
21
+
22
+The ``mainstone`` board emulates the Intel Mainstone II development
23
+board, which uses a PXA270 CPU.
24
+
25
+Emulated devices:
26
+
27
+- Flash memory
28
+- Keypad
29
+- MMC controller
30
+- 91C111 ethernet
31
+- PIC
32
+- Timer
33
+- DMA
34
+- GPIO
35
+- FIR
36
+- Serial
37
+- LCD controller
38
+- SSP
39
+- USB controller
40
+- RTC
41
+- PCMCIA
42
+- I2C
43
+- I2S
44
diff --git a/docs/system/target-arm.rst b/docs/system/target-arm.rst
45
index XXXXXXX..XXXXXXX 100644
46
--- a/docs/system/target-arm.rst
47
+++ b/docs/system/target-arm.rst
48
@@ -XXX,XX +XXX,XX @@ undocumented; you can get a complete list by running
49
arm/highbank
50
arm/musicpal
51
arm/gumstix
52
+ arm/mainstone
53
arm/nrf
54
arm/nseries
55
arm/nuvoton
56
diff --git a/MAINTAINERS b/MAINTAINERS
57
index XXXXXXX..XXXXXXX 100644
58
--- a/MAINTAINERS
59
+++ b/MAINTAINERS
60
@@ -XXX,XX +XXX,XX @@ F: include/hw/arm/pxa.h
61
F: include/hw/arm/sharpsl.h
62
F: include/hw/display/tc6393xb.h
63
F: docs/system/arm/xscale.rst
64
+F: docs/system/arm/mainstone.rst
65
66
SABRELITE / i.MX6
67
M: Peter Maydell <peter.maydell@linaro.org>
68
--
69
2.20.1
70
71
diff view generated by jsdifflib
Deleted patch
1
Add brief documentation of the Arm 'kzm' board.
2
1
3
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
4
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
5
Message-id: 20210722175229.29065-3-peter.maydell@linaro.org
6
---
7
docs/system/arm/kzm.rst | 18 ++++++++++++++++++
8
docs/system/target-arm.rst | 1 +
9
MAINTAINERS | 1 +
10
3 files changed, 20 insertions(+)
11
create mode 100644 docs/system/arm/kzm.rst
12
13
diff --git a/docs/system/arm/kzm.rst b/docs/system/arm/kzm.rst
14
new file mode 100644
15
index XXXXXXX..XXXXXXX
16
--- /dev/null
17
+++ b/docs/system/arm/kzm.rst
18
@@ -XXX,XX +XXX,XX @@
19
+Kyoto Microcomputer KZM-ARM11-01 (``kzm``)
20
+==========================================
21
+
22
+The ``kzm`` board emulates the Kyoto Microcomputer KZM-ARM11-01
23
+evaluation board, which is based on an NXP i.MX32 SoC
24
+which uses an ARM1136 CPU.
25
+
26
+Emulated devices:
27
+
28
+- UARTs
29
+- LAN9118 ethernet
30
+- AVIC
31
+- CCM
32
+- GPT
33
+- EPIT timers
34
+- I2C
35
+- GPIO controllers
36
+- Watchdog timer
37
diff --git a/docs/system/target-arm.rst b/docs/system/target-arm.rst
38
index XXXXXXX..XXXXXXX 100644
39
--- a/docs/system/target-arm.rst
40
+++ b/docs/system/target-arm.rst
41
@@ -XXX,XX +XXX,XX @@ undocumented; you can get a complete list by running
42
arm/musicpal
43
arm/gumstix
44
arm/mainstone
45
+ arm/kzm
46
arm/nrf
47
arm/nseries
48
arm/nuvoton
49
diff --git a/MAINTAINERS b/MAINTAINERS
50
index XXXXXXX..XXXXXXX 100644
51
--- a/MAINTAINERS
52
+++ b/MAINTAINERS
53
@@ -XXX,XX +XXX,XX @@ F: hw/*/imx_*
54
F: hw/*/*imx31*
55
F: include/hw/*/imx_*
56
F: include/hw/*/*imx31*
57
+F: docs/system/arm/kzm.rst
58
59
Integrator CP
60
M: Peter Maydell <peter.maydell@linaro.org>
61
--
62
2.20.1
63
64
diff view generated by jsdifflib
Deleted patch
1
Add brief documentation of the Arm 'imx25-pdk' board.
2
1
3
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
4
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
5
Message-id: 20210722175229.29065-4-peter.maydell@linaro.org
6
---
7
docs/system/arm/imx25-pdk.rst | 19 +++++++++++++++++++
8
docs/system/target-arm.rst | 1 +
9
MAINTAINERS | 1 +
10
3 files changed, 21 insertions(+)
11
create mode 100644 docs/system/arm/imx25-pdk.rst
12
13
diff --git a/docs/system/arm/imx25-pdk.rst b/docs/system/arm/imx25-pdk.rst
14
new file mode 100644
15
index XXXXXXX..XXXXXXX
16
--- /dev/null
17
+++ b/docs/system/arm/imx25-pdk.rst
18
@@ -XXX,XX +XXX,XX @@
19
+NXP i.MX25 PDK board (``imx25-pdk``)
20
+====================================
21
+
22
+The ``imx25-pdk`` board emulates the NXP i.MX25 Product Development Kit
23
+board, which is based on an i.MX25 SoC which uses an ARM926 CPU.
24
+
25
+Emulated devices:
26
+
27
+- SD controller
28
+- AVIC
29
+- CCM
30
+- GPT
31
+- EPIT timers
32
+- FEC
33
+- RNGC
34
+- I2C
35
+- GPIO controllers
36
+- Watchdog timer
37
+- USB controllers
38
diff --git a/docs/system/target-arm.rst b/docs/system/target-arm.rst
39
index XXXXXXX..XXXXXXX 100644
40
--- a/docs/system/target-arm.rst
41
+++ b/docs/system/target-arm.rst
42
@@ -XXX,XX +XXX,XX @@ undocumented; you can get a complete list by running
43
arm/nrf
44
arm/nseries
45
arm/nuvoton
46
+ arm/imx25-pdk
47
arm/orangepi
48
arm/palm
49
arm/raspi
50
diff --git a/MAINTAINERS b/MAINTAINERS
51
index XXXXXXX..XXXXXXX 100644
52
--- a/MAINTAINERS
53
+++ b/MAINTAINERS
54
@@ -XXX,XX +XXX,XX @@ F: hw/watchdog/wdt_imx2.c
55
F: include/hw/arm/fsl-imx25.h
56
F: include/hw/misc/imx25_ccm.h
57
F: include/hw/watchdog/wdt_imx2.h
58
+F: docs/system/arm/imx25-pdk.rst
59
60
i.MX31 (kzm)
61
M: Peter Maydell <peter.maydell@linaro.org>
62
--
63
2.20.1
64
65
diff view generated by jsdifflib
Deleted patch
1
Andrzej Zaborowski is listed as an "Odd Fixes" maintainer for the
2
nSeries, Palm and PXA2XX boards, as well as the "Maintained" status
3
Arm 32-bit TCG backend.
4
1
5
Andrzej's last email to qemu-devel was back in 2017, and the email
6
before that was all the way back in 2013. We don't really need to
7
fill his email up with CCs on QEMU patches any more...
8
9
Remove Andrzej from the various boards sections (leaving them still
10
Odd Fixes with me as the backup patch reviewer). Add Richard
11
Henderson as the maintainer for the Arm TCG backend, since removing
12
Andrzej would otherwise leave that section with no M: line at all.
13
14
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
15
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
16
Message-id: 20210722180951.29802-1-peter.maydell@linaro.org
17
---
18
MAINTAINERS | 5 +----
19
1 file changed, 1 insertion(+), 4 deletions(-)
20
21
diff --git a/MAINTAINERS b/MAINTAINERS
22
index XXXXXXX..XXXXXXX 100644
23
--- a/MAINTAINERS
24
+++ b/MAINTAINERS
25
@@ -XXX,XX +XXX,XX @@ F: roms/vbootrom
26
F: docs/system/arm/nuvoton.rst
27
28
nSeries
29
-M: Andrzej Zaborowski <balrogg@gmail.com>
30
M: Peter Maydell <peter.maydell@linaro.org>
31
L: qemu-arm@nongnu.org
32
S: Odd Fixes
33
@@ -XXX,XX +XXX,XX @@ F: tests/acceptance/machine_arm_n8x0.py
34
F: docs/system/arm/nseries.rst
35
36
Palm
37
-M: Andrzej Zaborowski <balrogg@gmail.com>
38
M: Peter Maydell <peter.maydell@linaro.org>
39
L: qemu-arm@nongnu.org
40
S: Odd Fixes
41
@@ -XXX,XX +XXX,XX @@ F: include/hw/intc/realview_gic.h
42
F: docs/system/arm/realview.rst
43
44
PXA2XX
45
-M: Andrzej Zaborowski <balrogg@gmail.com>
46
M: Peter Maydell <peter.maydell@linaro.org>
47
L: qemu-arm@nongnu.org
48
S: Odd Fixes
49
@@ -XXX,XX +XXX,XX @@ F: disas/arm-a64.cc
50
F: disas/libvixl/
51
52
ARM TCG target
53
-M: Andrzej Zaborowski <balrogg@gmail.com>
54
+M: Richard Henderson <richard.henderson@linaro.org>
55
S: Maintained
56
L: qemu-arm@nongnu.org
57
F: tcg/arm/
58
--
59
2.20.1
60
61
diff view generated by jsdifflib
Deleted patch
1
Since commits 13f934e79fa and 3a50c8f3067aaf, our HTML docs include a
2
footer to all pages stating the license and version. We can
3
therefore delete the TODO comments suggesting we should do that from
4
our .rst files.
5
1
6
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
7
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
8
Reviewed-by: Cleber Rosa <crosa@redhat.com>
9
Reviewed-by: Markus Armbruster <armbru@redhat.com>
10
Message-id: 20210722192016.24915-2-peter.maydell@linaro.org
11
---
12
docs/interop/qemu-ga-ref.rst | 9 ---------
13
docs/interop/qemu-qmp-ref.rst | 9 ---------
14
docs/interop/qemu-storage-daemon-qmp-ref.rst | 9 ---------
15
3 files changed, 27 deletions(-)
16
17
diff --git a/docs/interop/qemu-ga-ref.rst b/docs/interop/qemu-ga-ref.rst
18
index XXXXXXX..XXXXXXX 100644
19
--- a/docs/interop/qemu-ga-ref.rst
20
+++ b/docs/interop/qemu-ga-ref.rst
21
@@ -XXX,XX +XXX,XX @@
22
QEMU Guest Agent Protocol Reference
23
===================================
24
25
-..
26
- TODO: the old Texinfo manual used to note that this manual
27
- is GPL-v2-or-later. We should make that reader-visible
28
- both here and in our Sphinx manuals more generally.
29
-
30
-..
31
- TODO: display the QEMU version, both here and in our Sphinx manuals
32
- more generally.
33
-
34
.. contents::
35
:depth: 3
36
37
diff --git a/docs/interop/qemu-qmp-ref.rst b/docs/interop/qemu-qmp-ref.rst
38
index XXXXXXX..XXXXXXX 100644
39
--- a/docs/interop/qemu-qmp-ref.rst
40
+++ b/docs/interop/qemu-qmp-ref.rst
41
@@ -XXX,XX +XXX,XX @@
42
QEMU QMP Reference Manual
43
=========================
44
45
-..
46
- TODO: the old Texinfo manual used to note that this manual
47
- is GPL-v2-or-later. We should make that reader-visible
48
- both here and in our Sphinx manuals more generally.
49
-
50
-..
51
- TODO: display the QEMU version, both here and in our Sphinx manuals
52
- more generally.
53
-
54
.. contents::
55
:depth: 3
56
57
diff --git a/docs/interop/qemu-storage-daemon-qmp-ref.rst b/docs/interop/qemu-storage-daemon-qmp-ref.rst
58
index XXXXXXX..XXXXXXX 100644
59
--- a/docs/interop/qemu-storage-daemon-qmp-ref.rst
60
+++ b/docs/interop/qemu-storage-daemon-qmp-ref.rst
61
@@ -XXX,XX +XXX,XX @@
62
QEMU Storage Daemon QMP Reference Manual
63
========================================
64
65
-..
66
- TODO: the old Texinfo manual used to note that this manual
67
- is GPL-v2-or-later. We should make that reader-visible
68
- both here and in our Sphinx manuals more generally.
69
-
70
-..
71
- TODO: display the QEMU version, both here and in our Sphinx manuals
72
- more generally.
73
-
74
.. contents::
75
:depth: 3
76
77
--
78
2.20.1
79
80
diff view generated by jsdifflib
Deleted patch
1
Our built HTML documentation now has a standard footer which
2
gives the license for QEMU (and its documentation as a whole).
3
In almost all pages, we either don't bother to state the
4
copyright/license for the individual rST sources, or we put
5
it in an rST comment. There are just three pages which render
6
copyright or license information into the user-visible HTML.
7
1
8
Quoting a specific (different) license for an individual HTML
9
page within the manual is confusing. Downgrade the license
10
and copyright info to a comment within the rST source, bringing
11
these pages in line with the rest of our documents.
12
13
Suggested-by: Markus Armbruster <armbru@redhat.com>
14
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
15
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
16
Reviewed-by: Cleber Rosa <crosa@redhat.com>
17
Reviewed-by: Markus Armbruster <armbru@redhat.com>
18
Acked-by: Michael S. Tsirkin <mst@redhat.com>
19
Message-id: 20210722192016.24915-3-peter.maydell@linaro.org
20
---
21
docs/interop/vhost-user-gpu.rst | 7 ++++---
22
docs/interop/vhost-user.rst | 12 +++++++-----
23
docs/system/generic-loader.rst | 4 ++--
24
3 files changed, 13 insertions(+), 10 deletions(-)
25
26
diff --git a/docs/interop/vhost-user-gpu.rst b/docs/interop/vhost-user-gpu.rst
27
index XXXXXXX..XXXXXXX 100644
28
--- a/docs/interop/vhost-user-gpu.rst
29
+++ b/docs/interop/vhost-user-gpu.rst
30
@@ -XXX,XX +XXX,XX @@
31
Vhost-user-gpu Protocol
32
=======================
33
34
-:Licence: This work is licensed under the terms of the GNU GPL,
35
- version 2 or later. See the COPYING file in the top-level
36
- directory.
37
+..
38
+ Licence: This work is licensed under the terms of the GNU GPL,
39
+ version 2 or later. See the COPYING file in the top-level
40
+ directory.
41
42
.. contents:: Table of Contents
43
44
diff --git a/docs/interop/vhost-user.rst b/docs/interop/vhost-user.rst
45
index XXXXXXX..XXXXXXX 100644
46
--- a/docs/interop/vhost-user.rst
47
+++ b/docs/interop/vhost-user.rst
48
@@ -XXX,XX +XXX,XX @@
49
===================
50
Vhost-user Protocol
51
===================
52
-:Copyright: 2014 Virtual Open Systems Sarl.
53
-:Copyright: 2019 Intel Corporation
54
-:Licence: This work is licensed under the terms of the GNU GPL,
55
- version 2 or later. See the COPYING file in the top-level
56
- directory.
57
+
58
+..
59
+ Copyright 2014 Virtual Open Systems Sarl.
60
+ Copyright 2019 Intel Corporation
61
+ Licence: This work is licensed under the terms of the GNU GPL,
62
+ version 2 or later. See the COPYING file in the top-level
63
+ directory.
64
65
.. contents:: Table of Contents
66
67
diff --git a/docs/system/generic-loader.rst b/docs/system/generic-loader.rst
68
index XXXXXXX..XXXXXXX 100644
69
--- a/docs/system/generic-loader.rst
70
+++ b/docs/system/generic-loader.rst
71
@@ -XXX,XX +XXX,XX @@
72
..
73
Copyright (c) 2016, Xilinx Inc.
74
75
-This work is licensed under the terms of the GNU GPL, version 2 or later. See
76
-the COPYING file in the top-level directory.
77
+ This work is licensed under the terms of the GNU GPL, version 2 or later. See
78
+ the COPYING file in the top-level directory.
79
80
Generic Loader
81
--------------
82
--
83
2.20.1
84
85
diff view generated by jsdifflib
Deleted patch
1
In rST markup, single backticks `like this` represent "interpreted
2
text", which can be handled as a bunch of different things if tagged
3
with a specific "role":
4
https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#interpreted-text
5
(the most common one for us is "reference to a URL, which gets
6
hyperlinked").
7
1
8
The default "role" if none is specified is "title_reference",
9
intended for references to book or article titles, and it renders
10
into the HTML as <cite>...</cite> (usually comes out as italics).
11
12
build-system.rst seems to have been written under the mistaken
13
assumption that single-backticks mark up literal text (function
14
names, etc) which should be rendered in a fixed-width font.
15
The rST markup for this is ``double backticks``.
16
17
Update all the markup.
18
19
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
20
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
21
Message-id: 20210726142338.31872-2-peter.maydell@linaro.org
22
---
23
docs/devel/build-system.rst | 156 ++++++++++++++++++------------------
24
1 file changed, 78 insertions(+), 78 deletions(-)
25
26
diff --git a/docs/devel/build-system.rst b/docs/devel/build-system.rst
27
index XXXXXXX..XXXXXXX 100644
28
--- a/docs/devel/build-system.rst
29
+++ b/docs/devel/build-system.rst
30
@@ -XXX,XX +XXX,XX @@ following tasks:
31
- Add a Meson build option to meson_options.txt.
32
33
- Add support to the command line arg parser to handle any new
34
- `--enable-XXX`/`--disable-XXX` flags required by the feature.
35
+ ``--enable-XXX``/``--disable-XXX`` flags required by the feature.
36
37
- Add information to the help output message to report on the new
38
feature flag.
39
40
- Add code to perform the actual feature check.
41
42
- - Add code to include the feature status in `config-host.h`
43
+ - Add code to include the feature status in ``config-host.h``
44
45
- Add code to print out the feature status in the configure summary
46
upon completion.
47
@@ -XXX,XX +XXX,XX @@ Helper functions
48
The configure script provides a variety of helper functions to assist
49
developers in checking for system features:
50
51
-`do_cc $ARGS...`
52
+``do_cc $ARGS...``
53
Attempt to run the system C compiler passing it $ARGS...
54
55
-`do_cxx $ARGS...`
56
+``do_cxx $ARGS...``
57
Attempt to run the system C++ compiler passing it $ARGS...
58
59
-`compile_object $CFLAGS`
60
+``compile_object $CFLAGS``
61
Attempt to compile a test program with the system C compiler using
62
$CFLAGS. The test program must have been previously written to a file
63
- called $TMPC. The replacement in Meson is the compiler object `cc`,
64
- which has methods such as `cc.compiles()`,
65
- `cc.check_header()`, `cc.has_function()`.
66
+ called $TMPC. The replacement in Meson is the compiler object ``cc``,
67
+ which has methods such as ``cc.compiles()``,
68
+ ``cc.check_header()``, ``cc.has_function()``.
69
70
-`compile_prog $CFLAGS $LDFLAGS`
71
+``compile_prog $CFLAGS $LDFLAGS``
72
Attempt to compile a test program with the system C compiler using
73
$CFLAGS and link it with the system linker using $LDFLAGS. The test
74
program must have been previously written to a file called $TMPC.
75
- The replacement in Meson is `cc.find_library()` and `cc.links()`.
76
+ The replacement in Meson is ``cc.find_library()`` and ``cc.links()``.
77
78
-`has $COMMAND`
79
+``has $COMMAND``
80
Determine if $COMMAND exists in the current environment, either as a
81
shell builtin, or executable binary, returning 0 on success. The
82
- replacement in Meson is `find_program()`.
83
+ replacement in Meson is ``find_program()``.
84
85
-`check_define $NAME`
86
+``check_define $NAME``
87
Determine if the macro $NAME is defined by the system C compiler
88
89
-`check_include $NAME`
90
+``check_include $NAME``
91
Determine if the include $NAME file is available to the system C
92
- compiler. The replacement in Meson is `cc.has_header()`.
93
+ compiler. The replacement in Meson is ``cc.has_header()``.
94
95
-`write_c_skeleton`
96
+``write_c_skeleton``
97
Write a minimal C program main() function to the temporary file
98
indicated by $TMPC
99
100
-`feature_not_found $NAME $REMEDY`
101
+``feature_not_found $NAME $REMEDY``
102
Print a message to stderr that the feature $NAME was not available
103
on the system, suggesting the user try $REMEDY to address the
104
problem.
105
106
-`error_exit $MESSAGE $MORE...`
107
+``error_exit $MESSAGE $MORE...``
108
Print $MESSAGE to stderr, followed by $MORE... and then exit from the
109
configure script with non-zero status
110
111
-`query_pkg_config $ARGS...`
112
+``query_pkg_config $ARGS...``
113
Run pkg-config passing it $ARGS. If QEMU is doing a static build,
114
then --static will be automatically added to $ARGS
115
116
@@ -XXX,XX +XXX,XX @@ process for:
117
118
4) other data files, such as icons or desktop files
119
120
-All executables are built by default, except for some `contrib/`
121
+All executables are built by default, except for some ``contrib/``
122
binaries that are known to fail to build on some platforms (for example
123
32-bit or big-endian platforms). Tests are also built by default,
124
though that might change in the future.
125
@@ -XXX,XX +XXX,XX @@ though that might change in the future.
126
The source code is highly modularized, split across many files to
127
facilitate building of all of these components with as little duplicated
128
compilation as possible. Using the Meson "sourceset" functionality,
129
-`meson.build` files group the source files in rules that are
130
+``meson.build`` files group the source files in rules that are
131
enabled according to the available system libraries and to various
132
configuration symbols. Sourcesets belong to one of four groups:
133
134
Subsystem sourcesets:
135
Various subsystems that are common to both tools and emulators have
136
- their own sourceset, for example `block_ss` for the block device subsystem,
137
- `chardev_ss` for the character device subsystem, etc. These sourcesets
138
+ their own sourceset, for example ``block_ss`` for the block device subsystem,
139
+ ``chardev_ss`` for the character device subsystem, etc. These sourcesets
140
are then turned into static libraries as follows::
141
142
libchardev = static_library('chardev', chardev_ss.sources(),
143
@@ -XXX,XX +XXX,XX @@ Subsystem sourcesets:
144
145
chardev = declare_dependency(link_whole: libchardev)
146
147
- As of Meson 0.55.1, the special `.fa` suffix should be used for everything
148
- that is used with `link_whole`, to ensure that the link flags are placed
149
+ As of Meson 0.55.1, the special ``.fa`` suffix should be used for everything
150
+ that is used with ``link_whole``, to ensure that the link flags are placed
151
correctly in the command line.
152
153
Target-independent emulator sourcesets:
154
@@ -XXX,XX +XXX,XX @@ Target-independent emulator sourcesets:
155
This includes error handling infrastructure, standard data structures,
156
platform portability wrapper functions, etc.
157
158
- Target-independent code lives in the `common_ss`, `softmmu_ss` and
159
- `user_ss` sourcesets. `common_ss` is linked into all emulators,
160
- `softmmu_ss` only in system emulators, `user_ss` only in user-mode
161
+ Target-independent code lives in the ``common_ss``, ``softmmu_ss`` and
162
+ ``user_ss`` sourcesets. ``common_ss`` is linked into all emulators,
163
+ ``softmmu_ss`` only in system emulators, ``user_ss`` only in user-mode
164
emulators.
165
166
Target-independent sourcesets must exercise particular care when using
167
- `if_false` rules. The `if_false` rule will be used correctly when linking
168
+ ``if_false`` rules. The ``if_false`` rule will be used correctly when linking
169
emulator binaries; however, when *compiling* target-independent files
170
- into .o files, Meson may need to pick *both* the `if_true` and
171
- `if_false` sides to cater for targets that want either side. To
172
+ into .o files, Meson may need to pick *both* the ``if_true`` and
173
+ ``if_false`` sides to cater for targets that want either side. To
174
achieve that, you can add a special rule using the ``CONFIG_ALL``
175
symbol::
176
177
@@ -XXX,XX +XXX,XX @@ Target-dependent emulator sourcesets:
178
In the target-dependent set lives CPU emulation, some device emulation and
179
much glue code. This sometimes also has to be compiled multiple times,
180
once for each target being built. Target-dependent files are included
181
- in the `specific_ss` sourceset.
182
+ in the ``specific_ss`` sourceset.
183
184
- Each emulator also includes sources for files in the `hw/` and `target/`
185
+ Each emulator also includes sources for files in the ``hw/`` and ``target/``
186
subdirectories. The subdirectory used for each emulator comes
187
from the target's definition of ``TARGET_BASE_ARCH`` or (if missing)
188
- ``TARGET_ARCH``, as found in `default-configs/targets/*.mak`.
189
+ ``TARGET_ARCH``, as found in ``default-configs/targets/*.mak``.
190
191
- Each subdirectory in `hw/` adds one sourceset to the `hw_arch` dictionary,
192
+ Each subdirectory in ``hw/`` adds one sourceset to the ``hw_arch`` dictionary,
193
for example::
194
195
arm_ss = ss.source_set()
196
@@ -XXX,XX +XXX,XX @@ Target-dependent emulator sourcesets:
197
198
The sourceset is only used for system emulators.
199
200
- Each subdirectory in `target/` instead should add one sourceset to each
201
- of the `target_arch` and `target_softmmu_arch`, which are used respectively
202
+ Each subdirectory in ``target/`` instead should add one sourceset to each
203
+ of the ``target_arch`` and ``target_softmmu_arch``, which are used respectively
204
for all emulators and for system emulators only. For example::
205
206
arm_ss = ss.source_set()
207
@@ -XXX,XX +XXX,XX @@ Target-dependent emulator sourcesets:
208
target_softmmu_arch += {'arm': arm_softmmu_ss}
209
210
Module sourcesets:
211
- There are two dictionaries for modules: `modules` is used for
212
- target-independent modules and `target_modules` is used for
213
- target-dependent modules. When modules are disabled the `module`
214
- source sets are added to `softmmu_ss` and the `target_modules`
215
- source sets are added to `specific_ss`.
216
+ There are two dictionaries for modules: ``modules`` is used for
217
+ target-independent modules and ``target_modules`` is used for
218
+ target-dependent modules. When modules are disabled the ``module``
219
+ source sets are added to ``softmmu_ss`` and the ``target_modules``
220
+ source sets are added to ``specific_ss``.
221
222
Both dictionaries are nested. One dictionary is created per
223
subdirectory, and these per-subdirectory dictionaries are added to
224
@@ -XXX,XX +XXX,XX @@ Module sourcesets:
225
modules += { 'hw-display': hw_display_modules }
226
227
Utility sourcesets:
228
- All binaries link with a static library `libqemuutil.a`. This library
229
+ All binaries link with a static library ``libqemuutil.a``. This library
230
is built from several sourcesets; most of them however host generated
231
- code, and the only two of general interest are `util_ss` and `stub_ss`.
232
+ code, and the only two of general interest are ``util_ss`` and ``stub_ss``.
233
234
The separation between these two is purely for documentation purposes.
235
- `util_ss` contains generic utility files. Even though this code is only
236
+ ``util_ss`` contains generic utility files. Even though this code is only
237
linked in some binaries, sometimes it requires hooks only in some of
238
these and depend on other functions that are not fully implemented by
239
- all QEMU binaries. `stub_ss` links dummy stubs that will only be linked
240
+ all QEMU binaries. ``stub_ss`` links dummy stubs that will only be linked
241
into the binary if the real implementation is not present. In a way,
242
the stubs can be thought of as a portable implementation of the weak
243
symbols concept.
244
@@ -XXX,XX +XXX,XX @@ Utility sourcesets:
245
The following files concur in the definition of which files are linked
246
into each emulator:
247
248
-`default-configs/devices/*.mak`
249
- The files under `default-configs/devices/` control the boards and devices
250
+``default-configs/devices/*.mak``
251
+ The files under ``default-configs/devices/`` control the boards and devices
252
that are built into each QEMU system emulation targets. They merely contain
253
a list of config variable definitions such as::
254
255
@@ -XXX,XX +XXX,XX @@ into each emulator:
256
CONFIG_XLNX_ZYNQMP_ARM=y
257
CONFIG_XLNX_VERSAL=y
258
259
-`*/Kconfig`
260
- These files are processed together with `default-configs/devices/*.mak` and
261
+``*/Kconfig``
262
+ These files are processed together with ``default-configs/devices/*.mak`` and
263
describe the dependencies between various features, subsystems and
264
device models. They are described in :ref:`kconfig`
265
266
-`default-configs/targets/*.mak`
267
- These files mostly define symbols that appear in the `*-config-target.h`
268
+``default-configs/targets/*.mak``
269
+ These files mostly define symbols that appear in the ``*-config-target.h``
270
file for each emulator [#cfgtarget]_. However, the ``TARGET_ARCH``
271
- and ``TARGET_BASE_ARCH`` will also be used to select the `hw/` and
272
- `target/` subdirectories that are compiled into each target.
273
+ and ``TARGET_BASE_ARCH`` will also be used to select the ``hw/`` and
274
+ ``target/`` subdirectories that are compiled into each target.
275
276
-.. [#cfgtarget] This header is included by `qemu/osdep.h` when
277
+.. [#cfgtarget] This header is included by ``qemu/osdep.h`` when
278
compiling files from the target-specific sourcesets.
279
280
These files rarely need changing unless you are adding a completely
281
@@ -XXX,XX +XXX,XX @@ Support scripts
282
---------------
283
284
Meson has a special convention for invoking Python scripts: if their
285
-first line is `#! /usr/bin/env python3` and the file is *not* executable,
286
+first line is ``#! /usr/bin/env python3`` and the file is *not* executable,
287
find_program() arranges to invoke the script under the same Python
288
interpreter that was used to invoke Meson. This is the most common
289
and preferred way to invoke support scripts from Meson build files,
290
because it automatically uses the value of configure's --python= option.
291
292
-In case the script is not written in Python, use a `#! /usr/bin/env ...`
293
+In case the script is not written in Python, use a ``#! /usr/bin/env ...``
294
line and make the script executable.
295
296
Scripts written in Python, where it is desirable to make the script
297
executable (for example for test scripts that developers may want to
298
invoke from the command line, such as tests/qapi-schema/test-qapi.py),
299
-should be invoked through the `python` variable in meson.build. For
300
+should be invoked through the ``python`` variable in meson.build. For
301
example::
302
303
test('QAPI schema regression tests', python,
304
@@ -XXX,XX +XXX,XX @@ rules and wraps them so that e.g. submodules are built before QEMU.
305
The resulting build system is largely non-recursive in nature, in
306
contrast to common practices seen with automake.
307
308
-Tests are also ran by the Makefile with the traditional `make check`
309
-phony target, while benchmarks are run with `make bench`. Meson test
310
-suites such as `unit` can be ran with `make check-unit` too. It is also
311
-possible to run tests defined in meson.build with `meson test`.
312
+Tests are also ran by the Makefile with the traditional ``make check``
313
+phony target, while benchmarks are run with ``make bench``. Meson test
314
+suites such as ``unit`` can be ran with ``make check-unit`` too. It is also
315
+possible to run tests defined in meson.build with ``meson test``.
316
317
Important files for the build system
318
====================================
319
@@ -XXX,XX +XXX,XX @@ The following key files are statically defined in the source tree, with
320
the rules needed to build QEMU. Their behaviour is influenced by a
321
number of dynamically created files listed later.
322
323
-`Makefile`
324
+``Makefile``
325
The main entry point used when invoking make to build all the components
326
of QEMU. The default 'all' target will naturally result in the build of
327
every component. Makefile takes care of recursively building submodules
328
directly via a non-recursive set of rules.
329
330
-`*/meson.build`
331
+``*/meson.build``
332
The meson.build file in the root directory is the main entry point for the
333
Meson build system, and it coordinates the configuration and build of all
334
executables. Build rules for various subdirectories are included in
335
other meson.build files spread throughout the QEMU source tree.
336
337
-`tests/Makefile.include`
338
+``tests/Makefile.include``
339
Rules for external test harnesses. These include the TCG tests,
340
- `qemu-iotests` and the Avocado-based acceptance tests.
341
+ ``qemu-iotests`` and the Avocado-based acceptance tests.
342
343
-`tests/docker/Makefile.include`
344
+``tests/docker/Makefile.include``
345
Rules for Docker tests. Like tests/Makefile, this file is included
346
directly by the top level Makefile, anything defined in this file will
347
influence the entire build system.
348
349
-`tests/vm/Makefile.include`
350
+``tests/vm/Makefile.include``
351
Rules for VM-based tests. Like tests/Makefile, this file is included
352
directly by the top level Makefile, anything defined in this file will
353
influence the entire build system.
354
@@ -XXX,XX +XXX,XX @@ Makefile.
355
356
Built by configure:
357
358
-`config-host.mak`
359
+``config-host.mak``
360
When configure has determined the characteristics of the build host it
361
will write a long list of variables to config-host.mak file. This
362
provides the various install directories, compiler / linker flags and a
363
- variety of `CONFIG_*` variables related to optionally enabled features.
364
+ variety of ``CONFIG_*`` variables related to optionally enabled features.
365
This is imported by the top level Makefile and meson.build in order to
366
tailor the build output.
367
368
@@ -XXX,XX +XXX,XX @@ Built by configure:
369
370
Built by Meson:
371
372
-`${TARGET-NAME}-config-devices.mak`
373
+``${TARGET-NAME}-config-devices.mak``
374
TARGET-NAME is again the name of a system or userspace emulator. The
375
config-devices.mak file is automatically generated by make using the
376
scripts/make_device_config.sh program, feeding it the
377
default-configs/$TARGET-NAME file as input.
378
379
-`config-host.h`, `$TARGET-NAME/config-target.h`, `$TARGET-NAME/config-devices.h`
380
+``config-host.h``, ``$TARGET-NAME/config-target.h``, ``$TARGET-NAME/config-devices.h``
381
These files are used by source code to determine what features
382
are enabled. They are generated from the contents of the corresponding
383
- `*.h` files using the scripts/create_config program. This extracts
384
+ ``*.h`` files using the scripts/create_config program. This extracts
385
relevant variables and formats them as C preprocessor macros.
386
387
-`build.ninja`
388
+``build.ninja``
389
The build rules.
390
391
392
Built by Makefile:
393
394
-`Makefile.ninja`
395
+``Makefile.ninja``
396
A Makefile include that bridges to ninja for the actual build. The
397
Makefile is mostly a list of targets that Meson included in build.ninja.
398
399
-`Makefile.mtest`
400
+``Makefile.mtest``
401
The Makefile definitions that let "make check" run tests defined in
402
meson.build. The rules are produced from Meson's JSON description of
403
tests (obtained with "meson introspect --tests") through the script
404
@@ -XXX,XX +XXX,XX @@ Built by Makefile:
405
Useful make targets
406
-------------------
407
408
-`help`
409
+``help``
410
Print a help message for the most common build targets.
411
412
-`print-VAR`
413
+``print-VAR``
414
Print the value of the variable VAR. Useful for debugging the build
415
system.
416
--
417
2.20.1
418
419
diff view generated by jsdifflib
Deleted patch
1
One of the example meson.build fragments incorrectly quotes some
2
symbols as 'CONFIG_FOO`; the correct syntax here is 'CONFIG_FOO'.
3
(This isn't a rST formatting mistake because the example is displayed
4
literally; it's just the wrong kind of quote.)
5
1
6
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
7
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
8
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
9
Message-id: 20210726142338.31872-3-peter.maydell@linaro.org
10
---
11
docs/devel/build-system.rst | 4 ++--
12
1 file changed, 2 insertions(+), 2 deletions(-)
13
14
diff --git a/docs/devel/build-system.rst b/docs/devel/build-system.rst
15
index XXXXXXX..XXXXXXX 100644
16
--- a/docs/devel/build-system.rst
17
+++ b/docs/devel/build-system.rst
18
@@ -XXX,XX +XXX,XX @@ Target-independent emulator sourcesets:
19
symbol::
20
21
# Some targets have CONFIG_ACPI, some don't, so this is not enough
22
- softmmu_ss.add(when: 'CONFIG_ACPI`, if_true: files('acpi.c'),
23
+ softmmu_ss.add(when: 'CONFIG_ACPI', if_true: files('acpi.c'),
24
if_false: files('acpi-stub.c'))
25
26
# This is required as well:
27
- softmmu_ss.add(when: 'CONFIG_ALL`, if_true: files('acpi-stub.c'))
28
+ softmmu_ss.add(when: 'CONFIG_ALL', if_true: files('acpi-stub.c'))
29
30
Target-dependent emulator sourcesets:
31
In the target-dependent set lives CPU emulation, some device emulation and
32
--
33
2.20.1
34
35
diff view generated by jsdifflib
Deleted patch
1
In rST markup, single backticks `like this` represent "interpreted
2
text", which can be handled as a bunch of different things if tagged
3
with a specific "role":
4
https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#interpreted-text
5
(the most common one for us is "reference to a URL, which gets
6
hyperlinked").
7
1
8
The default "role" if none is specified is "title_reference",
9
intended for references to book or article titles, and it renders
10
into the HTML as <cite>...</cite> (usually comes out as italics).
11
12
To format a literal (generally rendered as fixed-width font),
13
double-backticks are required.
14
15
ebpf_rss.rst gets this wrong in a few places; correct them.
16
17
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
18
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
19
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
20
Message-id: 20210726142338.31872-4-peter.maydell@linaro.org
21
---
22
docs/devel/ebpf_rss.rst | 18 +++++++++---------
23
1 file changed, 9 insertions(+), 9 deletions(-)
24
25
diff --git a/docs/devel/ebpf_rss.rst b/docs/devel/ebpf_rss.rst
26
index XXXXXXX..XXXXXXX 100644
27
--- a/docs/devel/ebpf_rss.rst
28
+++ b/docs/devel/ebpf_rss.rst
29
@@ -XXX,XX +XXX,XX @@ eBPF RSS implementation
30
31
eBPF RSS loading functionality located in ebpf/ebpf_rss.c and ebpf/ebpf_rss.h.
32
33
-The `struct EBPFRSSContext` structure that holds 4 file descriptors:
34
+The ``struct EBPFRSSContext`` structure that holds 4 file descriptors:
35
36
- ctx - pointer of the libbpf context.
37
- program_fd - file descriptor of the eBPF RSS program.
38
@@ -XXX,XX +XXX,XX @@ The `struct EBPFRSSContext` structure that holds 4 file descriptors:
39
- map_toeplitz_key - file descriptor of the 'Toeplitz key' map. One element of the 40byte key prepared for the hashing algorithm.
40
- map_indirections_table - 128 elements of queue indexes.
41
42
-`struct EBPFRSSConfig` fields:
43
+``struct EBPFRSSConfig`` fields:
44
45
-- redirect - "boolean" value, should the hash be calculated, on false - `default_queue` would be used as the final decision.
46
+- redirect - "boolean" value, should the hash be calculated, on false - ``default_queue`` would be used as the final decision.
47
- populate_hash - for now, not used. eBPF RSS doesn't support hash reporting.
48
-- hash_types - binary mask of different hash types. See `VIRTIO_NET_RSS_HASH_TYPE_*` defines. If for packet hash should not be calculated - `default_queue` would be used.
49
+- hash_types - binary mask of different hash types. See ``VIRTIO_NET_RSS_HASH_TYPE_*`` defines. If for packet hash should not be calculated - ``default_queue`` would be used.
50
- indirections_len - length of the indirections table, maximum 128.
51
- default_queue - the queue index that used for packet that shouldn't be hashed. For some packets, the hash can't be calculated(g.e ARP).
52
53
Functions:
54
55
-- `ebpf_rss_init()` - sets ctx to NULL, which indicates that EBPFRSSContext is not loaded.
56
-- `ebpf_rss_load()` - creates 3 maps and loads eBPF program from the rss.bpf.skeleton.h. Returns 'true' on success. After that, program_fd can be used to set steering for TAP.
57
-- `ebpf_rss_set_all()` - sets values for eBPF maps. `indirections_table` length is in EBPFRSSConfig. `toeplitz_key` is VIRTIO_NET_RSS_MAX_KEY_SIZE aka 40 bytes array.
58
-- `ebpf_rss_unload()` - close all file descriptors and set ctx to NULL.
59
+- ``ebpf_rss_init()`` - sets ctx to NULL, which indicates that EBPFRSSContext is not loaded.
60
+- ``ebpf_rss_load()`` - creates 3 maps and loads eBPF program from the rss.bpf.skeleton.h. Returns 'true' on success. After that, program_fd can be used to set steering for TAP.
61
+- ``ebpf_rss_set_all()`` - sets values for eBPF maps. ``indirections_table`` length is in EBPFRSSConfig. ``toeplitz_key`` is VIRTIO_NET_RSS_MAX_KEY_SIZE aka 40 bytes array.
62
+- ``ebpf_rss_unload()`` - close all file descriptors and set ctx to NULL.
63
64
Simplified eBPF RSS workflow:
65
66
@@ -XXX,XX +XXX,XX @@ Simplified eBPF RSS workflow:
67
NetClientState SetSteeringEBPF()
68
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
69
70
-For now, `set_steering_ebpf()` method supported by Linux TAP NetClientState. The method requires an eBPF program file descriptor as an argument.
71
+For now, ``set_steering_ebpf()`` method supported by Linux TAP NetClientState. The method requires an eBPF program file descriptor as an argument.
72
--
73
2.20.1
74
75
diff view generated by jsdifflib
Deleted patch
1
In rST markup, single backticks `like this` represent "interpreted
2
text", which can be handled as a bunch of different things if tagged
3
with a specific "role":
4
https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#interpreted-text
5
(the most common one for us is "reference to a URL, which gets
6
hyperlinked").
7
1
8
The default "role" if none is specified is "title_reference",
9
intended for references to book or article titles, and it renders
10
into the HTML as <cite>...</cite> (usually comes out as italics).
11
12
To format a literal (generally rendered as fixed-width font),
13
double-backticks are required.
14
15
Mostly migration.rst gets this right, but some places incorrectly use
16
single backticks where double backticks were intended; correct them.
17
18
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
19
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
20
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
21
Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
22
Message-id: 20210726142338.31872-5-peter.maydell@linaro.org
23
---
24
docs/devel/migration.rst | 36 ++++++++++++++++++------------------
25
1 file changed, 18 insertions(+), 18 deletions(-)
26
27
diff --git a/docs/devel/migration.rst b/docs/devel/migration.rst
28
index XXXXXXX..XXXXXXX 100644
29
--- a/docs/devel/migration.rst
30
+++ b/docs/devel/migration.rst
31
@@ -XXX,XX +XXX,XX @@ savevm/loadvm functionality.
32
Debugging
33
=========
34
35
-The migration stream can be analyzed thanks to `scripts/analyze-migration.py`.
36
+The migration stream can be analyzed thanks to ``scripts/analyze-migration.py``.
37
38
Example usage:
39
40
@@ -XXX,XX +XXX,XX @@ Common infrastructure
41
=====================
42
43
The files, sockets or fd's that carry the migration stream are abstracted by
44
-the ``QEMUFile`` type (see `migration/qemu-file.h`). In most cases this
45
-is connected to a subtype of ``QIOChannel`` (see `io/`).
46
+the ``QEMUFile`` type (see ``migration/qemu-file.h``). In most cases this
47
+is connected to a subtype of ``QIOChannel`` (see ``io/``).
48
49
50
Saving the state of one device
51
@@ -XXX,XX +XXX,XX @@ An example (from hw/input/pckbd.c)
52
};
53
54
We are declaring the state with name "pckbd".
55
-The `version_id` is 3, and the fields are 4 uint8_t in a KBDState structure.
56
+The ``version_id`` is 3, and the fields are 4 uint8_t in a KBDState structure.
57
We registered this with:
58
59
.. code:: c
60
61
vmstate_register(NULL, 0, &vmstate_kbd, s);
62
63
-For devices that are `qdev` based, we can register the device in the class
64
+For devices that are ``qdev`` based, we can register the device in the class
65
init function:
66
67
.. code:: c
68
@@ -XXX,XX +XXX,XX @@ another to load the state back.
69
SaveVMHandlers *ops,
70
void *opaque);
71
72
-Two functions in the ``ops`` structure are the `save_state`
73
-and `load_state` functions. Notice that `load_state` receives a version_id
74
-parameter to know what state format is receiving. `save_state` doesn't
75
+Two functions in the ``ops`` structure are the ``save_state``
76
+and ``load_state`` functions. Notice that ``load_state`` receives a version_id
77
+parameter to know what state format is receiving. ``save_state`` doesn't
78
have a version_id parameter because it always uses the latest version.
79
80
Note that because the VMState macros still save the data in a raw
81
@@ -XXX,XX +XXX,XX @@ migration of a device, and using them breaks backward-migration
82
compatibility; in general most changes can be made by adding Subsections
83
(see above) or _TEST macros (see above) which won't break compatibility.
84
85
-Each version is associated with a series of fields saved. The `save_state` always saves
86
-the state as the newer version. But `load_state` sometimes is able to
87
+Each version is associated with a series of fields saved. The ``save_state`` always saves
88
+the state as the newer version. But ``load_state`` sometimes is able to
89
load state from an older version.
90
91
You can see that there are several version fields:
92
93
-- `version_id`: the maximum version_id supported by VMState for that device.
94
-- `minimum_version_id`: the minimum version_id that VMState is able to understand
95
+- ``version_id``: the maximum version_id supported by VMState for that device.
96
+- ``minimum_version_id``: the minimum version_id that VMState is able to understand
97
for that device.
98
-- `minimum_version_id_old`: For devices that were not able to port to vmstate, we can
99
+- ``minimum_version_id_old``: For devices that were not able to port to vmstate, we can
100
assign a function that knows how to read this old state. This field is
101
- ignored if there is no `load_state_old` handler.
102
+ ignored if there is no ``load_state_old`` handler.
103
104
VMState is able to read versions from minimum_version_id to
105
version_id. And the function ``load_state_old()`` (if present) is able to
106
@@ -XXX,XX +XXX,XX @@ data and then transferred to the main structure.
107
108
If you use memory API functions that update memory layout outside
109
initialization (i.e., in response to a guest action), this is a strong
110
-indication that you need to call these functions in a `post_load` callback.
111
+indication that you need to call these functions in a ``post_load`` callback.
112
Examples of such memory API functions are:
113
114
- memory_region_add_subregion()
115
@@ -XXX,XX +XXX,XX @@ Postcopy migration with shared memory needs explicit support from the other
116
processes that share memory and from QEMU. There are restrictions on the type of
117
memory that userfault can support shared.
118
119
-The Linux kernel userfault support works on `/dev/shm` memory and on `hugetlbfs`
120
-(although the kernel doesn't provide an equivalent to `madvise(MADV_DONTNEED)`
121
+The Linux kernel userfault support works on ``/dev/shm`` memory and on ``hugetlbfs``
122
+(although the kernel doesn't provide an equivalent to ``madvise(MADV_DONTNEED)``
123
for hugetlbfs which may be a problem in some configurations).
124
125
The vhost-user code in QEMU supports clients that have Postcopy support,
126
-and the `vhost-user-bridge` (in `tests/`) and the DPDK package have changes
127
+and the ``vhost-user-bridge`` (in ``tests/``) and the DPDK package have changes
128
to support postcopy.
129
130
The client needs to open a userfaultfd and register the areas
131
--
132
2.20.1
133
134
diff view generated by jsdifflib
Deleted patch
1
In rST markup, single backticks `like this` represent "interpreted
2
text", which can be handled as a bunch of different things if tagged
3
with a specific "role":
4
https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#interpreted-text
5
(the most common one for us is "reference to a URL, which gets
6
hyperlinked").
7
1
8
The default "role" if none is specified is "title_reference",
9
intended for references to book or article titles, and it renders
10
into the HTML as <cite>...</cite> (usually comes out as italics).
11
12
Fix various places in the devel section of the manual which were
13
using single backticks when double backticks (for literal text)
14
were intended.
15
16
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
17
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
18
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
19
Message-id: 20210726142338.31872-6-peter.maydell@linaro.org
20
---
21
docs/devel/qgraph.rst | 8 ++++----
22
docs/devel/tcg-plugins.rst | 14 +++++++-------
23
docs/devel/testing.rst | 8 ++++----
24
3 files changed, 15 insertions(+), 15 deletions(-)
25
26
diff --git a/docs/devel/qgraph.rst b/docs/devel/qgraph.rst
27
index XXXXXXX..XXXXXXX 100644
28
--- a/docs/devel/qgraph.rst
29
+++ b/docs/devel/qgraph.rst
30
@@ -XXX,XX +XXX,XX @@ Notes for the nodes:
31
Edges
32
^^^^^^
33
34
-An edge relation between two nodes (drivers or machines) `X` and `Y` can be:
35
+An edge relation between two nodes (drivers or machines) ``X`` and ``Y`` can be:
36
37
-- ``X CONSUMES Y``: `Y` can be plugged into `X`
38
-- ``X PRODUCES Y``: `X` provides the interface `Y`
39
-- ``X CONTAINS Y``: `Y` is part of `X` component
40
+- ``X CONSUMES Y``: ``Y`` can be plugged into ``X``
41
+- ``X PRODUCES Y``: ``X`` provides the interface ``Y``
42
+- ``X CONTAINS Y``: ``Y`` is part of ``X`` component
43
44
Execution steps
45
^^^^^^^^^^^^^^^
46
diff --git a/docs/devel/tcg-plugins.rst b/docs/devel/tcg-plugins.rst
47
index XXXXXXX..XXXXXXX 100644
48
--- a/docs/devel/tcg-plugins.rst
49
+++ b/docs/devel/tcg-plugins.rst
50
@@ -XXX,XX +XXX,XX @@ version they were built against. This can be done simply by::
51
QEMU_PLUGIN_EXPORT int qemu_plugin_version = QEMU_PLUGIN_VERSION;
52
53
The core code will refuse to load a plugin that doesn't export a
54
-`qemu_plugin_version` symbol or if plugin version is outside of QEMU's
55
+``qemu_plugin_version`` symbol or if plugin version is outside of QEMU's
56
supported range of API versions.
57
58
-Additionally the `qemu_info_t` structure which is passed to the
59
-`qemu_plugin_install` method of a plugin will detail the minimum and
60
+Additionally the ``qemu_info_t`` structure which is passed to the
61
+``qemu_plugin_install`` method of a plugin will detail the minimum and
62
current API versions supported by QEMU. The API version will be
63
incremented if new APIs are added. The minimum API version will be
64
incremented if existing APIs are changed or removed.
65
@@ -XXX,XX +XXX,XX @@ Example Plugins
66
67
There are a number of plugins included with QEMU and you are
68
encouraged to contribute your own plugins plugins upstream. There is a
69
-`contrib/plugins` directory where they can go.
70
+``contrib/plugins`` directory where they can go.
71
72
- tests/plugins
73
74
These are some basic plugins that are used to test and exercise the
75
-API during the `make check-tcg` target.
76
+API during the ``make check-tcg`` target.
77
78
- contrib/plugins/hotblocks.c
79
80
@@ -XXX,XX +XXX,XX @@ with linux-user execution as system emulation tends to generate
81
re-translations as blocks from different programs get swapped in and
82
out of system memory.
83
84
-If your program is single-threaded you can use the `inline` option for
85
+If your program is single-threaded you can use the ``inline`` option for
86
slightly faster (but not thread safe) counters.
87
88
Example::
89
@@ -XXX,XX +XXX,XX @@ which will lead to a sorted list after the class breakdown::
90
...
91
92
To find the argument shorthand for the class you need to examine the
93
-source code of the plugin at the moment, specifically the `*opt`
94
+source code of the plugin at the moment, specifically the ``*opt``
95
argument in the InsnClassExecCount tables.
96
97
- contrib/plugins/lockstep.c
98
diff --git a/docs/devel/testing.rst b/docs/devel/testing.rst
99
index XXXXXXX..XXXXXXX 100644
100
--- a/docs/devel/testing.rst
101
+++ b/docs/devel/testing.rst
102
@@ -XXX,XX +XXX,XX @@ The base test class has also support for tests with more than one
103
QEMUMachine. The way to get machines is through the ``self.get_vm()``
104
method which will return a QEMUMachine instance. The ``self.get_vm()``
105
method accepts arguments that will be passed to the QEMUMachine creation
106
-and also an optional `name` attribute so you can identify a specific
107
+and also an optional ``name`` attribute so you can identify a specific
108
machine and get it more than once through the tests methods. A simple
109
and hypothetical example follows:
110
111
@@ -XXX,XX +XXX,XX @@ Here is a list of the most used variables:
112
AVOCADO_ALLOW_LARGE_STORAGE
113
~~~~~~~~~~~~~~~~~~~~~~~~~~~
114
Tests which are going to fetch or produce assets considered *large* are not
115
-going to run unless that `AVOCADO_ALLOW_LARGE_STORAGE=1` is exported on
116
+going to run unless that ``AVOCADO_ALLOW_LARGE_STORAGE=1`` is exported on
117
the environment.
118
119
The definition of *large* is a bit arbitrary here, but it usually means an
120
@@ -XXX,XX +XXX,XX @@ skipped by default. The definition of *not safe* is also arbitrary but
121
usually it means a blob which either its source or build process aren't
122
public available.
123
124
-You should export `AVOCADO_ALLOW_UNTRUSTED_CODE=1` on the environment in
125
+You should export ``AVOCADO_ALLOW_UNTRUSTED_CODE=1`` on the environment in
126
order to allow tests which make use of those kind of assets.
127
128
AVOCADO_TIMEOUT_EXPECTED
129
@@ -XXX,XX +XXX,XX @@ property defined in the test class, for further details::
130
Even though the timeout can be set by the test developer, there are some tests
131
that may not have a well-defined limit of time to finish under certain
132
conditions. For example, tests that take longer to execute when QEMU is
133
-compiled with debug flags. Therefore, the `AVOCADO_TIMEOUT_EXPECTED` variable
134
+compiled with debug flags. Therefore, the ``AVOCADO_TIMEOUT_EXPECTED`` variable
135
has been used to determine whether those tests should run or not.
136
137
GITLAB_CI
138
--
139
2.20.1
140
141
diff view generated by jsdifflib
Deleted patch
1
In rST markup, single backticks `like this` represent "interpreted
2
text", which can be handled as a bunch of different things if tagged
3
with a specific "role":
4
https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#interpreted-text
5
(the most common one for us is "reference to a URL, which gets
6
hyperlinked").
7
1
8
The default "role" if none is specified is "title_reference",
9
intended for references to book or article titles, and it renders
10
into the HTML as <cite>...</cite> (usually comes out as italics).
11
12
To format a literal (generally rendered as fixed-width font),
13
double-backticks are required.
14
15
protvirt.rst consistently uses single backticks when double backticks
16
are required; correct it.
17
18
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
19
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
20
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
21
Acked-by: Cornelia Huck <cohuck@redhat.com>
22
Message-id: 20210726142338.31872-7-peter.maydell@linaro.org
23
---
24
docs/system/s390x/protvirt.rst | 12 ++++++------
25
1 file changed, 6 insertions(+), 6 deletions(-)
26
27
diff --git a/docs/system/s390x/protvirt.rst b/docs/system/s390x/protvirt.rst
28
index XXXXXXX..XXXXXXX 100644
29
--- a/docs/system/s390x/protvirt.rst
30
+++ b/docs/system/s390x/protvirt.rst
31
@@ -XXX,XX +XXX,XX @@ Prerequisites
32
To run PVMs, a machine with the Protected Virtualization feature, as
33
indicated by the Ultravisor Call facility (stfle bit 158), is
34
required. The Ultravisor needs to be initialized at boot by setting
35
-`prot_virt=1` on the host's kernel command line.
36
+``prot_virt=1`` on the host's kernel command line.
37
38
Running PVMs requires using the KVM hypervisor.
39
40
-If those requirements are met, the capability `KVM_CAP_S390_PROTECTED`
41
+If those requirements are met, the capability ``KVM_CAP_S390_PROTECTED``
42
will indicate that KVM can support PVMs on that LPAR.
43
44
45
@@ -XXX,XX +XXX,XX @@ Running a Protected Virtual Machine
46
-----------------------------------
47
48
To run a PVM you will need to select a CPU model which includes the
49
-`Unpack facility` (stfle bit 161 represented by the feature
50
-`unpack`/`S390_FEAT_UNPACK`), and add these options to the command line::
51
+``Unpack facility`` (stfle bit 161 represented by the feature
52
+``unpack``/``S390_FEAT_UNPACK``), and add these options to the command line::
53
54
-object s390-pv-guest,id=pv0 \
55
-machine confidential-guest-support=pv0
56
57
Adding these options will:
58
59
-* Ensure the `unpack` facility is available
60
+* Ensure the ``unpack`` facility is available
61
* Enable the IOMMU by default for all I/O devices
62
* Initialize the PV mechanism
63
64
@@ -XXX,XX +XXX,XX @@ from the disk boot. This memory layout includes the encrypted
65
components (kernel, initrd, cmdline), the stage3a loader and
66
metadata. In case this boot method is used, the command line
67
options -initrd and -cmdline are ineffective. The preparation of a PVM
68
-image is done via the `genprotimg` tool from the s390-tools
69
+image is done via the ``genprotimg`` tool from the s390-tools
70
collection.
71
--
72
2.20.1
73
74
diff view generated by jsdifflib
Deleted patch
1
In rST markup, single backticks `like this` represent "interpreted
2
text", which can be handled as a bunch of different things if tagged
3
with a specific "role":
4
https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#interpreted-text
5
(the most common one for us is "reference to a URL, which gets
6
hyperlinked").
7
1
8
The default "role" if none is specified is "title_reference",
9
intended for references to book or article titles, and it renders
10
into the HTML as <cite>...</cite> (usually comes out as italics).
11
12
To format a literal (generally rendered as fixed-width font),
13
double-backticks are required.
14
15
cpu-features.rst consistently uses single backticks when double backticks
16
are required; correct it.
17
18
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
19
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
20
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
21
Message-id: 20210726142338.31872-8-peter.maydell@linaro.org
22
---
23
docs/system/arm/cpu-features.rst | 116 +++++++++++++++----------------
24
1 file changed, 58 insertions(+), 58 deletions(-)
25
26
diff --git a/docs/system/arm/cpu-features.rst b/docs/system/arm/cpu-features.rst
27
index XXXXXXX..XXXXXXX 100644
28
--- a/docs/system/arm/cpu-features.rst
29
+++ b/docs/system/arm/cpu-features.rst
30
@@ -XXX,XX +XXX,XX @@ is the Performance Monitoring Unit (PMU). CPU types such as the
31
Cortex-A15 and the Cortex-A57, which respectively implement Arm
32
architecture reference manuals ARMv7-A and ARMv8-A, may both optionally
33
implement PMUs. For example, if a user wants to use a Cortex-A15 without
34
-a PMU, then the `-cpu` parameter should contain `pmu=off` on the QEMU
35
-command line, i.e. `-cpu cortex-a15,pmu=off`.
36
+a PMU, then the ``-cpu`` parameter should contain ``pmu=off`` on the QEMU
37
+command line, i.e. ``-cpu cortex-a15,pmu=off``.
38
39
As not all CPU types support all optional CPU features, then whether or
40
not a CPU property exists depends on the CPU type. For example, CPUs
41
that implement the ARMv8-A architecture reference manual may optionally
42
support the AArch32 CPU feature, which may be enabled by disabling the
43
-`aarch64` CPU property. A CPU type such as the Cortex-A15, which does
44
-not implement ARMv8-A, will not have the `aarch64` CPU property.
45
+``aarch64`` CPU property. A CPU type such as the Cortex-A15, which does
46
+not implement ARMv8-A, will not have the ``aarch64`` CPU property.
47
48
QEMU's support may be limited for some CPU features, only partially
49
supporting the feature or only supporting the feature under certain
50
-configurations. For example, the `aarch64` CPU feature, which, when
51
+configurations. For example, the ``aarch64`` CPU feature, which, when
52
disabled, enables the optional AArch32 CPU feature, is only supported
53
when using the KVM accelerator and when running on a host CPU type that
54
-supports the feature. While `aarch64` currently only works with KVM,
55
+supports the feature. While ``aarch64`` currently only works with KVM,
56
it could work with TCG. CPU features that are specific to KVM are
57
prefixed with "kvm-" and are described in "KVM VCPU Features".
58
59
@@ -XXX,XX +XXX,XX @@ CPU Feature Probing
60
===================
61
62
Determining which CPU features are available and functional for a given
63
-CPU type is possible with the `query-cpu-model-expansion` QMP command.
64
-Below are some examples where `scripts/qmp/qmp-shell` (see the top comment
65
+CPU type is possible with the ``query-cpu-model-expansion`` QMP command.
66
+Below are some examples where ``scripts/qmp/qmp-shell`` (see the top comment
67
block in the script for usage) is used to issue the QMP commands.
68
69
-1. Determine which CPU features are available for the `max` CPU type
70
- (Note, we started QEMU with qemu-system-aarch64, so `max` is
71
+1. Determine which CPU features are available for the ``max`` CPU type
72
+ (Note, we started QEMU with qemu-system-aarch64, so ``max`` is
73
implementing the ARMv8-A reference manual in this case)::
74
75
(QEMU) query-cpu-model-expansion type=full model={"name":"max"}
76
@@ -XXX,XX +XXX,XX @@ block in the script for usage) is used to issue the QMP commands.
77
"sve896": true, "sve1280": true, "sve2048": true
78
}}}}
79
80
-We see that the `max` CPU type has the `pmu`, `aarch64`, `sve`, and many
81
-`sve<N>` CPU features. We also see that all the CPU features are
82
-enabled, as they are all `true`. (The `sve<N>` CPU features are all
83
+We see that the ``max`` CPU type has the ``pmu``, ``aarch64``, ``sve``, and many
84
+``sve<N>`` CPU features. We also see that all the CPU features are
85
+enabled, as they are all ``true``. (The ``sve<N>`` CPU features are all
86
optional SVE vector lengths (see "SVE CPU Properties"). While with TCG
87
all SVE vector lengths can be supported, when KVM is in use it's more
88
likely that only a few lengths will be supported, if SVE is supported at
89
@@ -XXX,XX +XXX,XX @@ all.)
90
"sve896": true, "sve1280": true, "sve2048": true
91
}}}}
92
93
-We see it worked, as `pmu` is now `false`.
94
+We see it worked, as ``pmu`` is now ``false``.
95
96
-(3) Let's try to disable `aarch64`, which enables the AArch32 CPU feature::
97
+(3) Let's try to disable ``aarch64``, which enables the AArch32 CPU feature::
98
99
(QEMU) query-cpu-model-expansion type=full model={"name":"max","props":{"aarch64":false}}
100
{"error": {
101
@@ -XXX,XX +XXX,XX @@ We see it worked, as `pmu` is now `false`.
102
It looks like this feature is limited to a configuration we do not
103
currently have.
104
105
-(4) Let's disable `sve` and see what happens to all the optional SVE
106
+(4) Let's disable ``sve`` and see what happens to all the optional SVE
107
vector lengths::
108
109
(QEMU) query-cpu-model-expansion type=full model={"name":"max","props":{"sve":false}}
110
@@ -XXX,XX +XXX,XX @@ currently have.
111
"sve896": false, "sve1280": false, "sve2048": false
112
}}}}
113
114
-As expected they are now all `false`.
115
+As expected they are now all ``false``.
116
117
(5) Let's try probing CPU features for the Cortex-A15 CPU type::
118
119
(QEMU) query-cpu-model-expansion type=full model={"name":"cortex-a15"}
120
{"return": {"model": {"name": "cortex-a15", "props": {"pmu": true}}}}
121
122
-Only the `pmu` CPU feature is available.
123
+Only the ``pmu`` CPU feature is available.
124
125
A note about CPU feature dependencies
126
-------------------------------------
127
@@ -XXX,XX +XXX,XX @@ A note about CPU models and KVM
128
-------------------------------
129
130
Named CPU models generally do not work with KVM. There are a few cases
131
-that do work, e.g. using the named CPU model `cortex-a57` with KVM on a
132
-seattle host, but mostly if KVM is enabled the `host` CPU type must be
133
+that do work, e.g. using the named CPU model ``cortex-a57`` with KVM on a
134
+seattle host, but mostly if KVM is enabled the ``host`` CPU type must be
135
used. This means the guest is provided all the same CPU features as the
136
-host CPU type has. And, for this reason, the `host` CPU type should
137
+host CPU type has. And, for this reason, the ``host`` CPU type should
138
enable all CPU features that the host has by default. Indeed it's even
139
a bit strange to allow disabling CPU features that the host has when using
140
-the `host` CPU type, but in the absence of CPU models it's the best we can
141
+the ``host`` CPU type, but in the absence of CPU models it's the best we can
142
do if we want to launch guests without all the host's CPU features enabled.
143
144
-Enabling KVM also affects the `query-cpu-model-expansion` QMP command. The
145
+Enabling KVM also affects the ``query-cpu-model-expansion`` QMP command. The
146
affect is not only limited to specific features, as pointed out in example
147
(3) of "CPU Feature Probing", but also to which CPU types may be expanded.
148
-When KVM is enabled, only the `max`, `host`, and current CPU type may be
149
+When KVM is enabled, only the ``max``, ``host``, and current CPU type may be
150
expanded. This restriction is necessary as it's not possible to know all
151
CPU types that may work with KVM, but it does impose a small risk of users
152
experiencing unexpected errors. For example on a seattle, as mentioned
153
-above, the `cortex-a57` CPU type is also valid when KVM is enabled.
154
-Therefore a user could use the `host` CPU type for the current type, but
155
-then attempt to query `cortex-a57`, however that query will fail with our
156
+above, the ``cortex-a57`` CPU type is also valid when KVM is enabled.
157
+Therefore a user could use the ``host`` CPU type for the current type, but
158
+then attempt to query ``cortex-a57``, however that query will fail with our
159
restrictions. This shouldn't be an issue though as management layers and
160
-users have been preferring the `host` CPU type for use with KVM for quite
161
+users have been preferring the ``host`` CPU type for use with KVM for quite
162
some time. Additionally, if the KVM-enabled QEMU instance running on a
163
-seattle host is using the `cortex-a57` CPU type, then querying `cortex-a57`
164
+seattle host is using the ``cortex-a57`` CPU type, then querying ``cortex-a57``
165
will work.
166
167
Using CPU Features
168
@@ -XXX,XX +XXX,XX @@ QEMU command line with that CPU type::
169
$ qemu-system-aarch64 -M virt -cpu max,pmu=off,sve=on,sve128=on,sve256=on
170
171
The example above disables the PMU and enables the first two SVE vector
172
-lengths for the `max` CPU type. Note, the `sve=on` isn't actually
173
-necessary, because, as we observed above with our probe of the `max` CPU
174
-type, `sve` is already on by default. Also, based on our probe of
175
+lengths for the ``max`` CPU type. Note, the ``sve=on`` isn't actually
176
+necessary, because, as we observed above with our probe of the ``max`` CPU
177
+type, ``sve`` is already on by default. Also, based on our probe of
178
defaults, it would seem we need to disable many SVE vector lengths, rather
179
than only enabling the two we want. This isn't the case, because, as
180
-disabling many SVE vector lengths would be quite verbose, the `sve<N>` CPU
181
+disabling many SVE vector lengths would be quite verbose, the ``sve<N>`` CPU
182
properties have special semantics (see "SVE CPU Property Parsing
183
Semantics").
184
185
@@ -XXX,XX +XXX,XX @@ TCG VCPU Features
186
TCG VCPU features are CPU features that are specific to TCG.
187
Below is the list of TCG VCPU features and their descriptions.
188
189
- pauth Enable or disable `FEAT_Pauth`, pointer
190
+ pauth Enable or disable ``FEAT_Pauth``, pointer
191
authentication. By default, the feature is
192
- enabled with `-cpu max`.
193
+ enabled with ``-cpu max``.
194
195
- pauth-impdef When `FEAT_Pauth` is enabled, either the
196
+ pauth-impdef When ``FEAT_Pauth`` is enabled, either the
197
*impdef* (Implementation Defined) algorithm
198
is enabled or the *architected* QARMA algorithm
199
is enabled. By default the impdef algorithm
200
@@ -XXX,XX +XXX,XX @@ Below is the list of TCG VCPU features and their descriptions.
201
SVE CPU Properties
202
==================
203
204
-There are two types of SVE CPU properties: `sve` and `sve<N>`. The first
205
-is used to enable or disable the entire SVE feature, just as the `pmu`
206
+There are two types of SVE CPU properties: ``sve`` and ``sve<N>``. The first
207
+is used to enable or disable the entire SVE feature, just as the ``pmu``
208
CPU property completely enables or disables the PMU. The second type
209
-is used to enable or disable specific vector lengths, where `N` is the
210
-number of bits of the length. The `sve<N>` CPU properties have special
211
+is used to enable or disable specific vector lengths, where ``N`` is the
212
+number of bits of the length. The ``sve<N>`` CPU properties have special
213
dependencies and constraints, see "SVE CPU Property Dependencies and
214
Constraints" below. Additionally, as we want all supported vector lengths
215
to be enabled by default, then, in order to avoid overly verbose command
216
-lines (command lines full of `sve<N>=off`, for all `N` not wanted), we
217
+lines (command lines full of ``sve<N>=off``, for all ``N`` not wanted), we
218
provide the parsing semantics listed in "SVE CPU Property Parsing
219
Semantics".
220
221
SVE CPU Property Dependencies and Constraints
222
---------------------------------------------
223
224
- 1) At least one vector length must be enabled when `sve` is enabled.
225
+ 1) At least one vector length must be enabled when ``sve`` is enabled.
226
227
- 2) If a vector length `N` is enabled, then, when KVM is enabled, all
228
+ 2) If a vector length ``N`` is enabled, then, when KVM is enabled, all
229
smaller, host supported vector lengths must also be enabled. If
230
KVM is not enabled, then only all the smaller, power-of-two vector
231
lengths must be enabled. E.g. with KVM if the host supports all
232
- vector lengths up to 512-bits (128, 256, 384, 512), then if `sve512`
233
+ vector lengths up to 512-bits (128, 256, 384, 512), then if ``sve512``
234
is enabled, the 128-bit vector length, 256-bit vector length, and
235
384-bit vector length must also be enabled. Without KVM, the 384-bit
236
vector length would not be required.
237
238
3) If KVM is enabled then only vector lengths that the host CPU type
239
support may be enabled. If SVE is not supported by the host, then
240
- no `sve*` properties may be enabled.
241
+ no ``sve*`` properties may be enabled.
242
243
SVE CPU Property Parsing Semantics
244
----------------------------------
245
246
- 1) If SVE is disabled (`sve=off`), then which SVE vector lengths
247
+ 1) If SVE is disabled (``sve=off``), then which SVE vector lengths
248
are enabled or disabled is irrelevant to the guest, as the entire
249
SVE feature is disabled and that disables all vector lengths for
250
- the guest. However QEMU will still track any `sve<N>` CPU
251
- properties provided by the user. If later an `sve=on` is provided,
252
- then the guest will get only the enabled lengths. If no `sve=on`
253
+ the guest. However QEMU will still track any ``sve<N>`` CPU
254
+ properties provided by the user. If later an ``sve=on`` is provided,
255
+ then the guest will get only the enabled lengths. If no ``sve=on``
256
is provided and there are explicitly enabled vector lengths, then
257
an error is generated.
258
259
- 2) If SVE is enabled (`sve=on`), but no `sve<N>` CPU properties are
260
+ 2) If SVE is enabled (``sve=on``), but no ``sve<N>`` CPU properties are
261
provided, then all supported vector lengths are enabled, which when
262
KVM is not in use means including the non-power-of-two lengths, and,
263
when KVM is in use, it means all vector lengths supported by the host
264
@@ -XXX,XX +XXX,XX @@ SVE CPU Property Parsing Semantics
265
constraint (2) of "SVE CPU Property Dependencies and Constraints").
266
267
5) When KVM is enabled, if the host does not support SVE, then an error
268
- is generated when attempting to enable any `sve*` properties (see
269
+ is generated when attempting to enable any ``sve*`` properties (see
270
constraint (3) of "SVE CPU Property Dependencies and Constraints").
271
272
6) When KVM is enabled, if the host does support SVE, then an error is
273
@@ -XXX,XX +XXX,XX @@ SVE CPU Property Parsing Semantics
274
by the host (see constraint (3) of "SVE CPU Property Dependencies and
275
Constraints").
276
277
- 7) If one or more `sve<N>` CPU properties are set `off`, but no `sve<N>`,
278
- CPU properties are set `on`, then the specified vector lengths are
279
+ 7) If one or more ``sve<N>`` CPU properties are set ``off``, but no ``sve<N>``,
280
+ CPU properties are set ``on``, then the specified vector lengths are
281
disabled but the default for any unspecified lengths remains enabled.
282
When KVM is not enabled, disabling a power-of-two vector length also
283
disables all vector lengths larger than the power-of-two length.
284
@@ -XXX,XX +XXX,XX @@ SVE CPU Property Parsing Semantics
285
disables all larger vector lengths (see constraint (2) of "SVE CPU
286
Property Dependencies and Constraints").
287
288
- 8) If one or more `sve<N>` CPU properties are set to `on`, then they
289
+ 8) If one or more ``sve<N>`` CPU properties are set to ``on``, then they
290
are enabled and all unspecified lengths default to disabled, except
291
for the required lengths per constraint (2) of "SVE CPU Property
292
Dependencies and Constraints", which will even be auto-enabled if
293
they were not explicitly enabled.
294
295
- 9) If SVE was disabled (`sve=off`), allowing all vector lengths to be
296
+ 9) If SVE was disabled (``sve=off``), allowing all vector lengths to be
297
explicitly disabled (i.e. avoiding the error specified in (3) of
298
- "SVE CPU Property Parsing Semantics"), then if later an `sve=on` is
299
+ "SVE CPU Property Parsing Semantics"), then if later an ``sve=on`` is
300
provided an error will be generated. To avoid this error, one must
301
enable at least one vector length prior to enabling SVE.
302
303
@@ -XXX,XX +XXX,XX @@ SVE CPU Property Examples
304
305
$ qemu-system-aarch64 -M virt -cpu max,sve=off
306
307
- 2) Implicitly enable all vector lengths for the `max` CPU type::
308
+ 2) Implicitly enable all vector lengths for the ``max`` CPU type::
309
310
$ qemu-system-aarch64 -M virt -cpu max
311
312
3) When KVM is enabled, implicitly enable all host CPU supported vector
313
- lengths with the `host` CPU type::
314
+ lengths with the ``host`` CPU type::
315
316
$ qemu-system-aarch64 -M virt,accel=kvm -cpu host
317
318
--
319
2.20.1
320
321
diff view generated by jsdifflib
Deleted patch
1
In rST markup, single backticks `like this` represent "interpreted
2
text", which can be handled as a bunch of different things if tagged
3
with a specific "role":
4
https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#interpreted-text
5
(the most common one for us is "reference to a URL, which gets
6
hyperlinked").
7
1
8
The default "role" if none is specified is "title_reference",
9
intended for references to book or article titles, and it renders
10
into the HTML as <cite>...</cite> (usually comes out as italics).
11
12
This commit fixes various places in the manual which were
13
using single backticks when double backticks (for literal text)
14
were intended, and covers those files where only one or two
15
instances of these errors were made.
16
17
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
18
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
19
---
20
docs/about/index.rst | 2 +-
21
docs/interop/live-block-operations.rst | 2 +-
22
docs/system/arm/nuvoton.rst | 2 +-
23
docs/system/arm/sbsa.rst | 4 ++--
24
docs/system/arm/virt.rst | 2 +-
25
docs/system/cpu-hotplug.rst | 2 +-
26
docs/system/guest-loader.rst | 6 +++---
27
docs/system/ppc/powernv.rst | 8 ++++----
28
docs/system/riscv/microchip-icicle-kit.rst | 2 +-
29
docs/system/riscv/virt.rst | 2 +-
30
10 files changed, 16 insertions(+), 16 deletions(-)
31
32
diff --git a/docs/about/index.rst b/docs/about/index.rst
33
index XXXXXXX..XXXXXXX 100644
34
--- a/docs/about/index.rst
35
+++ b/docs/about/index.rst
36
@@ -XXX,XX +XXX,XX @@ where QEMU can launch processes compiled for one CPU on another CPU.
37
In this mode the CPU is always emulated.
38
39
QEMU also provides a number of standalone commandline utilities,
40
-such as the `qemu-img` disk image utility that allows you to create,
41
+such as the ``qemu-img`` disk image utility that allows you to create,
42
convert and modify disk images.
43
44
.. toctree::
45
diff --git a/docs/interop/live-block-operations.rst b/docs/interop/live-block-operations.rst
46
index XXXXXXX..XXXXXXX 100644
47
--- a/docs/interop/live-block-operations.rst
48
+++ b/docs/interop/live-block-operations.rst
49
@@ -XXX,XX +XXX,XX @@ the content of image [D].
50
}
51
52
(6) [On *destination* QEMU] Finally, resume the guest vCPUs by issuing the
53
- QMP command `cont`::
54
+ QMP command ``cont``::
55
56
(QEMU) cont
57
{
58
diff --git a/docs/system/arm/nuvoton.rst b/docs/system/arm/nuvoton.rst
59
index XXXXXXX..XXXXXXX 100644
60
--- a/docs/system/arm/nuvoton.rst
61
+++ b/docs/system/arm/nuvoton.rst
62
@@ -XXX,XX +XXX,XX @@ Boot options
63
------------
64
65
The Nuvoton machines can boot from an OpenBMC firmware image, or directly into
66
-a kernel using the ``-kernel`` option. OpenBMC images for `quanta-gsj` and
67
+a kernel using the ``-kernel`` option. OpenBMC images for ``quanta-gsj`` and
68
possibly others can be downloaded from the OpenPOWER jenkins :
69
70
https://openpower.xyz/
71
diff --git a/docs/system/arm/sbsa.rst b/docs/system/arm/sbsa.rst
72
index XXXXXXX..XXXXXXX 100644
73
--- a/docs/system/arm/sbsa.rst
74
+++ b/docs/system/arm/sbsa.rst
75
@@ -XXX,XX +XXX,XX @@
76
Arm Server Base System Architecture Reference board (``sbsa-ref``)
77
==================================================================
78
79
-While the `virt` board is a generic board platform that doesn't match
80
-any real hardware the `sbsa-ref` board intends to look like real
81
+While the ``virt`` board is a generic board platform that doesn't match
82
+any real hardware the ``sbsa-ref`` board intends to look like real
83
hardware. The `Server Base System Architecture
84
<https://developer.arm.com/documentation/den0029/latest>`_ defines a
85
minimum base line of hardware support and importantly how the firmware
86
diff --git a/docs/system/arm/virt.rst b/docs/system/arm/virt.rst
87
index XXXXXXX..XXXXXXX 100644
88
--- a/docs/system/arm/virt.rst
89
+++ b/docs/system/arm/virt.rst
90
@@ -XXX,XX +XXX,XX @@
91
'virt' generic virtual platform (``virt``)
92
==========================================
93
94
-The `virt` board is a platform which does not correspond to any
95
+The ``virt`` board is a platform which does not correspond to any
96
real hardware; it is designed for use in virtual machines.
97
It is the recommended board type if you simply want to run
98
a guest such as Linux and do not care about reproducing the
99
diff --git a/docs/system/cpu-hotplug.rst b/docs/system/cpu-hotplug.rst
100
index XXXXXXX..XXXXXXX 100644
101
--- a/docs/system/cpu-hotplug.rst
102
+++ b/docs/system/cpu-hotplug.rst
103
@@ -XXX,XX +XXX,XX @@ vCPU hotplug
104
}
105
(QEMU)
106
107
-(5) Optionally, run QMP `query-cpus-fast` for some details about the
108
+(5) Optionally, run QMP ``query-cpus-fast`` for some details about the
109
vCPUs::
110
111
(QEMU) query-cpus-fast
112
diff --git a/docs/system/guest-loader.rst b/docs/system/guest-loader.rst
113
index XXXXXXX..XXXXXXX 100644
114
--- a/docs/system/guest-loader.rst
115
+++ b/docs/system/guest-loader.rst
116
@@ -XXX,XX +XXX,XX @@
117
Guest Loader
118
------------
119
120
-The guest loader is similar to the `generic-loader` although it is
121
+The guest loader is similar to the ``generic-loader`` although it is
122
aimed at a particular use case of loading hypervisor guests. This is
123
useful for debugging hypervisors without having to jump through the
124
hoops of firmware and boot-loaders.
125
@@ -XXX,XX +XXX,XX @@ multi-boot capability. A typical example would look like:
126
In the above example the Xen hypervisor is loaded by the -kernel
127
parameter and passed it's boot arguments via -append. The Dom0 guest
128
is loaded into the areas of memory. Each blob will get
129
-`/chosen/module@<addr>` entry in the FDT to indicate it's location and
130
+``/chosen/module@<addr>`` entry in the FDT to indicate it's location and
131
size. Additional information can be passed with by using additional
132
arguments.
133
134
Currently the only supported machines which use FDT data to boot are
135
-the ARM and RiscV `virt` machines.
136
+the ARM and RiscV ``virt`` machines.
137
138
Arguments
139
^^^^^^^^^
140
diff --git a/docs/system/ppc/powernv.rst b/docs/system/ppc/powernv.rst
141
index XXXXXXX..XXXXXXX 100644
142
--- a/docs/system/ppc/powernv.rst
143
+++ b/docs/system/ppc/powernv.rst
144
@@ -XXX,XX +XXX,XX @@ Firmware
145
--------
146
147
The OPAL firmware (OpenPower Abstraction Layer) for OpenPower systems
148
-includes the runtime services `skiboot` and the bootloader kernel and
149
-initramfs `skiroot`. Source code can be found on GitHub:
150
+includes the runtime services ``skiboot`` and the bootloader kernel and
151
+initramfs ``skiroot``. Source code can be found on GitHub:
152
153
https://github.com/open-power.
154
155
-Prebuilt images of `skiboot` and `skiboot` are made available on the `OpenPOWER <https://openpower.xyz/job/openpower/job/openpower-op-build/>`__ site. To boot a POWER9 machine, use the `witherspoon <https://openpower.xyz/job/openpower/job/openpower-op-build/label=slave,target=witherspoon/lastSuccessfulBuild/>`__ images. For POWER8, use
156
+Prebuilt images of ``skiboot`` and ``skiboot`` are made available on the `OpenPOWER <https://openpower.xyz/job/openpower/job/openpower-op-build/>`__ site. To boot a POWER9 machine, use the `witherspoon <https://openpower.xyz/job/openpower/job/openpower-op-build/label=slave,target=witherspoon/lastSuccessfulBuild/>`__ images. For POWER8, use
157
the `palmetto <https://openpower.xyz/job/openpower/job/openpower-op-build/label=slave,target=palmetto/lastSuccessfulBuild/>`__ images.
158
159
-QEMU includes a prebuilt image of `skiboot` which is updated when a
160
+QEMU includes a prebuilt image of ``skiboot`` which is updated when a
161
more recent version is required by the models.
162
163
Boot options
164
diff --git a/docs/system/riscv/microchip-icicle-kit.rst b/docs/system/riscv/microchip-icicle-kit.rst
165
index XXXXXXX..XXXXXXX 100644
166
--- a/docs/system/riscv/microchip-icicle-kit.rst
167
+++ b/docs/system/riscv/microchip-icicle-kit.rst
168
@@ -XXX,XX +XXX,XX @@ Then we can boot the machine by:
169
-serial chardev:serial1
170
171
With above command line, current terminal session will be used for the first
172
-serial port. Open another terminal window, and use `minicom` to connect the
173
+serial port. Open another terminal window, and use ``minicom`` to connect the
174
second serial port.
175
176
.. code-block:: bash
177
diff --git a/docs/system/riscv/virt.rst b/docs/system/riscv/virt.rst
178
index XXXXXXX..XXXXXXX 100644
179
--- a/docs/system/riscv/virt.rst
180
+++ b/docs/system/riscv/virt.rst
181
@@ -XXX,XX +XXX,XX @@
182
'virt' Generic Virtual Platform (``virt``)
183
==========================================
184
185
-The `virt` board is a platform which does not correspond to any real hardware;
186
+The ``virt`` board is a platform which does not correspond to any real hardware;
187
it is designed for use in virtual machines. It is the recommended board type
188
if you simply want to run a guest such as Linux and do not care about
189
reproducing the idiosyncrasies and limitations of a particular bit of
190
--
191
2.20.1
192
193
diff view generated by jsdifflib
Deleted patch
1
The section describing the removed feature "-usbdevice ccid" had a
2
typo so the markup started with single backtick and ended with double
3
backtick; fix it.
4
1
5
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
6
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
7
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
8
Message-id: 20210726142338.31872-10-peter.maydell@linaro.org
9
---
10
docs/about/removed-features.rst | 2 +-
11
1 file changed, 1 insertion(+), 1 deletion(-)
12
13
diff --git a/docs/about/removed-features.rst b/docs/about/removed-features.rst
14
index XXXXXXX..XXXXXXX 100644
15
--- a/docs/about/removed-features.rst
16
+++ b/docs/about/removed-features.rst
17
@@ -XXX,XX +XXX,XX @@ devices. Drives the board doesn't pick up can no longer be used with
18
'''''''''''''''''''''''''''''''''''''
19
20
This option was undocumented and not used in the field.
21
-Use `-device usb-ccid`` instead.
22
+Use ``-device usb-ccid`` instead.
23
24
RISC-V firmware not booted by default (removed in 5.1)
25
''''''''''''''''''''''''''''''''''''''''''''''''''''''
26
--
27
2.20.1
28
29
diff view generated by jsdifflib
Deleted patch
1
The documentation of the posix_acl option has a stray backtick
2
at the end of the text (which is rendered literally into the HTML).
3
Delete it.
4
1
5
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
6
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
7
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
8
Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
9
Message-id: 20210726142338.31872-11-peter.maydell@linaro.org
10
---
11
docs/tools/virtiofsd.rst | 2 +-
12
1 file changed, 1 insertion(+), 1 deletion(-)
13
14
diff --git a/docs/tools/virtiofsd.rst b/docs/tools/virtiofsd.rst
15
index XXXXXXX..XXXXXXX 100644
16
--- a/docs/tools/virtiofsd.rst
17
+++ b/docs/tools/virtiofsd.rst
18
@@ -XXX,XX +XXX,XX @@ Options
19
default is ``no_xattr``.
20
21
* posix_acl|no_posix_acl -
22
- Enable/disable posix acl support. Posix ACLs are disabled by default`.
23
+ Enable/disable posix acl support. Posix ACLs are disabled by default.
24
25
.. option:: --socket-path=PATH
26
27
--
28
2.20.1
29
30
diff view generated by jsdifflib
Deleted patch
1
If the user provides both a BIOS/firmware image and also a guest
2
kernel filename, arm_setup_firmware_boot() will pass the
3
kernel image to the firmware via the fw_cfg device. However we
4
weren't checking whether there really was a fw_cfg device present,
5
and if there wasn't we would crash.
6
1
7
This crash can be provoked with a command line such as
8
qemu-system-aarch64 -M raspi3 -kernel /dev/null -bios /dev/null -display none
9
10
It is currently only possible on the raspi3 machine, because unless
11
the machine sets info->firmware_loaded we won't call
12
arm_setup_firmware_boot(), and the only machines which set that are:
13
* virt (has a fw-cfg device)
14
* sbsa-ref (checks itself for kernel_filename && firmware_loaded)
15
* raspi3 (crashes)
16
17
But this is an unfortunate beartrap to leave for future machine
18
model implementors, so we should handle this situation in boot.c.
19
20
Check in arm_setup_firmware_boot() whether the fw-cfg device exists
21
before trying to load files into it, and if it doesn't exist then
22
exit with a hopefully helpful error message.
23
24
Because we now handle this check in a machine-agnostic way, we
25
can remove the check from sbsa-ref.
26
27
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/503
28
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
29
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
30
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
31
Message-id: 20210726163351.32086-1-peter.maydell@linaro.org
32
---
33
hw/arm/boot.c | 9 +++++++++
34
hw/arm/sbsa-ref.c | 7 -------
35
2 files changed, 9 insertions(+), 7 deletions(-)
36
37
diff --git a/hw/arm/boot.c b/hw/arm/boot.c
38
index XXXXXXX..XXXXXXX 100644
39
--- a/hw/arm/boot.c
40
+++ b/hw/arm/boot.c
41
@@ -XXX,XX +XXX,XX @@ static void arm_setup_firmware_boot(ARMCPU *cpu, struct arm_boot_info *info)
42
bool try_decompressing_kernel;
43
44
fw_cfg = fw_cfg_find();
45
+
46
+ if (!fw_cfg) {
47
+ error_report("This machine type does not support loading both "
48
+ "a guest firmware/BIOS image and a guest kernel at "
49
+ "the same time. You should change your QEMU command "
50
+ "line to specify one or the other, but not both.");
51
+ exit(1);
52
+ }
53
+
54
try_decompressing_kernel = arm_feature(&cpu->env,
55
ARM_FEATURE_AARCH64);
56
57
diff --git a/hw/arm/sbsa-ref.c b/hw/arm/sbsa-ref.c
58
index XXXXXXX..XXXXXXX 100644
59
--- a/hw/arm/sbsa-ref.c
60
+++ b/hw/arm/sbsa-ref.c
61
@@ -XXX,XX +XXX,XX @@ static void sbsa_ref_init(MachineState *machine)
62
63
firmware_loaded = sbsa_firmware_init(sms, sysmem, secure_sysmem);
64
65
- if (machine->kernel_filename && firmware_loaded) {
66
- error_report("sbsa-ref: No fw_cfg device on this machine, "
67
- "so -kernel option is not supported when firmware loaded, "
68
- "please load OS from hard disk instead");
69
- exit(1);
70
- }
71
-
72
/*
73
* This machine has EL3 enabled, external firmware should supply PSCI
74
* implementation, so the QEMU's internal PSCI is disabled.
75
--
76
2.20.1
77
78
diff view generated by jsdifflib
Deleted patch
1
Move bootindex.txt into the system section of the manual and turn it
2
into rST format. To make the document make more sense in the context
3
of the system manual, expand the title and introductory paragraphs to
4
give more context.
5
1
6
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
7
Reviewed-by: Markus Armbruster <armbru@redhat.com>
8
Message-id: 20210727194955.7764-1-peter.maydell@linaro.org
9
---
10
docs/bootindex.txt | 52 ---------------------------
11
docs/system/bootindex.rst | 76 +++++++++++++++++++++++++++++++++++++++
12
docs/system/index.rst | 1 +
13
3 files changed, 77 insertions(+), 52 deletions(-)
14
delete mode 100644 docs/bootindex.txt
15
create mode 100644 docs/system/bootindex.rst
16
17
diff --git a/docs/bootindex.txt b/docs/bootindex.txt
18
deleted file mode 100644
19
index XXXXXXX..XXXXXXX
20
--- a/docs/bootindex.txt
21
+++ /dev/null
22
@@ -XXX,XX +XXX,XX @@
23
-= Bootindex property =
24
-
25
-Block and net devices have bootindex property. This property is used to
26
-determine the order in which firmware will consider devices for booting
27
-the guest OS. If the bootindex property is not set for a device, it gets
28
-lowest boot priority. There is no particular order in which devices with
29
-unset bootindex property will be considered for booting, but they will
30
-still be bootable.
31
-
32
-== Example ==
33
-
34
-Let's assume we have a QEMU machine with two NICs (virtio, e1000) and two
35
-disks (IDE, virtio):
36
-
37
-qemu -drive file=disk1.img,if=none,id=disk1
38
- -device ide-hd,drive=disk1,bootindex=4
39
- -drive file=disk2.img,if=none,id=disk2
40
- -device virtio-blk-pci,drive=disk2,bootindex=3
41
- -netdev type=user,id=net0 -device virtio-net-pci,netdev=net0,bootindex=2
42
- -netdev type=user,id=net1 -device e1000,netdev=net1,bootindex=1
43
-
44
-Given the command above, firmware should try to boot from the e1000 NIC
45
-first. If this fails, it should try the virtio NIC next; if this fails
46
-too, it should try the virtio disk, and then the IDE disk.
47
-
48
-== Limitations ==
49
-
50
-1. Some firmware has limitations on which devices can be considered for
51
-booting. For instance, the PC BIOS boot specification allows only one
52
-disk to be bootable. If boot from disk fails for some reason, the BIOS
53
-won't retry booting from other disk. It can still try to boot from
54
-floppy or net, though.
55
-
56
-2. Sometimes, firmware cannot map the device path QEMU wants firmware to
57
-boot from to a boot method. It doesn't happen for devices the firmware
58
-can natively boot from, but if firmware relies on an option ROM for
59
-booting, and the same option ROM is used for booting from more then one
60
-device, the firmware may not be able to ask the option ROM to boot from
61
-a particular device reliably. For instance with the PC BIOS, if a SCSI HBA
62
-has three bootable devices target1, target3, target5 connected to it,
63
-the option ROM will have a boot method for each of them, but it is not
64
-possible to map from boot method back to a specific target. This is a
65
-shortcoming of the PC BIOS boot specification.
66
-
67
-== Mixing bootindex and boot order parameters ==
68
-
69
-Note that it does not make sense to use the bootindex property together
70
-with the "-boot order=..." (or "-boot once=...") parameter. The guest
71
-firmware implementations normally either support the one or the other,
72
-but not both parameters at the same time. Mixing them will result in
73
-undefined behavior, and thus the guest firmware will likely not boot
74
-from the expected devices.
75
diff --git a/docs/system/bootindex.rst b/docs/system/bootindex.rst
76
new file mode 100644
77
index XXXXXXX..XXXXXXX
78
--- /dev/null
79
+++ b/docs/system/bootindex.rst
80
@@ -XXX,XX +XXX,XX @@
81
+Managing device boot order with bootindex properties
82
+====================================================
83
+
84
+QEMU can tell QEMU-aware guest firmware (like the x86 PC BIOS)
85
+which order it should look for a bootable OS on which devices.
86
+A simple way to set this order is to use the ``-boot order=`` option,
87
+but you can also do this more flexibly, by setting a ``bootindex``
88
+property on the individual block or net devices you specify
89
+on the QEMU command line.
90
+
91
+The ``bootindex`` properties are used to determine the order in which
92
+firmware will consider devices for booting the guest OS. If the
93
+``bootindex`` property is not set for a device, it gets the lowest
94
+boot priority. There is no particular order in which devices with no
95
+``bootindex`` property set will be considered for booting, but they
96
+will still be bootable.
97
+
98
+Some guest machine types (for instance the s390x machines) do
99
+not support ``-boot order=``; on those machines you must always
100
+use ``bootindex`` properties.
101
+
102
+There is no way to set a ``bootindex`` property if you are using
103
+a short-form option like ``-hda`` or ``-cdrom``, so to use
104
+``bootindex`` properties you will need to expand out those options
105
+into long-form ``-drive`` and ``-device`` option pairs.
106
+
107
+Example
108
+-------
109
+
110
+Let's assume we have a QEMU machine with two NICs (virtio, e1000) and two
111
+disks (IDE, virtio):
112
+
113
+.. parsed-literal::
114
+
115
+ |qemu_system| -drive file=disk1.img,if=none,id=disk1 \\
116
+ -device ide-hd,drive=disk1,bootindex=4 \\
117
+ -drive file=disk2.img,if=none,id=disk2 \\
118
+ -device virtio-blk-pci,drive=disk2,bootindex=3 \\
119
+ -netdev type=user,id=net0 \\
120
+ -device virtio-net-pci,netdev=net0,bootindex=2 \\
121
+ -netdev type=user,id=net1 \\
122
+ -device e1000,netdev=net1,bootindex=1
123
+
124
+Given the command above, firmware should try to boot from the e1000 NIC
125
+first. If this fails, it should try the virtio NIC next; if this fails
126
+too, it should try the virtio disk, and then the IDE disk.
127
+
128
+Limitations
129
+-----------
130
+
131
+Some firmware has limitations on which devices can be considered for
132
+booting. For instance, the PC BIOS boot specification allows only one
133
+disk to be bootable. If boot from disk fails for some reason, the BIOS
134
+won't retry booting from other disk. It can still try to boot from
135
+floppy or net, though.
136
+
137
+Sometimes, firmware cannot map the device path QEMU wants firmware to
138
+boot from to a boot method. It doesn't happen for devices the firmware
139
+can natively boot from, but if firmware relies on an option ROM for
140
+booting, and the same option ROM is used for booting from more then one
141
+device, the firmware may not be able to ask the option ROM to boot from
142
+a particular device reliably. For instance with the PC BIOS, if a SCSI HBA
143
+has three bootable devices target1, target3, target5 connected to it,
144
+the option ROM will have a boot method for each of them, but it is not
145
+possible to map from boot method back to a specific target. This is a
146
+shortcoming of the PC BIOS boot specification.
147
+
148
+Mixing bootindex and boot order parameters
149
+------------------------------------------
150
+
151
+Note that it does not make sense to use the bootindex property together
152
+with the ``-boot order=...`` (or ``-boot once=...``) parameter. The guest
153
+firmware implementations normally either support the one or the other,
154
+but not both parameters at the same time. Mixing them will result in
155
+undefined behavior, and thus the guest firmware will likely not boot
156
+from the expected devices.
157
diff --git a/docs/system/index.rst b/docs/system/index.rst
158
index XXXXXXX..XXXXXXX 100644
159
--- a/docs/system/index.rst
160
+++ b/docs/system/index.rst
161
@@ -XXX,XX +XXX,XX @@ or Hypervisor.Framework.
162
authz
163
gdb
164
managed-startup
165
+ bootindex
166
cpu-hotplug
167
pr-manager
168
targets
169
--
170
2.20.1
171
172
diff view generated by jsdifflib
Deleted patch
1
Most of docs/barrier.txt is describing the protocol implemented
2
by the input-barrier device. Move this into the interop
3
section of the manual, and rstify it.
4
1
5
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
6
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
7
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
8
Message-id: 20210727204112.12579-2-peter.maydell@linaro.org
9
---
10
docs/barrier.txt | 318 -----------------------------
11
docs/interop/barrier.rst | 426 +++++++++++++++++++++++++++++++++++++++
12
docs/interop/index.rst | 1 +
13
3 files changed, 427 insertions(+), 318 deletions(-)
14
create mode 100644 docs/interop/barrier.rst
15
16
diff --git a/docs/barrier.txt b/docs/barrier.txt
17
index XXXXXXX..XXXXXXX 100644
18
--- a/docs/barrier.txt
19
+++ b/docs/barrier.txt
20
@@ -XXX,XX +XXX,XX @@
21
22
(qemu) object_del barrier0
23
(qemu) object_add input-barrier,id=barrier0,name=VM-1
24
-
25
-* Message format
26
-
27
- Message format between the server and client is in two parts:
28
-
29
- 1- the payload length is a 32bit integer in network endianness,
30
- 2- the payload
31
-
32
- The payload starts with a 4byte string (without NUL) which is the
33
- command. The first command between the server and the client
34
- is the only command not encoded on 4 bytes ("Barrier").
35
- The remaining part of the payload is decoded according to the command.
36
-
37
-* Protocol Description (from barrier/src/lib/barrier/protocol_types.h)
38
-
39
- - barrierCmdHello "Barrier"
40
-
41
- Direction: server -> client
42
- Parameters: { int16_t minor, int16_t major }
43
- Description:
44
-
45
- Say hello to client
46
- minor = protocol major version number supported by server
47
- major = protocol minor version number supported by server
48
-
49
- - barrierCmdHelloBack "Barrier"
50
-
51
- Direction: client ->server
52
- Parameters: { int16_t minor, int16_t major, char *name}
53
- Description:
54
-
55
- Respond to hello from server
56
- minor = protocol major version number supported by client
57
- major = protocol minor version number supported by client
58
- name = client name
59
-
60
- - barrierCmdDInfo "DINF"
61
-
62
- Direction: client ->server
63
- Parameters: { int16_t x_origin, int16_t y_origin, int16_t width, int16_t height, int16_t x, int16_t y}
64
- Description:
65
-
66
- The client screen must send this message in response to the
67
- barrierCmdQInfo message. It must also send this message when the
68
- screen's resolution changes. In this case, the client screen should
69
- ignore any barrierCmdDMouseMove messages until it receives a
70
- barrierCmdCInfoAck in order to prevent attempts to move the mouse off
71
- the new screen area.
72
-
73
- - barrierCmdCNoop "CNOP"
74
-
75
- Direction: client -> server
76
- Parameters: None
77
- Description:
78
-
79
- No operation
80
-
81
- - barrierCmdCClose "CBYE"
82
-
83
- Direction: server -> client
84
- Parameters: None
85
- Description:
86
-
87
- Close connection
88
-
89
- - barrierCmdCEnter "CINN"
90
-
91
- Direction: server -> client
92
- Parameters: { int16_t x, int16_t y, int32_t seq, int16_t modifier }
93
- Description:
94
-
95
- Enter screen.
96
- x,y = entering screen absolute coordinates
97
- seq = sequence number, which is used to order messages between
98
- screens. the secondary screen must return this number
99
- with some messages
100
- modifier = modifier key mask. this will have bits set for each
101
- toggle modifier key that is activated on entry to the
102
- screen. the secondary screen should adjust its toggle
103
- modifiers to reflect that state.
104
-
105
- - barrierCmdCLeave "COUT"
106
-
107
- Direction: server -> client
108
- Parameters: None
109
- Description:
110
-
111
- Leaving screen. the secondary screen should send clipboard data in
112
- response to this message for those clipboards that it has grabbed
113
- (i.e. has sent a barrierCmdCClipboard for and has not received a
114
- barrierCmdCClipboard for with a greater sequence number) and that
115
- were grabbed or have changed since the last leave.
116
-
117
- - barrierCmdCClipboard "CCLP"
118
-
119
- Direction: server -> client
120
- Parameters: { int8_t id, int32_t seq }
121
- Description:
122
-
123
- Grab clipboard. Sent by screen when some other app on that screen
124
- grabs a clipboard.
125
- id = the clipboard identifier
126
- seq = sequence number. Client must use the sequence number passed in
127
- the most recent barrierCmdCEnter. the server always sends 0.
128
-
129
- - barrierCmdCScreenSaver "CSEC"
130
-
131
- Direction: server -> client
132
- Parameters: { int8_t started }
133
- Description:
134
-
135
- Screensaver change.
136
- started = Screensaver on primary has started (1) or closed (0)
137
-
138
- - barrierCmdCResetOptions "CROP"
139
-
140
- Direction: server -> client
141
- Parameters: None
142
- Description:
143
-
144
- Reset options. Client should reset all of its options to their
145
- defaults.
146
-
147
- - barrierCmdCInfoAck "CIAK"
148
-
149
- Direction: server -> client
150
- Parameters: None
151
- Description:
152
-
153
- Resolution change acknowledgment. Sent by server in response to a
154
- client screen's barrierCmdDInfo. This is sent for every
155
- barrierCmdDInfo, whether or not the server had sent a barrierCmdQInfo.
156
-
157
- - barrierCmdCKeepAlive "CALV"
158
-
159
- Direction: server -> client
160
- Parameters: None
161
- Description:
162
-
163
- Keep connection alive. Sent by the server periodically to verify
164
- that connections are still up and running. clients must reply in
165
- kind on receipt. if the server gets an error sending the message or
166
- does not receive a reply within a reasonable time then the server
167
- disconnects the client. if the client doesn't receive these (or any
168
- message) periodically then it should disconnect from the server. the
169
- appropriate interval is defined by an option.
170
-
171
- - barrierCmdDKeyDown "DKDN"
172
-
173
- Direction: server -> client
174
- Parameters: { int16_t keyid, int16_t modifier [,int16_t button] }
175
- Description:
176
-
177
- Key pressed.
178
- keyid = X11 key id
179
- modified = modified mask
180
- button = X11 Xkb keycode (optional)
181
-
182
- - barrierCmdDKeyRepeat "DKRP"
183
-
184
- Direction: server -> client
185
- Parameters: { int16_t keyid, int16_t modifier, int16_t repeat [,int16_t button] }
186
- Description:
187
-
188
- Key auto-repeat.
189
- keyid = X11 key id
190
- modified = modified mask
191
- repeat = number of repeats
192
- button = X11 Xkb keycode (optional)
193
-
194
- - barrierCmdDKeyUp "DKUP"
195
-
196
- Direction: server -> client
197
- Parameters: { int16_t keyid, int16_t modifier [,int16_t button] }
198
- Description:
199
-
200
- Key released.
201
- keyid = X11 key id
202
- modified = modified mask
203
- button = X11 Xkb keycode (optional)
204
-
205
- - barrierCmdDMouseDown "DMDN"
206
-
207
- Direction: server -> client
208
- Parameters: { int8_t button }
209
- Description:
210
-
211
- Mouse button pressed.
212
- button = button id
213
-
214
- - barrierCmdDMouseUp "DMUP"
215
-
216
- Direction: server -> client
217
- Parameters: { int8_t button }
218
- Description:
219
-
220
- Mouse button release.
221
- button = button id
222
-
223
- - barrierCmdDMouseMove "DMMV"
224
-
225
- Direction: server -> client
226
- Parameters: { int16_t x, int16_t y }
227
- Description:
228
-
229
- Absolute mouse moved.
230
- x,y = absolute screen coordinates
231
-
232
- - barrierCmdDMouseRelMove "DMRM"
233
-
234
- Direction: server -> client
235
- Parameters: { int16_t x, int16_t y }
236
- Description:
237
-
238
- Relative mouse moved.
239
- x,y = r relative screen coordinates
240
-
241
- - barrierCmdDMouseWheel "DMWM"
242
-
243
- Direction: server -> client
244
- Parameters: { int16_t x , int16_t y } or { int16_t y }
245
- Description:
246
-
247
- Mouse scroll. The delta should be +120 for one tick forward (away
248
- from the user) or right and -120 for one tick backward (toward the
249
- user) or left.
250
- x = x delta
251
- y = y delta
252
-
253
- - barrierCmdDClipboard "DCLP"
254
-
255
- Direction: server -> client
256
- Parameters: { int8_t id, int32_t seq, int8_t mark, char *data }
257
- Description:
258
-
259
- Clipboard data.
260
- id = clipboard id
261
- seq = sequence number. The sequence number is 0 when sent by the
262
- server. Client screens should use the/ sequence number from
263
- the most recent barrierCmdCEnter.
264
-
265
- - barrierCmdDSetOptions "DSOP"
266
-
267
- Direction: server -> client
268
- Parameters: { int32 t nb, { int32_t id, int32_t val }[] }
269
- Description:
270
-
271
- Set options. Client should set the given option/value pairs.
272
- nb = numbers of { id, val } entries
273
- id = option id
274
- val = option new value
275
-
276
- - barrierCmdDFileTransfer "DFTR"
277
-
278
- Direction: server -> client
279
- Parameters: { int8_t mark, char *content }
280
- Description:
281
-
282
- Transfer file data.
283
- mark = 0 means the content followed is the file size
284
- 1 means the content followed is the chunk data
285
- 2 means the file transfer is finished
286
-
287
- - barrierCmdDDragInfo "DDRG" int16_t char *
288
-
289
- Direction: server -> client
290
- Parameters: { int16_t nb, char *content }
291
- Description:
292
-
293
- Drag information.
294
- nb = number of dragging objects
295
- content = object's directory
296
-
297
- - barrierCmdQInfo "QINF"
298
-
299
- Direction: server -> client
300
- Parameters: None
301
- Description:
302
-
303
- Query screen info
304
- Client should reply with a barrierCmdDInfo
305
-
306
- - barrierCmdEIncompatible "EICV"
307
-
308
- Direction: server -> client
309
- Parameters: { int16_t nb, major *minor }
310
- Description:
311
-
312
- Incompatible version.
313
- major = major version
314
- minor = minor version
315
-
316
- - barrierCmdEBusy "EBSY"
317
-
318
- Direction: server -> client
319
- Parameters: None
320
- Description:
321
-
322
- Name provided when connecting is already in use.
323
-
324
- - barrierCmdEUnknown "EUNK"
325
-
326
- Direction: server -> client
327
- Parameters: None
328
- Description:
329
-
330
- Unknown client. Name provided when connecting is not in primary's
331
- screen configuration map.
332
-
333
- - barrierCmdEBad "EBAD"
334
-
335
- Direction: server -> client
336
- Parameters: None
337
- Description:
338
-
339
- Protocol violation. Server should disconnect after sending this
340
- message.
341
-
342
* TO DO
343
344
- Enable SSL
345
diff --git a/docs/interop/barrier.rst b/docs/interop/barrier.rst
346
new file mode 100644
347
index XXXXXXX..XXXXXXX
348
--- /dev/null
349
+++ b/docs/interop/barrier.rst
350
@@ -XXX,XX +XXX,XX @@
351
+Barrier client protocol
352
+=======================
353
+
354
+QEMU's ``input-barrier`` device implements the client end of
355
+the KVM (Keyboard-Video-Mouse) software
356
+`Barrier <https://github.com/debauchee/barrier>`__.
357
+
358
+This document briefly describes the protocol as we implement it.
359
+
360
+Message format
361
+--------------
362
+
363
+Message format between the server and client is in two parts:
364
+
365
+#. the payload length, a 32bit integer in network endianness
366
+#. the payload
367
+
368
+The payload starts with a 4byte string (without NUL) which is the
369
+command. The first command between the server and the client
370
+is the only command not encoded on 4 bytes ("Barrier").
371
+The remaining part of the payload is decoded according to the command.
372
+
373
+Protocol Description
374
+--------------------
375
+
376
+This comes from ``barrier/src/lib/barrier/protocol_types.h``.
377
+
378
+barrierCmdHello "Barrier"
379
+^^^^^^^^^^^^^^^^^^^^^^^^^^
380
+
381
+Direction:
382
+ server -> client
383
+Parameters:
384
+ ``{ int16_t minor, int16_t major }``
385
+Description:
386
+ Say hello to client
387
+
388
+ ``minor`` = protocol major version number supported by server
389
+
390
+ ``major`` = protocol minor version number supported by server
391
+
392
+barrierCmdHelloBack "Barrier"
393
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
394
+
395
+Direction:
396
+ client ->server
397
+Parameters:
398
+ ``{ int16_t minor, int16_t major, char *name}``
399
+Description:
400
+ Respond to hello from server
401
+
402
+ ``minor`` = protocol major version number supported by client
403
+
404
+ ``major`` = protocol minor version number supported by client
405
+
406
+ ``name`` = client name
407
+
408
+barrierCmdDInfo "DINF"
409
+^^^^^^^^^^^^^^^^^^^^^^^
410
+
411
+Direction:
412
+ client ->server
413
+Parameters:
414
+ ``{ int16_t x_origin, int16_t y_origin, int16_t width, int16_t height, int16_t x, int16_t y}``
415
+Description:
416
+ The client screen must send this message in response to the
417
+ barrierCmdQInfo message. It must also send this message when the
418
+ screen's resolution changes. In this case, the client screen should
419
+ ignore any barrierCmdDMouseMove messages until it receives a
420
+ barrierCmdCInfoAck in order to prevent attempts to move the mouse off
421
+ the new screen area.
422
+
423
+barrierCmdCNoop "CNOP"
424
+^^^^^^^^^^^^^^^^^^^^^^^
425
+
426
+Direction:
427
+ client -> server
428
+Parameters:
429
+ None
430
+Description:
431
+ No operation
432
+
433
+barrierCmdCClose "CBYE"
434
+^^^^^^^^^^^^^^^^^^^^^^^
435
+
436
+Direction:
437
+ server -> client
438
+Parameters:
439
+ None
440
+Description:
441
+ Close connection
442
+
443
+barrierCmdCEnter "CINN"
444
+^^^^^^^^^^^^^^^^^^^^^^^
445
+
446
+Direction:
447
+ server -> client
448
+Parameters:
449
+ ``{ int16_t x, int16_t y, int32_t seq, int16_t modifier }``
450
+Description:
451
+ Enter screen.
452
+
453
+ ``x``, ``y`` = entering screen absolute coordinates
454
+
455
+ ``seq`` = sequence number, which is used to order messages between
456
+ screens. the secondary screen must return this number
457
+ with some messages
458
+
459
+ ``modifier`` = modifier key mask. this will have bits set for each
460
+ toggle modifier key that is activated on entry to the
461
+ screen. the secondary screen should adjust its toggle
462
+ modifiers to reflect that state.
463
+
464
+barrierCmdCLeave "COUT"
465
+^^^^^^^^^^^^^^^^^^^^^^^
466
+
467
+Direction:
468
+ server -> client
469
+Parameters:
470
+ None
471
+Description:
472
+ Leaving screen. the secondary screen should send clipboard data in
473
+ response to this message for those clipboards that it has grabbed
474
+ (i.e. has sent a barrierCmdCClipboard for and has not received a
475
+ barrierCmdCClipboard for with a greater sequence number) and that
476
+ were grabbed or have changed since the last leave.
477
+
478
+barrierCmdCClipboard "CCLP"
479
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
480
+
481
+Direction:
482
+ server -> client
483
+Parameters:
484
+ ``{ int8_t id, int32_t seq }``
485
+Description:
486
+ Grab clipboard. Sent by screen when some other app on that screen
487
+ grabs a clipboard.
488
+
489
+ ``id`` = the clipboard identifier
490
+
491
+ ``seq`` = sequence number. Client must use the sequence number passed in
492
+ the most recent barrierCmdCEnter. the server always sends 0.
493
+
494
+barrierCmdCScreenSaver "CSEC"
495
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
496
+
497
+Direction:
498
+ server -> client
499
+Parameters:
500
+ ``{ int8_t started }``
501
+Description:
502
+ Screensaver change.
503
+
504
+ ``started`` = Screensaver on primary has started (1) or closed (0)
505
+
506
+barrierCmdCResetOptions "CROP"
507
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
508
+
509
+Direction:
510
+ server -> client
511
+Parameters:
512
+ None
513
+Description:
514
+ Reset options. Client should reset all of its options to their
515
+ defaults.
516
+
517
+barrierCmdCInfoAck "CIAK"
518
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
519
+
520
+Direction:
521
+ server -> client
522
+Parameters:
523
+ None
524
+Description:
525
+ Resolution change acknowledgment. Sent by server in response to a
526
+ client screen's barrierCmdDInfo. This is sent for every
527
+ barrierCmdDInfo, whether or not the server had sent a barrierCmdQInfo.
528
+
529
+barrierCmdCKeepAlive "CALV"
530
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
531
+
532
+Direction:
533
+ server -> client
534
+Parameters:
535
+ None
536
+Description:
537
+ Keep connection alive. Sent by the server periodically to verify
538
+ that connections are still up and running. clients must reply in
539
+ kind on receipt. if the server gets an error sending the message or
540
+ does not receive a reply within a reasonable time then the server
541
+ disconnects the client. if the client doesn't receive these (or any
542
+ message) periodically then it should disconnect from the server. the
543
+ appropriate interval is defined by an option.
544
+
545
+barrierCmdDKeyDown "DKDN"
546
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
547
+
548
+Direction:
549
+ server -> client
550
+Parameters:
551
+ ``{ int16_t keyid, int16_t modifier [,int16_t button] }``
552
+Description:
553
+ Key pressed.
554
+
555
+ ``keyid`` = X11 key id
556
+
557
+ ``modified`` = modified mask
558
+
559
+ ``button`` = X11 Xkb keycode (optional)
560
+
561
+barrierCmdDKeyRepeat "DKRP"
562
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
563
+
564
+Direction:
565
+ server -> client
566
+Parameters:
567
+ ``{ int16_t keyid, int16_t modifier, int16_t repeat [,int16_t button] }``
568
+Description:
569
+ Key auto-repeat.
570
+
571
+ ``keyid`` = X11 key id
572
+
573
+ ``modified`` = modified mask
574
+
575
+ ``repeat`` = number of repeats
576
+
577
+ ``button`` = X11 Xkb keycode (optional)
578
+
579
+barrierCmdDKeyUp "DKUP"
580
+^^^^^^^^^^^^^^^^^^^^^^^
581
+
582
+Direction:
583
+ server -> client
584
+Parameters:
585
+ ``{ int16_t keyid, int16_t modifier [,int16_t button] }``
586
+Description:
587
+ Key released.
588
+
589
+ ``keyid`` = X11 key id
590
+
591
+ ``modified`` = modified mask
592
+
593
+ ``button`` = X11 Xkb keycode (optional)
594
+
595
+barrierCmdDMouseDown "DMDN"
596
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
597
+
598
+Direction:
599
+ server -> client
600
+Parameters:
601
+ ``{ int8_t button }``
602
+Description:
603
+ Mouse button pressed.
604
+
605
+ ``button`` = button id
606
+
607
+barrierCmdDMouseUp "DMUP"
608
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
609
+
610
+Direction:
611
+ server -> client
612
+Parameters:
613
+ ``{ int8_t button }``
614
+Description:
615
+ Mouse button release.
616
+
617
+ ``button`` = button id
618
+
619
+barrierCmdDMouseMove "DMMV"
620
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
621
+
622
+Direction:
623
+ server -> client
624
+Parameters:
625
+ ``{ int16_t x, int16_t y }``
626
+Description:
627
+ Absolute mouse moved.
628
+
629
+ ``x``, ``y`` = absolute screen coordinates
630
+
631
+barrierCmdDMouseRelMove "DMRM"
632
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
633
+
634
+Direction:
635
+ server -> client
636
+Parameters:
637
+ ``{ int16_t x, int16_t y }``
638
+Description:
639
+ Relative mouse moved.
640
+
641
+ ``x``, ``y`` = r relative screen coordinates
642
+
643
+barrierCmdDMouseWheel "DMWM"
644
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
645
+
646
+Direction:
647
+ server -> client
648
+Parameters:
649
+ ``{ int16_t x , int16_t y }`` or ``{ int16_t y }``
650
+Description:
651
+ Mouse scroll. The delta should be +120 for one tick forward (away
652
+ from the user) or right and -120 for one tick backward (toward the
653
+ user) or left.
654
+
655
+ ``x`` = x delta
656
+
657
+ ``y`` = y delta
658
+
659
+barrierCmdDClipboard "DCLP"
660
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
661
+
662
+Direction:
663
+ server -> client
664
+Parameters:
665
+ ``{ int8_t id, int32_t seq, int8_t mark, char *data }``
666
+Description:
667
+ Clipboard data.
668
+
669
+ ``id`` = clipboard id
670
+
671
+ ``seq`` = sequence number. The sequence number is 0 when sent by the
672
+ server. Client screens should use the/ sequence number from
673
+ the most recent barrierCmdCEnter.
674
+
675
+barrierCmdDSetOptions "DSOP"
676
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
677
+
678
+Direction:
679
+ server -> client
680
+Parameters:
681
+ ``{ int32 t nb, { int32_t id, int32_t val }[] }``
682
+Description:
683
+ Set options. Client should set the given option/value pairs.
684
+
685
+ ``nb`` = numbers of ``{ id, val }`` entries
686
+
687
+ ``id`` = option id
688
+
689
+ ``val`` = option new value
690
+
691
+barrierCmdDFileTransfer "DFTR"
692
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
693
+
694
+Direction:
695
+ server -> client
696
+Parameters:
697
+ ``{ int8_t mark, char *content }``
698
+Description:
699
+ Transfer file data.
700
+
701
+ * ``mark`` = 0 means the content followed is the file size
702
+ * 1 means the content followed is the chunk data
703
+ * 2 means the file transfer is finished
704
+
705
+barrierCmdDDragInfo "DDRG"
706
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
707
+
708
+Direction:
709
+ server -> client
710
+Parameters:
711
+ ``{ int16_t nb, char *content }``
712
+Description:
713
+ Drag information.
714
+
715
+ ``nb`` = number of dragging objects
716
+
717
+ ``content`` = object's directory
718
+
719
+barrierCmdQInfo "QINF"
720
+^^^^^^^^^^^^^^^^^^^^^^^
721
+
722
+Direction:
723
+ server -> client
724
+Parameters:
725
+ None
726
+Description:
727
+ Query screen info
728
+
729
+ Client should reply with a barrierCmdDInfo
730
+
731
+barrierCmdEIncompatible "EICV"
732
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
733
+
734
+Direction:
735
+ server -> client
736
+Parameters:
737
+ ``{ int16_t nb, major *minor }``
738
+Description:
739
+ Incompatible version.
740
+
741
+ ``major`` = major version
742
+
743
+ ``minor`` = minor version
744
+
745
+barrierCmdEBusy "EBSY"
746
+^^^^^^^^^^^^^^^^^^^^^^^
747
+
748
+Direction:
749
+ server -> client
750
+Parameters:
751
+ None
752
+Description:
753
+ Name provided when connecting is already in use.
754
+
755
+barrierCmdEUnknown "EUNK"
756
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
757
+
758
+Direction:
759
+ server -> client
760
+Parameters:
761
+ None
762
+Description:
763
+ Unknown client. Name provided when connecting is not in primary's
764
+ screen configuration map.
765
+
766
+barrierCmdEBad "EBAD"
767
+^^^^^^^^^^^^^^^^^^^^^^^
768
+
769
+Direction:
770
+ server -> client
771
+Parameters:
772
+ None
773
+Description:
774
+ Protocol violation. Server should disconnect after sending this
775
+ message.
776
+
777
diff --git a/docs/interop/index.rst b/docs/interop/index.rst
778
index XXXXXXX..XXXXXXX 100644
779
--- a/docs/interop/index.rst
780
+++ b/docs/interop/index.rst
781
@@ -XXX,XX +XXX,XX @@ are useful for making QEMU interoperate with other software.
782
.. toctree::
783
:maxdepth: 2
784
785
+ barrier
786
bitmaps
787
dbus
788
dbus-vmstate
789
--
790
2.20.1
791
792
diff view generated by jsdifflib
Deleted patch
1
docs/barrier.txt has a couple of TODO notes about things to be
2
implemented in this device; move them into a comment in the
3
source code.
4
1
5
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
6
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
7
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
8
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
9
Message-id: 20210727204112.12579-3-peter.maydell@linaro.org
10
---
11
docs/barrier.txt | 4 ----
12
ui/input-barrier.c | 5 +++++
13
2 files changed, 5 insertions(+), 4 deletions(-)
14
15
diff --git a/docs/barrier.txt b/docs/barrier.txt
16
index XXXXXXX..XXXXXXX 100644
17
--- a/docs/barrier.txt
18
+++ b/docs/barrier.txt
19
@@ -XXX,XX +XXX,XX @@
20
21
(qemu) object_del barrier0
22
(qemu) object_add input-barrier,id=barrier0,name=VM-1
23
-* TO DO
24
-
25
- - Enable SSL
26
- - Manage SetOptions/ResetOptions commands
27
28
diff --git a/ui/input-barrier.c b/ui/input-barrier.c
29
index XXXXXXX..XXXXXXX 100644
30
--- a/ui/input-barrier.c
31
+++ b/ui/input-barrier.c
32
@@ -XXX,XX +XXX,XX @@
33
*
34
* This work is licensed under the terms of the GNU GPL, version 2 or later.
35
* See the COPYING file in the top-level directory.
36
+ *
37
+ * TODO:
38
+ *
39
+ * - Enable SSL
40
+ * - Manage SetOptions/ResetOptions commands
41
*/
42
43
#include "qemu/osdep.h"
44
--
45
2.20.1
46
47
diff view generated by jsdifflib
Deleted patch
1
The remaining text in docs/barrier.txt is user-facing description
2
of what the device is and how to use it. Move this into the
3
system manual and rstify it.
4
1
5
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
6
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
7
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
8
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
9
Message-id: 20210727204112.12579-4-peter.maydell@linaro.org
10
---
11
docs/barrier.txt | 48 -----------------------------------------
12
docs/system/barrier.rst | 44 +++++++++++++++++++++++++++++++++++++
13
docs/system/index.rst | 1 +
14
3 files changed, 45 insertions(+), 48 deletions(-)
15
delete mode 100644 docs/barrier.txt
16
create mode 100644 docs/system/barrier.rst
17
18
diff --git a/docs/barrier.txt b/docs/barrier.txt
19
deleted file mode 100644
20
index XXXXXXX..XXXXXXX
21
--- a/docs/barrier.txt
22
+++ /dev/null
23
@@ -XXX,XX +XXX,XX @@
24
- QEMU Barrier Client
25
-
26
-
27
-* About
28
-
29
- Barrier is a KVM (Keyboard-Video-Mouse) software forked from Symless's
30
- synergy 1.9 codebase.
31
-
32
- See https://github.com/debauchee/barrier
33
-
34
-* QEMU usage
35
-
36
- Generally, mouse and keyboard are grabbed through the QEMU video
37
- interface emulation.
38
-
39
- But when we want to use a video graphic adapter via a PCI passthrough
40
- there is no way to provide the keyboard and mouse inputs to the VM
41
- except by plugging a second set of mouse and keyboard to the host
42
- or by installing a KVM software in the guest OS.
43
-
44
- The QEMU Barrier client avoids this by implementing directly the Barrier
45
- protocol into QEMU.
46
-
47
- This protocol is enabled by adding an input-barrier object to QEMU.
48
-
49
- Syntax: input-barrier,id=<object-id>,name=<guest display name>
50
- [,server=<barrier server address>][,port=<barrier server port>]
51
- [,x-origin=<x-origin>][,y-origin=<y-origin>]
52
- [,width=<width>][,height=<height>]
53
-
54
- The object can be added on the QEMU command line, for instance with:
55
-
56
- ... -object input-barrier,id=barrier0,name=VM-1 ...
57
-
58
- where VM-1 is the name the display configured int the Barrier server
59
- on the host providing the mouse and the keyboard events.
60
-
61
- by default <barrier server address> is "localhost", port is 24800,
62
- <x-origin> and <y-origin> are set to 0, <width> and <height> to
63
- 1920 and 1080.
64
-
65
- If Barrier server is stopped QEMU needs to be reconnected manually,
66
- by removing and re-adding the input-barrier object, for instance
67
- with the help of the HMP monitor:
68
-
69
- (qemu) object_del barrier0
70
- (qemu) object_add input-barrier,id=barrier0,name=VM-1
71
-
72
diff --git a/docs/system/barrier.rst b/docs/system/barrier.rst
73
new file mode 100644
74
index XXXXXXX..XXXXXXX
75
--- /dev/null
76
+++ b/docs/system/barrier.rst
77
@@ -XXX,XX +XXX,XX @@
78
+QEMU Barrier Client
79
+===================
80
+
81
+Generally, mouse and keyboard are grabbed through the QEMU video
82
+interface emulation.
83
+
84
+But when we want to use a video graphic adapter via a PCI passthrough
85
+there is no way to provide the keyboard and mouse inputs to the VM
86
+except by plugging a second set of mouse and keyboard to the host
87
+or by installing a KVM software in the guest OS.
88
+
89
+The QEMU Barrier client avoids this by implementing directly the Barrier
90
+protocol into QEMU.
91
+
92
+`Barrier <https://github.com/debauchee/barrier>`__
93
+is a KVM (Keyboard-Video-Mouse) software forked from Symless's
94
+synergy 1.9 codebase.
95
+
96
+This protocol is enabled by adding an input-barrier object to QEMU.
97
+
98
+Syntax::
99
+
100
+ input-barrier,id=<object-id>,name=<guest display name>
101
+ [,server=<barrier server address>][,port=<barrier server port>]
102
+ [,x-origin=<x-origin>][,y-origin=<y-origin>]
103
+ [,width=<width>][,height=<height>]
104
+
105
+The object can be added on the QEMU command line, for instance with::
106
+
107
+ -object input-barrier,id=barrier0,name=VM-1
108
+
109
+where VM-1 is the name the display configured in the Barrier server
110
+on the host providing the mouse and the keyboard events.
111
+
112
+by default ``<barrier server address>`` is ``localhost``,
113
+``<port>`` is ``24800``, ``<x-origin>`` and ``<y-origin>`` are set to ``0``,
114
+``<width>`` and ``<height>`` to ``1920`` and ``1080``.
115
+
116
+If the Barrier server is stopped QEMU needs to be reconnected manually,
117
+by removing and re-adding the input-barrier object, for instance
118
+with the help of the HMP monitor::
119
+
120
+ (qemu) object_del barrier0
121
+ (qemu) object_add input-barrier,id=barrier0,name=VM-1
122
diff --git a/docs/system/index.rst b/docs/system/index.rst
123
index XXXXXXX..XXXXXXX 100644
124
--- a/docs/system/index.rst
125
+++ b/docs/system/index.rst
126
@@ -XXX,XX +XXX,XX @@ or Hypervisor.Framework.
127
linuxboot
128
generic-loader
129
guest-loader
130
+ barrier
131
vnc-security
132
tls
133
secrets
134
--
135
2.20.1
136
137
diff view generated by jsdifflib