diff options
| author | mstsirkin <mstsirkin@0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652> | 2014-03-05 14:17:10 +0000 | 
|---|---|---|
| committer | mstsirkin <mstsirkin@0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652> | 2014-03-05 14:17:10 +0000 | 
| commit | 431a52f42422c9db413e4d3a61393f7ad84b52a6 (patch) | |
| tree | f11928234a7fec570a6f29973e7b89711f4085b1 /content.tex | |
| parent | f3d15f29a020194ce514ff8568f85ce4ec0dbc1b (diff) | |
block: legacy message framing
git-svn-id: https://tools.oasis-open.org/version-control/svn/virtio@314 0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652
Diffstat (limited to 'content.tex')
| -rw-r--r-- | content.tex | 40 | 
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} | 
