Since Michael said he'd merge this version, there's just one thing I
would change. You can access the region only one byte at a time, and
let the memory core fix endianness here:
On 27/04/2015 13:19, Gal Hammer wrote:
> +static uint64_t vmgenid_ram_read(void *opaque, hwaddr addr,
> + unsigned size)
> +{
> + VmGenIdState *s = VMGENID(opaque);
> + uint64_t value;
> +
> + memcpy(&value, s->guid + addr, size);
value = s->guid[addr];
> + return value;
> +}
> +
> +static const MemoryRegionOps vmgenid_ram_ops = {
> + .read = vmgenid_ram_read,
> + .valid = {
> + .min_access_size = 4,
> + .max_access_size = 4,
> + },
And instead of this .valid declaration, use this:
.valid.min_access_size = 1,
.valid.max_access_size = 4,
.impl.min_access_size = 1,
.impl.max_access_size = 1,
> + .endianness = DEVICE_NATIVE_ENDIAN,
.endianness = DEVICE_LITTLE_ENDIAN
> +};
Thanks,
Paolo