xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0 of 2] Add configuration options to selectively disable S3 and S4 (V3)
@ 2011-11-18 10:35 Paul Durrant
  2011-11-18 10:35 ` [PATCH 1 of 2] Move acpi_enabled out of hvm_info_table into xenstore Paul Durrant
  2011-11-18 10:35 ` [PATCH 2 of 2] Add configuration options to selectively disable S3 and S4 ACPI power states Paul Durrant
  0 siblings, 2 replies; 3+ messages in thread
From: Paul Durrant @ 2011-11-18 10:35 UTC (permalink / raw)
  To: xen-devel; +Cc: paul.durrant

This patch series adds the ability to selectively disable the S3 and S4 ACPI
power states for HVM guests.

Since there is a general move towards retiring the hvm_info_table structure,
the first patch moves the acpi_enabled flag out of the hvm_info_table and into
a xenstore key (platform/acpi).
The second patch then introduces the acpi_s3 and acpi_s4 configuration
parameters to the xl config file (default=1). These result in population of
new platform/acpi_s3 and platform/acpi_s4 xenstore keys. hvmloader then reads
these keys to determine whether or not to include SSDTs containing the
_S3 and _S4 packages respectively.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH 1 of 2] Move acpi_enabled out of hvm_info_table into xenstore
  2011-11-18 10:35 [PATCH 0 of 2] Add configuration options to selectively disable S3 and S4 (V3) Paul Durrant
@ 2011-11-18 10:35 ` Paul Durrant
  2011-11-18 10:35 ` [PATCH 2 of 2] Add configuration options to selectively disable S3 and S4 ACPI power states Paul Durrant
  1 sibling, 0 replies; 3+ messages in thread
From: Paul Durrant @ 2011-11-18 10:35 UTC (permalink / raw)
  To: xen-devel; +Cc: paul.durrant

# HG changeset patch
# User Paul Durrant <paul.durrant@citrix.com>
# Date 1321612413 0
# Node ID 8a29891d6a98002b299d73253935c161ecf393a1
# Parent  dbdc840f8f62db58321b5009e5e0f7833066386f
Move acpi_enabled out of hvm_info_table into xenstore

Since hvmloader has a xentore client, use a platform key in xenstore
to indicate whether ACPI is enabled or not rather than the shared
hvm_info_table structure.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>

diff -r dbdc840f8f62 -r 8a29891d6a98 tools/firmware/hvmloader/hvmloader.c
--- a/tools/firmware/hvmloader/hvmloader.c	Wed Nov 16 18:21:14 2011 +0000
+++ b/tools/firmware/hvmloader/hvmloader.c	Fri Nov 18 10:33:33 2011 +0000
@@ -423,6 +423,7 @@ int main(void)
     const struct bios_config *bios;
     int option_rom_sz = 0, vgabios_sz = 0, etherboot_sz = 0;
     uint32_t etherboot_phys_addr = 0, option_rom_phys_addr = 0;
+    int acpi_enabled;
 
     /* Initialise hypercall stubs with RET, rendering them no-ops. */
     memset((void *)HYPERCALL_PHYSICAL_ADDRESS, 0xc3 /* RET */, PAGE_SIZE);
@@ -506,7 +507,9 @@ int main(void)
                                              option_rom_phys_addr);
     }
 
