]> granicus.if.org Git - sysstat/commitdiff
sadf updated for USB devices statistics.
authorSebastien Godard <sysstat@orange.fr>
Sat, 28 May 2011 14:01:41 +0000 (16:01 +0200)
committerSebastien Godard <sysstat@orange.fr>
Sat, 28 May 2011 14:01:41 +0000 (16:01 +0200)
XML and DTD files updated and cleaned.

CHANGES
activity.c
rndr_stats.c
sadf.h
xml/sysstat.dtd
xml/sysstat.xsd
xml_stats.c

diff --git a/CHANGES b/CHANGES
index e2500d10cd42dab5cce90a0987f6fbc85c735d2e..623562a4e1733c059b9f921fd2236056f4641285 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -15,7 +15,10 @@ xxxx/xx/xx: Version 10.0.1 - Sebastien Godard (sysstat <at> orange.fr)
          "Posix Open" column in /proc/fs/cifs/Stats file. This is now
          fixed.
        * [Ivana Varekova]: Close file descriptor in read_uptime()
-         function (file rd_stats.c).
+         function (rd_stats.c file).
+       * Fixed XML output displayed by sadf (hugepages statistics were
+         included in power management ones).
+       * DTD and XSD documents updated and cleaned.
        * NLS updated. Esperanto translation added.
 
 2011/03/15: Version 10.0.0 - Sebastien Godard (sysstat <at> orange.fr)
