[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v4 27/33] nvdimm acpi: save arg3 for NVDIMM device _
From: |
Xiao Guangrong |
Subject: |
[Qemu-devel] [PATCH v4 27/33] nvdimm acpi: save arg3 for NVDIMM device _DSM method |
Date: |
Mon, 19 Oct 2015 08:54:13 +0800 |
Check if the input Arg3 is valid then store it into dsm_in if needed
Signed-off-by: Xiao Guangrong <address@hidden>
---
hw/acpi/nvdimm.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/hw/acpi/nvdimm.c b/hw/acpi/nvdimm.c
index 7e99889..b211b8b 100644
--- a/hw/acpi/nvdimm.c
+++ b/hw/acpi/nvdimm.c
@@ -624,10 +624,29 @@ static void nvdimm_build_acpi_devices(NVDIMMState *state,
GSList *device_list,
method = aml_method_serialized("NCAL", 4);
{
+ Aml *ifctx;
+
aml_append(method, aml_store(aml_arg(0), aml_name("HDLE")));
aml_append(method, aml_store(aml_arg(1), aml_name("REVS")));
aml_append(method, aml_store(aml_arg(2), aml_name("FUNC")));
+ /* Arg3 is passed as Package and it has one element? */
+ ifctx = aml_if(aml_and(aml_equal(aml_object_type(aml_arg(3)),
+ aml_int(4)),
+ aml_equal(aml_sizeof(aml_arg(3)),
+ aml_int(1))));
+ {
+ /* Local0 = Index(Arg3, 0) */
+ aml_append(ifctx, aml_store(aml_index(aml_arg(3), aml_int(0)),
+ aml_local(0)));
+ /* Local3 = DeRefOf(Local0) */
+ aml_append(ifctx, aml_store(aml_derefof(aml_local(0)),
+ aml_local(3)));
+ /* ARG3 = Local3 */
+ aml_append(ifctx, aml_store(aml_local(3), aml_name("ARG3")));
+ }
+ aml_append(method, ifctx);
+
aml_append(method, aml_store(aml_int(NOTIFY_VALUE), aml_name("NOTI")));
aml_append(method, aml_store(aml_name("RLEN"), aml_local(6)));
--
1.8.3.1
- [Qemu-devel] [PATCH v4 18/33] dimm: get mapped memory region from DIMMDeviceClass->get_memory_region, (continued)
- [Qemu-devel] [PATCH v4 18/33] dimm: get mapped memory region from DIMMDeviceClass->get_memory_region, Xiao Guangrong, 2015/10/18
- [Qemu-devel] [PATCH v4 19/33] dimm: keep the state of the whole backend memory, Xiao Guangrong, 2015/10/18
- [Qemu-devel] [PATCH v4 20/33] dimm: introduce realize callback, Xiao Guangrong, 2015/10/18
- [Qemu-devel] [PATCH v4 21/33] nvdimm: implement NVDIMM device abstract, Xiao Guangrong, 2015/10/18
- [Qemu-devel] [PATCH v4 22/33] docs: add NVDIMM ACPI documentation, Xiao Guangrong, 2015/10/18
- [Qemu-devel] [PATCH v4 23/33] nvdimm acpi: init the address region used by NVDIMM ACPI, Xiao Guangrong, 2015/10/18
- [Qemu-devel] [PATCH v4 24/33] nvdimm acpi: build ACPI NFIT table, Xiao Guangrong, 2015/10/18
- [Qemu-devel] [PATCH v4 26/33] nvdimm acpi: build ACPI nvdimm devices, Xiao Guangrong, 2015/10/18
- [Qemu-devel] [PATCH v4 27/33] nvdimm acpi: save arg3 for NVDIMM device _DSM method,
Xiao Guangrong <=
- Re: [Qemu-devel] [PATCH v4 27/33] nvdimm acpi: save arg3 for NVDIMM device _DSM method, Michael S. Tsirkin, 2015/10/18
- Re: [Qemu-devel] [PATCH v4 27/33] nvdimm acpi: save arg3 for NVDIMM device _DSM method, Xiao Guangrong, 2015/10/19
- Re: [Qemu-devel] [PATCH v4 27/33] nvdimm acpi: save arg3 for NVDIMM device _DSM method, Michael S. Tsirkin, 2015/10/19
- Re: [Qemu-devel] [PATCH v4 27/33] nvdimm acpi: save arg3 for NVDIMM device _DSM method, Michael S. Tsirkin, 2015/10/19
- Re: [Qemu-devel] [PATCH v4 27/33] nvdimm acpi: save arg3 for NVDIMM device _DSM method, Dan Williams, 2015/10/19
- Re: [Qemu-devel] [PATCH v4 27/33] nvdimm acpi: save arg3 for NVDIMM device _DSM method, Michael S. Tsirkin, 2015/10/19
- Re: [Qemu-devel] [PATCH v4 27/33] nvdimm acpi: save arg3 for NVDIMM device _DSM method, Dan Williams, 2015/10/19
- [Qemu-devel] [PATCH v4 25/33] nvdimm acpi: init the address region used by DSM, Xiao Guangrong, 2015/10/18
- [Qemu-devel] [PATCH v4 29/33] nvdimm acpi: support DSM_DEV_FUN_NAMESPACE_LABEL_SIZE function, Xiao Guangrong, 2015/10/18
- [Qemu-devel] [PATCH v4 28/33] nvdimm acpi: support DSM_FUN_IMPLEMENTED function, Xiao Guangrong, 2015/10/18