summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormstsirkin <mstsirkin@0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652>2014-03-05 14:17:10 +0000
committermstsirkin <mstsirkin@0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652>2014-03-05 14:17:10 +0000
commit431a52f42422c9db413e4d3a61393f7ad84b52a6 (patch)
treef11928234a7fec570a6f29973e7b89711f4085b1
parentf3d15f29a020194ce514ff8568f85ce4ec0dbc1b (diff)
block: legacy message framing
git-svn-id: https://tools.oasis-open.org/version-control/svn/virtio@314 0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652
-rw-r--r--content.tex40
1 files changed, 28 insertions, 12 deletions
diff --git a/content.tex b/content.tex
index 7ec8bf7..b055d1a 100644
--- a/content.tex
+++ b/content.tex
@@ -3498,15 +3498,15 @@ according to the native endian of the guest rather than
(necessarily when not using the legacy interface) little-endian.
-\subsubsection{Legacy Interface: Virtqueue}\label{sec:Device
+\subsubsection{Legacy Interface: Framing Requirements}\label{sec:Device
Types / Network Device / Legacy Interface: Framing Requirements}
When using legacy interfaces, transitional drivers which have not
negotiated VIRTIO_F_ANY_LAYOUT MUST use a single descriptor for the
struct virtio_net_hdr on both transmit and receive, with the
-network data in the following descriptors. See \ref{sec:Basic
-Facilities of a Virtio Device / Virtqueues / Message Framing}.
-Further, when using the control virtqueue (see \ref{sec:Device
+network data in the following descriptors.
+
+Additionally, when using the control virtqueue (see \ref{sec:Device
Types / Network Device / Device Operation / Control Virtqueue})
, transitional drivers which have not
negotiated VIRTIO_F_ANY_LAYOUT MUST:
@@ -3527,6 +3527,8 @@ with no padding.
\field{ack} field
\end{itemize}
+See \ref{sec:Basic
+Facilities of a Virtio Device / Virtqueues / Message Framing}.
\section{Block Device}\label{sec:Device Types / Block Device}
@@ -3792,15 +3794,29 @@ the \field{sense} buffer.
requests and indicates the residual size, calculated as data
length - number of bytes actually transferred.
-Historically, devices assumed that \field{type}, \field{ioprio} and
-\field{sector} reside in a single, separate device-readable buffer;
-\field{errors}, \field{data_len}, \field{sense_len} and residual reside in a single,
-separate device-writable buffer; \field{sense} in a separate
-device-writable buffer of size 96 bytes, by itself; \field{errors},
-\field{data_len}, \field{sense_len} and \field{residual} in a single device-writable buffer;
-and \field{status} is a separate device-writable buffer of size 1
-byte, by itself.
+\subsubsection{Legacy Interface: Framing Requirements}\label{sec:Device
+Types / Block Device / Legacy Interface: Framing Requirements}
+
+When using legacy interfaces, transitional drivers which have not
+negotiated VIRTIO_F_ANY_LAYOUT:
+
+\begin{itemize}
+\item MUST use a single 8-byte descriptor containing \field{type},
+ \field{reseved} and \field{sector}, followed by descriptors
+ for \field{data}, then finally a separate 1-byte descriptor
+ for \field{status}.
+
+\item For SCSI commands there are additional constraints.
+ \field{errors}, \field{data_len}, \field{sense_len} and
+ \field{residual} MUST reside in a single, separate
+ device-writable descriptor, \field{sense} MUST reside in a
+ single separate device-writable descriptor of size 96 bytes,
+ and \field{errors}, \field{data_len}, \field{sense_len} and
+ \field{residual} MUST reside a single separate
+ device-writable descriptor.
+\end{itemize}
+See \ref{sec:Basic Facilities of a Virtio Device / Virtqueues / Message Framing}.
\section{Console Device}\label{sec:Device Types / Console Device}