index d467a5413d67eed3acea3fb50f33aa21521fd4bd..c559c2845a98c5b501a62417d1de5a828086104a 100644 (file)
@@ -1100,7 +1100,7 @@ struct activity huge_act = {
 /* CPU weighted frequency */
 struct activity pwr_wghfreq_act = {
        .id             = A_PWR_WGHFREQ,
-       .options        = AO_CLOSE_MARKUP,
+       .options        = AO_NULL,
        .magic          = ACTIVITY_MAGIC_BASE,
        .group          = G_POWER,
 #ifdef SOURCE_SADC
@@ -1130,7 +1130,7 @@ struct activity pwr_wghfreq_act = {
 /* USB devices plugged into the system */
 struct activity pwr_usb_act = {
        .id             = A_PWR_USB,
-       .options        = AO_NULL,
+       .options        = AO_CLOSE_MARKUP,
        .magic          = ACTIVITY_MAGIC_BASE,
        .group          = G_POWER,
 #ifdef SOURCE_SADC
index dd79ae917258e7c78eb521edf561d14ada99bca0..293bf6255fa47278f37f06d02d063a6502d33d71 100644 (file)
@@ -2678,7 +2678,58 @@ __print_funct_t render_pwr_wghfreq_stats(struct activity *a, int isdb, char *pre
 __print_funct_t render_pwr_usb_stats(struct activity *a, int isdb, char *pre,
                                     int curr, unsigned long long itv)
 {
-/*
-FIXME
-*/
+       int i;
+       struct stats_pwr_usb *suc;
+       char id[9];
+
+       for (i = 0; i < a->nr; i++) {
+               suc = (struct stats_pwr_usb *) ((char *) a->buf[curr] + i * a->msize);
+
+               if (!suc->bus_nr)
+                       /* Bus#0 doesn't exist: We are at the end of the list */
+                       break;
+
+               sprintf(id, "%x", suc->vendor_id);
+               render(isdb, pre, PT_USESTR,
+                      "bus%d\tidvendor",
+                      "%d",
+                      cons(iv, suc->bus_nr, NOVAL),
+                      NOVAL,
+                      NOVAL,
+                      id);
+
+               sprintf(id, "%x", suc->product_id);
+               render(isdb, pre, PT_USESTR,
+                      "bus%d\tidprod",
+                      NULL,
+                      cons(iv, suc->bus_nr, NOVAL),
+                      NOVAL,
+                      NOVAL,
+                      id);
+
+               render(isdb, pre, PT_USEINT,
+                      "bus%d\tmaxpower",
+                      NULL,
+                      cons(iv, suc->bus_nr, NOVAL),
+                      suc->bmaxpower << 1,
+                      NOVAL,
+                      NULL);
+
+               render(isdb, pre, PT_USESTR,
+                      "bus%d\tmanufact",
+                      NULL,
+                      cons(iv, suc->bus_nr, NOVAL),
+                      NOVAL,
+                      NOVAL,
+                      suc->manufacturer);
+
+               render(isdb, pre,
+                      (DISPLAY_HORIZONTALLY(flags) ? PT_USESTR : PT_USESTR | PT_NEWLIN),
+                      "bus%d\tproduct",
+                      NULL,
+                      cons(iv, suc->bus_nr, NOVAL),
+                      NOVAL,
+                      NOVAL,
+                      suc->product);
+       }
 }
diff --git a/sadf.h b/sadf.h
index e51bc5b1e893910e96aa9e740f3fe3a6f9922cdb..bbba62e951ca2a79cba11eed6581e08a5424e5e8 100644 (file)
--- a/sadf.h
+++ b/sadf.h
@@ -14,6 +14,6 @@
 #define S_O_DBD_OPTION         5
 
 /* DTD version for XML output */
-#define XML_DTD_VERSION        "2.10"
+#define XML_DTD_VERSION        "2.11"
 
 #endif  /* _SADF_H */
index db1e44c0fec0953e77db6bafe75e54690d606309..77798288dc1558efe89a40ebec336a9586f4d5a9 100644 (file)
@@ -1,24 +1,53 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!--DTD v2.10 for sysstat. See sadf.h -->
+<!--DTD v2.11 for sysstat. See sadf.h -->
+
+<!ELEMENT sysstat (sysdata-version, host)>
+
+<!ELEMENT sysdata-version (#PCDATA)>
+
+<!ELEMENT host (sysname, release, machine, number-of-cpus, file-date, statistics, restarts, comments)>
+<!ATTLIST host
+       nodename CDATA #REQUIRED
+>
+
+<!ELEMENT sysname (#PCDATA)>
+
+<!ELEMENT release (#PCDATA)>
+
+<!ELEMENT machine (#PCDATA)>
+
+<!ELEMENT number-of-cpus (#PCDATA)>
+
+<!ELEMENT file-date (#PCDATA)>
+
+<!ELEMENT statistics (timestamp+)>
+
+<!ELEMENT timestamp (cpu-load, cpu-load-all, process-and-context-switch, interrupts, swap-pages, paging, io, memory, hugepages, kernel, queue, serial, disk, network, power-management)>
+<!ATTLIST timestamp
+       date CDATA #REQUIRED
+       time CDATA #REQUIRED
+       interval CDATA #REQUIRED
+>
+
+<!ELEMENT restarts (boot+)>
+
 <!ELEMENT boot EMPTY>
 <!ATTLIST boot
        date CDATA #REQUIRED
        time CDATA #REQUIRED
 >
+
+<!ELEMENT comments (comment+)>
+
 <!ELEMENT comment EMPTY>
 <!ATTLIST comment
        date CDATA #REQUIRED
        time CDATA #REQUIRED
        com CDATA #REQUIRED
 >
-<!ELEMENT buffers (#PCDATA)>
-<!ELEMENT bufpg (#PCDATA)>
-<!ELEMENT cached (#PCDATA)>
-<!ELEMENT campg (#PCDATA)>
-<!ELEMENT commit (#PCDATA)>
-<!ELEMENT commit-percent (#PCDATA)>
-<!ELEMENT active (#PCDATA)>
-<!ELEMENT inactive (#PCDATA)>
+
+<!ELEMENT cpu-load (cpu+)>
+
 <!ELEMENT cpu EMPTY>
 <!ATTLIST cpu
        number CDATA #REQUIRED
        steal CDATA #REQUIRED
        idle CDATA #REQUIRED
 >
-<!ELEMENT cpu-load (cpu+)>
+
+<!ELEMENT cpu-load-all (cpu-all+)>
+
 <!ELEMENT cpu-all EMPTY>
 <!ATTLIST cpu-all
-        number CDATA #REQUIRED
-        usr CDATA #REQUIRED
-        nice CDATA #REQUIRED
-        sys CDATA #REQUIRED
-        iowait CDATA #REQUIRED
-        steal CDATA #REQUIRED
-        irq CDATA #REQUIRED
-        soft CDATA #REQUIRED
-        guest CDATA #REQUIRED
-        idle CDATA #REQUIRED
+       number CDATA #REQUIRED
+       usr CDATA #REQUIRED
+       nice CDATA #REQUIRED
+       sys CDATA #REQUIRED
+       iowait CDATA #REQUIRED
+       steal CDATA #REQUIRED
+       irq CDATA #REQUIRED
+       soft CDATA #REQUIRED
+       guest CDATA #REQUIRED
+       idle CDATA #REQUIRED
 >
-<!ELEMENT cpu-load-all (cpu-all+)>
-<!ELEMENT dentunusd (#PCDATA)>
-<!ELEMENT disk (disk-device+)>
-<!ATTLIST disk
+
+<!ELEMENT process-and-context-switch EMPTY>
+<!ATTLIST process-and-context-switch
        per CDATA #REQUIRED
+       proc CDATA #REQUIRED
+       cswch CDATA #REQUIRED
 >
-<!ELEMENT disk-device EMPTY>
-<!ATTLIST disk-device
-       dev CDATA #REQUIRED
-       tps CDATA #REQUIRED
-       rd_sec CDATA #REQUIRED
-       wr_sec CDATA #REQUIRED
-       avgrq-sz CDATA #REQUIRED
-       avgqu-sz CDATA #REQUIRED
-       await CDATA #REQUIRED
-       svctm CDATA #REQUIRED
-       util-percent CDATA #REQUIRED
->
-<!ELEMENT file-nr (#PCDATA)>
-<!ELEMENT frmpg (#PCDATA)>
-<!ELEMENT host (sysname, release, machine, number-of-cpus, file-date, statistics, restarts, comments)>
-<!ATTLIST host
-       nodename CDATA #REQUIRED
->
-<!ELEMENT inode-nr (#PCDATA)>
+
+<!ELEMENT interrupts (int-global)>
+
 <!ELEMENT int-global (irq+)>
 <!ATTLIST int-global
        per CDATA #REQUIRED
 >
-<!ELEMENT interrupts (int-global)>
+
+<!ELEMENT irq EMPTY>
+<!ATTLIST irq
+       intr CDATA #REQUIRED
+       value CDATA #REQUIRED
+>
+
+<!ELEMENT swap-pages EMPTY>
+<!ATTLIST swap-pages
+       per CDATA #REQUIRED
+       pswpin CDATA #REQUIRED
+       pswpout CDATA #REQUIRED
+>
+
+<!ELEMENT paging EMPTY>
+<!ATTLIST paging
+       per CDATA #REQUIRED
+       pgpgin CDATA #REQUIRED
+       pgpgout CDATA #REQUIRED
+       fault CDATA #REQUIRED
+       majflt CDATA #REQUIRED
+       pgfree CDATA #REQUIRED
+       pgscank CDATA #REQUIRED
+       pgscand CDATA #REQUIRED
+       pgsteal CDATA #REQUIRED
+       vmeff-percent CDATA #REQUIRED
+>
+
 <!ELEMENT io (tps, io-reads, io-writes)>
 <!ATTLIST io
        per CDATA #REQUIRED
 >
+
+<!ELEMENT tps (#PCDATA)>
+
 <!ELEMENT io-reads EMPTY>
 <!ATTLIST io-reads
        rtps CDATA #REQUIRED
        bread CDATA #REQUIRED
 >
+
 <!ELEMENT io-writes EMPTY>
 <!ATTLIST io-writes
        wtps CDATA #REQUIRED
        bwrtn CDATA #REQUIRED
 >
-<!ELEMENT irq EMPTY>
-<!ATTLIST irq
-       intr CDATA #REQUIRED
-       value CDATA #REQUIRED
->
-<!ELEMENT kernel EMPTY>
-<!ATTLIST kernel
-       dentunusd CDATA #REQUIRED
-       file-nr CDATA #REQUIRED
-       inode-nr CDATA #REQUIRED
-       pty-nr CDATA #REQUIRED
->
-<!ELEMENT memfree (#PCDATA)>
+
 <!ELEMENT memory (memfree, memused, memused-percent, buffers, cached, commit, commit-percent, active, inactive, swpfree, swpused, swpused-percent, swpcad, swpcad-percent, frmpg, bufpg, campg)>
 <!ATTLIST memory
        per CDATA #REQUIRED
        unit CDATA #REQUIRED
 >
+
+<!ELEMENT memfree (#PCDATA)>
+
 <!ELEMENT memused (#PCDATA)>
+
 <!ELEMENT memused-percent (#PCDATA)>
+
+<!ELEMENT buffers (#PCDATA)>
+
+<!ELEMENT cached (#PCDATA)>
+
+<!ELEMENT commit (#PCDATA)>
+
+<!ELEMENT commit-percent (#PCDATA)>
+
+<!ELEMENT active (#PCDATA)>
+
+<!ELEMENT inactive (#PCDATA)>
+
+<!ELEMENT swpfree (#PCDATA)>
+
+<!ELEMENT swpused (#PCDATA)>
+
+<!ELEMENT swpused-percent (#PCDATA)>
+
+<!ELEMENT swpcad (#PCDATA)>
+
+<!ELEMENT swpcad-percent (#PCDATA)>
+
+<!ELEMENT frmpg (#PCDATA)>
+
+<!ELEMENT bufpg (#PCDATA)>
+
+<!ELEMENT campg (#PCDATA)>
+
 <!ELEMENT hugepages (hugfree, hugused, hugused-percent)>
 <!ATTLIST hugepages
        unit CDATA #REQUIRED
 >
-<!ELEMENT network (net-dev+, net-edev+, net-nfs, net-nfsd, net-sock, net-ip, net-eip, net-icmp, net-eicmp, net-tcp, net-etcp, net-udp, net-sock6, net-ip6, net-eip6, net-icmp6, net-eicmp6, net-udp6)>
-<!ATTLIST network
-       per CDATA #REQUIRED
->
-<!ELEMENT paging EMPTY>
-<!ATTLIST paging
-       per CDATA #REQUIRED
-       pgpgin CDATA #REQUIRED
-       pgpgout CDATA #REQUIRED
-       fault CDATA #REQUIRED
-       majflt CDATA #REQUIRED
-       pgfree CDATA #REQUIRED
-       pgscank CDATA #REQUIRED
-       pgscand CDATA #REQUIRED
-       pgsteal CDATA #REQUIRED
-       vmeff-percent CDATA #REQUIRED
->
-<!ELEMENT process-and-context-switch EMPTY>
-<!ATTLIST process-and-context-switch
-       per CDATA #REQUIRED
-       proc CDATA #REQUIRED
-       cswch CDATA #REQUIRED
+
+<!ELEMENT hugfree (#PCDATA)>
+
+<!ELEMENT hugused (#PCDATA)>
+
+<!ELEMENT hugused-percent (#PCDATA)>
+
+<!ELEMENT kernel EMPTY>
+<!ATTLIST kernel
+       dentunusd CDATA #REQUIRED
+       file-nr CDATA #REQUIRED
+       inode-nr CDATA #REQUIRED
+       pty-nr CDATA #REQUIRED
 >
-<!ELEMENT pty-nr (#PCDATA)>
+
 <!ELEMENT queue EMPTY>
 <!ATTLIST queue
        runq-sz CDATA #REQUIRED
        ldavg-15 CDATA #REQUIRED
        blocked CDATA #REQUIRED
 >
-<!ELEMENT restarts (boot+)>
-<!ELEMENT comments (comment+)>
+
+<!ELEMENT serial (tty+)>
+<!ATTLIST serial
+       per CDATA #REQUIRED
+>
+
+<!ELEMENT tty EMPTY>
+<!ATTLIST tty
+       line CDATA #REQUIRED
+       rcvin CDATA #REQUIRED
+       xmtin CDATA #REQUIRED
+       framerr CDATA #REQUIRED
+       prtyerr CDATA #REQUIRED
+       brk CDATA #REQUIRED
+       ovrun CDATA #REQUIRED
+>
+
+<!ELEMENT disk (disk-device+)>
+<!ATTLIST disk
+       per CDATA #REQUIRED
+>
+
+<!ELEMENT disk-device EMPTY>
+<!ATTLIST disk-device
+       dev CDATA #REQUIRED
+       tps CDATA #REQUIRED
+       rd_sec CDATA #REQUIRED
+       wr_sec CDATA #REQUIRED
+       avgrq-sz CDATA #REQUIRED
+       avgqu-sz CDATA #REQUIRED
+       await CDATA #REQUIRED
+       svctm CDATA #REQUIRED
+       util-percent CDATA #REQUIRED
+>
+
+<!ELEMENT network (net-dev+, net-edev+, net-nfs, net-nfsd, net-sock, net-ip, net-eip, net-icmp, net-eicmp, net-tcp, net-etcp, net-udp, net-sock6, net-ip6, net-eip6, net-icmp6, net-eicmp6, net-udp6)>
+<!ATTLIST network
+       per CDATA #REQUIRED
+>
+
 <!ELEMENT net-dev EMPTY>
 <!ATTLIST net-dev
        iface CDATA #REQUIRED
        txcmp CDATA #REQUIRED
        rxmcst CDATA #REQUIRED
 >
-<!ELEMENT release (#PCDATA)>
-<!ELEMENT serial (tty+)>
-<!ATTLIST serial
-       per CDATA #REQUIRED
->
-<!ELEMENT net-sock EMPTY>
-<!ATTLIST net-sock
-       totsck CDATA #REQUIRED
-       tcpsck CDATA #REQUIRED
-       udpsck CDATA #REQUIRED
-       rawsck CDATA #REQUIRED
-       ip-frag CDATA #REQUIRED
-       tcp-tw CDATA #REQUIRED
->
-<!ELEMENT net-sock6 EMPTY>
-<!ATTLIST net-sock6
-        tcp6sck CDATA #REQUIRED
-        udp6sck CDATA #REQUIRED
-        raw6sck CDATA #REQUIRED
-        ip6-frag CDATA #REQUIRED
+
+<!ELEMENT net-edev EMPTY>
+<!ATTLIST net-edev
+       iface CDATA #REQUIRED
+       rxerr CDATA #REQUIRED
+       txerr CDATA #REQUIRED
+       coll CDATA #REQUIRED
+       rxdrop CDATA #REQUIRED
+       txdrop CDATA #REQUIRED
+       txcarr CDATA #REQUIRED
+       rxfram CDATA #REQUIRED
+       rxfifo CDATA #REQUIRED
+       txfifo CDATA #REQUIRED
 >
+
 <!ELEMENT net-nfs EMPTY>
 <!ATTLIST net-nfs
        call CDATA #REQUIRED
        access CDATA #REQUIRED
        getatt CDATA #REQUIRED
 >
+
 <!ELEMENT net-nfsd EMPTY>
 <!ATTLIST net-nfsd
        scall CDATA #REQUIRED
        saccess CDATA #REQUIRED
        sgetatt CDATA #REQUIRED
 >
+
+<!ELEMENT net-sock EMPTY>
+<!ATTLIST net-sock
+       totsck CDATA #REQUIRED
+       tcpsck CDATA #REQUIRED
+       udpsck CDATA #REQUIRED
+       rawsck CDATA #REQUIRED
+       ip-frag CDATA #REQUIRED
+       tcp-tw CDATA #REQUIRED
+>
+
 <!ELEMENT net-ip EMPTY>
 <!ATTLIST net-ip
        irec CDATA #REQUIRED
        fragok CDATA #REQUIRED
        fragcrt CDATA #REQUIRED
 >
-<!ELEMENT net-ip6 EMPTY>
-<!ATTLIST net-ip6
-        irec6 CDATA #REQUIRED
-        fwddgm6 CDATA #REQUIRED
-        idel6 CDATA #REQUIRED
-        orq6 CDATA #REQUIRED
-        asmrq6 CDATA #REQUIRED
-        asmok6 CDATA #REQUIRED
-        imcpck6 CDATA #REQUIRED
-        omcpck6 CDATA #REQUIRED
-        fragok6 CDATA #REQUIRED
-        fragcr6 CDATA #REQUIRED
->
+
 <!ELEMENT net-eip EMPTY>
 <!ATTLIST net-eip
        ihdrerr CDATA #REQUIRED
        asmf CDATA #REQUIRED
        fragf CDATA #REQUIRED
 >
-<!ELEMENT net-eip6 EMPTY>
-<!ATTLIST net-eip6
-        ihdrer6 CDATA #REQUIRED
-        iadrer6 CDATA #REQUIRED
-        iukwnp6 CDATA #REQUIRED
-        i2big6 CDATA #REQUIRED
-        idisc6 CDATA #REQUIRED
-        odisc6 CDATA #REQUIRED
-        inort6 CDATA #REQUIRED
-        onort6 CDATA #REQUIRED
-        asmf6 CDATA #REQUIRED
-        fragf6 CDATA #REQUIRED
-        itrpck6 CDATA #REQUIRED
->
+
 <!ELEMENT net-icmp EMPTY>
 <!ATTLIST net-icmp
        imsg CDATA #REQUIRED
        oadrmk CDATA #REQUIRED
        oadrmkr CDATA #REQUIRED
 >
-<!ELEMENT net-icmp6 EMPTY>
-<!ATTLIST net-icmp6
-        imsg6 CDATA #REQUIRED
-        omsg6 CDATA #REQUIRED
-        iech6 CDATA #REQUIRED
-        iechr6 CDATA #REQUIRED
-        oechr6 CDATA #REQUIRED
-        igmbq6 CDATA #REQUIRED
-        igmbr6 CDATA #REQUIRED
-        ogmbr6 CDATA #REQUIRED
-        igmbrd6 CDATA #REQUIRED
-        ogmbrd6 CDATA #REQUIRED
-        irtsol6 CDATA #REQUIRED
-        ortsol6 CDATA #REQUIRED
-        irtad6 CDATA #REQUIRED
-        inbsol6 CDATA #REQUIRED
-        onbsol6 CDATA #REQUIRED
-        inbad6 CDATA #REQUIRED
-        onbad6 CDATA #REQUIRED
->
+
 <!ELEMENT net-eicmp EMPTY>
 <!ATTLIST net-eicmp
        ierr CDATA #REQUIRED
        iredir CDATA #REQUIRED
        oredir CDATA #REQUIRED
 >
-<!ELEMENT net-eicmp6 EMPTY>
-<!ATTLIST net-eicmp6
-        ierr6 CDATA #REQUIRED
-        idtunr6 CDATA #REQUIRED
-        odtunr6 CDATA #REQUIRED
-        itmex6 CDATA #REQUIRED
-        otmex6 CDATA #REQUIRED
-        iprmpb6 CDATA #REQUIRED
-        oprmpb6 CDATA #REQUIRED
-        iredir6 CDATA #REQUIRED
-        oredir6 CDATA #REQUIRED
-        ipck2b6 CDATA #REQUIRED
-        opck2b6 CDATA #REQUIRED
->
+
 <!ELEMENT net-tcp EMPTY>
 <!ATTLIST net-tcp
        active CDATA #REQUIRED
        iseg CDATA #REQUIRED
        oseg CDATA #REQUIRED
 >
+
 <!ELEMENT net-etcp EMPTY>
 <!ATTLIST net-etcp
        atmptf CDATA #REQUIRED
        isegerr CDATA #REQUIRED
        orsts CDATA #REQUIRED
 >
+
 <!ELEMENT net-udp EMPTY>
 <!ATTLIST net-udp
        idgm CDATA #REQUIRED
        noport CDATA #REQUIRED
        idgmerr CDATA #REQUIRED
 >
-<!ELEMENT net-udp6 EMPTY>
-<!ATTLIST net-udp6
-        idgm6 CDATA #REQUIRED
-        odgm6 CDATA #REQUIRED
-        noport6 CDATA #REQUIRED
-        idgmer6 CDATA #REQUIRED
+
+<!ELEMENT net-sock6 EMPTY>
+<!ATTLIST net-sock6
+       tcp6sck CDATA #REQUIRED
+       udp6sck CDATA #REQUIRED
+       raw6sck CDATA #REQUIRED
+       ip6-frag CDATA #REQUIRED
 >
-<!ELEMENT statistics (timestamp+)>
-<!ELEMENT swap-pages EMPTY>
-<!ATTLIST swap-pages
-       per CDATA #REQUIRED
-       pswpin CDATA #REQUIRED
-       pswpout CDATA #REQUIRED
+
+<!ELEMENT net-ip6 EMPTY>
+<!ATTLIST net-ip6
+       irec6 CDATA #REQUIRED
+       fwddgm6 CDATA #REQUIRED
+       idel6 CDATA #REQUIRED
+       orq6 CDATA #REQUIRED
+       asmrq6 CDATA #REQUIRED
+       asmok6 CDATA #REQUIRED
+       imcpck6 CDATA #REQUIRED
+       omcpck6 CDATA #REQUIRED
+       fragok6 CDATA #REQUIRED
+       fragcr6 CDATA #REQUIRED
 >
-<!ELEMENT swpcad (#PCDATA)>
-<!ELEMENT swpcad-percent (#PCDATA)>
-<!ELEMENT swpfree (#PCDATA)>
-<!ELEMENT swpused (#PCDATA)>
-<!ELEMENT swpused-percent (#PCDATA)>
-<!ELEMENT hugfree (#PCDATA)>
-<!ELEMENT hugused (#PCDATA)>
-<!ELEMENT hugused-percent (#PCDATA)>
-<!ELEMENT sysdata-version (#PCDATA)>
-<!ELEMENT sysname (#PCDATA)>
-<!ELEMENT machine (#PCDATA)>
-<!ELEMENT number-of-cpus (#PCDATA)>
-<!ELEMENT file-date (#PCDATA)>
-<!ELEMENT sysstat (sysdata-version, host)>
-<!ELEMENT timestamp (cpu-load, cpu-load-all, process-and-context-switch, interrupts, swap-pages, paging, io, memory, kernel, queue, serial, disk, network, power-management, hugepages)>
-<!ATTLIST timestamp
-       date CDATA #REQUIRED
-       time CDATA #REQUIRED
-       interval CDATA #REQUIRED
+
+<!ELEMENT net-eip6 EMPTY>
+<!ATTLIST net-eip6
+       ihdrer6 CDATA #REQUIRED
+       iadrer6 CDATA #REQUIRED
+       iukwnp6 CDATA #REQUIRED
+       i2big6 CDATA #REQUIRED
+       idisc6 CDATA #REQUIRED
+       odisc6 CDATA #REQUIRED
+       inort6 CDATA #REQUIRED
+       onort6 CDATA #REQUIRED
+       asmf6 CDATA #REQUIRED
+       fragf6 CDATA #REQUIRED
+       itrpck6 CDATA #REQUIRED
 >
-<!ELEMENT tps (#PCDATA)>
-<!ELEMENT net-edev EMPTY>
-<!ATTLIST net-edev
-       iface CDATA #REQUIRED
-       rxerr CDATA #REQUIRED
-       txerr CDATA #REQUIRED
-       coll CDATA #REQUIRED
-       rxdrop CDATA #REQUIRED
-       txdrop CDATA #REQUIRED
-       txcarr CDATA #REQUIRED
-       rxfram CDATA #REQUIRED
-       rxfifo CDATA #REQUIRED
-       txfifo CDATA #REQUIRED
+
+<!ELEMENT net-icmp6 EMPTY>
+<!ATTLIST net-icmp6
+       imsg6 CDATA #REQUIRED
+       omsg6 CDATA #REQUIRED
+       iech6 CDATA #REQUIRED
+       iechr6 CDATA #REQUIRED
+       oechr6 CDATA #REQUIRED
+       igmbq6 CDATA #REQUIRED
+       igmbr6 CDATA #REQUIRED
+       ogmbr6 CDATA #REQUIRED
+       igmbrd6 CDATA #REQUIRED
+       ogmbrd6 CDATA #REQUIRED
+       irtsol6 CDATA #REQUIRED
+       ortsol6 CDATA #REQUIRED
+       irtad6 CDATA #REQUIRED
+       inbsol6 CDATA #REQUIRED
+       onbsol6 CDATA #REQUIRED
+       inbad6 CDATA #REQUIRED
+       onbad6 CDATA #REQUIRED
 >
-<!ELEMENT tty EMPTY>
-<!ATTLIST tty
-       line CDATA #REQUIRED
-       rcvin CDATA #REQUIRED
-       xmtin CDATA #REQUIRED
-       framerr CDATA #REQUIRED
-       prtyerr CDATA #REQUIRED
-       brk CDATA #REQUIRED
-       ovrun CDATA #REQUIRED
+
+<!ELEMENT net-eicmp6 EMPTY>
+<!ATTLIST net-eicmp6
+       ierr6 CDATA #REQUIRED
+       idtunr6 CDATA #REQUIRED
+       odtunr6 CDATA #REQUIRED
+       itmex6 CDATA #REQUIRED
+       otmex6 CDATA #REQUIRED
+       iprmpb6 CDATA #REQUIRED
+       oprmpb6 CDATA #REQUIRED
+       iredir6 CDATA #REQUIRED
+       oredir6 CDATA #REQUIRED
+       ipck2b6 CDATA #REQUIRED
+       opck2b6 CDATA #REQUIRED
 >
-<!ELEMENT power-management (cpu-frequency, fan-speed, temperature, voltage-input, cpu-weighted-frequency,)>
+
+<!ELEMENT net-udp6 EMPTY>
+<!ATTLIST net-udp6
+       idgm6 CDATA #REQUIRED
+       odgm6 CDATA #REQUIRED
+       noport6 CDATA #REQUIRED
+       idgmer6 CDATA #REQUIRED
+>
+
+<!ELEMENT power-management (cpu-frequency, fan-speed, temperature, voltage-input, cpu-weighted-frequency, usb-devices)>
+
 <!ELEMENT cpu-frequency (cpufreq+)>
 <!ATTLIST cpu-frequency
        unit CDATA #REQUIRED
 >
+
 <!ELEMENT cpufreq EMPTY>
 <!ATTLIST cpufreq
        number CDATA #REQUIRED
        frequency CDATA #REQUIRED
 >
-<!ELEMENT cpu-weighted-frequency (cpuwfreq+)>
-<!ATTLIST cpu-weighted-frequency
-       unit CDATA #REQUIRED
->
-<!ELEMENT cpuwfreq EMPTY>
-<!ATTLIST cpuwfreq
-       number CDATA #REQUIRED
-       weighted-frequency CDATA #REQUIRED
->
+
 <!ELEMENT fan-speed (fan+)>
 <!ATTLIST fan-speed
        unit CDATA #REQUIRED
 >
+
 <!ELEMENT fan EMPTY>
 <!ATTLIST fan
        number CDATA #REQUIRED
        drpm CDATA #REQUIRED
        device CDATA #REQUIRED
 >
+
 <!ELEMENT temperature (temp+)>
 <!ATTLIST temperature
        unit CDATA #REQUIRED
 >
+
 <!ELEMENT temp EMPTY>
 <!ATTLIST temp
        number CDATA #REQUIRED
        percent-temp CDATA #REQUIRED
        device CDATA #REQUIRED
 >
+
 <!ELEMENT voltage-input (in+)>
 <!ATTLIST voltage-input
-        unit CDATA #REQUIRED
+       unit CDATA #REQUIRED
 >
+
 <!ELEMENT in EMPTY>
 <!ATTLIST in
        number CDATA #REQUIRED
        device CDATA #REQUIRED
 >
 
+<!ELEMENT cpu-weighted-frequency (cpuwfreq+)>
+<!ATTLIST cpu-weighted-frequency
+       unit CDATA #REQUIRED
+>
+
+<!ELEMENT cpuwfreq EMPTY>
+<!ATTLIST cpuwfreq
+       number CDATA #REQUIRED
+       weighted-frequency CDATA #REQUIRED
+>
+
+<!ELEMENT usb-devices (usb+)>
+
+<!ELEMENT usb EMPTY>
+<!ATTLIST usb
+       bus_number CDATA #REQUIRED
+       idvendor CDATA #REQUIRED
+       idprod CDATA #REQUIRED
+       maxpower CDATA #REQUIRED
+       manufact CDATA #REQUIRED
+       product CDATA #REQUIRED
+>
index 9d5c3c98a389bad695223cc83fc3e384e899ea0a..6cf36241e078bb94e05f8debaf2d103f88ccae4c 100644 (file)
 <?xml version="1.0" encoding="UTF-8"?>
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://pagesperso-orange.fr/sebastien.godard/sysstat" targetNamespace="http://pagesperso-orange.fr/sebastien.godard/sysstat" elementFormDefault="qualified">
-<xs:annotation><xs:appinfo>-- XML Schema v2.10 for sysstat. See sadf.h --</xs:appinfo></xs:annotation>
-
-    <xs:element name="queue" type="queue-type"></xs:element>
-
-    <xs:complexType name="queue-type">
-       <xs:sequence></xs:sequence>
-       <xs:attribute name="runq-sz" type="xs:nonNegativeInteger"></xs:attribute>
-       <xs:attribute name="plist-sz" type="xs:nonNegativeInteger"></xs:attribute>
-       <xs:attribute name="ldavg-1" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="ldavg-5" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="ldavg-15" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="blocked" type="xs:nonNegativeInteger"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="kernel" type="kernel-type"></xs:element>
-
-    <xs:complexType name="kernel-type">
-       <xs:sequence></xs:sequence>
-       <xs:attribute name="dentunusd" type="xs:nonNegativeInteger">
-       <xs:attribute name="file-nr" type="xs:nonNegativeInteger">
-       <xs:attribute name="inode-nr" type="xs:nonNegativeInteger">
-       <xs:attribute name="pty-nr" type="xs:nonNegativeInteger">
-       </xs:attribute>
-    </xs:complexType>
-
-    <xs:simpleType name="per-type">
-       <xs:restriction base="xs:string">
-               <xs:enumeration value="second"></xs:enumeration>
-       </xs:restriction>
-    </xs:simpleType>
-
-    <xs:element name="memory" type="memory-type"></xs:element>
-
-    <xs:complexType name="memory-type">
-       <xs:sequence>
-               <xs:element name="memfree" type="xs:negativeInteger"></xs:element>
-               <xs:element name="memused" type="xs:nonNegativeInteger"></xs:element>
-               <xs:element name="memused-percent" type="hundredth-type"></xs:element>
-               <xs:element name="buffers" type="xs:nonNegativeInteger"></xs:element>
-               <xs:element name="cached" type="xs:nonNegativeInteger"></xs:element>
-               <xs:element name="commit" type="xs:nonNegativeInteger"></xs:element>
-               <xs:element name="commit-percent" type="hundredth-type"></xs:element>
-               <xs:element name="active" type="xs:nonNegativeInteger"></xs:element>
-               <xs:element name="inactive" type="xs:nonNegativeInteger"></xs:element>
-               <xs:element name="swpfree" type="xs:nonNegativeInteger"></xs:element>
-               <xs:element name="swpused" type="xs:nonNegativeInteger"></xs:element>
-               <xs:element name="swpused-percent" type="hundredth-type"></xs:element>
-               <xs:element name="swpcad" type="xs:nonNegativeInteger"></xs:element>
-               <xs:element name="swpcad-percent" type="hundredth-type"></xs:element>
-               <xs:element name="frmpg" type="hundredth-type"></xs:element>
-               <xs:element name="bufpg" type="hundredth-type"></xs:element>
-               <xs:element name="campg" type="hundredth-type"></xs:element>
-       </xs:sequence>
-       <xs:attribute name="unit" type="unit-type"></xs:attribute>
-    </xs:complexType>
-    
-    <xs:element name="hugepages" type="hugepages-type"></xs:element>
-
-    <xs:complexType name="hugepages-type">
-       <xs:sequence>
-               <xs:element name="hugfree" type="xs:nonNegativeInteger"></xs:element>
+<xs:annotation>
+       <xs:appinfo>-- XML Schema v2.11 for sysstat. See sadf.h --</xs:appinfo>
+</xs:annotation>
+
+<xs:element name="sysstat" type="sysstat-type"></xs:element>
+
+<xs:complexType name="sysstat-type">
+       <xs:sequence>
+               <xs:element name="sysdata-version" type="sysdata-version-type"></xs:element>
+               <xs:element name="host" type="host-type"></xs:element>
+       </xs:sequence>
+</xs:complexType>
+
+<xs:element name="sysdata-version" type="sysdata-version-type"></xs:element>
+<xs:simpleType name="sysdata-version-type">
+       <xs:restriction base="xs:string"></xs:restriction>
+</xs:simpleType>
+
+<xs:element name="host" type="host-type"></xs:element>
+<xs:complexType name="host-type">
+       <xs:sequence>
+               <xs:element name="sysname" type="sysname-type"></xs:element>
+               <xs:element name="release" type="release-type"></xs:element>
+               <xs:element name="machine" type="machine-type"></xs:element>
+               <xs:element name="file-date" type="file-date-type"></xs:element>
+               <xs:element name="number-of-cpus" type="number-of-cpus-type"></xs:element>
+               <xs:element name="statistics" type="statistics-type"></xs:element>
+               <xs:element name="restarts" type="restarts-type"></xs:element>
+               <xs:element name="comments" type="comments-type"></xs:element>
+       </xs:sequence>
+       <xs:attribute name="nodename" type="xs:string"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="sysname" type="sysname-type"></xs:element>
+<xs:simpleType name="sysname-type">
+       <xs:restriction base="xs:string"></xs:restriction>
+</xs:simpleType>
+
+<xs:element name="release" type="release-type"></xs:element>
+<xs:simpleType name="release-type">
+       <xs:restriction base="xs:string"></xs:restriction>
+</xs:simpleType>
+
+<xs:element name=machine"" type="machine-type"></xs:element>
+<xs:simpleType name="machine-type">
+       <xs:restriction base="xs:string"></xs:restriction>
+</xs:simpleType>
+
+<xs:element name="file-date" type="file-date-type"></xs:element>
+<xs:simpleType name="file-date-type">
+       <xs:restriction base="xs:date"></xs:restriction>
+</xs:simpleType>
+
+<xs:element name="number-of-cpus" type="number-of-cpus-type"></xs:element>
+<xs:simpleType name="number-of-cpus-type">
+       <xs:restriction base="xs:nonNegativeInteger"></xs:restriction>
+</xs:simpleType>
+
+<xs:element name="statistics" type="statistics-type"></xs:element>
+<xs:complexType name="statistics-type">
+       <xs:sequence>
+               <xs:element name="timestamp" type="timestamp-type"></xs:element>
+       </xs:sequence>
+</xs:complexType>
+
+<xs:element name="restarts" type="restarts-type"></xs:element>
+<xs:complexType name="restarts-type">
+       <xs:sequence>
+               <xs:element name="boot" type="boot-type"></xs:element>
+       </xs:sequence>
+</xs:complexType>
+
+<xs:element name="comments" type="comments-type"></xs:element>
+<xs:complexType name="comments-type">
+       <xs:attribute name="date" type="xs:date"></xs:attribute>
+       <xs:attribute name="time" type="xs:time"></xs:attribute>
+       <xs:attribute name="comment" type="xs:string"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="timestamp" type="timestamp-type"></xs:element>
+<xs:complexType name="timestamp-type">
+       <xs:sequence>
+               <xs:element name="cpu-load" type="cpu-load-type"></xs:element>
+               <xs:element name="cpu-load-all" type="cpu-load-all-type"></xs:element>
+               <xs:element name="process-and-context-switch" type="process-and-context-switch-type"></xs:element>
+               <xs:element name="interrupts" type="interrupts-type"></xs:element>
+               <xs:element name="swap-pages" type="swap-pages-type"></xs:element>
+               <xs:element name="paging" type="paging-type"></xs:element>
+               <xs:element name="io" type="io-type"></xs:element>
+               <xs:element name="memory" type="memory-type"></xs:element>
+               <xs:element name="hugepages" type="hugepages-type"></xs:element>
+               <xs:element name="kernel" type="kernel-type"></xs:element>
+               <xs:element name="queue" type="queue-type"></xs:element>
+               <xs:element name="serial" type="serial-type"></xs:element>
+               <xs:element name="disk" type="disk-type"></xs:element>
+               <xs:element name="network" type="network-type"></xs:element>
+               <xs:element name="power-management" type="power-management-type"></xs:element>
+       </xs:sequence>
+       <xs:attribute name="date" type="xs:date"></xs:attribute>
+       <xs:attribute name="time" type="xs:time"></xs:attribute>
+       <xs:attribute name="interval" type="xs:nonNegativeInteger"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="boot" type="boot-type"></xs:element>
+<xs:complexType name="boot-type">
+       <xs:attribute name="date" type="xs:date"></xs:attribute>
+       <xs:attribute name="time" type="xs:time"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="cpu-load" type="cpu-load-type"></xs:element>
+<xs:complexType name="cpu-load-type">
+       <xs:sequence>
+               <xs:element name="cpu" type="cpu-type"></xs:element>
+       </xs:sequence>
+</xs:complexType>
+
+<xs:element name="cpu" type="cpu-type"></xs:element>
+<xs:complexType name="cpu-type">
+       <xs:attribute name="number" type="xs:string"></xs:attribute>
+       <xs:attribute name="user" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="nice" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="system" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="iowait" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="steal" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="idle" type="hundredth-type"></xs:attribute>
+</xs:complexType>
+
+<xs:simpleType name="hundredth-type">
+       <xs:restriction base="xs:float">
+               <xs:pattern value="\d*\.\d\d"></xs:pattern>
+       </xs:restriction>
+</xs:simpleType>
+
+<xs:element name="cpu-load-all" type="cpu-load-all-type"></xs:element>
+<xs:complexType name="cpu-load-all-type">
+       <xs:sequence>
+               <xs:element name="cpu-all" type="cpu-all-type"></xs:element>
+       </xs:sequence>
+</xs:complexType>
+
+<xs:element name="cpu-all" type="cpu-all-type"></xs:element>
+<xs:complexType name="cpu-all-type">
+       <xs:attribute name="number" type="xs:string"></xs:attribute>
+       <xs:attribute name="usr" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="nice" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="sys" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="iowait" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="steal" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="irq" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="soft" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="guest" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="idle" type="hundredth-type"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="process-and-context-switch" type="process-and-context-switch-type"></xs:element>
+<xs:complexType name="process-and-context-switch-type">
+       <xs:attribute name="per" type="per-type"></xs:attribute>
+       <xs:attribute name="proc" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="cswch" type="hundredth-type"></xs:attribute>
+</xs:complexType>
+
+<xs:simpleType name="per-type">
+       <xs:restriction base="xs:string">
+               <xs:enumeration value="second"></xs:enumeration>
+       </xs:restriction>
+</xs:simpleType>
+
+<xs:element name="interrupts" type="interrupts-type"></xs:element>
+<xs:complexType name="interrupts-type">
+       <xs:sequence>
+               <xs:element name="int-global" type="int-global-type" minOccurs="1"></xs:element>
+       </xs:sequence>
+</xs:complexType>
+
+<xs:element name="int-global" type="int-global-type"></xs:element>
+<xs:complexType name="int-global-type">
+       <xs:sequence>
+               <xs:element name="irq" type="irq-type" minOccurs="1"></xs:element>
+       </xs:sequence>
+       <xs:attribute name="per" type="per-type"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="irq" type="irq-type"></xs:element>
+<xs:complexType name="irq-type">
+       <xs:attribute name="intr" type="xs:int"></xs:attribute>
+       <xs:attribute name="value" type="hundredth-type"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="swap-pages" type="swap-pages-type"></xs:element>
+<xs:complexType name="swap-pages-type">
+       <xs:attribute name="per" type="per-type"></xs:attribute>
+       <xs:attribute name="pswpin" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="pswpout" type="hundredth-type"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="paging" type="paging-type"></xs:element>
+<xs:complexType name="paging-type">
+       <xs:attribute name="per" type="per-type"></xs:attribute>
+       <xs:attribute name="pgpgin" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="pgpgout" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="fault" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="majflt" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="pgfree" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="pgscank" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="pgscand" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="pgsteal" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="vmeff-precent" type="hundredth-type"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="io" type="io-type"></xs:element>
+<xs:complexType name="io-type">
+       <xs:sequence>
+               <xs:element name="io-reads" type="io-reads-type" minOccurs="1"></xs:element>
+               <xs:element name="io-writes" type="io-writes-type" minOccurs="1"></xs:element>
+               <xs:element name="tps" type="tps-type" minOccurs="1"></xs:element>
+       </xs:sequence>
+       <xs:attribute name="per" type="per-type"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="io-reads" type="io-reads-type"></xs:element>
+<xs:complexType name="io-reads-type">
+       <xs:attribute name="rtps" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="bread" type="hundredth-type"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="io-writes" type="io-writes-type"></xs:element>
+<xs:complexType name="io-writes-type">
+       <xs:attribute name="wtps" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="bwrtn" type="hundredth-type"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="tps" type="tps-type"></xs:element>
+<xs:simpleType name="tps-type">
+       <xs:restriction base="hundredth-type"></xs:restriction>
+</xs:simpleType>
+
+<xs:element name="memory" type="memory-type"></xs:element>
+<xs:complexType name="memory-type">
+       <xs:sequence>
+               <xs:element name="memfree" type="xs:negativeInteger"></xs:element>
+               <xs:element name="memused" type="xs:nonNegativeInteger"></xs:element>
+               <xs:element name="memused-percent" type="hundredth-type"></xs:element>
+               <xs:element name="buffers" type="xs:nonNegativeInteger"></xs:element>
+               <xs:element name="cached" type="xs:nonNegativeInteger"></xs:element>
+               <xs:element name="commit" type="xs:nonNegativeInteger"></xs:element>
+               <xs:element name="commit-percent" type="hundredth-type"></xs:element>
+               <xs:element name="active" type="xs:nonNegativeInteger"></xs:element>
+               <xs:element name="inactive" type="xs:nonNegativeInteger"></xs:element>
+               <xs:element name="swpfree" type="xs:nonNegativeInteger"></xs:element>
+               <xs:element name="swpused" type="xs:nonNegativeInteger"></xs:element>
+               <xs:element name="swpused-percent" type="hundredth-type"></xs:element>
+               <xs:element name="swpcad" type="xs:nonNegativeInteger"></xs:element>
+               <xs:element name="swpcad-percent" type="hundredth-type"></xs:element>
+               <xs:element name="frmpg" type="hundredth-type"></xs:element>
+               <xs:element name="bufpg" type="hundredth-type"></xs:element>
+               <xs:element name="campg" type="hundredth-type"></xs:element>
+       </xs:sequence>
+       <xs:attribute name="unit" type="unit-type"></xs:attribute>
+</xs:complexType>
+
+<xs:simpleType name="unit-type">
+       <xs:restriction base="xs:string">
+               <xs:enumeration value="kB"></xs:enumeration>
+       </xs:restriction>
+</xs:simpleType>
+
+<xs:element name="hugepages" type="hugepages-type"></xs:element>
+<xs:complexType name="hugepages-type">
+       <xs:sequence>
+               <xs:element name="hugfree" type="xs:nonNegativeInteger"></xs:element>
                <xs:element name="hugused" type="xs:nonNegativeInteger"></xs:element>
                <xs:element name="hugused-percent" type="hundredth-type"></xs:element>
-       </xs:sequence>
-    </xs:complexType>
-    
-    <xs:simpleType name="unit-type">
-       <xs:restriction base="xs:string">
-               <xs:enumeration value="kB"></xs:enumeration>
-       </xs:restriction>
-    </xs:simpleType>
-
-
-    <xs:simpleType name="hundredth-type">
-       <xs:restriction base="xs:float">
-               <xs:pattern value="\d*\.\d\d"></xs:pattern>
-       </xs:restriction>
-    </xs:simpleType>
-
-    <xs:element name="paging" type="paging-type"></xs:element>
-    
-    <xs:complexType name="paging-type">
-       <xs:sequence></xs:sequence>
-       <xs:attribute name="per" type="per-type"></xs:attribute>
-       <xs:attribute name="pgpgin" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="pgpgout" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="fault" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="majflt" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="pgfree" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="pgscank" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="pgscand" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="pgsteal" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="vmeff-precent" type="hundredth-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="net-sock" type="net-sock-type"></xs:element>
-
-    <xs:complexType name="net-sock-type">
-       <xs:attribute name="totsck" type="xs:nonNegativeInteger"></xs:attribute>
-       <xs:attribute name="tcpsck" type="xs:nonNegativeInteger"></xs:attribute>
-       <xs:attribute name="udpsck" type="xs:nonNegativeInteger"></xs:attribute>
-       <xs:attribute name="rawsck" type="xs:nonNegativeInteger"></xs:attribute>
-       <xs:attribute name="ip-frag" type="xs:nonNegativeInteger"></xs:attribute>
-       <xs:attribute name="tcp-tw" type="xs:nonNegativeInteger"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="net-sock6" type="net-sock6-type"></xs:element>
-
-    <xs:complexType name="net-sock6-type">
-        <xs:attribute name="tcp6sck" type="xs:nonNegativeInteger"></xs:attribute>
-        <xs:attribute name="udp6sck" type="xs:nonNegativeInteger"></xs:attribute>
-        <xs:attribute name="raw6sck" type="xs:nonNegativeInteger"></xs:attribute>
-        <xs:attribute name="ip6-frag" type="xs:nonNegativeInteger"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="net-nfsd" type="net-nfsd-type"></xs:element>
-
-    <xs:complexType name="net-nfsd-type">
-       <xs:sequence></xs:sequence>
-       <xs:attribute name="scall" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="badcall" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="packet" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="udp" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="tcp" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="hit" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="miss" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="sread" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="swrite" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="saccess" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="sgetatt" type="hundredth-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="net-nfs" type="net-nfs-type"></xs:element>
-
-    <xs:complexType name="net-nfs-type">
-       <xs:attribute name="call" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="retrans" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="read" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="write" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="access" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="getatt" type="hundredth-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="net-dev" type="net-dev-type"></xs:element>
-
-    <xs:complexType name="net-dev-type">
-       <xs:attribute name="iface" type="xs:string"></xs:attribute>    
-       <xs:attribute name="rxpck" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="txpck" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="rxkB" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="txkB" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="rxcmp" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="txcmp" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="rxmcst" type="hundredth-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="net-edev" type="net-edev-type"></xs:element>
-
-    <xs:complexType name="net-edev-type">
+       </xs:sequence>
+</xs:complexType>
+
+<xs:element name="kernel" type="kernel-type"></xs:element>
+<xs:complexType name="kernel-type">
+       <xs:attribute name="dentunusd" type="xs:nonNegativeInteger">
+       <xs:attribute name="file-nr" type="xs:nonNegativeInteger">
+       <xs:attribute name="inode-nr" type="xs:nonNegativeInteger">
+       <xs:attribute name="pty-nr" type="xs:nonNegativeInteger">
+       </xs:attribute>
+</xs:complexType>
+
+<xs:element name="queue" type="queue-type"></xs:element>
+<xs:complexType name="queue-type">
+       <xs:attribute name="runq-sz" type="xs:nonNegativeInteger"></xs:attribute>
+       <xs:attribute name="plist-sz" type="xs:nonNegativeInteger"></xs:attribute>
+       <xs:attribute name="ldavg-1" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="ldavg-5" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="ldavg-15" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="blocked" type="xs:nonNegativeInteger"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="serial" type="serial-type"></xs:element>
+<xs:complexType name="serial-type">
+       <xs:sequence>
+               <xs:element name="tty" type="tty-type"></xs:element>
+       </xs:sequence>
+       <xs:attribute name="per" type="per-type"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="tty" type="tty-type"></xs:element>
+<xs:complexType name="tty-type">
+       <xs:attribute name="line" type="xs:int"></xs:attribute>
+       <xs:attribute name="rcvin" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="xmtin" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="framerr" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="prtyerr" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="brk" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="ovrun" type="hundredth-type"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="disk" type="disk-type"></xs:element>
+<xs:complexType name="disk-type">
+       <xs:sequence>
+               <xs:element name="disk-device" type="disk-device-type"></xs:element>
+       </xs:sequence>
+       <xs:attribute name="per" type="per-type"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="disk-device" type="disk-device-type"></xs:element>
+<xs:complexType name="disk-device-type">
+       <xs:attribute name="dev" type="xs:string"></xs:attribute>
+       <xs:attribute name="tps" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="rd_sec" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="wr_sec" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="avgrq-sz" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="avrqu-sz" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="await" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="svctm" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="util-percent" type="hundredth-type"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="network" type="network-type"></xs:element>
+<xs:complexType name="network-type">
+       <xs:sequence>
+               <xs:element name="net-dev" type="net-dev-type" minOccurs="1"></xs:element>
+               <xs:element name="net-edev" type="net-edev-type" minOccurs="1"></xs:element>
+               <xs:element name="net-nfs" type="net-nfs-type" minOccurs="1"></xs:element>
+               <xs:element name="net-nfsd" type="net-nfsd-type" minOccurs="1"></xs:element>
+               <xs:element name="net-sock" type="net-sock-type" minOccurs="1"></xs:element>
+               <xs:element name="net-ip" type="net-ip-type"></xs:element>
+               <xs:element name="net-eip" type="net-eip-type"></xs:element>
+               <xs:element name="net-icmp" type="net-icmp-type"></xs:element>
+               <xs:element name="net-eicmp" type="net-eicmp-type"></xs:element>
+               <xs:element name="net-tcp" type="net-tcp-type"></xs:element>
+               <xs:element name="net-etcp" type="net-etcp-type"></xs:element>
+               <xs:element name="net-udp" type="net-udp-type"></xs:element>
+               <xs:element name="net-sock6" type="net-sock6-type" minOccurs="1"></xs:element>
+               <xs:element name="net-ip6" type="net-ip6-type"></xs:element>
+               <xs:element name="net-eip6" type="net-eip6-type"></xs:element>
+               <xs:element name="net-icmp6" type="net-icmp6-type"></xs:element>
+               <xs:element name="net-eicmp6" type="net-eicmp6-type"></xs:element>
+               <xs:element name="net-udp6" type="net-udp6-type"></xs:element>
+       </xs:sequence>
+       <xs:attribute name="per" type="per-type"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="net-dev" type="net-dev-type"></xs:element>
+<xs:complexType name="net-dev-type">
+       <xs:attribute name="iface" type="xs:string"></xs:attribute>
+       <xs:attribute name="rxpck" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="txpck" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="rxkB" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="txkB" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="rxcmp" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="txcmp" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="rxmcst" type="hundredth-type"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="net-edev" type="net-edev-type"></xs:element>
+<xs:complexType name="net-edev-type">
        <xs:attribute name="iface" type="xs:string"></xs:attribute>
-       <xs:attribute name="rxerr" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="txerr" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="coll" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="rxdrop" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="txdrop" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="txcarr" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="rxfram" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="rxfifo" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="txfifo" type="hundredth-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="net-ip" type="net-ip-type"></xs:element>
-
-    <xs:complexType name="net-ip-type">
+       <xs:attribute name="rxerr" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="txerr" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="coll" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="rxdrop" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="txdrop" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="txcarr" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="rxfram" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="rxfifo" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="txfifo" type="hundredth-type"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="net-nfs" type="net-nfs-type"></xs:element>
+<xs:complexType name="net-nfs-type">
+       <xs:attribute name="call" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="retrans" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="read" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="write" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="access" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="getatt" type="hundredth-type"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="net-nfsd" type="net-nfsd-type"></xs:element>
+<xs:complexType name="net-nfsd-type">
+       <xs:attribute name="scall" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="badcall" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="packet" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="udp" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="tcp" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="hit" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="miss" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="sread" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="swrite" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="saccess" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="sgetatt" type="hundredth-type"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="net-sock" type="net-sock-type"></xs:element>
+<xs:complexType name="net-sock-type">
+       <xs:attribute name="totsck" type="xs:nonNegativeInteger"></xs:attribute>
+       <xs:attribute name="tcpsck" type="xs:nonNegativeInteger"></xs:attribute>
+       <xs:attribute name="udpsck" type="xs:nonNegativeInteger"></xs:attribute>
+       <xs:attribute name="rawsck" type="xs:nonNegativeInteger"></xs:attribute>
+       <xs:attribute name="ip-frag" type="xs:nonNegativeInteger"></xs:attribute>
+       <xs:attribute name="tcp-tw" type="xs:nonNegativeInteger"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="net-ip" type="net-ip-type"></xs:element>
+<xs:complexType name="net-ip-type">
        <xs:attribute name="irec" type="hundredth-type"></xs:attribute>
        <xs:attribute name="fwddgm" type="hundredth-type"></xs:attribute>
        <xs:attribute name="idel" type="hundredth-type"></xs:attribute>
        <xs:attribute name="asmok" type="hundredth-type"></xs:attribute>
        <xs:attribute name="fragok" type="hundredth-type"></xs:attribute>
        <xs:attribute name="fragcrt" type="hundredth-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="net-ip6" type="net-ip6-type"></xs:element>
-
-    <xs:complexType name="net-ip6-type">
-        <xs:attribute name="irec6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="fwddgm6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="idel6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="orq6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="asmrq6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="asmok6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="imcpck6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="omcpck6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="fragok6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="fragcr6" type="hundredth-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="net-eip" type="net-eip-type"></xs:element>
-
-    <xs:complexType name="net-eip-type">
+</xs:complexType>
+
+<xs:element name="net-eip" type="net-eip-type"></xs:element>
+<xs:complexType name="net-eip-type">
        <xs:attribute name="ihdrerr" type="hundredth-type"></xs:attribute>
        <xs:attribute name="iadrerr" type="hundredth-type"></xs:attribute>
        <xs:attribute name="iukwnpr" type="hundredth-type"></xs:attribute>
        <xs:attribute name="onort" type="hundredth-type"></xs:attribute>
        <xs:attribute name="asmf" type="hundredth-type"></xs:attribute>
        <xs:attribute name="fragf" type="hundredth-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="net-eip6" type="net-eip6-type"></xs:element>
-
-    <xs:complexType name="net-eip6-type">
-        <xs:attribute name="ihdrer6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="iadrer6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="iukwnp6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="i2big6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="idisc6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="odisc6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="inort6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="onort6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="asmf6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="fragf6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="itrpck6" type="hundredth-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="net-icmp" type="net-icmp-type"></xs:element>
-
-    <xs:complexType name="net-icmp-type">
+</xs:complexType>
+
+<xs:element name="net-icmp" type="net-icmp-type"></xs:element>
+<xs:complexType name="net-icmp-type">
        <xs:attribute name="imsg" type="hundredth-type"></xs:attribute>
        <xs:attribute name="omsg" type="hundredth-type"></xs:attribute>
        <xs:attribute name="iech" type="hundredth-type"></xs:attribute>
        <xs:attribute name="iadrmkr" type="hundredth-type"></xs:attribute>
        <xs:attribute name="oadrmk" type="hundredth-type"></xs:attribute>
        <xs:attribute name="oadrmkr" type="hundredth-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="net-icmp6" type="net-icmp6-type"></xs:element>
-
-    <xs:complexType name="net-icmp6-type">
-        <xs:attribute name="imsg6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="omsg6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="iech6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="iechr6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="oechr6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="igmbq6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="igmbr6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="ogmbr6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="igmbrd6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="ogmbrd6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="irtsol6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="ortsol6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="irtad6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="inbsol6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="onbsol6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="inbad6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="onbad6" type="hundredth-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="net-eicmp" type="net-eicmp-type"></xs:element>
-
-    <xs:complexType name="net-eicmp-type">
+</xs:complexType>
+
+<xs:element name="net-eicmp" type="net-eicmp-type"></xs:element>
+<xs:complexType name="net-eicmp-type">
        <xs:attribute name="ierr" type="hundredth-type"></xs:attribute>
        <xs:attribute name="oerr" type="hundredth-type"></xs:attribute>
        <xs:attribute name="idstunr" type="hundredth-type"></xs:attribute>
        <xs:attribute name="osrcq" type="hundredth-type"></xs:attribute>
        <xs:attribute name="iredir" type="hundredth-type"></xs:attribute>
        <xs:attribute name="oredir" type="hundredth-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="net-eicmp6" type="net-eicmp6-type"></xs:element>
-
-    <xs:complexType name="net-eicmp6-type">
-        <xs:attribute name="ierr6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="idtunr6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="odtunr6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="itmex6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="otmex6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="iprmpb6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="oprmpb6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="iredir6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="oredir6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="ipck2b6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="opck2b6" type="hundredth-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="net-tcp" type="net-tcp-type"></xs:element>
-
-    <xs:complexType name="net-tcp-type">
+</xs:complexType>
+
+<xs:element name="net-tcp" type="net-tcp-type"></xs:element>
+<xs:complexType name="net-tcp-type">
        <xs:attribute name="active" type="hundredth-type"></xs:attribute>
        <xs:attribute name="passive" type="hundredth-type"></xs:attribute>
        <xs:attribute name="iseg" type="hundredth-type"></xs:attribute>
        <xs:attribute name="oseg" type="hundredth-type"></xs:attribute>
-    </xs:complexType>
+</xs:complexType>
 
-    <xs:element name="net-etcp" type="net-etcp-type"></xs:element>
-
-    <xs:complexType name="net-etcp-type">
+<xs:element name="net-etcp" type="net-etcp-type"></xs:element>
+<xs:complexType name="net-etcp-type">
        <xs:attribute name="atmptf" type="hundredth-type"></xs:attribute>
        <xs:attribute name="estres" type="hundredth-type"></xs:attribute>
        <xs:attribute name="retrans" type="hundredth-type"></xs:attribute>
        <xs:attribute name="isegerr" type="hundredth-type"></xs:attribute>
        <xs:attribute name="orsts/" type="hundredth-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="net-udp" type="net-udp-type"></xs:element>
+</xs:complexType>
 
-    <xs:complexType name="net-udp-type">
+<xs:element name="net-udp" type="net-udp-type"></xs:element>
+<xs:complexType name="net-udp-type">
        <xs:attribute name="idgm" type="hundredth-type"></xs:attribute>
        <xs:attribute name="odgm" type="hundredth-type"></xs:attribute>
        <xs:attribute name="noport" type="hundredth-type"></xs:attribute>
        <xs:attribute name="idgmerr" type="hundredth-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="net-udp6" type="net-udp6-type"></xs:element>
-
-    <xs:complexType name="net-udp6-type">
-        <xs:attribute name="idgm6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="odgm6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="noport6" type="hundredth-type"></xs:attribute>
-        <xs:attribute name="idgmer6" type="hundredth-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="network" type="network-type"></xs:element>
+</xs:complexType>
+
+<xs:element name="net-sock6" type="net-sock6-type"></xs:element>
+<xs:complexType name="net-sock6-type">
+       <xs:attribute name="tcp6sck" type="xs:nonNegativeInteger"></xs:attribute>
+       <xs:attribute name="udp6sck" type="xs:nonNegativeInteger"></xs:attribute>
+       <xs:attribute name="raw6sck" type="xs:nonNegativeInteger"></xs:attribute>
+       <xs:attribute name="ip6-frag" type="xs:nonNegativeInteger"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="net-ip6" type="net-ip6-type"></xs:element>
+<xs:complexType name="net-ip6-type">
+       <xs:attribute name="irec6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="fwddgm6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="idel6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="orq6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="asmrq6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="asmok6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="imcpck6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="omcpck6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="fragok6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="fragcr6" type="hundredth-type"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="net-eip6" type="net-eip6-type"></xs:element>
+<xs:complexType name="net-eip6-type">
+       <xs:attribute name="ihdrer6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="iadrer6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="iukwnp6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="i2big6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="idisc6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="odisc6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="inort6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="onort6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="asmf6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="fragf6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="itrpck6" type="hundredth-type"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="net-icmp6" type="net-icmp6-type"></xs:element>
+<xs:complexType name="net-icmp6-type">
+       <xs:attribute name="imsg6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="omsg6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="iech6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="iechr6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="oechr6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="igmbq6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="igmbr6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="ogmbr6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="igmbrd6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="ogmbrd6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="irtsol6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="ortsol6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="irtad6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="inbsol6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="onbsol6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="inbad6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="onbad6" type="hundredth-type"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="net-eicmp6" type="net-eicmp6-type"></xs:element>
+<xs:complexType name="net-eicmp6-type">
+       <xs:attribute name="ierr6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="idtunr6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="odtunr6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="itmex6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="otmex6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="iprmpb6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="oprmpb6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="iredir6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="oredir6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="ipck2b6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="opck2b6" type="hundredth-type"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="net-udp6" type="net-udp6-type"></xs:element>
+<xs:complexType name="net-udp6-type">
+       <xs:attribute name="idgm6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="odgm6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="noport6" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="idgmer6" type="hundredth-type"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="power-management" type="power-management-type"></xs:element>
+<xs:complexType name="power-management-type">
+       <xs:sequence>
+               <xs:element name="cpu-frequency" type="cpu-frequency-type" minOccurs="1"></xs:element>
+               <xs:element name="fan-speed" type="fan-speed-type"></xs:element>
+               <xs:element name="temperature" type="temperature-type"></xs:element>
+               <xs:element name="voltage-input" type="voltage-input-type"></xs:element>
+               <xs:element name="cpu-weighted-frequency" type="cpu-weighted-frequency-type"></xs:element>
+       </xs:sequence>
+</xs:complexType>
 
-    <xs:complexType name="network-type">
-       <xs:sequence>
-               <xs:element name="net-dev" type="net-dev-type" minOccurs="1"></xs:element>
-               <xs:element name="net-edev" type="net-edev-type" minOccurs="1"></xs:element>
-               <xs:element name="net-nfs" type="net-nfs-type" minOccurs="1"></xs:element>
-               <xs:element name="net-nfsd" type="net-nfsd-type" minOccurs="1"></xs:element>
-               <xs:element name="net-sock" type="net-sock-type" minOccurs="1"></xs:element>
-               <xs:element name="net-ip" type="net-ip-type"></xs:element>
-               <xs:element name="net-eip" type="net-eip-type"></xs:element>
-               <xs:element name="net-icmp" type="net-icmp-type"></xs:element>
-               <xs:element name="net-eicmp" type="net-eicmp-type"></xs:element>
-               <xs:element name="net-tcp" type="net-tcp-type"></xs:element>
-               <xs:element name="net-etcp" type="net-etcp-type"></xs:element>
-               <xs:element name="net-udp" type="net-udp-type"></xs:element>
-                <xs:element name="net-sock6" type="net-sock6-type" minOccurs="1"></xs:element>
-                <xs:element name="net-ip6" type="net-ip6-type"></xs:element>
-                <xs:element name="net-eip6" type="net-eip6-type"></xs:element>
-                <xs:element name="net-icmp6" type="net-icmp6-type"></xs:element>
-                <xs:element name="net-eicmp6" type="net-eicmp6-type"></xs:element>
-                <xs:element name="net-udp6" type="net-udp6-type"></xs:element>
-       </xs:sequence>
-       <xs:attribute name="per" type="per-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="tty" type="tty-type"></xs:element>
-
-    <xs:complexType name="tty-type">
-       <xs:attribute name="line" type="xs:int"></xs:attribute>
-       <xs:attribute name="rcvin" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="xmtin" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="framerr" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="prtyerr" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="brk" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="ovrun" type="hundredth-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="serial" type="serial-type"></xs:element>
-
-    <xs:complexType name="serial-type">
-       <xs:sequence>
-               <xs:element name="tty" type="tty-type"></xs:element>
-       </xs:sequence>
-       <xs:attribute name="per" type="per-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="disk-device" type="disk-device-type"></xs:element>
-
-    <xs:complexType name="disk-device-type">
-       <xs:attribute name="dev" type="xs:string"></xs:attribute>
-       <xs:attribute name="tps" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="rd_sec" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="wr_sec" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="avgrq-sz" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="avrqu-sz" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="await" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="svctm" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="util-percent" type="hundredth-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="disk" type="disk-type"></xs:element>
-
-    <xs:complexType name="disk-type">
-       <xs:sequence>
-               <xs:element name="disk-device" type="disk-device-type"></xs:element>
-       </xs:sequence>
-       <xs:attribute name="per" type="per-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="tps" type="tps-type"></xs:element>
-
-    <xs:element name="io-reads" type="io-reads-type"></xs:element>
-
-    <xs:complexType name="io-reads-type">
-       <xs:attribute name="rtps" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="bread" type="hundredth-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="io-writes" type="io-writes-type"></xs:element>
-
-    <xs:complexType name="io-writes-type">
-       <xs:attribute name="wtps" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="bwrtn" type="hundredth-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="io" type="io-type"></xs:element>
-
-    <xs:complexType name="io-type">
-       <xs:sequence>
-               <xs:element name="io-reads" type="io-reads-type" minOccurs="1"></xs:element>
-               <xs:element name="io-writes" type="io-writes-type" minOccurs="1"></xs:element>
-               <xs:element name="tps" type="tps-type" minOccurs="1"></xs:element>
-       </xs:sequence>
-       <xs:attribute name="per" type="per-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="swap-pages" type="swap-pages-type"></xs:element>
-
-    <xs:complexType name="swap-pages-type">
-       <xs:attribute name="per" type="per-type"></xs:attribute>
-       <xs:attribute name="pswpin" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="pswpout" type="hundredth-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="int-global" type="int-global-type"></xs:element>
-
-    <xs:complexType name="int-global-type">
-       <xs:sequence>
-               <xs:element name="irq" type="irq-type" minOccurs="1"></xs:element>
-       </xs:sequence>
-       <xs:attribute name="per" type="per-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="cpu-frequency" type="cpu-frequency-type"></xs:element>
-
-    <xs:complexType name="cpu-frequency-type">
-       <xs:sequence>
-               <xs:element name="cpufreq" type="cpufreq-type" minOccurs="1"></xs:element>
-       </xs:sequence>
-       <xs:attribute name="unit" type="frequnit-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:simpleType name="frequnit-type">
-       <xs:restriction base="xs:string">
-               <xs:enumeration value="MHz"></xs:enumeration>
-       </xs:restriction>
-    </xs:simpleType>
-
-    <xs:element name="cpu-weighted-frequency" type="cpu-weighted-frequency-type"></xs:element>
-
-    <xs:complexType name="cpu-weighted-frequency-type">
-       <xs:sequence>
-               <xs:element name="cpuwfreq" type="cpuwfreq-type" minOccurs="1"></xs:element>
-       </xs:sequence>
+<xs:element name="cpu-frequency" type="cpu-frequency-type"></xs:element>
+<xs:complexType name="cpu-frequency-type">
+       <xs:sequence>
+               <xs:element name="cpufreq" type="cpufreq-type" minOccurs="1"></xs:element>
+       </xs:sequence>
        <xs:attribute name="unit" type="frequnit-type"></xs:attribute>
-    </xs:complexType>
+</xs:complexType>
 
-    <xs:element name="fan-speed" type="fan-speed-type"></xs:element>
+<xs:element name="cpufreq" type="cpufreq-type"></xs:element>
+<xs:complexType name="cpufreq-type">
+       <xs:attribute name="number" type="xs:string"></xs:attribute>
+       <xs:attribute name="frequency" type="hundredth-type"></xs:attribute>
+</xs:complexType>
 
-    <xs:complexType name="fan-speed-type">
-       <xs:sequence>
-               <xs:element name="fan" type="fan-type"></xs:element>
-       </xs:sequence>
-       <xs:attribute name="unit" type="fanunit-type"></xs:attribute>
-    </xs:complexType>
+<xs:simpleType name="frequnit-type">
+       <xs:restriction base="xs:string">
+               <xs:enumeration value="MHz"></xs:enumeration>
+       </xs:restriction>
+</xs:simpleType>
 
-    <xs:simpleType name="fanunit-type">
-       <xs:restriction base="xs:string">
-               <xs:enumeration value="rpm"></xs:enumeration>
-       </xs:restriction>
-    </xs:simpleType>
+<xs:element name="fan-speed" type="fan-speed-type"></xs:element>
+<xs:complexType name="fan-speed-type">
+       <xs:sequence>
+               <xs:element name="fan" type="fan-type"></xs:element>
+       </xs:sequence>
+       <xs:attribute name="unit" type="fanunit-type"></xs:attribute>
+</xs:complexType>
+
+<xs:element name="fan" type="fan-type"></xs:element>
+<xs:complexType name="fan-type">
+       <xs:attribute name="number" type="xs:nonNegativeInteger"></xs:attribute>
+       <xs:attribute name="rpm" type="xs:nonNegativeInteger"></xs:attribute>
+       <xs:attribute name="drpm" type="xs:integer"></xs:attribute>
+       <xs:attribute name="device" type="xs:string"></xs:attribute>
+</xs:complexType>
 
-   <xs:element name="temperature" type="temperature-type"></xs:element>
+<xs:simpleType name="fanunit-type">
+       <xs:restriction base="xs:string">
+               <xs:enumeration value="rpm"></xs:enumeration>
+       </xs:restriction>
+</xs:simpleType>
 
-   <xs:complexType name="temperature-type">
-       <xs:sequence>
-               <xs:element name="temp" type="temp-type"></xs:element>
+<xs:element name="temperature" type="temperature-type"></xs:element>
+<xs:complexType name="temperature-type">
+       <xs:sequence>
+               <xs:element name="temp" type="temp-type"></xs:element>
        </xs:sequence>
        <xs:attribute name="unit" type="tempunit-type"></xs:attribute>
-    </xs:complexType>
+</xs:complexType>
 
-    <xs:simpleType name="tempunit-type">
-       <xs:restriction base="xs:string">
-               <xs:enumeration value="degree Celsius"></xs:enumeration>
-       </xs:restriction>
-    </xs:simpleType>
+<xs:element name="temp" type="temp-type"></xs:element>
+<xs:complexType name="temp-type">
+       <xs:attribute name="number" type="xs:nonNegativeInteger"></xs:attribute>
+       <xs:attribute name="degC" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="percent-temp" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="device" type="xs:string"></xs:attribute>
+</xs:complexType>
 
-   <xs:element name="voltage-input" type="voltage-input-type"></xs:element>
+<xs:simpleType name="tempunit-type">
+       <xs:restriction base="xs:string">
+               <xs:enumeration value="degree Celsius"></xs:enumeration>
+       </xs:restriction>
+</xs:simpleType>
 
-   <xs:complexType name="voltage-input-type">
-       <xs:sequence>
-               <xs:element name="in" type="in-type"></xs:element>
+<xs:element name="voltage-input" type="voltage-input-type"></xs:element>
+<xs:complexType name="voltage-input-type">
+       <xs:sequence>
+               <xs:element name="in" type="in-type"></xs:element>
        </xs:sequence>
        <xs:attribute name="unit" type="inunit-type"></xs:attribute>
-   </xs:complexType>
+</xs:complexType>
+
+<xs:element name="in" type="in-type"></xs:element>
+<xs:complexType name="in-type">
+       <xs:attribute name="number" type="xs:nonNegativeInteger"></xs:attribute>
+       <xs:attribute name="inV" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="percent-in" type="hundredth-type"></xs:attribute>
+       <xs:attribute name="device" type="xs:string"></xs:attribute>
+</xs:complexType>
 
-    <xs:simpleType name="inunit-type">
+<xs:simpleType name="inunit-type">
        <xs:restriction base="xs:string">
                <xs:enumeration value="V"></xs:enumeration>
        </xs:restriction>
-   </xs:simpleType>
+</xs:simpleType>
 
-    <xs:element name="irq" type="irq-type"></xs:element>
-
-    <xs:complexType name="irq-type">
-       <xs:attribute name="intr" type="xs:int"></xs:attribute>
-       <xs:attribute name="value" type="hundredth-type"></xs:attribute>
-    </xs:complexType>
-    
-    <xs:element name="cpufreq" type="cpufreq-type"></xs:element>
-
-    <xs:complexType name="cpufreq-type">
-       <xs:attribute name="number" type="xs:string"></xs:attribute>
-       <xs:attribute name="frequency" type="hundredth-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="cpuwfreq" type="cpuwfreq-type"></xs:element>
+<xs:element name="cpu-weighted-frequency" type="cpu-weighted-frequency-type"></xs:element>
+<xs:complexType name="cpu-weighted-frequency-type">
+       <xs:sequence>
+               <xs:element name="cpuwfreq" type="cpuwfreq-type" minOccurs="1"></xs:element>
+       </xs:sequence>
+       <xs:attribute name="unit" type="frequnit-type"></xs:attribute>
+</xs:complexType>
 
-    <xs:complexType name="cpuwfreq-type">
+<xs:element name="cpuwfreq" type="cpuwfreq-type"></xs:element>
+<xs:complexType name="cpuwfreq-type">
        <xs:attribute name="number" type="xs:string"></xs:attribute>
        <xs:attribute name="weighted-frequency" type="hundredth-type"></xs:attribute>
-    </xs:complexType>
+</xs:complexType>
 
-    <xs:element name="fan" type="fan-type"></xs:element>
-
-    <xs:complexType name="fan-type">
-       <xs:attribute name="number" type="xs:nonNegativeInteger"></xs:attribute>
-       <xs:attribute name="rpm" type="xs:nonNegativeInteger"></xs:attribute>
-       <xs:attribute name="drpm" type="xs:integer"></xs:attribute>
-       <xs:attribute name="device" type="xs:string"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="temp" type="temp-type"></xs:element>
-
-    <xs:complexType name="temp-type">
-       <xs:attribute name="number" type="xs:nonNegativeInteger"></xs:attribute>
-       <xs:attribute name="degC" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="percent-temp" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="device" type="xs:string"></xs:attribute>
-    </xs:complexType>
-
-   <xs:element name="in" type="in-type"></xs:element>
+<xs:element name="usb-devices" type="usb-devices-type"></xs:element>
+<xs:complexType name="usb-devices-type">
+       <xs:sequence>
+               <xs:element name="usb" type="usb-type"></xs:element>
+       </xs:sequence>
+</xs:complexType>
+
+<xs:element name="usb" type="usb-type"></xs:element>
+<xs:complexType name="usb-type">
+       <xs:attribute name="bus_number" type="xs:integer"></xs:attribute>
+       <xs:attribute name="idvendor" type="xs:string"></xs:attribute>
+       <xs:attribute name="idprod" type="xs:string"></xs:attribute>
+       <xs:attribute name="maxpower" type="xs:nonNegativeInteger"></xs:attribute>
+       <xs:attribute name="manufact" type="xs:string"></xs:attribute>
+       <xs:attribute name="product" type="xs:string"></xs:attribute>
+</xs:complexType>
 
-   <xs:complexType name="in-type">
-       <xs:attribute name="number" type="xs:nonNegativeInteger"></xs:attribute>
-       <xs:attribute name="inV" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="percent-in" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="device" type="xs:string"></xs:attribute>
-   </xs:complexType>
-
-    <xs:element name="cpu" type="cpu-type"></xs:element>
-
-    <xs:complexType name="cpu-type">
-       <xs:attribute name="number" type="xs:string"></xs:attribute>
-       <xs:attribute name="user" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="nice" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="system" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="iowait" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="steal" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="idle" type="hundredth-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="cpu-all" type="cpu-all-type"></xs:element>
-
-    <xs:complexType name="cpu-all-type">
-       <xs:attribute name="number" type="xs:string"></xs:attribute>
-       <xs:attribute name="usr" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="nice" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="sys" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="iowait" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="steal" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="irq" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="soft" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="guest" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="idle" type="hundredth-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="cpu-load" type="cpu-load-type"></xs:element>
-
-    <xs:complexType name="cpu-load-type">
-       <xs:sequence>
-               <xs:element name="cpu" type="cpu-type"></xs:element>
-       </xs:sequence>
-    </xs:complexType>
-
-    <xs:element name="cpu-load-all" type="cpu-load-all-type"></xs:element>
-
-    <xs:complexType name="cpu-load-all-type">
-       <xs:sequence>
-               <xs:element name="cpu-all" type="cpu-all-type"></xs:element>
-       </xs:sequence>
-    </xs:complexType>
-
-    <xs:element name="process-and-context-switch"
-           type="process-and-context-switch-type"></xs:element>
-
-    <xs:complexType name="process-and-context-switch-type">
-       <xs:attribute name="per" type="per-type"></xs:attribute>
-       <xs:attribute name="proc" type="hundredth-type"></xs:attribute>
-       <xs:attribute name="cswch" type="hundredth-type"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="timestamp" type="timestamp-type"></xs:element>
-
-    <xs:complexType name="timestamp-type">
-       <xs:sequence>
-               <xs:element name="cpu-load" type="cpu-load-type"></xs:element>
-               <xs:element name="cpu-load-all" type="cpu-load-all-type"></xs:element>
-               <xs:element name="process-and-context-switch"
-                       type="process-and-context-switch-type"></xs:element>
-               <xs:element name="interrupts" type="interrupts-type"></xs:element>
-               <xs:element name="swap-pages" type="swap-pages-type"></xs:element>
-               <xs:element name="paging" type="paging-type"></xs:element>
-               <xs:element name="io" type="io-type"></xs:element>
-               <xs:element name="memory" type="memory-type"></xs:element>
-               <xs:element name="hugepages" type="hugepages-type"></xs:element>
-               <xs:element name="kernel" type="kernel-type"></xs:element>
-               <xs:element name="queue" type="queue-type"></xs:element>
-               <xs:element name="serial" type="serial-type"></xs:element>
-               <xs:element name="disk" type="disk-type"></xs:element>
-               <xs:element name="network" type="network-type"></xs:element>
-               <xs:element name="power-management" type="power-management-type"></xs:element>
-       </xs:sequence>
-       <xs:attribute name="date" type="xs:date"></xs:attribute>
-       <xs:attribute name="time" type="xs:time"></xs:attribute>
-       <xs:attribute name="interval" type="xs:nonNegativeInteger"></xs:attribute>
-    </xs:complexType>
-
-    <xs:element name="interrupts" type="interrupts-type"></xs:element>
-
-    <xs:complexType name="interrupts-type">
-       <xs:sequence>
-               <xs:element name="int-global" type="int-global-type"
-                       minOccurs="1">
-               </xs:element>
-       </xs:sequence>
-    </xs:complexType>
-    
-    <xs:element name="power-management" type="power-management-type"></xs:element>
-
-    <xs:complexType name="power-management-type">
-       <xs:sequence>
-               <xs:element name="cpu-frequency" type="cpu-frequency-type"
-                       minOccurs="1">
-               </xs:element>
-               <xs:element name="fan-speed" type="fan-speed-type"></xs:element>
-               <xs:element name="temperature" type="temperature-type"></xs:element>
-               <xs:element name="voltage-input" type="voltage-input-type"></xs:element>
-               <xs:element name="cpu-weighted-frequency" type="cpu-weighted-frequency-type"></xs:element>
-       </xs:sequence>
-    </xs:complexType>
-
-    <xs:simpleType name="tps-type">
-       <xs:restriction base="hundredth-type"></xs:restriction>
-    </xs:simpleType>
-
-    <xs:element name="statistics" type="statistics-type"></xs:element>
-
-    <xs:complexType name="statistics-type">
-       <xs:sequence>
-               <xs:element name="timestamp" type="timestamp-type"></xs:element>
-       </xs:sequence>
-    </xs:complexType>
-
-    <xs:element name="release" type="release-type"></xs:element>
-
-    <xs:simpleType name="release-type">
-       <xs:restriction base="xs:string"></xs:restriction>
-    </xs:simpleType>
-
-    <xs:element name="machine" type="machine-type"></xs:element>
-
-    <xs:simpleType name="machine-type">
-       <xs:restriction base="xs:string"></xs:restriction>
-    </xs:simpleType>
-    
-    <xs:element name="number-of-cpus" type="number-of-cpus-type"></xs:element>
-
-    <xs:simpleType name="number-of-cpus-type">
-       <xs:restriction base="xs:nonNegativeInteger"></xs:restriction>
-    </xs:simpleType>
-
-    <xs:element name="file-date" type="file-date-type"></xs:element>
-
-    <xs:simpleType name="file-date-type">
-        <xs:restriction base="xs:date"></xs:restriction>
-
-    </xs:simpleType>
-    <xs:element name="sysname" type="sysname-type"></xs:element>
-
-    <xs:simpleType name="sysname-type">
-       <xs:restriction base="xs:string"></xs:restriction>
-    </xs:simpleType>
-
-    <xs:element name="host" type="host-type"></xs:element>
-
-    <xs:complexType name="host-type">
-       <xs:sequence>
-               <xs:element name="sysname" type="sysname-type"></xs:element>
-               <xs:element name="release" type="release-type"></xs:element>
-               <xs:element name="machine" type="machine-type"></xs:element>
-               <xs:element name="file-date" type="file-date-type"></xs:element>
-               <xs:element name="number-of-cpus" type="number-of-cpus-type"></xs:element>
-               <xs:element name="statistics" type="statistics-type"></xs:element>
-               <xs:element name="restarts" type="restarts-type"></xs:element>
-               <xs:element name="comments" type="comments-type"></xs:element>
-       </xs:sequence>
-       <xs:attribute name="nodename" type="xs:string"></xs:attribute>
-    </xs:complexType>
-    
-    <xs:element name="sysdata-version" type="sysdata-version-type"></xs:element>
-
-
-    <xs:simpleType name="sysdata-version-type">
-       <xs:restriction base="xs:string"></xs:restriction>
-    </xs:simpleType>
-
-    <xs:element name="sysstat" type="sysstat-type"></xs:element>
-
-    <xs:complexType name="sysstat-type">
-       <xs:sequence>
-               <xs:element name="sysdata-version"
-                       type="sysdata-version-type">
-               </xs:element>
-               <xs:element name="host" type="host-type"></xs:element>
-       </xs:sequence>
-    </xs:complexType>
-
-    <xs:element name="restarts" type="restarts-type"></xs:element>
-
-    <xs:complexType name="restarts-type">
-       <xs:sequence>
-               <xs:element name="boot" type="boot-type"></xs:element>
-       </xs:sequence>
-    </xs:complexType>
-    
-    <xs:element name="comments" type="comments-type"></xs:element>
-
-    <xs:complexType name="comments-type">
-       <xs:attribute name="date" type="xs:date"></xs:attribute>
-       <xs:attribute name="time" type="xs:time"></xs:attribute>
-       <xs:attribute name="comment" type="xs:string"></xs:attribute>
-    </xs:complexType>
-
-    
-
-    <xs:element name="boot" type="boot-type"></xs:element>
-
-    <xs:complexType name="boot-type">
-       <xs:sequence></xs:sequence>
-       <xs:attribute name="date" type="xs:date"></xs:attribute>
-       <xs:attribute name="time" type="xs:time"></xs:attribute>
-    </xs:complexType>
 </xs:schema>
index ac108f55c1feb3336e2c16f60287318f39abb128..4d109a01671b96e36fe14f5a8c548a112ed18260 100644 (file)
@@ -1972,5 +1972,39 @@ close_xml_markup:
 __print_funct_t xml_print_pwr_usb_stats(struct activity *a, int curr, int tab,
                                        unsigned long long itv)
 {
-       /* FIXME */
+       int i;
+       struct stats_pwr_usb *suc;
+
+       if (!IS_SELECTED(a->options) || (a->nr <= 0))
+               goto close_xml_markup;
+
+       xml_markup_power_management(tab, OPEN_XML_MARKUP);
+       tab++;
+
+       xprintf(tab++, "<usb-devices>");
+
+       for (i = 0; i < a->nr; i++) {
+               suc = (struct stats_pwr_usb *) ((char *) a->buf[curr]  + i * a->msize);
+
+               if (!suc->bus_nr)
+                       /* Bus#0 doesn't exist: We are at the end of the list */
+                       break;
+
+               xprintf(tab, "<usb bus_number=\"%d\" idvendor=\"%x\" idprod=\"%x\" "
+                            "maxpower=\"%u\" manufact=\"%s\" product=\"%s\"/>",
+                       suc->bus_nr,
+                       suc->vendor_id,
+                       suc->product_id,
+                       suc->bmaxpower << 1,
+                       suc->manufacturer,
+                       suc->product);
+       }
+
+       xprintf(--tab, "</usb-devices>");
+       tab--;
+
+close_xml_markup:
+       if (CLOSE_MARKUP(a->options)) {
+               xml_markup_power_management(tab, CLOSE_XML_MARKUP);
+       }
 }
\ No newline at end of file