acpi: nvdimm: change NVDIMM_UUID_LE to a common macro

The little end UUID is used in many places, so make
NVDIMM_UUID_LE to a common macro to convert the UUID
to a little end array.

Reviewed-by: Xiang Zheng <zhengxiang9@huawei.com>
Signed-off-by: Dongjiu Geng <gengdongjiu@huawei.com>
Message-id: 20200512030609.19593-2-gengdongjiu@huawei.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Dongjiu Geng 2020-05-12 11:06:00 +08:00 committed by Peter Maydell
parent 143b040f4a
commit 1439f21307
2 changed files with 30 additions and 7 deletions

View file

@ -27,6 +27,7 @@
*/
#include "qemu/osdep.h"
#include "qemu/uuid.h"
#include "hw/acpi/acpi.h"
#include "hw/acpi/aml-build.h"
#include "hw/acpi/bios-linker-loader.h"
@ -34,18 +35,13 @@
#include "hw/mem/nvdimm.h"
#include "qemu/nvdimm-utils.h"
#define NVDIMM_UUID_LE(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) \
{ (a) & 0xff, ((a) >> 8) & 0xff, ((a) >> 16) & 0xff, ((a) >> 24) & 0xff, \
(b) & 0xff, ((b) >> 8) & 0xff, (c) & 0xff, ((c) >> 8) & 0xff, \
(d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }
/*
* define Byte Addressable Persistent Memory (PM) Region according to
* ACPI 6.0: 5.2.25.1 System Physical Address Range Structure.
*/
static const uint8_t nvdimm_nfit_spa_uuid[] =
NVDIMM_UUID_LE(0x66f0d379, 0xb4f3, 0x4074, 0xac, 0x43, 0x0d, 0x33,
0x18, 0xb7, 0x8c, 0xdb);
UUID_LE(0x66f0d379, 0xb4f3, 0x4074, 0xac, 0x43, 0x0d, 0x33,
0x18, 0xb7, 0x8c, 0xdb);
/*
* NVDIMM Firmware Interface Table

View file

@ -34,6 +34,33 @@ typedef struct {
};
} QemuUUID;
/**
* UUID_LE - converts the fields of UUID to little-endian array,
* each of parameters is the filed of UUID.
*
* @time_low: The low field of the timestamp
* @time_mid: The middle field of the timestamp
* @time_hi_and_version: The high field of the timestamp
* multiplexed with the version number
* @clock_seq_hi_and_reserved: The high field of the clock
* sequence multiplexed with the variant
* @clock_seq_low: The low field of the clock sequence
* @node0: The spatially unique node0 identifier
* @node1: The spatially unique node1 identifier
* @node2: The spatially unique node2 identifier
* @node3: The spatially unique node3 identifier
* @node4: The spatially unique node4 identifier
* @node5: The spatially unique node5 identifier
*/
#define UUID_LE(time_low, time_mid, time_hi_and_version, \
clock_seq_hi_and_reserved, clock_seq_low, node0, node1, node2, \
node3, node4, node5) \
{ (time_low) & 0xff, ((time_low) >> 8) & 0xff, ((time_low) >> 16) & 0xff, \
((time_low) >> 24) & 0xff, (time_mid) & 0xff, ((time_mid) >> 8) & 0xff, \
(time_hi_and_version) & 0xff, ((time_hi_and_version) >> 8) & 0xff, \
(clock_seq_hi_and_reserved), (clock_seq_low), (node0), (node1), (node2),\
(node3), (node4), (node5) }
#define UUID_FMT "%02hhx%02hhx%02hhx%02hhx-" \
"%02hhx%02hhx-%02hhx%02hhx-" \
"%02hhx%02hhx-" \