Re: [PATCH 08/13] conf: Introduce parser, formatter for uid and fid

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 06/08/2018 03:40 AM, Laine Stump wrote:
On 05/25/2018 07:05 AM, Pino Toscano wrote:
On Thursday, 24 May 2018 14:24:33 CEST Xiao Feng Ren wrote:
From: Yi Min Zhao <zyimin@xxxxxxxxxxxxx>

This patch introduces new XML parser/formatter functions. Uid is
16-bit and non-zero. Fid is 32-bit. They are added as two new
attributes of PCI address, and parsed/formatted along with PCI
address parser/formatter.

Signed-off-by: Yi Min Zhao <zyimin@xxxxxxxxxxxxx>
Reviewed-by: Boris Fiuczynski <fiuczy@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Stefan Zimmermann <stzi@xxxxxxxxxxxxx>
Reviewed-by: Bjoern Walk <bwalk@xxxxxxxxxxxxxxxxxx>
---
  docs/schemas/basictypes.rng   | 28 ++++++++++++++++
  docs/schemas/domaincommon.rng |  1 +
  src/conf/device_conf.c        | 74 +++++++++++++++++++++++++++++++++++++++++++
  src/conf/domain_addr.c        |  3 ++
  src/conf/domain_conf.c        |  4 +++
  src/util/virpci.h             |  3 ++
  6 files changed, 113 insertions(+)

diff --git a/docs/schemas/basictypes.rng b/docs/schemas/basictypes.rng
index 1a18cd31b1..8050a3ebc4 100644
--- a/docs/schemas/basictypes.rng
+++ b/docs/schemas/basictypes.rng
@@ -111,6 +111,34 @@
        </attribute>
      </optional>
    </define>
+  <define name="zpciaddress">
+    <optional>
+      <attribute name="uid">
+        <choice>
+          <data type="string">
+            <param name="pattern">(0x)?[0-9a-fA-F]{1,4}</param>
+          </data>
+          <data type="unsignedInt">
+            <param name="minInclusive">1</param>
+            <param name="maxInclusive">65535</param>
+          </data>
+        </choice>
+      </attribute>
This seems to be the "uint16" type already.

+    </optional>
+    <optional>
+      <attribute name="fid">
+        <choice>
+          <data type="string">
+            <param name="pattern">(0x)?[0-9a-fA-F]{1,8}</param>
+          </data>
+          <data type="unsignedLong">
+            <param name="minInclusive">0</param>
+            <param name="maxInclusive">4294967295</param>
+          </data>
+        </choice>
+      </attribute>
This could be a new "uint32" type, changing the 0x prefix as
non-optional (otherwise the value "10" can be both valid as decimal
and hexadeciaml).

My personal opinion - if numbers without a leading 0x are consistently
not interpreted as hexadecimal, then there is no ambiguity and no
confusion. If there's a leading 0x, then it is hexadecimal. No leading
0x, it's decimal. Period.
Laine,
so are you saying the pattern for type string should for uid and fid start with 0x instead of (0x)?. That would certainly work.
The difference is than the error message if e.g. for uid a user specifies 0.
The schema error is than
error: XML document failed to validate against schema: Unable to validate doc against /usr/share/libvirt/schemas/domain.rng
Extra element devices in interleave
Element domain failed to validate content

and with the optional 0x the value 0 would bypass the schema and the checks in the code reports the user friendly error
error: XML error: Invalid PCI address uid='0x0', must be > 0x0 and <= 0xffff

I agree that the later is really tricking the schema but with usability in mind (you hopefully agree that the schema error message su(&s ) I definitely vote for the later solution.... :-(


--
Mit freundlichen Grüßen/Kind regards
   Boris Fiuczynski

IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martina Köderitz
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux