mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-11-05 20:35:44 +00:00
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:
parent
143b040f4a
commit
1439f21307
2 changed files with 30 additions and 7 deletions
|
@ -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
|
||||
|
|
|
@ -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-" \
|
||||
|
|
Loading…
Reference in a new issue