-    if ( hvm_info->acpi_enabled )
+    acpi_enabled = !strncmp(xenstore_read("platform/acpi", "1"), "1", 1);
+
+    if ( acpi_enabled )
     {
         struct xen_hvm_param p = {
             .domid = DOMID_SELF,
diff -r dbdc840f8f62 -r 8a29891d6a98 tools/libxc/xc_hvm_build.c
--- a/tools/libxc/xc_hvm_build.c	Wed Nov 16 18:21:14 2011 +0000
+++ b/tools/libxc/xc_hvm_build.c	Fri Nov 18 10:33:33 2011 +0000
@@ -67,7 +67,6 @@ static void build_hvm_info(void *hvm_inf
     hvm_info->length = sizeof(struct hvm_info_table);
 
     /* Sensible defaults: these can be overridden by the caller. */
-    hvm_info->acpi_enabled = 1;
     hvm_info->apic_mode = 1;
     hvm_info->nr_vcpus = 1;
     memset(hvm_info->vcpu_online, 0xff, sizeof(hvm_info->vcpu_online));
diff -r dbdc840f8f62 -r 8a29891d6a98 tools/libxl/libxl_create.c
--- a/tools/libxl/libxl_create.c	Wed Nov 16 18:21:14 2011 +0000
+++ b/tools/libxl/libxl_create.c	Fri Nov 18 10:33:33 2011 +0000
@@ -188,6 +188,11 @@ int libxl__domain_build(libxl__gc *gc,
         vments[3] = "hvm";
         vments[4] = "start_time";
         vments[5] = libxl__sprintf(gc, "%lu.%02d", start_time.tv_sec,(int)start_time.tv_usec/10000);
+
+        localents = libxl__calloc(gc, 3, sizeof(char *));
+        localents[0] = "platform/acpi";
+        localents[1] = (info->u.hvm.acpi) ? "1" : "0";
+
         break;
     case LIBXL_DOMAIN_TYPE_PV:
         ret = libxl__build_pv(gc, domid, info, state);
diff -r dbdc840f8f62 -r 8a29891d6a98 tools/libxl/libxl_dom.c
--- a/tools/libxl/libxl_dom.c	Wed Nov 16 18:21:14 2011 +0000
+++ b/tools/libxl/libxl_dom.c	Fri Nov 18 10:33:33 2011 +0000
@@ -248,7 +248,6 @@ static int hvm_build_set_params(xc_inter
         return -1;
 
     va_hvm = (struct hvm_info_table *)(va_map + HVM_INFO_OFFSET);
-    va_hvm->acpi_enabled = info->u.hvm.acpi;
     va_hvm->apic_mode = info->u.hvm.apic;
     va_hvm->nr_vcpus = info->max_vcpus;
     memcpy(va_hvm->vcpu_online, &info->cur_vcpus, sizeof(info->cur_vcpus));
diff -r dbdc840f8f62 -r 8a29891d6a98 tools/python/xen/lowlevel/xc/xc.c
--- a/tools/python/xen/lowlevel/xc/xc.c	Wed Nov 16 18:21:14 2011 +0000
+++ b/tools/python/xen/lowlevel/xc/xc.c	Fri Nov 18 10:33:33 2011 +0000
@@ -996,7 +996,6 @@ static PyObject *pyxc_hvm_build(XcObject
     if ( va_map == NULL )
         return PyErr_SetFromErrno(xc_error_obj);
     va_hvm = (struct hvm_info_table *)(va_map + HVM_INFO_OFFSET);
-    va_hvm->acpi_enabled = acpi;
     va_hvm->apic_mode    = apic;
     va_hvm->nr_vcpus     = vcpus;
     memcpy(va_hvm->vcpu_online, vcpu_avail, sizeof(vcpu_avail));
diff -r dbdc840f8f62 -r 8a29891d6a98 xen/include/public/hvm/hvm_info_table.h
--- a/xen/include/public/hvm/hvm_info_table.h	Wed Nov 16 18:21:14 2011 +0000
+++ b/xen/include/public/hvm/hvm_info_table.h	Fri Nov 18 10:33:33 2011 +0000
@@ -37,9 +37,6 @@ struct hvm_info_table {
     uint32_t    length;
     uint8_t     checksum;
 
-    /* Should firmware build ACPI tables? */
-    uint8_t     acpi_enabled;
-
     /* Should firmware build APIC descriptors (APIC MADT / MP BIOS)? */
     uint8_t     apic_mode;

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH 2 of 2] Add configuration options to selectively disable S3 and S4 ACPI power states
  2011-11-18 10:35 [PATCH 0 of 2] Add configuration options to selectively disable S3 and S4 (V3) Paul Durrant
  2011-11-18 10:35 ` [PATCH 1 of 2] Move acpi_enabled out of hvm_info_table into xenstore Paul Durrant
@ 2011-11-18 10:35 ` Paul Durrant
  1 sibling, 0 replies; 3+ messages in thread
From: Paul Durrant @ 2011-11-18 10:35 UTC (permalink / raw)
  To: xen-devel; +Cc: paul.durrant

# HG changeset patch
# User Paul Durrant <paul.durrant@citrix.com>
# Date 1321612462 0
# Node ID 3e977aa71278d30aad3d9eb3e5b6413cbcfc0f4e
# Parent  8a29891d6a98002b299d73253935c161ecf393a1
Add configuration options to selectively disable S3 and S4 ACPI power states.

Introduce acpi_s3 and acpi_s4 configuration options (default=1). The S3 and S4
packages are moved into separate SSDTs and their inclusion is controlled by the
new configuration options.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>

diff -r 8a29891d6a98 -r 3e977aa71278 tools/firmware/hvmloader/acpi/Makefile
--- a/tools/firmware/hvmloader/acpi/Makefile	Fri Nov 18 10:33:33 2011 +0000
+++ b/tools/firmware/hvmloader/acpi/Makefile	Fri Nov 18 10:34:22 2011 +0000
@@ -26,7 +26,7 @@ CFLAGS += $(CFLAGS_xeninclude)
 vpath iasl $(PATH)
 all: acpi.a
 
-ssdt_pm.h ssdt_tpm.h: %.h: %.asl iasl
+ssdt_s3.h ssdt_s4.h ssdt_pm.h ssdt_tpm.h: %.h: %.asl iasl
 	iasl -vs -p $* -tc $<
 	sed -e 's/AmlCode/$*/g' $*.hex >$@
 	rm -f $*.hex $*.aml
@@ -57,7 +57,7 @@ iasl:
 	@echo 
 	@exit 1
 
-build.o: ssdt_pm.h ssdt_tpm.h
+build.o: ssdt_s3.h ssdt_s4.h ssdt_pm.h ssdt_tpm.h
 
 acpi.a: $(OBJS)
 	$(AR) rc $@ $(OBJS)
diff -r 8a29891d6a98 -r 3e977aa71278 tools/firmware/hvmloader/acpi/acpi2_0.h
--- a/tools/firmware/hvmloader/acpi/acpi2_0.h	Fri Nov 18 10:33:33 2011 +0000
+++ b/tools/firmware/hvmloader/acpi/acpi2_0.h	Fri Nov 18 10:34:22 2011 +0000
@@ -396,6 +396,8 @@ struct acpi_config {
     int dsdt_anycpu_len;
     unsigned char *dsdt_15cpu;
     int dsdt_15cpu_len;
+    int ssdt_s3_enabled;
+    int ssdt_s4_enabled;
 };
 
 void acpi_build_tables(struct acpi_config *config, unsigned int physical);
diff -r 8a29891d6a98 -r 3e977aa71278 tools/firmware/hvmloader/acpi/build.c
--- a/tools/firmware/hvmloader/acpi/build.c	Fri Nov 18 10:33:33 2011 +0000
+++ b/tools/firmware/hvmloader/acpi/build.c	Fri Nov 18 10:34:22 2011 +0000
@@ -17,6 +17,8 @@
  */
 
 #include "acpi2_0.h"
+#include "ssdt_s3.h"
+#include "ssdt_s4.h"
 #include "ssdt_tpm.h"
 #include "ssdt_pm.h"
 #include "../config.h"
@@ -196,7 +198,8 @@ static struct acpi_20_waet *construct_wa
 }
 
 static int construct_secondary_tables(unsigned long *table_ptrs,
-                                      struct acpi_info *info)
+                                      struct acpi_info *info,
+                                      struct acpi_config *config)
 {
     int nr_tables = 0;
     struct acpi_20_madt *madt;
@@ -235,6 +238,22 @@ static int construct_secondary_tables(un
         table_ptrs[nr_tables++] = (unsigned long)ssdt;
     }
 
+    if ( config->ssdt_s3_enabled )
+    {
+        ssdt = mem_alloc(sizeof(ssdt_s3), 16);
+        if (!ssdt) return -1;
+        memcpy(ssdt, ssdt_s3, sizeof(ssdt_s3));
+        table_ptrs[nr_tables++] = (unsigned long)ssdt;
+    }
+
+    if ( config->ssdt_s4_enabled )
+    {
+        ssdt = mem_alloc(sizeof(ssdt_s4), 16);
+        if (!ssdt) return -1;
+        memcpy(ssdt, ssdt_s4, sizeof(ssdt_s4));
+        table_ptrs[nr_tables++] = (unsigned long)ssdt;
+    }
+
     /* TPM TCPA and SSDT. */
     tis_hdr = (uint16_t *)0xFED40F00;
     if ( (tis_hdr[0] == tis_signature[0]) &&
@@ -353,7 +372,8 @@ void acpi_build_tables(struct acpi_confi
                  offsetof(struct acpi_header, checksum),
                  sizeof(struct acpi_20_fadt));
 
-    nr_secondaries = construct_secondary_tables(secondary_tables, acpi_info);
+    nr_secondaries = construct_secondary_tables(secondary_tables, acpi_info,
+                                                config);
     if ( nr_secondaries < 0 )
         goto oom;
 
diff -r 8a29891d6a98 -r 3e977aa71278 tools/firmware/hvmloader/acpi/dsdt.asl
--- a/tools/firmware/hvmloader/acpi/dsdt.asl	Fri Nov 18 10:33:33 2011 +0000
+++ b/tools/firmware/hvmloader/acpi/dsdt.asl	Fri Nov 18 10:34:22 2011 +0000
@@ -27,24 +27,7 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2, 
     Name (\APCL, 0x00010000)
     Name (\PUID, 0x00)
 
-    /*
-     * S3 (suspend-to-ram), S4 (suspend-to-disc) and S5 (power-off) type codes:
-     * must match piix4 emulation.
-     */
-    Name (\_S3, Package (0x04)
-    {
-        0x01,  /* PM1a_CNT.SLP_TYP */
-        0x01,  /* PM1b_CNT.SLP_TYP */
-        0x0,   /* reserved */
-        0x0    /* reserved */
-    })
-    Name (\_S4, Package (0x04)
-    {
-        0x00,  /* PM1a_CNT.SLP_TYP */
-        0x00,  /* PM1b_CNT.SLP_TYP */
-        0x00,  /* reserved */
-        0x00   /* reserved */
-    })
+    /* _S3 and _S4 are in separate SSDTs */
     Name (\_S5, Package (0x04)
     {
         0x00,  /* PM1a_CNT.SLP_TYP */
diff -r 8a29891d6a98 -r 3e977aa71278 tools/firmware/hvmloader/acpi/ssdt_s3.asl
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/firmware/hvmloader/acpi/ssdt_s3.asl	Fri Nov 18 10:34:22 2011 +0000
@@ -0,0 +1,32 @@
+/*
+ * ssdt_s3.asl
+ *
+ * Copyright (c) 2011  Citrix Systems, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+DefinitionBlock ("SSDT_S3.aml", "SSDT", 2, "Xen", "HVM", 0)
+{
+    /* Must match piix emulation */
+    Name (\_S3, Package (0x04)
+    {
+        0x01,  /* PM1a_CNT.SLP_TYP */
+        0x01,  /* PM1b_CNT.SLP_TYP */
+        0x0,   /* reserved */
+        0x0    /* reserved */
+    })
+}
+
diff -r 8a29891d6a98 -r 3e977aa71278 tools/firmware/hvmloader/acpi/ssdt_s4.asl
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/firmware/hvmloader/acpi/ssdt_s4.asl	Fri Nov 18 10:34:22 2011 +0000
@@ -0,0 +1,32 @@
+/*
+ * ssdt_s4.asl
+ *
+ * Copyright (c) 2011  Citrix Systems, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+DefinitionBlock ("SSDT_S4.aml", "SSDT", 2, "Xen", "HVM", 0)
+{
+    /* Must match piix emulation */
+    Name (\_S4, Package (0x04)
+    {
+        0x00,  /* PM1a_CNT.SLP_TYP */
+        0x00,  /* PM1b_CNT.SLP_TYP */
+        0x00,  /* reserved */
+        0x00   /* reserved */
+    })
+}
+
diff -r 8a29891d6a98 -r 3e977aa71278 tools/firmware/hvmloader/config.h
--- a/tools/firmware/hvmloader/config.h	Fri Nov 18 10:33:33 2011 +0000
+++ b/tools/firmware/hvmloader/config.h	Fri Nov 18 10:34:22 2011 +0000
@@ -27,7 +27,7 @@ struct bios_config {
 
     void (*e820_setup)(void);
 
-    void (*acpi_build_tables)(void);
+    void (*acpi_build_tables)(int, int);
     void (*create_mp_tables)(void);
     void (*create_smbios_tables)(void);
     void (*create_pir_tables)(void);
diff -r 8a29891d6a98 -r 3e977aa71278 tools/firmware/hvmloader/hvmloader.c
--- a/tools/firmware/hvmloader/hvmloader.c	Fri Nov 18 10:33:33 2011 +0000
+++ b/tools/firmware/hvmloader/hvmloader.c	Fri Nov 18 10:34:22 2011 +0000
@@ -516,11 +516,17 @@ int main(void)
             .index = HVM_PARAM_ACPI_IOPORTS_LOCATION,
             .value = 1,
         };
+        int s3_enabled, s4_enabled;
+
+        s3_enabled = !strncmp(xenstore_read("platform/acpi_s3", "1"), "1", 1);
+        s4_enabled = !strncmp(xenstore_read("platform/acpi_s4", "1"), "1", 1);
 
         if ( bios->acpi_build_tables )
         {
-            printf("Loading ACPI ...\n");
-            bios->acpi_build_tables();
+            printf("Loading ACPI (S3=%s S4=%s) ...\n",
+                   (s3_enabled) ? "ON" : "OFF",
+                   (s4_enabled) ? "ON" : "OFF");
+            bios->acpi_build_tables(s3_enabled, s4_enabled);
         }
 
         acpi_enable_sci();
diff -r 8a29891d6a98 -r 3e977aa71278 tools/firmware/hvmloader/rombios.c
--- a/tools/firmware/hvmloader/rombios.c	Fri Nov 18 10:33:33 2011 +0000
+++ b/tools/firmware/hvmloader/rombios.c	Fri Nov 18 10:34:22 2011 +0000
@@ -112,13 +112,15 @@ static void reset_bios_checksum(void)
     *((uint8_t *)(ROMBIOS_BEGIN + ROMBIOS_MAXOFFSET)) = -checksum;
 }
 
-static void rombios_acpi_build_tables(void)
+static void rombios_acpi_build_tables(int s3_enabled, int s4_enabled)
 {
     struct acpi_config config = {
         .dsdt_anycpu = dsdt_anycpu,
         .dsdt_anycpu_len = dsdt_anycpu_len,
         .dsdt_15cpu = dsdt_15cpu,
         .dsdt_15cpu_len = dsdt_15cpu_len,
+        .ssdt_s3_enabled = s3_enabled,
+        .ssdt_s4_enabled = s4_enabled,
     };
 
     acpi_build_tables(&config, ACPI_PHYSICAL_ADDRESS);
diff -r 8a29891d6a98 -r 3e977aa71278 tools/firmware/hvmloader/seabios.c
--- a/tools/firmware/hvmloader/seabios.c	Fri Nov 18 10:33:33 2011 +0000
+++ b/tools/firmware/hvmloader/seabios.c	Fri Nov 18 10:34:22 2011 +0000
@@ -91,7 +91,7 @@ static void add_table(uint32_t t)
     info->tables_nr++;
 }
 
-static void seabios_acpi_build_tables(void)
+static void seabios_acpi_build_tables(int s3_enabled, int s4_enabled)
 {
     uint32_t rsdp = (uint32_t)scratch_alloc(sizeof(struct acpi_20_rsdp), 0);
     struct acpi_config config = {
@@ -99,6 +99,8 @@ static void seabios_acpi_build_tables(vo
         .dsdt_anycpu_len = dsdt_anycpu_qemu_xen_len,
         .dsdt_15cpu = NULL,
         .dsdt_15cpu_len = 0,
+        .ssdt_s3_enabled = s3_enabled,
+        .ssdt_s4_enabled = s4_enabled,
     };
 
     acpi_build_tables(&config, rsdp);
diff -r 8a29891d6a98 -r 3e977aa71278 tools/libxl/libxl_create.c
--- a/tools/libxl/libxl_create.c	Fri Nov 18 10:33:33 2011 +0000
+++ b/tools/libxl/libxl_create.c	Fri Nov 18 10:34:22 2011 +0000
@@ -93,6 +93,8 @@ int libxl_init_build_info(libxl_ctx *ctx
         b_info->u.hvm.pae = 1;
         b_info->u.hvm.apic = 1;
         b_info->u.hvm.acpi = 1;
+        b_info->u.hvm.acpi_s3 = 1;
+        b_info->u.hvm.acpi_s4 = 1;
         b_info->u.hvm.nx = 1;
         b_info->u.hvm.viridian = 0;
         b_info->u.hvm.hpet = 1;
@@ -189,9 +191,13 @@ int libxl__domain_build(libxl__gc *gc,
         vments[4] = "start_time";
         vments[5] = libxl__sprintf(gc, "%lu.%02d", start_time.tv_sec,(int)start_time.tv_usec/10000);
 
-        localents = libxl__calloc(gc, 3, sizeof(char *));
+        localents = libxl__calloc(gc, 7, sizeof(char *));
         localents[0] = "platform/acpi";
         localents[1] = (info->u.hvm.acpi) ? "1" : "0";
+        localents[2] = "platform/acpi_s3";
+        localents[3] = (info->u.hvm.acpi_s3) ? "1" : "0";
+        localents[4] = "platform/acpi_s4";
+        localents[5] = (info->u.hvm.acpi_s4) ? "1" : "0";
 
         break;
     case LIBXL_DOMAIN_TYPE_PV:
diff -r 8a29891d6a98 -r 3e977aa71278 tools/libxl/libxl_types.idl
--- a/tools/libxl/libxl_types.idl	Fri Nov 18 10:33:33 2011 +0000
+++ b/tools/libxl/libxl_types.idl	Fri Nov 18 10:34:22 2011 +0000
@@ -167,6 +167,8 @@ libxl_domain_build_info = Struct("domain
                                        ("pae", bool),
                                        ("apic", bool),
                                        ("acpi", bool),
+                                       ("acpi_s3", bool),
+                                       ("acpi_s4", bool),
                                        ("nx", bool),
                                        ("viridian", bool),
                                        ("timeoffset", string),
diff -r 8a29891d6a98 -r 3e977aa71278 tools/libxl/xl_cmdimpl.c
--- a/tools/libxl/xl_cmdimpl.c	Fri Nov 18 10:33:33 2011 +0000
+++ b/tools/libxl/xl_cmdimpl.c	Fri Nov 18 10:34:22 2011 +0000
@@ -683,6 +683,10 @@ static void parse_config_data(const char
             b_info->u.hvm.apic = l;
         if (!xlu_cfg_get_long (config, "acpi", &l))
             b_info->u.hvm.acpi = l;
+        if (!xlu_cfg_get_long (config, "acpi_s3", &l))
+            b_info->u.hvm.acpi_s3 = l;
+        if (!xlu_cfg_get_long (config, "acpi_s4", &l))
+            b_info->u.hvm.acpi_s4 = l;
         if (!xlu_cfg_get_long (config, "nx", &l))
             b_info->u.hvm.nx = l;
         if (!xlu_cfg_get_long (config, "viridian", &l))

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2011-11-18 10:35 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-18 10:35 [PATCH 0 of 2] Add configuration options to selectively disable S3 and S4 (V3) Paul Durrant
2011-11-18 10:35 ` [PATCH 1 of 2] Move acpi_enabled out of hvm_info_table into xenstore Paul Durrant
2011-11-18 10:35 ` [PATCH 2 of 2] Add configuration options to selectively disable S3 and S4 ACPI power states Paul Durrant

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).