@@ -3,9 +3,8 @@ \section{Virtio Over Messages}\label{sec:Virtio Transport Options / Virtio Over
33\newcommand {\conceptref }[1]{\hyperref [sec:Virtio Transport Options / Virtio Over Messages / Basic Concepts / #1]{#1}}
44\newcommand {\msgref }[1]{\hyperref [sec:Virtio Transport Options / Virtio Over Messages / Transport Messages / VIRTIO_MSG_#1]{VIRTIO_MSG_#1}}
55\newcommand {\busref }[1]{\hyperref [sec:Virtio Transport Options / Virtio Over Messages / Bus Messages / BUS_MSG_#1]{BUS_MSG_#1}}
6-
7- \subsection {Introduction }
8- \label {sec:Virtio Transport Options / Virtio Over Messages / Introduction }
6+ \newcommand {\msgdef }[1]{\subsubsection {VIRTIO_MSG_#1 }\label {sec:Virtio Transport Options / Virtio Over Messages / Transport Messages / VIRTIO_MSG_ #1 }}
7+ \newcommand {\busdef }[1]{\subsubsection {BUS_MSG_#1 }\label {sec:Virtio Transport Options / Virtio Over Messages / Bus Messages / BUS_MSG_ #1 }}
98
109This section defines \textbf {virtio-msg }, a transport mechanism that encapsulates
1110virtio operations as discrete message exchanges rather than relying on PCI or
@@ -14,8 +13,6 @@ \subsection{Introduction}
1413negotiation, virtqueue setup), ensuring that a single, generic transport layer
1514can be reused across multiple bus implementations.
1615
17- \subsubsection {Purpose }
18-
1916virtio-msg addresses several key objectives:
2017
2118\begin {itemize }
@@ -37,6 +34,15 @@ \subsubsection{Purpose}
3734 integrate smoothly once a device is discovered and registered.
3835\end {itemize }
3936
37+ \subsection {Basic Concepts }
38+ \label {sec:Virtio Transport Options / Virtio Over Messages / Basic Concepts }
39+
40+ The virtio-msg transport relies on a set of foundational concepts to ensure
41+ reusability across different bus implementations and flexibility in device
42+ capabilities. This section defines those concepts and clarifies how they apply,
43+ regardless of whether the bus leverages message-based enumeration or platform
44+ data for device discovery.
45+
4046\subsubsection {High-Level Architecture }
4147
4248virtio-msg operates around two layers:
@@ -73,6 +79,8 @@ \subsubsection{High-Level Architecture}
7379
7480\subsubsection {System Topology }
7581
82+ A virtio-msg system contains the following elements:
83+
7684\begin {itemize }
7785 \item \textbf {Bus Instances and Devices }: Each bus instance advertises its
7886 capabilities (e.g., transport revision, maximum message size) and
@@ -87,26 +95,6 @@ \subsubsection{System Topology}
8795 the correct device instance based on device number.
8896\end {itemize }
8997
90- \subsubsection {Optional Bus Messages }
91-
92- This specification \emph {defines } messages such as \busref {GET_DEVICES },
93- \busref {EVENT_DEVICE }, and \busref {PING } for a
94- completely message-based approach to enumeration, hotplug, and bus-wide health.
95- However, these are \emph {not } mandatory if a bus instance already handles those
96- functions via firmware, device tree, or other platform features. The only strict
97- requirement is that the bus MUST be able to forward device-specific
98- \emph {transport messages } once a device is recognized, so the virtio-msg driver
99- can manage it.
100-
101- \subsection {Basic Concepts }
102- \label {sec:Virtio Transport Options / Virtio Over Messages / Basic Concepts }
103-
104- The virtio-msg transport relies on a set of foundational concepts to ensure
105- reusability across different bus implementations and flexibility in device
106- capabilities. This section defines those concepts and clarifies how they apply,
107- regardless of whether the bus leverages message-based enumeration or platform
108- data for device discovery.
109-
11098\subsubsection {Transport Revisions and Maximum Message Size }
11199\label {sec:Virtio Transport Options / Virtio Over Messages / Basic Concepts / Revisions }
112100
@@ -293,6 +281,17 @@ \subsubsection{Bus vs. Transport Messages}
293281information from a device tree or firmware tables, while still supporting
294282fully message-based enumeration and hotplug if desired.
295283
284+ \subsubsection {Optional Bus Messages }
285+
286+ This specification \emph {defines } messages such as \busref {GET_DEVICES },
287+ \busref {EVENT_DEVICE }, and \busref {PING } for a
288+ completely message-based approach to enumeration, hotplug, and bus-wide health.
289+ However, these are \emph {not } mandatory if a bus instance already handles those
290+ functions via firmware, device tree, or other platform features. The only strict
291+ requirement is that the bus MUST be able to forward device-specific
292+ \emph {transport messages } once a device is recognized, so the virtio-msg driver
293+ can manage it.
294+
296295\subsubsection {Endianness }
297296\label {sec:Virtio Transport Options / Virtio Over Messages / Basic Concepts / Endianness }
298297
@@ -837,8 +836,6 @@ \subsubsection{Overview}
837836 \item \msgref {EVENT_CONFIG }
838837\end {itemize }
839838
840- \newcommand {\msgdef }[1]{\subsubsection {VIRTIO_MSG_#1 }\label {sec:Virtio Transport Options / Virtio Over Messages / Transport Messages / VIRTIO_MSG_ #1 }}
841-
842839\msgdef {GET_DEVICE_INFO}
843840
844841This message is sent by the virtio-msg transport driver and requires a
@@ -1173,8 +1170,6 @@ \subsection{Bus Messages}\label{sec:Virtio Transport Options / Virtio Over Messa
11731170hotplug, etc. via virtio-msg, it SHOULD implement the corresponding
11741171message definitions below.
11751172
1176- \newcommand {\busdef }[1]{\subsubsection {BUS_MSG_#1 }\label {sec:Virtio Transport Options / Virtio Over Messages / Bus Messages / BUS_MSG_ #1 }}
1177-
11781173\busdef {GET_DEVICES}
11791174
11801175The driver-side bus uses this request to enumerate device numbers on the
0 commit comments