acpica: remove deprecated env() usage

Issue #1987
This commit is contained in:
Alexander Boettcher 2017-01-03 10:43:59 +01:00 committed by Norman Feske
parent bfbfa86cd4
commit fa834e34eb
6 changed files with 35 additions and 25 deletions

View File

@ -50,9 +50,10 @@ class Ac : Acpica::Callback<Ac> {
_report->ac_event();
}
static ACPI_STATUS detect(ACPI_HANDLE ac, UINT32, void * report, void **)
static ACPI_STATUS detect(ACPI_HANDLE ac, UINT32, void * m, void **)
{
Ac * obj = new (Genode::env()->heap()) Ac(report);
Acpica::Main * main = reinterpret_cast<Acpica::Main *>(m);
Ac * obj = new (main->heap) Ac(main->report);
ACPI_STATUS res = AcpiInstallNotifyHandler (ac, ACPI_DEVICE_NOTIFY,
handler, obj);

View File

@ -25,6 +25,7 @@ class Ec : Acpica::Callback<Ec> {
ACPI_HANDLE gpe_block;
Genode::Allocator &_heap;
Acpica::Reportstate * _report;
/* 12.2.1 Embedded Controller Status, EC_SC (R) */
@ -49,9 +50,10 @@ class Ec : Acpica::Callback<Ec> {
public:
Ec(void * report)
Ec(Genode::Allocator &heap, Acpica::Reportstate *report)
:
_report(reinterpret_cast<Acpica::Reportstate *>(report))
_heap(heap),
_report(report)
{ }
static UINT32 handler_gpe(ACPI_HANDLE dev, UINT32 gpe, void *context)
@ -104,7 +106,7 @@ class Ec : Acpica::Callback<Ec> {
}
if (!data_obj) {
data_obj = new (Genode::env()->heap()) Data(data);
data_obj = new (ec->_heap) Data(data);
ec->_list_data.insert(data_obj);
}
data_obj->count ++;
@ -136,11 +138,11 @@ class Ec : Acpica::Callback<Ec> {
if (!ec->ec_data) {
ec->ec_port_data = resource->Data.Io.Minimum;
ec->ec_data = new (Genode::env()->heap()) Genode::Io_port_connection(ec->ec_port_data, 1);
ec->ec_data = new (ec->_heap) Genode::Io_port_connection(ec->ec_port_data, 1);
} else
if (!ec->ec_cmdsta) {
ec->ec_port_cmdsta = resource->Data.Io.Minimum;
ec->ec_cmdsta = new (Genode::env()->heap()) Genode::Io_port_connection(ec->ec_port_cmdsta, 1);
ec->ec_cmdsta = new (ec->_heap) Genode::Io_port_connection(ec->ec_port_cmdsta, 1);
} else
Genode::error("unknown io_port");
@ -212,9 +214,10 @@ class Ec : Acpica::Callback<Ec> {
return AE_BAD_PARAMETER;
}
static ACPI_STATUS detect(ACPI_HANDLE ec, UINT32, void *report, void **)
static ACPI_STATUS detect(ACPI_HANDLE ec, UINT32, void *m, void **)
{
Ec *ec_obj = new (Genode::env()->heap()) Ec(report);
Acpica::Main * main = reinterpret_cast<Acpica::Main *>(m);
Ec *ec_obj = new (main->heap) Ec(main->heap, main->report);
ACPI_STATUS res = AcpiWalkResources(ec, ACPI_STRING("_CRS"),
Ec::detect_io_ports, ec_obj);

View File

@ -50,9 +50,10 @@ class Lid : Acpica::Callback<Lid> {
_report->lid_event();
}
static ACPI_STATUS detect(ACPI_HANDLE lid, UINT32, void * report, void **)
static ACPI_STATUS detect(ACPI_HANDLE lid, UINT32, void * m, void **)
{
Lid * obj = new (Genode::env()->heap()) Lid(report);
Acpica::Main * main = reinterpret_cast<Acpica::Main *>(m);
Lid * obj = new (main->heap) Lid(main->report);
ACPI_STATUS res = AcpiInstallNotifyHandler (lid, ACPI_DEVICE_NOTIFY,
handler, obj);

View File

@ -11,6 +11,7 @@
*/
#include <base/allocator_avl.h>
#include <base/component.h>
#include <libc/component.h>
#include <base/log.h>
#include <base/signal.h>
@ -43,10 +44,6 @@ namespace Acpica {
#include "util.h"
#include "reporter.h"
#include "fixed.h"
#include "ac.h"
#include "lid.h"
#include "sb.h"
#include "ec.h"
struct Acpica::Statechange
@ -110,7 +107,7 @@ struct Acpica::Main
Genode::Attached_rom_dataspace config { env, "config" };
Genode::Signal_handler<Acpica::Main> sci_irq;
Genode::Signal_handler<Acpica::Main> sci_irq;
Genode::Constructible<Genode::Irq_connection> sci_conn;
Acpica::Reportstate * report = nullptr;
@ -143,7 +140,7 @@ struct Acpica::Main
if (enable_reset || enable_poweroff)
new (heap) Acpica::Statechange(env.ep(), enable_reset,
enable_poweroff);
enable_poweroff);
/* setup IRQ */
if (!irq_handler.handler) {
@ -188,6 +185,10 @@ struct Acpica::Main
}
};
#include "ac.h"
#include "lid.h"
#include "sb.h"
#include "ec.h"
void Acpica::Main::init_acpica()
{
@ -227,7 +228,7 @@ void Acpica::Main::init_acpica()
}
/* Embedded controller */
status = AcpiGetDevices(ACPI_STRING("PNP0C09"), Ec::detect, report, nullptr);
status = AcpiGetDevices(ACPI_STRING("PNP0C09"), Ec::detect, this, nullptr);
if (status != AE_OK) {
Genode::error("AcpiGetDevices failed, status=", status);
return;
@ -268,21 +269,21 @@ void Acpica::Main::init_acpica()
/* AC Adapters and Power Source Objects */
status = AcpiGetDevices(ACPI_STRING("ACPI0003"), Ac::detect, report, nullptr);
status = AcpiGetDevices(ACPI_STRING("ACPI0003"), Ac::detect, this, nullptr);
if (status != AE_OK) {
Genode::error("AcpiGetDevices (ACPI0003) failed, status=", status);
return;
}
/* Smart battery control devices */
status = AcpiGetDevices(ACPI_STRING("PNP0C0A"), Battery::detect, report, nullptr);
status = AcpiGetDevices(ACPI_STRING("PNP0C0A"), Battery::detect, this, nullptr);
if (status != AE_OK) {
Genode::error("AcpiGetDevices (PNP0C0A) failed, status=", status);
return;
}
/* LID device */
status = AcpiGetDevices(ACPI_STRING("PNP0C0D"), Lid::detect, report, nullptr);
status = AcpiGetDevices(ACPI_STRING("PNP0C0D"), Lid::detect, this, nullptr);
if (status != AE_OK) {
Genode::error("AcpiGetDevices (PNP0C0D) failed, status=", status);
return;
@ -303,4 +304,7 @@ ACPI_STATUS AcpiOsInstallInterruptHandler(UINT32 irq, ACPI_OSD_HANDLER handler,
}
/* used by normal (no-printf-debug) target */
void Component::construct(Genode::Env &env) { static Acpica::Main main(env); }
/* used by debug target (using printf of libc) */
void Libc::Component::construct(Genode::Env &env) { static Acpica::Main main(env); }

View File

@ -33,9 +33,10 @@ class Battery : Acpica::Callback<Battery> {
_report->battery_event();
}
static ACPI_STATUS detect(ACPI_HANDLE sb, UINT32, void *report, void **)
static ACPI_STATUS detect(ACPI_HANDLE sb, UINT32, void *m, void **)
{
Battery * dev_obj = new (Genode::env()->heap()) Battery(report, sb);
Acpica::Main * main = reinterpret_cast<Acpica::Main *>(m);
Battery * dev_obj = new (main->heap) Battery(main->report, sb);
ACPI_STATUS res = AcpiInstallNotifyHandler (sb, ACPI_DEVICE_NOTIFY,
handler, dev_obj);

View File

@ -44,7 +44,7 @@ class Acpica::Io_mem
Genode::Io_mem_connection *_io_mem = nullptr;
unsigned _ref;
static Acpica::Io_mem _ios[16];
static Acpica::Io_mem _ios[32];
public:
@ -239,7 +239,7 @@ class Acpica::Io_mem
}
};
Acpica::Io_mem Acpica::Io_mem::_ios[16];
Acpica::Io_mem Acpica::Io_mem::_ios[32];
void * AcpiOsMapMemory (ACPI_PHYSICAL_ADDRESS phys, ACPI_SIZE size)