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 --- |