core.c (7f558ea58bb60257b111abac0424dc601ff54875) core.c (40a6b8935d5862840c602f977564d2ebbea60ed6)
1/*
2 * ACPI implementation
3 *
4 * Copyright (c) 2006 Fabrice Bellard
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License version 2.1 as published by the Free Software Foundation.

--- 673 unchanged lines hidden (view full) ---

682
683 return cur;
684}
685
686void acpi_gpe_ioport_writeb(ACPIREGS *ar, uint32_t addr, uint32_t val)
687{
688 uint8_t *cur;
689
1/*
2 * ACPI implementation
3 *
4 * Copyright (c) 2006 Fabrice Bellard
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License version 2.1 as published by the Free Software Foundation.

--- 673 unchanged lines hidden (view full) ---

682
683 return cur;
684}
685
686void acpi_gpe_ioport_writeb(ACPIREGS *ar, uint32_t addr, uint32_t val)
687{
688 uint8_t *cur;
689
690 trace_acpi_gpe_ioport_writeb(addr, val);
691
692 cur = acpi_gpe_ioport_get_ptr(ar, addr);
693 if (addr < ar->gpe.len / 2) {
690 cur = acpi_gpe_ioport_get_ptr(ar, addr);
691 if (addr < ar->gpe.len / 2) {
692 trace_acpi_gpe_sts_ioport_writeb(addr, val);
694 /* GPE_STS */
695 *cur = (*cur) & ~val;
696 } else if (addr < ar->gpe.len) {
693 /* GPE_STS */
694 *cur = (*cur) & ~val;
695 } else if (addr < ar->gpe.len) {
696 trace_acpi_gpe_en_ioport_writeb(addr - (ar->gpe.len / 2), val);
697 /* GPE_EN */
698 *cur = val;
699 } else {
700 abort();
701 }
702}
703
704uint32_t acpi_gpe_ioport_readb(ACPIREGS *ar, uint32_t addr)
705{
706 uint8_t *cur;
707 uint32_t val;
708
709 cur = acpi_gpe_ioport_get_ptr(ar, addr);
710 val = 0;
711 if (cur != NULL) {
712 val = *cur;
713 }
714
697 /* GPE_EN */
698 *cur = val;
699 } else {
700 abort();
701 }
702}
703
704uint32_t acpi_gpe_ioport_readb(ACPIREGS *ar, uint32_t addr)
705{
706 uint8_t *cur;
707 uint32_t val;
708
709 cur = acpi_gpe_ioport_get_ptr(ar, addr);
710 val = 0;
711 if (cur != NULL) {
712 val = *cur;
713 }
714
715 trace_acpi_gpe_ioport_readb(addr, val);
715 if (addr < ar->gpe.len / 2) {
716 trace_acpi_gpe_sts_ioport_readb(addr, val);
717 } else {
718 trace_acpi_gpe_en_ioport_readb(addr - (ar->gpe.len / 2), val);
719 }
716
717 return val;
718}
719
720void acpi_send_gpe_event(ACPIREGS *ar, qemu_irq irq,
721 AcpiEventStatusBits status)
722{
723 ar->gpe.sts[0] |= status;

--- 20 unchanged lines hidden ---
720
721 return val;
722}
723
724void acpi_send_gpe_event(ACPIREGS *ar, qemu_irq irq,
725 AcpiEventStatusBits status)
726{
727 ar->gpe.sts[0] |= status;

--- 20 unchanged lines hidden ---