actually grab and return data, instead of just being two bogus functions. Signed-off-by: Glauber Costa <[EMAIL PROTECTED]> --- qemu/hw/acpi.c | 36 ++++++++++++++++++++++++++++++++++++ 1 files changed, 36 insertions(+), 0 deletions(-)
diff --git a/qemu/hw/acpi.c b/qemu/hw/acpi.c index 02f6bab..60d3094 100644 --- a/qemu/hw/acpi.c +++ b/qemu/hw/acpi.c @@ -545,6 +545,24 @@ static struct gpe_regs gpe; static uint32_t gpe_readb(void *opaque, uint32_t addr) { uint32_t val = 0; + struct gpe_regs *g = opaque; + switch (addr) { + case 0xafe0: + val = g->sts & 0xFF; + break; + case 0xafe1: + val = (g->sts >> 8) & 0xFF; + break; + case 0xafe2: + val = g->en & 0xFF; + break; + case 0xafe3: + val = (g->en >> 8) & 0xFF; + break; + default: + break; + } + #if defined(DEBUG) printf("gpe read %lx == %lx\n", addr, val); #endif @@ -553,6 +571,24 @@ #endif static void gpe_writeb(void *opaque, uint32_t addr, uint32_t val) { + struct gpe_regs *g = opaque; + switch (addr) { + case 0xafe0: + g->sts = (g->sts & ~0xFFFF) | (val & 0xFFFF); + break; + case 0xafe1: + g->sts = (g->sts & 0xFFFF) | (val << 8); + break; + case 0xafe2: + g->en = (g->en & ~0xFFFF) | (val & 0xFFFF); + break; + case 0xafe3: + g->en = (g->en & 0xFFFF) | (val << 8); + break; + default: + break; + } + #if defined(DEBUG) printf("gpe write %lx <== %d\n", addr, val); #endif -- 1.4.2 ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel