... | ... | ||
---|---|---|---|
37 | - integrated all suggestions from Daniel and Peter (thanks for all your comments) | 37 | - integrated all suggestions from Daniel and Peter (thanks for all your comments) |
38 | - Note: build environment keeps mentioning windows-arm64 because we solved the | 38 | - Note: build environment keeps mentioning windows-arm64 because we solved the |
39 | issue with gcc_struct attribute. The related series will be merged before this | 39 | issue with gcc_struct attribute. The related series will be merged before this |
40 | documentation. | 40 | documentation. |
41 | 41 | ||
42 | v3: | ||
43 | - added a comment about git-publish asked by Daniel. | ||
44 | |||
42 | Pierrick Bouvier (6): | 45 | Pierrick Bouvier (6): |
43 | docs/devel: remove dead video link for sourcehut submit process | 46 | docs/devel: remove dead video link for sourcehut submit process |
44 | docs/devel: add git-publish for patch submitting | 47 | docs/devel: add git-publish for patch submitting |
45 | docs/devel: add b4 for patch retrieval | 48 | docs/devel: add b4 for patch retrieval |
46 | docs/devel: add information on how to setup build environments | 49 | docs/devel: add information on how to setup build environments |
... | ... | ||
58 | docs/devel/index-internals.rst | 2 + | 61 | docs/devel/index-internals.rst | 2 + |
59 | docs/devel/index.rst | 1 + | 62 | docs/devel/index.rst | 1 + |
60 | docs/devel/migration/main.rst | 2 + | 63 | docs/devel/migration/main.rst | 2 + |
61 | docs/devel/multi-thread-tcg.rst | 2 + | 64 | docs/devel/multi-thread-tcg.rst | 2 + |
62 | docs/devel/qapi-code-gen.rst | 1 + | 65 | docs/devel/qapi-code-gen.rst | 1 + |
63 | docs/devel/submitting-a-patch.rst | 34 ++- | 66 | docs/devel/submitting-a-patch.rst | 40 +++- |
64 | docs/devel/testing/main.rst | 9 +- | 67 | docs/devel/testing/main.rst | 9 +- |
65 | docs/devel/testing/qtest.rst | 2 + | 68 | docs/devel/testing/qtest.rst | 2 + |
66 | docs/glossary.rst | 280 +++++++++++++++++++++++++ | 69 | docs/glossary.rst | 280 +++++++++++++++++++++++++ |
67 | docs/index.rst | 3 + | 70 | docs/index.rst | 3 + |
68 | docs/interop/qemu-ga.rst | 2 + | 71 | docs/interop/qemu-ga.rst | 2 + |
69 | docs/system/arm/virt.rst | 2 + | 72 | docs/system/arm/virt.rst | 2 + |
70 | docs/system/images.rst | 2 + | 73 | docs/system/images.rst | 2 + |
71 | docs/system/qemu-block-drivers.rst.inc | 2 + | 74 | docs/system/qemu-block-drivers.rst.inc | 2 + |
72 | docs/tools/qemu-nbd.rst | 2 + | 75 | docs/tools/qemu-nbd.rst | 2 + |
73 | docs/tools/qemu-storage-daemon.rst | 2 + | 76 | docs/tools/qemu-storage-daemon.rst | 2 + |
74 | docs/user/main.rst | 6 + | 77 | docs/user/main.rst | 6 + |
75 | 25 files changed, 697 insertions(+), 6 deletions(-) | 78 | 25 files changed, 703 insertions(+), 6 deletions(-) |
76 | create mode 100644 docs/devel/build-environment.rst | 79 | create mode 100644 docs/devel/build-environment.rst |
77 | create mode 100644 docs/devel/codebase.rst | 80 | create mode 100644 docs/devel/codebase.rst |
78 | create mode 100644 docs/glossary.rst | 81 | create mode 100644 docs/glossary.rst |
79 | 82 | ||
80 | -- | 83 | -- |
81 | 2.39.5 | 84 | 2.39.5 | diff view generated by jsdifflib |
1 | Reviewed-by: Thomas Huth <thuth@redhat.com> | 1 | Reviewed-by: Thomas Huth <thuth@redhat.com> |
---|---|---|---|
2 | Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> | 2 | Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> |
3 | --- | 3 | --- |
4 | docs/devel/submitting-a-patch.rst | 5 +---- | 4 | docs/devel/submitting-a-patch.rst | 5 +---- |
5 | 1 file changed, 1 insertion(+), 4 deletions(-) | 5 | 1 file changed, 1 insertion(+), 4 deletions(-) |
6 | 6 | ||
7 | diff --git a/docs/devel/submitting-a-patch.rst b/docs/devel/submitting-a-patch.rst | 7 | diff --git a/docs/devel/submitting-a-patch.rst b/docs/devel/submitting-a-patch.rst |
8 | index XXXXXXX..XXXXXXX 100644 | 8 | index XXXXXXX..XXXXXXX 100644 |
9 | --- a/docs/devel/submitting-a-patch.rst | 9 | --- a/docs/devel/submitting-a-patch.rst |
10 | +++ b/docs/devel/submitting-a-patch.rst | 10 | +++ b/docs/devel/submitting-a-patch.rst |
11 | @@ -XXX,XX +XXX,XX @@ patches to the QEMU mailing list by following these steps: | 11 | @@ -XXX,XX +XXX,XX @@ patches to the QEMU mailing list by following these steps: |
12 | #. Send your patches to the QEMU mailing list using the web-based | 12 | #. Send your patches to the QEMU mailing list using the web-based |
13 | ``git-send-email`` UI at https://git.sr.ht/~USERNAME/qemu/send-email | 13 | ``git-send-email`` UI at https://git.sr.ht/~USERNAME/qemu/send-email |
14 | 14 | ||
15 | -`This video | 15 | -`This video |
16 | -<https://spacepub.space/videos/watch/ad258d23-0ac6-488c-83fc-2bacf578de3a>`__ | 16 | -<https://spacepub.space/videos/watch/ad258d23-0ac6-488c-83fc-2bacf578de3a>`__ |
17 | -shows the web-based ``git-send-email`` workflow. Documentation is | 17 | -shows the web-based ``git-send-email`` workflow. Documentation is |
18 | -available `here | 18 | -available `here |
19 | +Documentation for sourcehut is available `here | 19 | +Documentation for sourcehut is available `here |
20 | <https://man.sr.ht/git.sr.ht/#sending-patches-upstream>`__. | 20 | <https://man.sr.ht/git.sr.ht/#sending-patches-upstream>`__. |
21 | 21 | ||
22 | .. _cc_the_relevant_maintainer: | 22 | .. _cc_the_relevant_maintainer: |
23 | -- | 23 | -- |
24 | 2.39.5 | 24 | 2.39.5 | diff view generated by jsdifflib |
1 | Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> | 1 | Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> |
---|---|---|---|
2 | --- | 2 | --- |
3 | docs/devel/submitting-a-patch.rst | 19 +++++++++++++++++++ | 3 | docs/devel/submitting-a-patch.rst | 25 +++++++++++++++++++++++++ |
4 | 1 file changed, 19 insertions(+) | 4 | 1 file changed, 25 insertions(+) |
5 | 5 | ||
6 | diff --git a/docs/devel/submitting-a-patch.rst b/docs/devel/submitting-a-patch.rst | 6 | diff --git a/docs/devel/submitting-a-patch.rst b/docs/devel/submitting-a-patch.rst |
7 | index XXXXXXX..XXXXXXX 100644 | 7 | index XXXXXXX..XXXXXXX 100644 |
8 | --- a/docs/devel/submitting-a-patch.rst | 8 | --- a/docs/devel/submitting-a-patch.rst |
9 | +++ b/docs/devel/submitting-a-patch.rst | 9 | +++ b/docs/devel/submitting-a-patch.rst |
... | ... | ||
28 | + $ git publish # will send a v2 | 28 | + $ git publish # will send a v2 |
29 | + | 29 | + |
30 | +Each time you post a series, git-publish will create a local tag with the format | 30 | +Each time you post a series, git-publish will create a local tag with the format |
31 | +``<branchname>-v<version>`` to record the patch series. | 31 | +``<branchname>-v<version>`` to record the patch series. |
32 | + | 32 | + |
33 | +When sending patch emails, 'git publish' will consult the output of | ||
34 | +'scripts/get_maintainers.pl' and automatically CC anyone listed as maintainers | ||
35 | +of the affected code. Generally you should accept the suggested CC list, but | ||
36 | +there may sometimes be scenarios where it is appropriate to cut it down (eg on | ||
37 | +certain large tree-wide cleanups), or augment it with other interested people. | ||
38 | + | ||
33 | .. _if_you_cannot_send_patch_emails: | 39 | .. _if_you_cannot_send_patch_emails: |
34 | 40 | ||
35 | If you cannot send patch emails | 41 | If you cannot send patch emails |
36 | -- | 42 | -- |
37 | 2.39.5 | 43 | 2.39.5 | diff view generated by jsdifflib |
1 | Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> | 1 | Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> |
---|---|---|---|
2 | --- | 2 | --- |
3 | docs/devel/submitting-a-patch.rst | 10 ++++++++++ | 3 | docs/devel/submitting-a-patch.rst | 10 ++++++++++ |
4 | 1 file changed, 10 insertions(+) | 4 | 1 file changed, 10 insertions(+) |
5 | 5 | ||
6 | diff --git a/docs/devel/submitting-a-patch.rst b/docs/devel/submitting-a-patch.rst | 6 | diff --git a/docs/devel/submitting-a-patch.rst b/docs/devel/submitting-a-patch.rst |
7 | index XXXXXXX..XXXXXXX 100644 | 7 | index XXXXXXX..XXXXXXX 100644 |
8 | --- a/docs/devel/submitting-a-patch.rst | 8 | --- a/docs/devel/submitting-a-patch.rst |
9 | +++ b/docs/devel/submitting-a-patch.rst | 9 | +++ b/docs/devel/submitting-a-patch.rst |
10 | @@ -XXX,XX +XXX,XX @@ For more details on how QEMU's stable process works, refer to the | 10 | @@ -XXX,XX +XXX,XX @@ For more details on how QEMU's stable process works, refer to the |
11 | 11 | ||
12 | .. _participating_in_code_review: | 12 | .. _participating_in_code_review: |
13 | 13 | ||
14 | +Retrieve an existing series | 14 | +Retrieve an existing series |
15 | +--------------------------- | 15 | +--------------------------- |
16 | + | 16 | + |
17 | +If you want to apply an existing series on top of your tree, you can simply use | 17 | +If you want to apply an existing series on top of your tree, you can simply use |
18 | +`b4 <https://github.com/mricon/b4>`__. | 18 | +`b4 <https://github.com/mricon/b4>`__. |
19 | + | 19 | + |
20 | +:: | 20 | +:: |
21 | + | 21 | + |
22 | + b4 shazam $msg-id | 22 | + b4 shazam $msg-id |
23 | + | 23 | + |
24 | Participating in Code Review | 24 | Participating in Code Review |
25 | ---------------------------- | 25 | ---------------------------- |
26 | 26 | ||
27 | -- | 27 | -- |
28 | 2.39.5 | 28 | 2.39.5 | diff view generated by jsdifflib |
1 | MacOS and Linux are straightforward, but Windows needs a bit more | 1 | MacOS and Linux are straightforward, but Windows needs a bit more |
---|---|---|---|
2 | details. | 2 | details. |
3 | 3 | ||
4 | Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> | 4 | Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> |
5 | --- | 5 | --- |
6 | docs/about/build-platforms.rst | 4 +- | 6 | docs/about/build-platforms.rst | 4 +- |
7 | docs/devel/build-environment.rst | 118 +++++++++++++++++++++++++++++++ | 7 | docs/devel/build-environment.rst | 118 +++++++++++++++++++++++++++++++ |
8 | docs/devel/index-build.rst | 1 + | 8 | docs/devel/index-build.rst | 1 + |
9 | 3 files changed, 122 insertions(+), 1 deletion(-) | 9 | 3 files changed, 122 insertions(+), 1 deletion(-) |
10 | create mode 100644 docs/devel/build-environment.rst | 10 | create mode 100644 docs/devel/build-environment.rst |
11 | 11 | ||
12 | diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst | 12 | diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst |
13 | index XXXXXXX..XXXXXXX 100644 | 13 | index XXXXXXX..XXXXXXX 100644 |
14 | --- a/docs/about/build-platforms.rst | 14 | --- a/docs/about/build-platforms.rst |
15 | +++ b/docs/about/build-platforms.rst | 15 | +++ b/docs/about/build-platforms.rst |
16 | @@ -XXX,XX +XXX,XX @@ The `Repology`_ site is a useful resource to identify | 16 | @@ -XXX,XX +XXX,XX @@ The `Repology`_ site is a useful resource to identify |
17 | currently shipped versions of software in various operating systems, | 17 | currently shipped versions of software in various operating systems, |
18 | though it does not cover all distros listed below. | 18 | though it does not cover all distros listed below. |
19 | 19 | ||
20 | +You can find how to install build dependencies for different systems on the | 20 | +You can find how to install build dependencies for different systems on the |
21 | +:ref:`setup-build-env` page. | 21 | +:ref:`setup-build-env` page. |
22 | + | 22 | + |
23 | Supported host architectures | 23 | Supported host architectures |
24 | ---------------------------- | 24 | ---------------------------- |
25 | 25 | ||
26 | @@ -XXX,XX +XXX,XX @@ Optional build dependencies | 26 | @@ -XXX,XX +XXX,XX @@ Optional build dependencies |
27 | cross compilation using ``docker`` or ``podman``, or to use pre-built | 27 | cross compilation using ``docker`` or ``podman``, or to use pre-built |
28 | binaries distributed with QEMU. | 28 | binaries distributed with QEMU. |
29 | 29 | ||
30 | - | 30 | - |
31 | Windows | 31 | Windows |
32 | ------- | 32 | ------- |
33 | 33 | ||
34 | diff --git a/docs/devel/build-environment.rst b/docs/devel/build-environment.rst | 34 | diff --git a/docs/devel/build-environment.rst b/docs/devel/build-environment.rst |
35 | new file mode 100644 | 35 | new file mode 100644 |
36 | index XXXXXXX..XXXXXXX | 36 | index XXXXXXX..XXXXXXX |
37 | --- /dev/null | 37 | --- /dev/null |
38 | +++ b/docs/devel/build-environment.rst | 38 | +++ b/docs/devel/build-environment.rst |
39 | @@ -XXX,XX +XXX,XX @@ | 39 | @@ -XXX,XX +XXX,XX @@ |
40 | + | 40 | + |
41 | +.. _setup-build-env: | 41 | +.. _setup-build-env: |
42 | + | 42 | + |
43 | +Setup build environment | 43 | +Setup build environment |
44 | +======================= | 44 | +======================= |
45 | + | 45 | + |
46 | +QEMU uses a lot of dependencies on the host system. glib2 is used everywhere in | 46 | +QEMU uses a lot of dependencies on the host system. glib2 is used everywhere in |
47 | +the code base, and most of the other dependencies are optional. | 47 | +the code base, and most of the other dependencies are optional. |
48 | + | 48 | + |
49 | +We present here simple instructions to enable native builds on most popular | 49 | +We present here simple instructions to enable native builds on most popular |
50 | +systems. | 50 | +systems. |
51 | + | 51 | + |
52 | +You can find additional instructions on `QEMU wiki <https://wiki.qemu.org/>`_: | 52 | +You can find additional instructions on `QEMU wiki <https://wiki.qemu.org/>`_: |
53 | + | 53 | + |
54 | +- `Linux <https://wiki.qemu.org/Hosts/Linux>`_ | 54 | +- `Linux <https://wiki.qemu.org/Hosts/Linux>`_ |
55 | +- `MacOS <https://wiki.qemu.org/Hosts/Mac>`_ | 55 | +- `MacOS <https://wiki.qemu.org/Hosts/Mac>`_ |
56 | +- `Windows <https://wiki.qemu.org/Hosts/W32>`_ | 56 | +- `Windows <https://wiki.qemu.org/Hosts/W32>`_ |
57 | +- `BSD <https://wiki.qemu.org/Hosts/BSD>`_ | 57 | +- `BSD <https://wiki.qemu.org/Hosts/BSD>`_ |
58 | + | 58 | + |
59 | +Note: Installing dependencies using your package manager build dependencies may | 59 | +Note: Installing dependencies using your package manager build dependencies may |
60 | +miss out on deps that have been newly introduced in qemu.git. In more, it misses | 60 | +miss out on deps that have been newly introduced in qemu.git. In more, it misses |
61 | +deps the distribution has decided to exclude. | 61 | +deps the distribution has decided to exclude. |
62 | + | 62 | + |
63 | +Linux | 63 | +Linux |
64 | +----- | 64 | +----- |
65 | + | 65 | + |
66 | +Fedora | 66 | +Fedora |
67 | +++++++ | 67 | +++++++ |
68 | + | 68 | + |
69 | +:: | 69 | +:: |
70 | + | 70 | + |
71 | + sudo dnf update && sudo dnf builddep qemu | 71 | + sudo dnf update && sudo dnf builddep qemu |
72 | + | 72 | + |
73 | +Debian/Ubuntu | 73 | +Debian/Ubuntu |
74 | ++++++++++++++ | 74 | ++++++++++++++ |
75 | + | 75 | + |
76 | +You first need to enable `Sources List <https://wiki.debian.org/SourcesList>`_. | 76 | +You first need to enable `Sources List <https://wiki.debian.org/SourcesList>`_. |
77 | +Then, use apt to install dependencies: | 77 | +Then, use apt to install dependencies: |
78 | + | 78 | + |
79 | +:: | 79 | +:: |
80 | + | 80 | + |
81 | + sudo apt update && sudo apt build-dep qemu | 81 | + sudo apt update && sudo apt build-dep qemu |
82 | + | 82 | + |
83 | +MacOS | 83 | +MacOS |
84 | +----- | 84 | +----- |
85 | + | 85 | + |
86 | +You first need to install `Homebrew <https://brew.sh/>`_. Then, use it to | 86 | +You first need to install `Homebrew <https://brew.sh/>`_. Then, use it to |
87 | +install dependencies: | 87 | +install dependencies: |
88 | + | 88 | + |
89 | +:: | 89 | +:: |
90 | + | 90 | + |
91 | + brew update && brew install $(brew deps --include-build qemu) | 91 | + brew update && brew install $(brew deps --include-build qemu) |
92 | + | 92 | + |
93 | +Windows | 93 | +Windows |
94 | +------- | 94 | +------- |
95 | + | 95 | + |
96 | +You first need to install `MSYS2 <https://www.msys2.org/>`_. | 96 | +You first need to install `MSYS2 <https://www.msys2.org/>`_. |
97 | +MSYS2 offers `different environments <https://www.msys2.org/docs/environments/>`_. | 97 | +MSYS2 offers `different environments <https://www.msys2.org/docs/environments/>`_. |
98 | +x86_64 environments are based on GCC, while aarch64 is based on Clang. | 98 | +x86_64 environments are based on GCC, while aarch64 is based on Clang. |
99 | + | 99 | + |
100 | +We recommend to use MINGW64 for windows-x86_64 and CLANGARM64 for windows-aarch64 | 100 | +We recommend to use MINGW64 for windows-x86_64 and CLANGARM64 for windows-aarch64 |
101 | +(only available on windows-aarch64 hosts). | 101 | +(only available on windows-aarch64 hosts). |
102 | + | 102 | + |
103 | +Then, you can open a windows shell, and enter msys2 env using: | 103 | +Then, you can open a windows shell, and enter msys2 env using: |
104 | + | 104 | + |
105 | +:: | 105 | +:: |
106 | + | 106 | + |
107 | + c:/msys64/msys2_shell.cmd -defterm -here -no-start -mingw64 | 107 | + c:/msys64/msys2_shell.cmd -defterm -here -no-start -mingw64 |
108 | + # Replace -ucrt64 by -clangarm64 or -ucrt64 for other environments. | 108 | + # Replace -ucrt64 by -clangarm64 or -ucrt64 for other environments. |
109 | + | 109 | + |
110 | +MSYS2 package manager does not offer a built-in way to install build | 110 | +MSYS2 package manager does not offer a built-in way to install build |
111 | +dependencies. You can start with this list of packages using pacman: | 111 | +dependencies. You can start with this list of packages using pacman: |
112 | + | 112 | + |
113 | +Note: Dependencies need to be installed again if you use a different MSYS2 | 113 | +Note: Dependencies need to be installed again if you use a different MSYS2 |
114 | +environment. | 114 | +environment. |
115 | + | 115 | + |
116 | +:: | 116 | +:: |
117 | + | 117 | + |
118 | + # update MSYS2 itself, you need to reopen your shell at the end. | 118 | + # update MSYS2 itself, you need to reopen your shell at the end. |
119 | + pacman -Syu | 119 | + pacman -Syu |
120 | + pacman -S \ | 120 | + pacman -S \ |
121 | + base-devel binutils bison diffutils flex git grep make sed \ | 121 | + base-devel binutils bison diffutils flex git grep make sed \ |
122 | + ${MINGW_PACKAGE_PREFIX}-toolchain \ | 122 | + ${MINGW_PACKAGE_PREFIX}-toolchain \ |
123 | + ${MINGW_PACKAGE_PREFIX}-glib2 \ | 123 | + ${MINGW_PACKAGE_PREFIX}-glib2 \ |
124 | + ${MINGW_PACKAGE_PREFIX}-gtk3 \ | 124 | + ${MINGW_PACKAGE_PREFIX}-gtk3 \ |
125 | + ${MINGW_PACKAGE_PREFIX}-libnfs \ | 125 | + ${MINGW_PACKAGE_PREFIX}-libnfs \ |
126 | + ${MINGW_PACKAGE_PREFIX}-libssh \ | 126 | + ${MINGW_PACKAGE_PREFIX}-libssh \ |
127 | + ${MINGW_PACKAGE_PREFIX}-ninja \ | 127 | + ${MINGW_PACKAGE_PREFIX}-ninja \ |
128 | + ${MINGW_PACKAGE_PREFIX}-pixman \ | 128 | + ${MINGW_PACKAGE_PREFIX}-pixman \ |
129 | + ${MINGW_PACKAGE_PREFIX}-pkgconf \ | 129 | + ${MINGW_PACKAGE_PREFIX}-pkgconf \ |
130 | + ${MINGW_PACKAGE_PREFIX}-python \ | 130 | + ${MINGW_PACKAGE_PREFIX}-python \ |
131 | + ${MINGW_PACKAGE_PREFIX}-SDL2 \ | 131 | + ${MINGW_PACKAGE_PREFIX}-SDL2 \ |
132 | + ${MINGW_PACKAGE_PREFIX}-zstd | 132 | + ${MINGW_PACKAGE_PREFIX}-zstd |
133 | + | 133 | + |
134 | +If you want to install all dependencies, it's possible to use recipe used to | 134 | +If you want to install all dependencies, it's possible to use recipe used to |
135 | +build QEMU in MSYS2 itself. | 135 | +build QEMU in MSYS2 itself. |
136 | + | 136 | + |
137 | +:: | 137 | +:: |
138 | + | 138 | + |
139 | + pacman -S wget | 139 | + pacman -S wget |
140 | + wget https://raw.githubusercontent.com/msys2/MINGW-packages/refs/heads/master/mingw-w64-qemu/PKGBUILD | 140 | + wget https://raw.githubusercontent.com/msys2/MINGW-packages/refs/heads/master/mingw-w64-qemu/PKGBUILD |
141 | + # Some packages may be missing for your environment, installation will still | 141 | + # Some packages may be missing for your environment, installation will still |
142 | + # be done though. | 142 | + # be done though. |
143 | + makepkg -s PKGBUILD || true | 143 | + makepkg -s PKGBUILD || true |
144 | + | 144 | + |
145 | +Build on windows-aarch64 | 145 | +Build on windows-aarch64 |
146 | +++++++++++++++++++++++++ | 146 | +++++++++++++++++++++++++ |
147 | + | 147 | + |
148 | +When trying to cross compile meson for x86_64 using UCRT64 or MINGW64 env, | 148 | +When trying to cross compile meson for x86_64 using UCRT64 or MINGW64 env, |
149 | +configure will run into an error because the cpu detected is not correct. | 149 | +configure will run into an error because the cpu detected is not correct. |
150 | + | 150 | + |
151 | +Meson detects x86_64 processes emulated, so you need to manually set the cpu, | 151 | +Meson detects x86_64 processes emulated, so you need to manually set the cpu, |
152 | +and force a cross compilation (with empty prefix). | 152 | +and force a cross compilation (with empty prefix). |
153 | + | 153 | + |
154 | +:: | 154 | +:: |
155 | + | 155 | + |
156 | + ./configure --cpu=x86_64 --cross-prefix= | 156 | + ./configure --cpu=x86_64 --cross-prefix= |
157 | + | 157 | + |
158 | diff --git a/docs/devel/index-build.rst b/docs/devel/index-build.rst | 158 | diff --git a/docs/devel/index-build.rst b/docs/devel/index-build.rst |
159 | index XXXXXXX..XXXXXXX 100644 | 159 | index XXXXXXX..XXXXXXX 100644 |
160 | --- a/docs/devel/index-build.rst | 160 | --- a/docs/devel/index-build.rst |
161 | +++ b/docs/devel/index-build.rst | 161 | +++ b/docs/devel/index-build.rst |
162 | @@ -XXX,XX +XXX,XX @@ some of the basics if you are adding new files and targets to the build. | 162 | @@ -XXX,XX +XXX,XX @@ some of the basics if you are adding new files and targets to the build. |
163 | :maxdepth: 3 | 163 | :maxdepth: 3 |
164 | 164 | ||
165 | build-system | 165 | build-system |
166 | + build-environment | 166 | + build-environment |
167 | kconfig | 167 | kconfig |
168 | docs | 168 | docs |
169 | qapi-code-gen | 169 | qapi-code-gen |
170 | -- | 170 | -- |
171 | 2.39.5 | 171 | 2.39.5 | diff view generated by jsdifflib |
1 | Present the various parts of QEMU and organization of codebase. | 1 | Present the various parts of QEMU and organization of codebase. |
---|---|---|---|
2 | 2 | ||
3 | Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> | 3 | Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> |
4 | --- | 4 | --- |
5 | docs/about/emulation.rst | 2 + | 5 | docs/about/emulation.rst | 2 + |
6 | docs/devel/codebase.rst | 218 +++++++++++++++++++++++++ | 6 | docs/devel/codebase.rst | 218 +++++++++++++++++++++++++ |
7 | docs/devel/decodetree.rst | 2 + | 7 | docs/devel/decodetree.rst | 2 + |
8 | docs/devel/ebpf_rss.rst | 2 + | 8 | docs/devel/ebpf_rss.rst | 2 + |
9 | docs/devel/index-internals.rst | 2 + | 9 | docs/devel/index-internals.rst | 2 + |
10 | docs/devel/index.rst | 1 + | 10 | docs/devel/index.rst | 1 + |
11 | docs/devel/migration/main.rst | 2 + | 11 | docs/devel/migration/main.rst | 2 + |
12 | docs/devel/qapi-code-gen.rst | 1 + | 12 | docs/devel/qapi-code-gen.rst | 1 + |
13 | docs/devel/testing/main.rst | 9 +- | 13 | docs/devel/testing/main.rst | 9 +- |
14 | docs/devel/testing/qtest.rst | 2 + | 14 | docs/devel/testing/qtest.rst | 2 + |
15 | docs/index.rst | 2 + | 15 | docs/index.rst | 2 + |
16 | docs/interop/qemu-ga.rst | 2 + | 16 | docs/interop/qemu-ga.rst | 2 + |
17 | docs/system/qemu-block-drivers.rst.inc | 2 + | 17 | docs/system/qemu-block-drivers.rst.inc | 2 + |
18 | docs/tools/qemu-storage-daemon.rst | 2 + | 18 | docs/tools/qemu-storage-daemon.rst | 2 + |
19 | docs/user/main.rst | 6 + | 19 | docs/user/main.rst | 6 + |
20 | 15 files changed, 254 insertions(+), 1 deletion(-) | 20 | 15 files changed, 254 insertions(+), 1 deletion(-) |
21 | create mode 100644 docs/devel/codebase.rst | 21 | create mode 100644 docs/devel/codebase.rst |
22 | 22 | ||
23 | diff --git a/docs/about/emulation.rst b/docs/about/emulation.rst | 23 | diff --git a/docs/about/emulation.rst b/docs/about/emulation.rst |
24 | index XXXXXXX..XXXXXXX 100644 | 24 | index XXXXXXX..XXXXXXX 100644 |
25 | --- a/docs/about/emulation.rst | 25 | --- a/docs/about/emulation.rst |
26 | +++ b/docs/about/emulation.rst | 26 | +++ b/docs/about/emulation.rst |
27 | @@ -XXX,XX +XXX,XX @@ for that architecture. | 27 | @@ -XXX,XX +XXX,XX @@ for that architecture. |
28 | - System | 28 | - System |
29 | - Tensilica ISS SIMCALL | 29 | - Tensilica ISS SIMCALL |
30 | 30 | ||
31 | +.. _tcg-plugins: | 31 | +.. _tcg-plugins: |
32 | + | 32 | + |
33 | TCG Plugins | 33 | TCG Plugins |
34 | ----------- | 34 | ----------- |
35 | 35 | ||
36 | diff --git a/docs/devel/codebase.rst b/docs/devel/codebase.rst | 36 | diff --git a/docs/devel/codebase.rst b/docs/devel/codebase.rst |
37 | new file mode 100644 | 37 | new file mode 100644 |
38 | index XXXXXXX..XXXXXXX | 38 | index XXXXXXX..XXXXXXX |
39 | --- /dev/null | 39 | --- /dev/null |
40 | +++ b/docs/devel/codebase.rst | 40 | +++ b/docs/devel/codebase.rst |
41 | @@ -XXX,XX +XXX,XX @@ | 41 | @@ -XXX,XX +XXX,XX @@ |
42 | +======== | 42 | +======== |
43 | +Codebase | 43 | +Codebase |
44 | +======== | 44 | +======== |
45 | + | 45 | + |
46 | +This section presents the various parts of QEMU and how the codebase is | 46 | +This section presents the various parts of QEMU and how the codebase is |
47 | +organized. | 47 | +organized. |
48 | + | 48 | + |
49 | +Beyond giving succint descriptions, the goal is to offer links to various | 49 | +Beyond giving succint descriptions, the goal is to offer links to various |
50 | +parts of the documentation/codebase. | 50 | +parts of the documentation/codebase. |
51 | + | 51 | + |
52 | +Subsystems | 52 | +Subsystems |
53 | +---------- | 53 | +---------- |
54 | + | 54 | + |
55 | +An exhaustive list of subsystems and associated files can be found in the | 55 | +An exhaustive list of subsystems and associated files can be found in the |
56 | +`MAINTAINERS <https://gitlab.com/qemu-project/qemu/-/blob/master/MAINTAINERS>`_ | 56 | +`MAINTAINERS <https://gitlab.com/qemu-project/qemu/-/blob/master/MAINTAINERS>`_ |
57 | +file. | 57 | +file. |
58 | + | 58 | + |
59 | +Some of the main QEMU subsystems are: | 59 | +Some of the main QEMU subsystems are: |
60 | + | 60 | + |
61 | +- `Accelerators<Accelerators>` | 61 | +- `Accelerators<Accelerators>` |
62 | +- Block devices and `disk images<disk images>` support | 62 | +- Block devices and `disk images<disk images>` support |
63 | +- `CI<ci>` and `Tests<testing>` | 63 | +- `CI<ci>` and `Tests<testing>` |
64 | +- `Devices<device-emulation>` & Board models | 64 | +- `Devices<device-emulation>` & Board models |
65 | +- `Documentation <documentation-root>` | 65 | +- `Documentation <documentation-root>` |
66 | +- `GDB support<GDB usage>` | 66 | +- `GDB support<GDB usage>` |
67 | +- `Migration<migration>` | 67 | +- `Migration<migration>` |
68 | +- `Monitor<QEMU monitor>` | 68 | +- `Monitor<QEMU monitor>` |
69 | +- :ref:`QOM (QEMU Object Model)<qom>` | 69 | +- :ref:`QOM (QEMU Object Model)<qom>` |
70 | +- `System mode<System emulation>` | 70 | +- `System mode<System emulation>` |
71 | +- :ref:`TCG (Tiny Code Generator)<tcg>` | 71 | +- :ref:`TCG (Tiny Code Generator)<tcg>` |
72 | +- `User mode<user-mode>` (`Linux<linux-user-mode>` & `BSD<bsd-user-mode>`) | 72 | +- `User mode<user-mode>` (`Linux<linux-user-mode>` & `BSD<bsd-user-mode>`) |
73 | +- User Interfaces | 73 | +- User Interfaces |
74 | + | 74 | + |
75 | +More documentation on QEMU subsystems can be found on :ref:`internal-subsystem` | 75 | +More documentation on QEMU subsystems can be found on :ref:`internal-subsystem` |
76 | +page. | 76 | +page. |
77 | + | 77 | + |
78 | +The Grand tour | 78 | +The Grand tour |
79 | +-------------- | 79 | +-------------- |
80 | + | 80 | + |
81 | +We present briefly here what every folder of the codebase contains. Hop on! | 81 | +We present briefly here what every folder of the codebase contains. Hop on! |
82 | + | 82 | + |
83 | +The folder name links here will take you to that folder in our gitlab | 83 | +The folder name links here will take you to that folder in our gitlab |
84 | +repository. Other links will take you to more detailed documentation for that | 84 | +repository. Other links will take you to more detailed documentation for that |
85 | +subsystem, where we have it. Unfortunately not every subsystem has documentation | 85 | +subsystem, where we have it. Unfortunately not every subsystem has documentation |
86 | +yet, so sometimes the source code is all you have. | 86 | +yet, so sometimes the source code is all you have. |
87 | + | 87 | + |
88 | +* `accel <https://gitlab.com/qemu-project/qemu/-/tree/master/accel>`_: | 88 | +* `accel <https://gitlab.com/qemu-project/qemu/-/tree/master/accel>`_: |
89 | + Infrastructure and architecture agnostic code related to the various | 89 | + Infrastructure and architecture agnostic code related to the various |
90 | + `accelerators <Accelerators>` supported by QEMU | 90 | + `accelerators <Accelerators>` supported by QEMU |
91 | + (TCG, KVM, hvf, whpx, xen, nvmm). | 91 | + (TCG, KVM, hvf, whpx, xen, nvmm). |
92 | + Contains interfaces for operations that will be implemented per | 92 | + Contains interfaces for operations that will be implemented per |
93 | + `target <https://gitlab.com/qemu-project/qemu/-/tree/master/target>`_. | 93 | + `target <https://gitlab.com/qemu-project/qemu/-/tree/master/target>`_. |
94 | +* `audio <https://gitlab.com/qemu-project/qemu/-/tree/master/audio>`_: | 94 | +* `audio <https://gitlab.com/qemu-project/qemu/-/tree/master/audio>`_: |
95 | + Audio (host) support. | 95 | + Audio (host) support. |
96 | +* `authz <https://gitlab.com/qemu-project/qemu/-/tree/master/authz>`_: | 96 | +* `authz <https://gitlab.com/qemu-project/qemu/-/tree/master/authz>`_: |
97 | + `QEMU Authorization framework<client authorization>`. | 97 | + `QEMU Authorization framework<client authorization>`. |
98 | +* `backends <https://gitlab.com/qemu-project/qemu/-/tree/master/backends>`_: | 98 | +* `backends <https://gitlab.com/qemu-project/qemu/-/tree/master/backends>`_: |
99 | + Various backends used for device emulation. | 99 | + Various backends used for device emulation. |
100 | +* `block <https://gitlab.com/qemu-project/qemu/-/tree/master/block>`_: | 100 | +* `block <https://gitlab.com/qemu-project/qemu/-/tree/master/block>`_: |
101 | + Block devices and `image formats<disk images>` implementation. | 101 | + Block devices and `image formats<disk images>` implementation. |
102 | +* `bsd-user <https://gitlab.com/qemu-project/qemu/-/tree/master/bsd-user>`_: | 102 | +* `bsd-user <https://gitlab.com/qemu-project/qemu/-/tree/master/bsd-user>`_: |
103 | + `BSD User mode<bsd-user-mode>`. | 103 | + `BSD User mode<bsd-user-mode>`. |
104 | +* build: Where the code built goes by default. You can tell the QEMU build | 104 | +* build: Where the code built goes by default. You can tell the QEMU build |
105 | + system to put the built code anywhere else you like. | 105 | + system to put the built code anywhere else you like. |
106 | +* `chardev <https://gitlab.com/qemu-project/qemu/-/tree/master/chardev>`_: | 106 | +* `chardev <https://gitlab.com/qemu-project/qemu/-/tree/master/chardev>`_: |
107 | + Various backends used by char devices. | 107 | + Various backends used by char devices. |
108 | +* `common-user <https://gitlab.com/qemu-project/qemu/-/tree/master/common-user>`_: | 108 | +* `common-user <https://gitlab.com/qemu-project/qemu/-/tree/master/common-user>`_: |
109 | + User-mode assembly code for dealing with signals occuring during syscalls. | 109 | + User-mode assembly code for dealing with signals occuring during syscalls. |
110 | +* `configs <https://gitlab.com/qemu-project/qemu/-/tree/master/configs>`_: | 110 | +* `configs <https://gitlab.com/qemu-project/qemu/-/tree/master/configs>`_: |
111 | + Makefiles defining configurations to build QEMU. | 111 | + Makefiles defining configurations to build QEMU. |
112 | +* `contrib <https://gitlab.com/qemu-project/qemu/-/tree/master/contrib>`_: | 112 | +* `contrib <https://gitlab.com/qemu-project/qemu/-/tree/master/contrib>`_: |
113 | + Community contributed devices/plugins/tools. | 113 | + Community contributed devices/plugins/tools. |
114 | +* `crypto <https://gitlab.com/qemu-project/qemu/-/tree/master/crypto>`_: | 114 | +* `crypto <https://gitlab.com/qemu-project/qemu/-/tree/master/crypto>`_: |
115 | + Cryptographic algorithms used in QEMU. | 115 | + Cryptographic algorithms used in QEMU. |
116 | +* `disas <https://gitlab.com/qemu-project/qemu/-/tree/master/disas>`_: | 116 | +* `disas <https://gitlab.com/qemu-project/qemu/-/tree/master/disas>`_: |
117 | + Disassembly functions used by QEMU target code. | 117 | + Disassembly functions used by QEMU target code. |
118 | +* `docs <https://gitlab.com/qemu-project/qemu/-/tree/master/docs>`_: | 118 | +* `docs <https://gitlab.com/qemu-project/qemu/-/tree/master/docs>`_: |
119 | + QEMU Documentation. | 119 | + QEMU Documentation. |
120 | +* `dump <https://gitlab.com/qemu-project/qemu/-/tree/master/dump>`_: | 120 | +* `dump <https://gitlab.com/qemu-project/qemu/-/tree/master/dump>`_: |
121 | + Code to dump memory of a running VM. | 121 | + Code to dump memory of a running VM. |
122 | +* `ebpf <https://gitlab.com/qemu-project/qemu/-/tree/master/ebpf>`_: | 122 | +* `ebpf <https://gitlab.com/qemu-project/qemu/-/tree/master/ebpf>`_: |
123 | + eBPF program support in QEMU. `virtio-net RSS<ebpf-rss>` uses it. | 123 | + eBPF program support in QEMU. `virtio-net RSS<ebpf-rss>` uses it. |
124 | +* `fpu <https://gitlab.com/qemu-project/qemu/-/tree/master/fpu>`_: | 124 | +* `fpu <https://gitlab.com/qemu-project/qemu/-/tree/master/fpu>`_: |
125 | + Floating-point software emulation. | 125 | + Floating-point software emulation. |
126 | +* `fsdev <https://gitlab.com/qemu-project/qemu/-/tree/master/fsdev>`_: | 126 | +* `fsdev <https://gitlab.com/qemu-project/qemu/-/tree/master/fsdev>`_: |
127 | + `VirtFS <https://www.linux-kvm.org/page/VirtFS>`_ support. | 127 | + `VirtFS <https://www.linux-kvm.org/page/VirtFS>`_ support. |
128 | +* `gdbstub <https://gitlab.com/qemu-project/qemu/-/tree/master/gdbstub>`_: | 128 | +* `gdbstub <https://gitlab.com/qemu-project/qemu/-/tree/master/gdbstub>`_: |
129 | + `GDB <GDB usage>` support. | 129 | + `GDB <GDB usage>` support. |
130 | +* `gdb-xml <https://gitlab.com/qemu-project/qemu/-/tree/master/gdb-xml>`_: | 130 | +* `gdb-xml <https://gitlab.com/qemu-project/qemu/-/tree/master/gdb-xml>`_: |
131 | + Set of XML files describing architectures and used by `gdbstub <GDB usage>`. | 131 | + Set of XML files describing architectures and used by `gdbstub <GDB usage>`. |
132 | +* `host <https://gitlab.com/qemu-project/qemu/-/tree/master/host>`_: | 132 | +* `host <https://gitlab.com/qemu-project/qemu/-/tree/master/host>`_: |
133 | + Various architecture specific header files (crypto, atomic, memory | 133 | + Various architecture specific header files (crypto, atomic, memory |
134 | + operations). | 134 | + operations). |
135 | +* `linux-headers <https://gitlab.com/qemu-project/qemu/-/tree/master/linux-headers>`_: | 135 | +* `linux-headers <https://gitlab.com/qemu-project/qemu/-/tree/master/linux-headers>`_: |
136 | + A subset of headers imported from Linux kernel and used for implementing | 136 | + A subset of headers imported from Linux kernel and used for implementing |
137 | + KVM support and user-mode. | 137 | + KVM support and user-mode. |
138 | +* `linux-user <https://gitlab.com/qemu-project/qemu/-/tree/master/linux-user>`_: | 138 | +* `linux-user <https://gitlab.com/qemu-project/qemu/-/tree/master/linux-user>`_: |
139 | + `User mode <user-mode>` implementation. Contains one folder per target | 139 | + `User mode <user-mode>` implementation. Contains one folder per target |
140 | + architecture. | 140 | + architecture. |
141 | +* `.gitlab-ci.d <https://gitlab.com/qemu-project/qemu/-/tree/master/.gitlab-ci.d>`_: | 141 | +* `.gitlab-ci.d <https://gitlab.com/qemu-project/qemu/-/tree/master/.gitlab-ci.d>`_: |
142 | + `CI <ci>` yaml and scripts. | 142 | + `CI <ci>` yaml and scripts. |
143 | +* `include <https://gitlab.com/qemu-project/qemu/-/tree/master/include>`_: | 143 | +* `include <https://gitlab.com/qemu-project/qemu/-/tree/master/include>`_: |
144 | + All headers associated to different subsystems in QEMU. The hierachy used | 144 | + All headers associated to different subsystems in QEMU. The hierachy used |
145 | + mirrors source code organization and naming. | 145 | + mirrors source code organization and naming. |
146 | +* `hw <https://gitlab.com/qemu-project/qemu/-/tree/master/hw>`_: | 146 | +* `hw <https://gitlab.com/qemu-project/qemu/-/tree/master/hw>`_: |
147 | + `Devices <device-emulation>` and boards emulation. Devices are categorized by | 147 | + `Devices <device-emulation>` and boards emulation. Devices are categorized by |
148 | + type/protocol/architecture and located in associated subfolder. | 148 | + type/protocol/architecture and located in associated subfolder. |
149 | +* `io <https://gitlab.com/qemu-project/qemu/-/tree/master/io>`_: | 149 | +* `io <https://gitlab.com/qemu-project/qemu/-/tree/master/io>`_: |
150 | + QEMU `I/O channels <https://lists.gnu.org/archive/html/qemu-devel/2015-11/msg04208.html>`_. | 150 | + QEMU `I/O channels <https://lists.gnu.org/archive/html/qemu-devel/2015-11/msg04208.html>`_. |
151 | +* `libdecnumber <https://gitlab.com/qemu-project/qemu/-/tree/master/libdecnumber>`_: | 151 | +* `libdecnumber <https://gitlab.com/qemu-project/qemu/-/tree/master/libdecnumber>`_: |
152 | + Import of gcc library, used to implement decimal number arithmetic. | 152 | + Import of gcc library, used to implement decimal number arithmetic. |
153 | +* `migration <https://gitlab.com/qemu-project/qemu/-/tree/master/migration>`__: | 153 | +* `migration <https://gitlab.com/qemu-project/qemu/-/tree/master/migration>`__: |
154 | + `Migration framework <migration>`. | 154 | + `Migration framework <migration>`. |
155 | +* `monitor <https://gitlab.com/qemu-project/qemu/-/tree/master/monitor>`_: | 155 | +* `monitor <https://gitlab.com/qemu-project/qemu/-/tree/master/monitor>`_: |
156 | + `Monitor <QEMU monitor>` implementation (HMP & QMP). | 156 | + `Monitor <QEMU monitor>` implementation (HMP & QMP). |
157 | +* `nbd <https://gitlab.com/qemu-project/qemu/-/tree/master/nbd>`_: | 157 | +* `nbd <https://gitlab.com/qemu-project/qemu/-/tree/master/nbd>`_: |
158 | + QEMU `NBD (Network Block Device) <nbd>` server. | 158 | + QEMU `NBD (Network Block Device) <nbd>` server. |
159 | +* `net <https://gitlab.com/qemu-project/qemu/-/tree/master/net>`_: | 159 | +* `net <https://gitlab.com/qemu-project/qemu/-/tree/master/net>`_: |
160 | + Network (host) support. | 160 | + Network (host) support. |
161 | +* `pc-bios <https://gitlab.com/qemu-project/qemu/-/tree/master/pc-bios>`_: | 161 | +* `pc-bios <https://gitlab.com/qemu-project/qemu/-/tree/master/pc-bios>`_: |
162 | + Contains pre-built firmware binaries and boot images, ready to use in | 162 | + Contains pre-built firmware binaries and boot images, ready to use in |
163 | + QEMU without compilation. | 163 | + QEMU without compilation. |
164 | +* `plugins <https://gitlab.com/qemu-project/qemu/-/tree/master/plugins>`_: | 164 | +* `plugins <https://gitlab.com/qemu-project/qemu/-/tree/master/plugins>`_: |
165 | + :ref:`TCG plugins <tcg-plugins>` core implementation. Plugins can be found in | 165 | + :ref:`TCG plugins <tcg-plugins>` core implementation. Plugins can be found in |
166 | + `tests <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/tcg/plugins>`__ | 166 | + `tests <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/tcg/plugins>`__ |
167 | + and `contrib <https://gitlab.com/qemu-project/qemu/-/tree/master/contrib/plugins>`__ | 167 | + and `contrib <https://gitlab.com/qemu-project/qemu/-/tree/master/contrib/plugins>`__ |
168 | + folders. | 168 | + folders. |
169 | +* `po <https://gitlab.com/qemu-project/qemu/-/tree/master/po>`_: | 169 | +* `po <https://gitlab.com/qemu-project/qemu/-/tree/master/po>`_: |
170 | + Translation files. | 170 | + Translation files. |
171 | +* `python <https://gitlab.com/qemu-project/qemu/-/tree/master/python>`_: | 171 | +* `python <https://gitlab.com/qemu-project/qemu/-/tree/master/python>`_: |
172 | + Python part of our build/test system. | 172 | + Python part of our build/test system. |
173 | +* `qapi <https://gitlab.com/qemu-project/qemu/-/tree/master/qapi>`_: | 173 | +* `qapi <https://gitlab.com/qemu-project/qemu/-/tree/master/qapi>`_: |
174 | + `QAPI <qapi>` implementation. | 174 | + `QAPI <qapi>` implementation. |
175 | +* `qobject <https://gitlab.com/qemu-project/qemu/-/tree/master/qobject>`_: | 175 | +* `qobject <https://gitlab.com/qemu-project/qemu/-/tree/master/qobject>`_: |
176 | + QEMU Object implementation. | 176 | + QEMU Object implementation. |
177 | +* `qga <https://gitlab.com/qemu-project/qemu/-/tree/master/qga>`_: | 177 | +* `qga <https://gitlab.com/qemu-project/qemu/-/tree/master/qga>`_: |
178 | + QEMU `Guest agent <qemu-ga>` implementation. | 178 | + QEMU `Guest agent <qemu-ga>` implementation. |
179 | +* `qom <https://gitlab.com/qemu-project/qemu/-/tree/master/qom>`_: | 179 | +* `qom <https://gitlab.com/qemu-project/qemu/-/tree/master/qom>`_: |
180 | + QEMU :ref:`Object model <qom>` implementation, with monitor associated commands. | 180 | + QEMU :ref:`Object model <qom>` implementation, with monitor associated commands. |
181 | +* `replay <https://gitlab.com/qemu-project/qemu/-/tree/master/replay>`_: | 181 | +* `replay <https://gitlab.com/qemu-project/qemu/-/tree/master/replay>`_: |
182 | + QEMU :ref:`Record/replay <replay>` implementation. | 182 | + QEMU :ref:`Record/replay <replay>` implementation. |
183 | +* `roms <https://gitlab.com/qemu-project/qemu/-/tree/master/roms>`_: | 183 | +* `roms <https://gitlab.com/qemu-project/qemu/-/tree/master/roms>`_: |
184 | + Contains source code for various firmware and ROMs, which can be compiled if | 184 | + Contains source code for various firmware and ROMs, which can be compiled if |
185 | + custom or updated versions are needed. | 185 | + custom or updated versions are needed. |
186 | +* `rust <https://gitlab.com/qemu-project/qemu/-/tree/master/rust>`_: | 186 | +* `rust <https://gitlab.com/qemu-project/qemu/-/tree/master/rust>`_: |
187 | + Rust integration in QEMU. It contains the new interfaces defined and | 187 | + Rust integration in QEMU. It contains the new interfaces defined and |
188 | + associated devices using it. | 188 | + associated devices using it. |
189 | +* `scripts <https://gitlab.com/qemu-project/qemu/-/tree/master/scripts>`_: | 189 | +* `scripts <https://gitlab.com/qemu-project/qemu/-/tree/master/scripts>`_: |
190 | + Collection of scripts used in build and test systems, and various | 190 | + Collection of scripts used in build and test systems, and various |
191 | + tools for QEMU codebase and execution traces. | 191 | + tools for QEMU codebase and execution traces. |
192 | +* `scsi <https://gitlab.com/qemu-project/qemu/-/tree/master/scsi>`_: | 192 | +* `scsi <https://gitlab.com/qemu-project/qemu/-/tree/master/scsi>`_: |
193 | + Code related to SCSI support, used by SCSI devices. | 193 | + Code related to SCSI support, used by SCSI devices. |
194 | +* `semihosting <https://gitlab.com/qemu-project/qemu/-/tree/master/semihosting>`_: | 194 | +* `semihosting <https://gitlab.com/qemu-project/qemu/-/tree/master/semihosting>`_: |
195 | + QEMU `Semihosting <Semihosting>` implementation. | 195 | + QEMU `Semihosting <Semihosting>` implementation. |
196 | +* `stats <https://gitlab.com/qemu-project/qemu/-/tree/master/stats>`_: | 196 | +* `stats <https://gitlab.com/qemu-project/qemu/-/tree/master/stats>`_: |
197 | + `Monitor <QEMU monitor>` stats commands implementation. | 197 | + `Monitor <QEMU monitor>` stats commands implementation. |
198 | +* `storage-daemon <https://gitlab.com/qemu-project/qemu/-/tree/master/storage-daemon>`_: | 198 | +* `storage-daemon <https://gitlab.com/qemu-project/qemu/-/tree/master/storage-daemon>`_: |
199 | + QEMU `Storage daemon <storage-daemon>` implementation. | 199 | + QEMU `Storage daemon <storage-daemon>` implementation. |
200 | +* `stubs <https://gitlab.com/qemu-project/qemu/-/tree/master/stubs>`_: | 200 | +* `stubs <https://gitlab.com/qemu-project/qemu/-/tree/master/stubs>`_: |
201 | + Various stubs (empty functions) used to compile QEMU with specific | 201 | + Various stubs (empty functions) used to compile QEMU with specific |
202 | + configurations. | 202 | + configurations. |
203 | +* `subprojects <https://gitlab.com/qemu-project/qemu/-/tree/master/subprojects>`_: | 203 | +* `subprojects <https://gitlab.com/qemu-project/qemu/-/tree/master/subprojects>`_: |
204 | + QEMU submodules used by QEMU build system. | 204 | + QEMU submodules used by QEMU build system. |
205 | +* `system <https://gitlab.com/qemu-project/qemu/-/tree/master/system>`_: | 205 | +* `system <https://gitlab.com/qemu-project/qemu/-/tree/master/system>`_: |
206 | + QEMU `system mode <System emulation>` implementation (cpu, mmu, boot support). | 206 | + QEMU `system mode <System emulation>` implementation (cpu, mmu, boot support). |
207 | +* `target <https://gitlab.com/qemu-project/qemu/-/tree/master/target>`_: | 207 | +* `target <https://gitlab.com/qemu-project/qemu/-/tree/master/target>`_: |
208 | + Contains code for all target architectures supported (one subfolder | 208 | + Contains code for all target architectures supported (one subfolder |
209 | + per arch). For every architecture, you can find accelerator specific | 209 | + per arch). For every architecture, you can find accelerator specific |
210 | + implementations. | 210 | + implementations. |
211 | +* `tcg <https://gitlab.com/qemu-project/qemu/-/tree/master/tcg>`_: | 211 | +* `tcg <https://gitlab.com/qemu-project/qemu/-/tree/master/tcg>`_: |
212 | + :ref:`TCG <tcg>` related code. | 212 | + :ref:`TCG <tcg>` related code. |
213 | + Contains one subfolder per host supported architecture. | 213 | + Contains one subfolder per host supported architecture. |
214 | +* `tests <https://gitlab.com/qemu-project/qemu/-/tree/master/tests>`_: | 214 | +* `tests <https://gitlab.com/qemu-project/qemu/-/tree/master/tests>`_: |
215 | + QEMU `test <testing>` suite | 215 | + QEMU `test <testing>` suite |
216 | + | 216 | + |
217 | + - `avocado <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/avocado>`_: | 217 | + - `avocado <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/avocado>`_: |
218 | + Functional tests booting full VM using `Avocado framework <checkavocado-ref>`. | 218 | + Functional tests booting full VM using `Avocado framework <checkavocado-ref>`. |
219 | + Those tests will be transformed and moved into | 219 | + Those tests will be transformed and moved into |
220 | + `tests/functional <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/functional>`_ | 220 | + `tests/functional <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/functional>`_ |
221 | + in the future. | 221 | + in the future. |
222 | + - `data <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/data>`_: | 222 | + - `data <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/data>`_: |
223 | + Data for various tests. | 223 | + Data for various tests. |
224 | + - `decode <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/decode>`_: | 224 | + - `decode <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/decode>`_: |
225 | + Testsuite for :ref:`decodetree <decodetree>` implementation. | 225 | + Testsuite for :ref:`decodetree <decodetree>` implementation. |
226 | + - `docker <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/docker>`_: | 226 | + - `docker <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/docker>`_: |
227 | + Code and scripts to create `containers <container-ref>` used in `CI <ci>`. | 227 | + Code and scripts to create `containers <container-ref>` used in `CI <ci>`. |
228 | + - `fp <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/fp>`_: | 228 | + - `fp <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/fp>`_: |
229 | + QEMU testsuite for soft float implementation. | 229 | + QEMU testsuite for soft float implementation. |
230 | + - `functional <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/functional>`_: | 230 | + - `functional <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/functional>`_: |
231 | + `Functional tests <checkfunctional-ref>` (full VM boot). | 231 | + `Functional tests <checkfunctional-ref>` (full VM boot). |
232 | + - `lcitool <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/lcitool>`_: | 232 | + - `lcitool <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/lcitool>`_: |
233 | + Generate dockerfiles for CI containers. | 233 | + Generate dockerfiles for CI containers. |
234 | + - `migration <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/migration>`_: | 234 | + - `migration <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/migration>`_: |
235 | + Test scripts and data for `Migration framework <migration>`. | 235 | + Test scripts and data for `Migration framework <migration>`. |
236 | + - `multiboot <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/multiboot>`_: | 236 | + - `multiboot <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/multiboot>`_: |
237 | + Test multiboot functionality for x86_64/i386. | 237 | + Test multiboot functionality for x86_64/i386. |
238 | + - `qapi-schema <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/qapi-schema>`_: | 238 | + - `qapi-schema <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/qapi-schema>`_: |
239 | + Test scripts and data for `QAPI <qapi-tests>`. | 239 | + Test scripts and data for `QAPI <qapi-tests>`. |
240 | + - `qemu-iotests <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/qemu-iotests>`_: | 240 | + - `qemu-iotests <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/qemu-iotests>`_: |
241 | + `Disk image and block tests <qemu-iotests>`. | 241 | + `Disk image and block tests <qemu-iotests>`. |
242 | + - `qtest <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/qtest>`_: | 242 | + - `qtest <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/qtest>`_: |
243 | + `Device emulation testing <qtest>`. | 243 | + `Device emulation testing <qtest>`. |
244 | + - `tcg <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/tcg>`__: | 244 | + - `tcg <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/tcg>`__: |
245 | + `TCG related tests <checktcg-ref>`. Contains code per architecture | 245 | + `TCG related tests <checktcg-ref>`. Contains code per architecture |
246 | + (subfolder) and multiarch tests as well. | 246 | + (subfolder) and multiarch tests as well. |
247 | + - `tsan <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/tsan>`_: | 247 | + - `tsan <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/tsan>`_: |
248 | + `Suppressions <tsan-suppressions>` for thread sanitizer. | 248 | + `Suppressions <tsan-suppressions>` for thread sanitizer. |
249 | + - `uefi-test-tools <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/uefi-test-tools>`_: | 249 | + - `uefi-test-tools <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/uefi-test-tools>`_: |
250 | + Test tool for UEFI support. | 250 | + Test tool for UEFI support. |
251 | + - `unit <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/unit>`_: | 251 | + - `unit <https://gitlab.com/qemu-project/qemu/-/tree/master/tests/unit>`_: |
252 | + QEMU `Unit tests <unit-tests>`. | 252 | + QEMU `Unit tests <unit-tests>`. |
253 | +* `trace <https://gitlab.com/qemu-project/qemu/-/tree/master/trace>`_: | 253 | +* `trace <https://gitlab.com/qemu-project/qemu/-/tree/master/trace>`_: |
254 | + :ref:`Tracing framework <tracing>`. Used to print information associated to various | 254 | + :ref:`Tracing framework <tracing>`. Used to print information associated to various |
255 | + events during execution. | 255 | + events during execution. |
256 | +* `ui <https://gitlab.com/qemu-project/qemu/-/tree/master/ui>`_: | 256 | +* `ui <https://gitlab.com/qemu-project/qemu/-/tree/master/ui>`_: |
257 | + QEMU User interfaces. | 257 | + QEMU User interfaces. |
258 | +* `util <https://gitlab.com/qemu-project/qemu/-/tree/master/util>`_: | 258 | +* `util <https://gitlab.com/qemu-project/qemu/-/tree/master/util>`_: |
259 | + Utility code used by other parts of QEMU. | 259 | + Utility code used by other parts of QEMU. |
260 | diff --git a/docs/devel/decodetree.rst b/docs/devel/decodetree.rst | 260 | diff --git a/docs/devel/decodetree.rst b/docs/devel/decodetree.rst |
261 | index XXXXXXX..XXXXXXX 100644 | 261 | index XXXXXXX..XXXXXXX 100644 |
262 | --- a/docs/devel/decodetree.rst | 262 | --- a/docs/devel/decodetree.rst |
263 | +++ b/docs/devel/decodetree.rst | 263 | +++ b/docs/devel/decodetree.rst |
264 | @@ -XXX,XX +XXX,XX @@ | 264 | @@ -XXX,XX +XXX,XX @@ |
265 | +.. _decodetree: | 265 | +.. _decodetree: |
266 | + | 266 | + |
267 | ======================== | 267 | ======================== |
268 | Decodetree Specification | 268 | Decodetree Specification |
269 | ======================== | 269 | ======================== |
270 | diff --git a/docs/devel/ebpf_rss.rst b/docs/devel/ebpf_rss.rst | 270 | diff --git a/docs/devel/ebpf_rss.rst b/docs/devel/ebpf_rss.rst |
271 | index XXXXXXX..XXXXXXX 100644 | 271 | index XXXXXXX..XXXXXXX 100644 |
272 | --- a/docs/devel/ebpf_rss.rst | 272 | --- a/docs/devel/ebpf_rss.rst |
273 | +++ b/docs/devel/ebpf_rss.rst | 273 | +++ b/docs/devel/ebpf_rss.rst |
274 | @@ -XXX,XX +XXX,XX @@ | 274 | @@ -XXX,XX +XXX,XX @@ |
275 | +.. _ebpf-rss: | 275 | +.. _ebpf-rss: |
276 | + | 276 | + |
277 | =========================== | 277 | =========================== |
278 | eBPF RSS virtio-net support | 278 | eBPF RSS virtio-net support |
279 | =========================== | 279 | =========================== |
280 | diff --git a/docs/devel/index-internals.rst b/docs/devel/index-internals.rst | 280 | diff --git a/docs/devel/index-internals.rst b/docs/devel/index-internals.rst |
281 | index XXXXXXX..XXXXXXX 100644 | 281 | index XXXXXXX..XXXXXXX 100644 |
282 | --- a/docs/devel/index-internals.rst | 282 | --- a/docs/devel/index-internals.rst |
283 | +++ b/docs/devel/index-internals.rst | 283 | +++ b/docs/devel/index-internals.rst |
284 | @@ -XXX,XX +XXX,XX @@ | 284 | @@ -XXX,XX +XXX,XX @@ |
285 | +.. _internal-subsystem: | 285 | +.. _internal-subsystem: |
286 | + | 286 | + |
287 | Internal Subsystem Information | 287 | Internal Subsystem Information |
288 | ------------------------------ | 288 | ------------------------------ |
289 | 289 | ||
290 | diff --git a/docs/devel/index.rst b/docs/devel/index.rst | 290 | diff --git a/docs/devel/index.rst b/docs/devel/index.rst |
291 | index XXXXXXX..XXXXXXX 100644 | 291 | index XXXXXXX..XXXXXXX 100644 |
292 | --- a/docs/devel/index.rst | 292 | --- a/docs/devel/index.rst |
293 | +++ b/docs/devel/index.rst | 293 | +++ b/docs/devel/index.rst |
294 | @@ -XXX,XX +XXX,XX @@ the :ref:`tcg_internals`. | 294 | @@ -XXX,XX +XXX,XX @@ the :ref:`tcg_internals`. |
295 | index-api | 295 | index-api |
296 | index-internals | 296 | index-internals |
297 | index-tcg | 297 | index-tcg |
298 | + codebase | 298 | + codebase |
299 | diff --git a/docs/devel/migration/main.rst b/docs/devel/migration/main.rst | 299 | diff --git a/docs/devel/migration/main.rst b/docs/devel/migration/main.rst |
300 | index XXXXXXX..XXXXXXX 100644 | 300 | index XXXXXXX..XXXXXXX 100644 |
301 | --- a/docs/devel/migration/main.rst | 301 | --- a/docs/devel/migration/main.rst |
302 | +++ b/docs/devel/migration/main.rst | 302 | +++ b/docs/devel/migration/main.rst |
303 | @@ -XXX,XX +XXX,XX @@ | 303 | @@ -XXX,XX +XXX,XX @@ |
304 | +.. _migration: | 304 | +.. _migration: |
305 | + | 305 | + |
306 | =================== | 306 | =================== |
307 | Migration framework | 307 | Migration framework |
308 | =================== | 308 | =================== |
309 | diff --git a/docs/devel/qapi-code-gen.rst b/docs/devel/qapi-code-gen.rst | 309 | diff --git a/docs/devel/qapi-code-gen.rst b/docs/devel/qapi-code-gen.rst |
310 | index XXXXXXX..XXXXXXX 100644 | 310 | index XXXXXXX..XXXXXXX 100644 |
311 | --- a/docs/devel/qapi-code-gen.rst | 311 | --- a/docs/devel/qapi-code-gen.rst |
312 | +++ b/docs/devel/qapi-code-gen.rst | 312 | +++ b/docs/devel/qapi-code-gen.rst |
313 | @@ -XXX,XX +XXX,XX @@ How to use the QAPI code generator | 313 | @@ -XXX,XX +XXX,XX @@ How to use the QAPI code generator |
314 | This work is licensed under the terms of the GNU GPL, version 2 or | 314 | This work is licensed under the terms of the GNU GPL, version 2 or |
315 | later. See the COPYING file in the top-level directory. | 315 | later. See the COPYING file in the top-level directory. |
316 | 316 | ||
317 | +.. _qapi: | 317 | +.. _qapi: |
318 | 318 | ||
319 | Introduction | 319 | Introduction |
320 | ============ | 320 | ============ |
321 | diff --git a/docs/devel/testing/main.rst b/docs/devel/testing/main.rst | 321 | diff --git a/docs/devel/testing/main.rst b/docs/devel/testing/main.rst |
322 | index XXXXXXX..XXXXXXX 100644 | 322 | index XXXXXXX..XXXXXXX 100644 |
323 | --- a/docs/devel/testing/main.rst | 323 | --- a/docs/devel/testing/main.rst |
324 | +++ b/docs/devel/testing/main.rst | 324 | +++ b/docs/devel/testing/main.rst |
325 | @@ -XXX,XX +XXX,XX @@ Before running tests, it is best to build QEMU programs first. Some tests | 325 | @@ -XXX,XX +XXX,XX @@ Before running tests, it is best to build QEMU programs first. Some tests |
326 | expect the executables to exist and will fail with obscure messages if they | 326 | expect the executables to exist and will fail with obscure messages if they |
327 | cannot find them. | 327 | cannot find them. |
328 | 328 | ||
329 | +.. _unit-tests: | 329 | +.. _unit-tests: |
330 | + | 330 | + |
331 | Unit tests | 331 | Unit tests |
332 | ~~~~~~~~~~ | 332 | ~~~~~~~~~~ |
333 | 333 | ||
334 | @@ -XXX,XX +XXX,XX @@ successfully on various hosts. The following list shows some best practices: | 334 | @@ -XXX,XX +XXX,XX @@ successfully on various hosts. The following list shows some best practices: |
335 | #ifdef in the codes. If the whole test suite cannot run on Windows, disable | 335 | #ifdef in the codes. If the whole test suite cannot run on Windows, disable |
336 | the build in the meson.build file. | 336 | the build in the meson.build file. |
337 | 337 | ||
338 | +.. _qapi-tests: | 338 | +.. _qapi-tests: |
339 | + | 339 | + |
340 | QAPI schema tests | 340 | QAPI schema tests |
341 | ~~~~~~~~~~~~~~~~~ | 341 | ~~~~~~~~~~~~~~~~~ |
342 | 342 | ||
343 | @@ -XXX,XX +XXX,XX @@ check-block | 343 | @@ -XXX,XX +XXX,XX @@ check-block |
344 | are in the "auto" group). | 344 | are in the "auto" group). |
345 | See the "QEMU iotests" section below for more information. | 345 | See the "QEMU iotests" section below for more information. |
346 | 346 | ||
347 | +.. _qemu-iotests: | 347 | +.. _qemu-iotests: |
348 | + | 348 | + |
349 | QEMU iotests | 349 | QEMU iotests |
350 | ------------ | 350 | ------------ |
351 | 351 | ||
352 | @@ -XXX,XX +XXX,XX @@ The above exitcode=0 has TSan continue without error if any warnings are found. | 352 | @@ -XXX,XX +XXX,XX @@ The above exitcode=0 has TSan continue without error if any warnings are found. |
353 | This allows for running the test and then checking the warnings afterwards. | 353 | This allows for running the test and then checking the warnings afterwards. |
354 | If you want TSan to stop and exit with error on warnings, use exitcode=66. | 354 | If you want TSan to stop and exit with error on warnings, use exitcode=66. |
355 | 355 | ||
356 | +.. _tsan-suppressions: | 356 | +.. _tsan-suppressions: |
357 | + | 357 | + |
358 | TSan Suppressions | 358 | TSan Suppressions |
359 | ~~~~~~~~~~~~~~~~~ | 359 | ~~~~~~~~~~~~~~~~~ |
360 | Keep in mind that for any data race warning, although there might be a data race | 360 | Keep in mind that for any data race warning, although there might be a data race |
361 | @@ -XXX,XX +XXX,XX @@ You can run the avocado tests simply by executing: | 361 | @@ -XXX,XX +XXX,XX @@ You can run the avocado tests simply by executing: |
362 | 362 | ||
363 | See :ref:`checkavocado-ref` for more details. | 363 | See :ref:`checkavocado-ref` for more details. |
364 | 364 | ||
365 | - | 365 | - |
366 | .. _checktcg-ref: | 366 | .. _checktcg-ref: |
367 | 367 | ||
368 | Testing with "make check-tcg" | 368 | Testing with "make check-tcg" |
369 | diff --git a/docs/devel/testing/qtest.rst b/docs/devel/testing/qtest.rst | 369 | diff --git a/docs/devel/testing/qtest.rst b/docs/devel/testing/qtest.rst |
370 | index XXXXXXX..XXXXXXX 100644 | 370 | index XXXXXXX..XXXXXXX 100644 |
371 | --- a/docs/devel/testing/qtest.rst | 371 | --- a/docs/devel/testing/qtest.rst |
372 | +++ b/docs/devel/testing/qtest.rst | 372 | +++ b/docs/devel/testing/qtest.rst |
373 | @@ -XXX,XX +XXX,XX @@ | 373 | @@ -XXX,XX +XXX,XX @@ |
374 | +.. _qtest: | 374 | +.. _qtest: |
375 | + | 375 | + |
376 | ======================================== | 376 | ======================================== |
377 | QTest Device Emulation Testing Framework | 377 | QTest Device Emulation Testing Framework |
378 | ======================================== | 378 | ======================================== |
379 | diff --git a/docs/index.rst b/docs/index.rst | 379 | diff --git a/docs/index.rst b/docs/index.rst |
380 | index XXXXXXX..XXXXXXX 100644 | 380 | index XXXXXXX..XXXXXXX 100644 |
381 | --- a/docs/index.rst | 381 | --- a/docs/index.rst |
382 | +++ b/docs/index.rst | 382 | +++ b/docs/index.rst |
383 | @@ -XXX,XX +XXX,XX @@ | 383 | @@ -XXX,XX +XXX,XX @@ |
384 | You can adapt this file completely to your liking, but it should at least | 384 | You can adapt this file completely to your liking, but it should at least |
385 | contain the root `toctree` directive. | 385 | contain the root `toctree` directive. |
386 | 386 | ||
387 | +.. _documentation-root: | 387 | +.. _documentation-root: |
388 | + | 388 | + |
389 | ================================ | 389 | ================================ |
390 | Welcome to QEMU's documentation! | 390 | Welcome to QEMU's documentation! |
391 | ================================ | 391 | ================================ |
392 | diff --git a/docs/interop/qemu-ga.rst b/docs/interop/qemu-ga.rst | 392 | diff --git a/docs/interop/qemu-ga.rst b/docs/interop/qemu-ga.rst |
393 | index XXXXXXX..XXXXXXX 100644 | 393 | index XXXXXXX..XXXXXXX 100644 |
394 | --- a/docs/interop/qemu-ga.rst | 394 | --- a/docs/interop/qemu-ga.rst |
395 | +++ b/docs/interop/qemu-ga.rst | 395 | +++ b/docs/interop/qemu-ga.rst |
396 | @@ -XXX,XX +XXX,XX @@ | 396 | @@ -XXX,XX +XXX,XX @@ |
397 | +.. _qemu-ga: | 397 | +.. _qemu-ga: |
398 | + | 398 | + |
399 | QEMU Guest Agent | 399 | QEMU Guest Agent |
400 | ================ | 400 | ================ |
401 | 401 | ||
402 | diff --git a/docs/system/qemu-block-drivers.rst.inc b/docs/system/qemu-block-drivers.rst.inc | 402 | diff --git a/docs/system/qemu-block-drivers.rst.inc b/docs/system/qemu-block-drivers.rst.inc |
403 | index XXXXXXX..XXXXXXX 100644 | 403 | index XXXXXXX..XXXXXXX 100644 |
404 | --- a/docs/system/qemu-block-drivers.rst.inc | 404 | --- a/docs/system/qemu-block-drivers.rst.inc |
405 | +++ b/docs/system/qemu-block-drivers.rst.inc | 405 | +++ b/docs/system/qemu-block-drivers.rst.inc |
406 | @@ -XXX,XX +XXX,XX @@ What you should *never* do: | 406 | @@ -XXX,XX +XXX,XX @@ What you should *never* do: |
407 | - expect it to work when loadvm'ing | 407 | - expect it to work when loadvm'ing |
408 | - write to the FAT directory on the host system while accessing it with the guest system | 408 | - write to the FAT directory on the host system while accessing it with the guest system |
409 | 409 | ||
410 | +.. _nbd: | 410 | +.. _nbd: |
411 | + | 411 | + |
412 | NBD access | 412 | NBD access |
413 | ~~~~~~~~~~ | 413 | ~~~~~~~~~~ |
414 | 414 | ||
415 | diff --git a/docs/tools/qemu-storage-daemon.rst b/docs/tools/qemu-storage-daemon.rst | 415 | diff --git a/docs/tools/qemu-storage-daemon.rst b/docs/tools/qemu-storage-daemon.rst |
416 | index XXXXXXX..XXXXXXX 100644 | 416 | index XXXXXXX..XXXXXXX 100644 |
417 | --- a/docs/tools/qemu-storage-daemon.rst | 417 | --- a/docs/tools/qemu-storage-daemon.rst |
418 | +++ b/docs/tools/qemu-storage-daemon.rst | 418 | +++ b/docs/tools/qemu-storage-daemon.rst |
419 | @@ -XXX,XX +XXX,XX @@ | 419 | @@ -XXX,XX +XXX,XX @@ |
420 | +.. _storage-daemon: | 420 | +.. _storage-daemon: |
421 | + | 421 | + |
422 | =================== | 422 | =================== |
423 | QEMU Storage Daemon | 423 | QEMU Storage Daemon |
424 | =================== | 424 | =================== |
425 | diff --git a/docs/user/main.rst b/docs/user/main.rst | 425 | diff --git a/docs/user/main.rst b/docs/user/main.rst |
426 | index XXXXXXX..XXXXXXX 100644 | 426 | index XXXXXXX..XXXXXXX 100644 |
427 | --- a/docs/user/main.rst | 427 | --- a/docs/user/main.rst |
428 | +++ b/docs/user/main.rst | 428 | +++ b/docs/user/main.rst |
429 | @@ -XXX,XX +XXX,XX @@ | 429 | @@ -XXX,XX +XXX,XX @@ |
430 | +.. _user-mode: | 430 | +.. _user-mode: |
431 | + | 431 | + |
432 | QEMU User space emulator | 432 | QEMU User space emulator |
433 | ======================== | 433 | ======================== |
434 | 434 | ||
435 | @@ -XXX,XX +XXX,XX @@ QEMU was conceived so that ultimately it can emulate itself. Although it | 435 | @@ -XXX,XX +XXX,XX @@ QEMU was conceived so that ultimately it can emulate itself. Although it |
436 | is not very useful, it is an important test to show the power of the | 436 | is not very useful, it is an important test to show the power of the |
437 | emulator. | 437 | emulator. |
438 | 438 | ||
439 | +.. _linux-user-mode: | 439 | +.. _linux-user-mode: |
440 | + | 440 | + |
441 | Linux User space emulator | 441 | Linux User space emulator |
442 | ------------------------- | 442 | ------------------------- |
443 | 443 | ||
444 | @@ -XXX,XX +XXX,XX @@ Other binaries | 444 | @@ -XXX,XX +XXX,XX @@ Other binaries |
445 | * ``qemu-sparc64`` can execute some Sparc64 (Sparc64 CPU, 64 bit ABI) and | 445 | * ``qemu-sparc64`` can execute some Sparc64 (Sparc64 CPU, 64 bit ABI) and |
446 | SPARC32PLUS binaries (Sparc64 CPU, 32 bit ABI). | 446 | SPARC32PLUS binaries (Sparc64 CPU, 32 bit ABI). |
447 | 447 | ||
448 | +.. _bsd-user-mode: | 448 | +.. _bsd-user-mode: |
449 | + | 449 | + |
450 | BSD User space emulator | 450 | BSD User space emulator |
451 | ----------------------- | 451 | ----------------------- |
452 | 452 | ||
453 | -- | 453 | -- |
454 | 2.39.5 | 454 | 2.39.5 | diff view generated by jsdifflib |
1 | Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> | 1 | Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> |
---|---|---|---|
2 | --- | 2 | --- |
3 | docs/devel/control-flow-integrity.rst | 2 + | 3 | docs/devel/control-flow-integrity.rst | 2 + |
4 | docs/devel/multi-thread-tcg.rst | 2 + | 4 | docs/devel/multi-thread-tcg.rst | 2 + |
5 | docs/glossary.rst | 280 ++++++++++++++++++++++++++ | 5 | docs/glossary.rst | 280 ++++++++++++++++++++++++++ |
6 | docs/index.rst | 1 + | 6 | docs/index.rst | 1 + |
7 | docs/system/arm/virt.rst | 2 + | 7 | docs/system/arm/virt.rst | 2 + |
8 | docs/system/images.rst | 2 + | 8 | docs/system/images.rst | 2 + |
9 | docs/tools/qemu-nbd.rst | 2 + | 9 | docs/tools/qemu-nbd.rst | 2 + |
10 | 7 files changed, 291 insertions(+) | 10 | 7 files changed, 291 insertions(+) |
11 | create mode 100644 docs/glossary.rst | 11 | create mode 100644 docs/glossary.rst |
12 | 12 | ||
13 | diff --git a/docs/devel/control-flow-integrity.rst b/docs/devel/control-flow-integrity.rst | 13 | diff --git a/docs/devel/control-flow-integrity.rst b/docs/devel/control-flow-integrity.rst |
14 | index XXXXXXX..XXXXXXX 100644 | 14 | index XXXXXXX..XXXXXXX 100644 |
15 | --- a/docs/devel/control-flow-integrity.rst | 15 | --- a/docs/devel/control-flow-integrity.rst |
16 | +++ b/docs/devel/control-flow-integrity.rst | 16 | +++ b/docs/devel/control-flow-integrity.rst |
17 | @@ -XXX,XX +XXX,XX @@ | 17 | @@ -XXX,XX +XXX,XX @@ |
18 | +.. _cfi: | 18 | +.. _cfi: |
19 | + | 19 | + |
20 | ============================ | 20 | ============================ |
21 | Control-Flow Integrity (CFI) | 21 | Control-Flow Integrity (CFI) |
22 | ============================ | 22 | ============================ |
23 | diff --git a/docs/devel/multi-thread-tcg.rst b/docs/devel/multi-thread-tcg.rst | 23 | diff --git a/docs/devel/multi-thread-tcg.rst b/docs/devel/multi-thread-tcg.rst |
24 | index XXXXXXX..XXXXXXX 100644 | 24 | index XXXXXXX..XXXXXXX 100644 |
25 | --- a/docs/devel/multi-thread-tcg.rst | 25 | --- a/docs/devel/multi-thread-tcg.rst |
26 | +++ b/docs/devel/multi-thread-tcg.rst | 26 | +++ b/docs/devel/multi-thread-tcg.rst |
27 | @@ -XXX,XX +XXX,XX @@ | 27 | @@ -XXX,XX +XXX,XX @@ |
28 | This work is licensed under the terms of the GNU GPL, version 2 or | 28 | This work is licensed under the terms of the GNU GPL, version 2 or |
29 | later. See the COPYING file in the top-level directory. | 29 | later. See the COPYING file in the top-level directory. |
30 | 30 | ||
31 | +.. _mttcg: | 31 | +.. _mttcg: |
32 | + | 32 | + |
33 | ================== | 33 | ================== |
34 | Multi-threaded TCG | 34 | Multi-threaded TCG |
35 | ================== | 35 | ================== |
36 | diff --git a/docs/glossary.rst b/docs/glossary.rst | 36 | diff --git a/docs/glossary.rst b/docs/glossary.rst |
37 | new file mode 100644 | 37 | new file mode 100644 |
38 | index XXXXXXX..XXXXXXX | 38 | index XXXXXXX..XXXXXXX |
39 | --- /dev/null | 39 | --- /dev/null |
40 | +++ b/docs/glossary.rst | 40 | +++ b/docs/glossary.rst |
41 | @@ -XXX,XX +XXX,XX @@ | 41 | @@ -XXX,XX +XXX,XX @@ |
42 | +.. _Glossary: | 42 | +.. _Glossary: |
43 | + | 43 | + |
44 | +-------- | 44 | +-------- |
45 | +Glossary | 45 | +Glossary |
46 | +-------- | 46 | +-------- |
47 | + | 47 | + |
48 | +This section of the manual presents brief definitions of acronyms and terms used | 48 | +This section of the manual presents brief definitions of acronyms and terms used |
49 | +by QEMU developers. | 49 | +by QEMU developers. |
50 | + | 50 | + |
51 | +Accelerator | 51 | +Accelerator |
52 | +----------- | 52 | +----------- |
53 | + | 53 | + |
54 | +A specific API used to accelerate execution of guest instructions. It can be | 54 | +A specific API used to accelerate execution of guest instructions. It can be |
55 | +hardware-based, through a virtualization API provided by the host OS (kvm, hvf, | 55 | +hardware-based, through a virtualization API provided by the host OS (kvm, hvf, |
56 | +whpx, ...), or software-based (tcg). See this description of `supported | 56 | +whpx, ...), or software-based (tcg). See this description of `supported |
57 | +accelerators<Accelerators>`. | 57 | +accelerators<Accelerators>`. |
58 | + | 58 | + |
59 | +Board | 59 | +Board |
60 | +----- | 60 | +----- |
61 | + | 61 | + |
62 | +Another name for :ref:`machine`. | 62 | +Another name for :ref:`machine`. |
63 | + | 63 | + |
64 | +Block | 64 | +Block |
65 | +----- | 65 | +----- |
66 | + | 66 | + |
67 | +Block drivers are the available `disk formats and front-ends | 67 | +Block drivers are the available `disk formats and front-ends |
68 | +<block-drivers>` available, and block devices `(see Block device section on | 68 | +<block-drivers>` available, and block devices `(see Block device section on |
69 | +options page)<sec_005finvocation>` are using them to implement disks for a | 69 | +options page)<sec_005finvocation>` are using them to implement disks for a |
70 | +virtual machine. | 70 | +virtual machine. |
71 | + | 71 | + |
72 | +CFI | 72 | +CFI |
73 | +--- | 73 | +--- |
74 | + | 74 | + |
75 | +Control Flow Integrity is a hardening technique used to prevent exploits | 75 | +Control Flow Integrity is a hardening technique used to prevent exploits |
76 | +targeting QEMU by detecting unexpected branches during execution. QEMU `actively | 76 | +targeting QEMU by detecting unexpected branches during execution. QEMU `actively |
77 | +supports<cfi>` being compiled with CFI enabled. | 77 | +supports<cfi>` being compiled with CFI enabled. |
78 | + | 78 | + |
79 | +Device | 79 | +Device |
80 | +------ | 80 | +------ |
81 | + | 81 | + |
82 | +In QEMU, a device is a piece of hardware visible to the guest. Examples include | 82 | +In QEMU, a device is a piece of hardware visible to the guest. Examples include |
83 | +UARTs, PCI controllers, PCI cards, VGA controllers, and many more. | 83 | +UARTs, PCI controllers, PCI cards, VGA controllers, and many more. |
84 | + | 84 | + |
85 | +QEMU is able to emulate a CPU, and all the hardware interacting with it, | 85 | +QEMU is able to emulate a CPU, and all the hardware interacting with it, |
86 | +including `many devices<device-emulation>`. When QEMU runs a virtual machine | 86 | +including `many devices<device-emulation>`. When QEMU runs a virtual machine |
87 | +using a hardware-based accelerator, it is responsible for emulating, using | 87 | +using a hardware-based accelerator, it is responsible for emulating, using |
88 | +software, all devices. | 88 | +software, all devices. |
89 | + | 89 | + |
90 | +EDK2 | 90 | +EDK2 |
91 | +---- | 91 | +---- |
92 | + | 92 | + |
93 | +EDK2, as known as `TianoCore <https://www.tianocore.org/>`_, is an open source | 93 | +EDK2, as known as `TianoCore <https://www.tianocore.org/>`_, is an open source |
94 | +implementation of UEFI standard. QEMU virtual machines that boot a UEFI firmware | 94 | +implementation of UEFI standard. QEMU virtual machines that boot a UEFI firmware |
95 | +usually use EDK2. | 95 | +usually use EDK2. |
96 | + | 96 | + |
97 | +gdbstub | 97 | +gdbstub |
98 | +------- | 98 | +------- |
99 | + | 99 | + |
100 | +QEMU implements a `gdb server <GDB usage>`, allowing gdb to attach to it and | 100 | +QEMU implements a `gdb server <GDB usage>`, allowing gdb to attach to it and |
101 | +debug a running virtual machine, or a program in user-mode. This allows | 101 | +debug a running virtual machine, or a program in user-mode. This allows |
102 | +debugging the guest code that is running inside QEMU. | 102 | +debugging the guest code that is running inside QEMU. |
103 | + | 103 | + |
104 | +glib2 | 104 | +glib2 |
105 | +----- | 105 | +----- |
106 | + | 106 | + |
107 | +`GLib2 <https://docs.gtk.org/glib/>`_ is one of the most important libraries we | 107 | +`GLib2 <https://docs.gtk.org/glib/>`_ is one of the most important libraries we |
108 | +are using through the codebase. It provides many data structures, macros, string | 108 | +are using through the codebase. It provides many data structures, macros, string |
109 | +and thread utilities and portable functions across different OS. It's required | 109 | +and thread utilities and portable functions across different OS. It's required |
110 | +to build QEMU. | 110 | +to build QEMU. |
111 | + | 111 | + |
112 | +Guest agent | 112 | +Guest agent |
113 | +----------- | 113 | +----------- |
114 | + | 114 | + |
115 | +The `QEMU Guest Agent <qemu-ga>` is a daemon intended to be run within virtual | 115 | +The `QEMU Guest Agent <qemu-ga>` is a daemon intended to be run within virtual |
116 | +machines. It provides various services to help QEMU to interact with it. | 116 | +machines. It provides various services to help QEMU to interact with it. |
117 | + | 117 | + |
118 | +.. _guest: | 118 | +.. _guest: |
119 | + | 119 | + |
120 | +Guest | 120 | +Guest |
121 | +----- | 121 | +----- |
122 | + | 122 | + |
123 | +Guest is the architecture of the virtual machine, which is emulated. | 123 | +Guest is the architecture of the virtual machine, which is emulated. |
124 | +See also :ref:`host`. | 124 | +See also :ref:`host`. |
125 | + | 125 | + |
126 | +Sometimes this is called the :ref:`target` architecture, but that term | 126 | +Sometimes this is called the :ref:`target` architecture, but that term |
127 | +can be ambiguous. | 127 | +can be ambiguous. |
128 | + | 128 | + |
129 | +.. _host: | 129 | +.. _host: |
130 | + | 130 | + |
131 | +Host | 131 | +Host |
132 | +---- | 132 | +---- |
133 | + | 133 | + |
134 | +Host is the architecture on which QEMU is running on, which is native. | 134 | +Host is the architecture on which QEMU is running on, which is native. |
135 | +See also :ref:`guest`. | 135 | +See also :ref:`guest`. |
136 | + | 136 | + |
137 | +Hypervisor | 137 | +Hypervisor |
138 | +---------- | 138 | +---------- |
139 | + | 139 | + |
140 | +The formal definition of an hypervisor is a program or API than can be used to | 140 | +The formal definition of an hypervisor is a program or API than can be used to |
141 | +manage a virtual machine. QEMU is a virtualizer, that interacts with various | 141 | +manage a virtual machine. QEMU is a virtualizer, that interacts with various |
142 | +hypervisors. | 142 | +hypervisors. |
143 | + | 143 | + |
144 | +In the context of QEMU, an hypervisor is an API, provided by the Host OS, | 144 | +In the context of QEMU, an hypervisor is an API, provided by the Host OS, |
145 | +allowing to execute virtual machines. Linux implementation is KVM (and supports | 145 | +allowing to execute virtual machines. Linux implementation is KVM (and supports |
146 | +Xen as well). For MacOS, it's HVF. Windows defines WHPX. And NetBSD provides | 146 | +Xen as well). For MacOS, it's HVF. Windows defines WHPX. And NetBSD provides |
147 | +NVMM. | 147 | +NVMM. |
148 | + | 148 | + |
149 | +.. _machine: | 149 | +.. _machine: |
150 | + | 150 | + |
151 | +Machine | 151 | +Machine |
152 | +------- | 152 | +------- |
153 | + | 153 | + |
154 | +QEMU's system emulation models many different types of hardware. A machine model | 154 | +QEMU's system emulation models many different types of hardware. A machine model |
155 | +(sometimes called a board model) is the model of a complete virtual system with | 155 | +(sometimes called a board model) is the model of a complete virtual system with |
156 | +RAM, one or more CPUs, and various devices. It can be selected with the option | 156 | +RAM, one or more CPUs, and various devices. It can be selected with the option |
157 | +``-machine`` of qemu-system. Our machine models can be found on this `page | 157 | +``-machine`` of qemu-system. Our machine models can be found on this `page |
158 | +<system-targets-ref>`. | 158 | +<system-targets-ref>`. |
159 | + | 159 | + |
160 | +Migration | 160 | +Migration |
161 | +--------- | 161 | +--------- |
162 | + | 162 | + |
163 | +QEMU can save and restore the execution of a virtual machine between different | 163 | +QEMU can save and restore the execution of a virtual machine between different |
164 | +host systems. This is provided by the `Migration framework<migration>`. | 164 | +host systems. This is provided by the `Migration framework<migration>`. |
165 | + | 165 | + |
166 | +NBD | 166 | +NBD |
167 | +--- | 167 | +--- |
168 | + | 168 | + |
169 | +The `QEMU Network Block Device server <qemu-nbd>` is a tool that can be used to | 169 | +The `QEMU Network Block Device server <qemu-nbd>` is a tool that can be used to |
170 | +mount and access QEMU images, providing functionality similar to a loop device. | 170 | +mount and access QEMU images, providing functionality similar to a loop device. |
171 | + | 171 | + |
172 | +Mailing List | 172 | +Mailing List |
173 | +------------ | 173 | +------------ |
174 | + | 174 | + |
175 | +This is `where <https://wiki.qemu.org/Contribute/MailingLists>`_ all the | 175 | +This is `where <https://wiki.qemu.org/Contribute/MailingLists>`_ all the |
176 | +development happens! Changes are posted as series, that all developers can | 176 | +development happens! Changes are posted as series, that all developers can |
177 | +review and share feedback for. | 177 | +review and share feedback for. |
178 | + | 178 | + |
179 | +For reporting issues, our `GitLab | 179 | +For reporting issues, our `GitLab |
180 | +<https://gitlab.com/qemu-project/qemu/-/issues>`_ tracker is the best place. | 180 | +<https://gitlab.com/qemu-project/qemu/-/issues>`_ tracker is the best place. |
181 | + | 181 | + |
182 | +.. _softmmu: | 182 | +.. _softmmu: |
183 | + | 183 | + |
184 | +MMU / softmmu | 184 | +MMU / softmmu |
185 | +------------- | 185 | +------------- |
186 | + | 186 | + |
187 | +The Memory Management Unit is responsible for translating virtual addresses to | 187 | +The Memory Management Unit is responsible for translating virtual addresses to |
188 | +physical addresses and managing memory protection. QEMU system mode is named | 188 | +physical addresses and managing memory protection. QEMU system mode is named |
189 | +"softmmu" precisely because it implements this in software, including a TLB | 189 | +"softmmu" precisely because it implements this in software, including a TLB |
190 | +(Translation lookaside buffer), for the guest virtual machine. | 190 | +(Translation lookaside buffer), for the guest virtual machine. |
191 | + | 191 | + |
192 | +QEMU user-mode does not implement a full software MMU, but "simply" translates | 192 | +QEMU user-mode does not implement a full software MMU, but "simply" translates |
193 | +virtual addresses by adding a specific offset, and relying on host MMU/OS | 193 | +virtual addresses by adding a specific offset, and relying on host MMU/OS |
194 | +instead. | 194 | +instead. |
195 | + | 195 | + |
196 | +Monitor / QMP / HMP | 196 | +Monitor / QMP / HMP |
197 | +------------------- | 197 | +------------------- |
198 | + | 198 | + |
199 | +The `QEMU Monitor <QEMU monitor>` is a text interface which can be used to interact | 199 | +The `QEMU Monitor <QEMU monitor>` is a text interface which can be used to interact |
200 | +with a running virtual machine. | 200 | +with a running virtual machine. |
201 | + | 201 | + |
202 | +QMP stands for QEMU Monitor Protocol and is a json based interface. | 202 | +QMP stands for QEMU Monitor Protocol and is a json based interface. |
203 | +HMP stands for Human Monitor Protocol and is a set of text commands available | 203 | +HMP stands for Human Monitor Protocol and is a set of text commands available |
204 | +for users who prefer natural language to json. | 204 | +for users who prefer natural language to json. |
205 | + | 205 | + |
206 | +MTTCG | 206 | +MTTCG |
207 | +----- | 207 | +----- |
208 | + | 208 | + |
209 | +Multiple CPU support was first implemented using a round-robin algorithm | 209 | +Multiple CPU support was first implemented using a round-robin algorithm |
210 | +running on a single thread. Later on, `Multi-threaded TCG <mttcg>` was developed | 210 | +running on a single thread. Later on, `Multi-threaded TCG <mttcg>` was developed |
211 | +to benefit from multiple cores to speed up execution. | 211 | +to benefit from multiple cores to speed up execution. |
212 | + | 212 | + |
213 | +Plugins | 213 | +Plugins |
214 | +------- | 214 | +------- |
215 | + | 215 | + |
216 | +`TCG Plugins <TCG Plugins>` is an API used to instrument guest code, in system | 216 | +`TCG Plugins <TCG Plugins>` is an API used to instrument guest code, in system |
217 | +and user mode. The end goal is to have a similar set of functionality compared | 217 | +and user mode. The end goal is to have a similar set of functionality compared |
218 | +to `DynamoRIO <https://dynamorio.org/>`_ or `valgrind <https://valgrind.org/>`_. | 218 | +to `DynamoRIO <https://dynamorio.org/>`_ or `valgrind <https://valgrind.org/>`_. |
219 | + | 219 | + |
220 | +One key advantage of QEMU plugins is that they can be used to perform | 220 | +One key advantage of QEMU plugins is that they can be used to perform |
221 | +architecture agnostic instrumentation. | 221 | +architecture agnostic instrumentation. |
222 | + | 222 | + |
223 | +Patchew | 223 | +Patchew |
224 | +------- | 224 | +------- |
225 | + | 225 | + |
226 | +`Patchew <https://patchew.org/QEMU/>`_ is a website that tracks patches on the | 226 | +`Patchew <https://patchew.org/QEMU/>`_ is a website that tracks patches on the |
227 | +Mailing List. | 227 | +Mailing List. |
228 | + | 228 | + |
229 | +PR | 229 | +PR |
230 | +-- | 230 | +-- |
231 | + | 231 | + |
232 | +Once a series is reviewed and accepted by a subsystem maintainer, it will be | 232 | +Once a series is reviewed and accepted by a subsystem maintainer, it will be |
233 | +included in a PR (Pull Request) that the project maintainer will merge into QEMU | 233 | +included in a PR (Pull Request) that the project maintainer will merge into QEMU |
234 | +main branch, after running tests. | 234 | +main branch, after running tests. |
235 | + | 235 | + |
236 | +The QEMU project doesn't currently expect most developers to directly submit | 236 | +The QEMU project doesn't currently expect most developers to directly submit |
237 | +pull requests. | 237 | +pull requests. |
238 | + | 238 | + |
239 | +QCOW2 | 239 | +QCOW2 |
240 | +----- | 240 | +----- |
241 | + | 241 | + |
242 | +QEMU Copy On Write is a disk format developed by QEMU. It provides transparent | 242 | +QEMU Copy On Write is a disk format developed by QEMU. It provides transparent |
243 | +compression, automatic extension, and many other advantages over a raw image. | 243 | +compression, automatic extension, and many other advantages over a raw image. |
244 | + | 244 | + |
245 | +qcow2 is the recommended format to use. | 245 | +qcow2 is the recommended format to use. |
246 | + | 246 | + |
247 | +QEMU | 247 | +QEMU |
248 | +---- | 248 | +---- |
249 | + | 249 | + |
250 | +`QEMU (Quick Emulator) <https://www.qemu.org/>`_ is a generic and open source | 250 | +`QEMU (Quick Emulator) <https://www.qemu.org/>`_ is a generic and open source |
251 | +machine emulator and virtualizer. | 251 | +machine emulator and virtualizer. |
252 | + | 252 | + |
253 | +QOM | 253 | +QOM |
254 | +--- | 254 | +--- |
255 | + | 255 | + |
256 | +`QEMU Object Model <qom>` is an object oriented API used to define various | 256 | +`QEMU Object Model <qom>` is an object oriented API used to define various |
257 | +devices and hardware in the QEMU codebase. | 257 | +devices and hardware in the QEMU codebase. |
258 | + | 258 | + |
259 | +Record/replay | 259 | +Record/replay |
260 | +------------- | 260 | +------------- |
261 | + | 261 | + |
262 | +`Record/replay <replay>` is a feature of QEMU allowing to have a deterministic | 262 | +`Record/replay <replay>` is a feature of QEMU allowing to have a deterministic |
263 | +and reproducible execution of a virtual machine. | 263 | +and reproducible execution of a virtual machine. |
264 | + | 264 | + |
265 | +Rust | 265 | +Rust |
266 | +---- | 266 | +---- |
267 | + | 267 | + |
268 | +`A new programming language <https://www.rust-lang.org/>`_, memory safe by | 268 | +`A new programming language <https://www.rust-lang.org/>`_, memory safe by |
269 | +default. There is a work in progress to integrate it in QEMU codebase for | 269 | +default. There is a work in progress to integrate it in QEMU codebase for |
270 | +various subsystems. | 270 | +various subsystems. |
271 | + | 271 | + |
272 | +System mode | 272 | +System mode |
273 | +----------- | 273 | +----------- |
274 | + | 274 | + |
275 | +QEMU System mode provides a virtual model of an entire machine (CPU, memory and | 275 | +QEMU System mode provides a virtual model of an entire machine (CPU, memory and |
276 | +emulated devices) to run a guest OS. In this mode the CPU may be fully emulated, | 276 | +emulated devices) to run a guest OS. In this mode the CPU may be fully emulated, |
277 | +or it may work with a hypervisor such as KVM, Xen or Hypervisor.Framework to | 277 | +or it may work with a hypervisor such as KVM, Xen or Hypervisor.Framework to |
278 | +allow the guest to run directly on the host CPU. | 278 | +allow the guest to run directly on the host CPU. |
279 | + | 279 | + |
280 | +QEMU System mode is called :ref:`softmmu <softmmu>` as well. | 280 | +QEMU System mode is called :ref:`softmmu <softmmu>` as well. |
281 | + | 281 | + |
282 | +.. _target: | 282 | +.. _target: |
283 | + | 283 | + |
284 | +Target | 284 | +Target |
285 | +------ | 285 | +------ |
286 | + | 286 | + |
287 | +The term "target" can be ambiguous. In most places in QEMU it is used as a | 287 | +The term "target" can be ambiguous. In most places in QEMU it is used as a |
288 | +synonym for :ref:`guest`. For example the code for emulating Arm CPUs is in | 288 | +synonym for :ref:`guest`. For example the code for emulating Arm CPUs is in |
289 | +``target/arm/``. However in the :ref:`TCG subsystem <tcg>` "target" refers to the | 289 | +``target/arm/``. However in the :ref:`TCG subsystem <tcg>` "target" refers to the |
290 | +architecture which QEMU is running on, i.e. the :ref:`host`. | 290 | +architecture which QEMU is running on, i.e. the :ref:`host`. |
291 | + | 291 | + |
292 | +TCG | 292 | +TCG |
293 | +--- | 293 | +--- |
294 | + | 294 | + |
295 | +TCG is the QEMU `Tiny Code Generator <tcg>`. It is the JIT (just-in-time) | 295 | +TCG is the QEMU `Tiny Code Generator <tcg>`. It is the JIT (just-in-time) |
296 | +compiler we use to emulate a guest CPU in software. | 296 | +compiler we use to emulate a guest CPU in software. |
297 | + | 297 | + |
298 | +It is one of the accelerators supported by QEMU, and supports a lot of | 298 | +It is one of the accelerators supported by QEMU, and supports a lot of |
299 | +guest/host architectures. | 299 | +guest/host architectures. |
300 | + | 300 | + |
301 | +User mode | 301 | +User mode |
302 | +--------- | 302 | +--------- |
303 | + | 303 | + |
304 | +QEMU User mode can launch processes compiled for one CPU on another CPU. In this | 304 | +QEMU User mode can launch processes compiled for one CPU on another CPU. In this |
305 | +mode the CPU is always emulated. In this mode, QEMU translate system calls from | 305 | +mode the CPU is always emulated. In this mode, QEMU translate system calls from |
306 | +guest to host kernel. It is available for Linux and BSD. | 306 | +guest to host kernel. It is available for Linux and BSD. |
307 | + | 307 | + |
308 | +VirtIO | 308 | +VirtIO |
309 | +------ | 309 | +------ |
310 | + | 310 | + |
311 | +VirtIO is an open standard used to define and implement virtual devices with a | 311 | +VirtIO is an open standard used to define and implement virtual devices with a |
312 | +minimal overhead, defining a set of data structures and hypercalls (similar to | 312 | +minimal overhead, defining a set of data structures and hypercalls (similar to |
313 | +system calls, but targeting an hypervisor, which happens to be QEMU in our | 313 | +system calls, but targeting an hypervisor, which happens to be QEMU in our |
314 | +case). It's designed to be more efficient than emulating a real device, by | 314 | +case). It's designed to be more efficient than emulating a real device, by |
315 | +minimizing the amount of interactions between a guest VM and its hypervisor. | 315 | +minimizing the amount of interactions between a guest VM and its hypervisor. |
316 | + | 316 | + |
317 | +vhost-user | 317 | +vhost-user |
318 | +---------- | 318 | +---------- |
319 | + | 319 | + |
320 | +`Vhost-user <vhost_user>` is an interface used to implement VirtIO devices | 320 | +`Vhost-user <vhost_user>` is an interface used to implement VirtIO devices |
321 | +outside of QEMU itself. | 321 | +outside of QEMU itself. |
322 | diff --git a/docs/index.rst b/docs/index.rst | 322 | diff --git a/docs/index.rst b/docs/index.rst |
323 | index XXXXXXX..XXXXXXX 100644 | 323 | index XXXXXXX..XXXXXXX 100644 |
324 | --- a/docs/index.rst | 324 | --- a/docs/index.rst |
325 | +++ b/docs/index.rst | 325 | +++ b/docs/index.rst |
326 | @@ -XXX,XX +XXX,XX @@ Welcome to QEMU's documentation! | 326 | @@ -XXX,XX +XXX,XX @@ Welcome to QEMU's documentation! |
327 | interop/index | 327 | interop/index |
328 | specs/index | 328 | specs/index |
329 | devel/index | 329 | devel/index |
330 | + glossary | 330 | + glossary |
331 | diff --git a/docs/system/arm/virt.rst b/docs/system/arm/virt.rst | 331 | diff --git a/docs/system/arm/virt.rst b/docs/system/arm/virt.rst |
332 | index XXXXXXX..XXXXXXX 100644 | 332 | index XXXXXXX..XXXXXXX 100644 |
333 | --- a/docs/system/arm/virt.rst | 333 | --- a/docs/system/arm/virt.rst |
334 | +++ b/docs/system/arm/virt.rst | 334 | +++ b/docs/system/arm/virt.rst |
335 | @@ -XXX,XX +XXX,XX @@ | 335 | @@ -XXX,XX +XXX,XX @@ |
336 | +.. _arm-virt: | 336 | +.. _arm-virt: |
337 | + | 337 | + |
338 | 'virt' generic virtual platform (``virt``) | 338 | 'virt' generic virtual platform (``virt``) |
339 | ========================================== | 339 | ========================================== |
340 | 340 | ||
341 | diff --git a/docs/system/images.rst b/docs/system/images.rst | 341 | diff --git a/docs/system/images.rst b/docs/system/images.rst |
342 | index XXXXXXX..XXXXXXX 100644 | 342 | index XXXXXXX..XXXXXXX 100644 |
343 | --- a/docs/system/images.rst | 343 | --- a/docs/system/images.rst |
344 | +++ b/docs/system/images.rst | 344 | +++ b/docs/system/images.rst |
345 | @@ -XXX,XX +XXX,XX @@ VM snapshots currently have the following known limitations: | 345 | @@ -XXX,XX +XXX,XX @@ VM snapshots currently have the following known limitations: |
346 | - A few device drivers still have incomplete snapshot support so their | 346 | - A few device drivers still have incomplete snapshot support so their |
347 | state is not saved or restored properly (in particular USB). | 347 | state is not saved or restored properly (in particular USB). |
348 | 348 | ||
349 | +.. _block-drivers: | 349 | +.. _block-drivers: |
350 | + | 350 | + |
351 | .. include:: qemu-block-drivers.rst.inc | 351 | .. include:: qemu-block-drivers.rst.inc |
352 | diff --git a/docs/tools/qemu-nbd.rst b/docs/tools/qemu-nbd.rst | 352 | diff --git a/docs/tools/qemu-nbd.rst b/docs/tools/qemu-nbd.rst |
353 | index XXXXXXX..XXXXXXX 100644 | 353 | index XXXXXXX..XXXXXXX 100644 |
354 | --- a/docs/tools/qemu-nbd.rst | 354 | --- a/docs/tools/qemu-nbd.rst |
355 | +++ b/docs/tools/qemu-nbd.rst | 355 | +++ b/docs/tools/qemu-nbd.rst |
356 | @@ -XXX,XX +XXX,XX @@ | 356 | @@ -XXX,XX +XXX,XX @@ |
357 | +.. _qemu-nbd: | 357 | +.. _qemu-nbd: |
358 | + | 358 | + |
359 | ===================================== | 359 | ===================================== |
360 | QEMU Disk Network Block Device Server | 360 | QEMU Disk Network Block Device Server |
361 | ===================================== | 361 | ===================================== |
362 | -- | 362 | -- |
363 | 2.39.5 | 363 | 2.39.5 | diff view generated by jsdifflib |