virtio-spec: set mac address by a new vq command

Virtio-net driver currently programs MAC address byte by byte,
this means that we have an intermediate step where mac is wrong.
This patch introduced a new control command to set MAC address
in one time, and added a new feature flag VIRTIO_NET_F_MAC_ADDR
for this feature.

"mac" field will be set to read-only when VIRTIO_NET_F_CTRL_MAC_ADDR
 is acked.

Signed-off-by: Amos Kong <akong@redhat.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Add missing ; in virtio_net_hdr.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
virtio-spec: Define virtio-mmio registers as LE

To solve the never-ending confusions between hosts and guests
of different endianess, define all virtio-mmio registers as LE.

This change should be safe at this stage, because no known
working mixed-endian system exists so there is virtually no
risk of breaking compatibility.

Signed-off-by: Pawel Moll <pawel.moll@arm.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>