On Thu, Nov 08, 2012 at 09:28:06AM +0800, Osier Yang wrote:
On 2012年11月08日 05:04, Dave Allan wrote:
>On Wed, Nov 07, 2012 at 11:24:43PM +0800, Osier Yang wrote:
>>On 2012年11月05日 21:34, Martin Kletzander wrote:
>>>On 11/05/2012 08:04 AM, Osier Yang wrote:
>>>>QEMU supports to set vendor and product strings for disk since
>>>>1.2.0 (only scsi-disk, scsi-hd, scsi-cd support it), this patch
>>>>exposes it with new XML elements<vendor> and<product> of
disk
>>>>device.
>>>>---
>>>> docs/formatdomain.html.in | 10 +++++
>>>> docs/schemas/domaincommon.rng | 10 +++++
>>>> src/conf/domain_conf.c | 30
++++++++++++++++
>>>> src/conf/domain_conf.h | 2 +
>>>> src/qemu/qemu_command.c | 29
++++++++++++++++
>>>> .../qemuxml2argv-disk-scsi-disk-vpd.args | 13 +++++++
>>>> .../qemuxml2argv-disk-scsi-disk-vpd.xml | 36
++++++++++++++++++++
>>>> tests/qemuxml2argvtest.c | 4 ++
>>>> 8 files changed, 134 insertions(+), 0 deletions(-)
>>>> create mode 100644
tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-disk-vpd.args
>>>> create mode 100644
tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-disk-vpd.xml
>>>>
>>>>diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
>>>>index c8da33d..cc9e871 100644
>>>>--- a/docs/formatdomain.html.in
>>>>+++ b/docs/formatdomain.html.in
>>>>@@ -1657,6 +1657,16 @@
>>>> of 16 hexadecimal digits.
>>>> <span class='since'>Since 0.10.1</span>
>>>> </dd>
>>>>+<dt><code>vendor</code></dt>
>>>>+<dd>If present, this element specifies the vendor of a virtual
hard
>>>>+ disk or CD-ROM device. It's a not more than 8 bytes
alphanumeric string.
>>>
>>>Last sentence doesn't make sense, I suggest changing it to either:
"It
>>>can't be longer than 8 alphanumeric characters." or simply
"Maximum 8
>>>alphanumeric characters."
>>
>>Okay, honestly, I wasn't comfortable with the sentence, but can't
>>get a better one at that time, :-) I will change your advise a bit:
>>
>>It must not be longer than 8 alphanumeric characters.
>
>Not to be pedantic, but what happens if you hand it doublebyte
>characters?
Ah, good question, though QEMU will truncate the string to 8 bytes
anyway, should we do some translation in libvirt? the problem is
how to map the doublebytes vendors/product to single bytes ones,
is there some public specification available? /me starts to think
if it's snake leg (or breaking fly on the wheel) to do the checking
if it's too heavy.
Mostly I was curious about how the code handled doublebyte characters,
but now that I think about it, the SCSI spec mandates 8 bytes of
ASCII[1], but it sounds like qemu is already enforcing that, so I
think it's fine just to let it be freeform and note the spec's
requirement in the documentation.
(I had to google "putting legs on a snake", and yes, we should avoid
that.)
Dave
[1]
http://en.wikipedia.org/wiki/SCSI_Inquiry_Command