Get and SetSchedulerParameters are the most free-form APIs in libvirt,
if that's all it takes, I would say congrats to JNA design, of course
there is a separate classes for them but they are really simple and the
the result looks natural, great !
[...]

+ public long rd_bytes ;
+ public long wr_req ;
+ public long wr_bytes ;
+ public long errs ;
+}

Hum ... in C we have
struct _virDomainBlockStats {
long long rd_req; /* number of read requests */
long long rd_bytes; /* number of read bytes */
long long wr_req; /* number of write requests */
long long wr_bytes; /* number of written bytes */
long long errs; /* In Xen this returns the mysterious 'oo_req'. */
};
will java long really be able to match C long long scope ?

Per the JNA mappings, long long equals java long... so this is correct.
I did add an explicit comment on each line which uses a long in java
instead of a NativeLong.

+package org.libvirt.jna;
+
+import com.sun.jna.Structure;
+
+public class virDomainInterfaceStats extends Structure
+{
+ public long rx_bytes;
+ public long rx_packets;
+ public long rx_errs;
+ public long rx_drop;
+ public long tx_bytes;
+ public long tx_packets;
+ public long tx_errs;
+ public long tx_drop;