Reduce diff between platforms and fix style(9) bugs.

This commit is contained in:
Jung-uk Kim 2010-11-09 00:14:39 +00:00
parent 47fdf870a7
commit 2473325fa8
3 changed files with 87 additions and 41 deletions

View File

@ -28,9 +28,6 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
/*
* 6.1 : Environmental support
*/
#include <sys/types.h>
#include <sys/bus.h>
#include <sys/linker_set.h>
@ -39,33 +36,56 @@ __FBSDID("$FreeBSD$");
#include <contrib/dev/acpica/include/acpi.h>
#include <contrib/dev/acpica/include/actables.h>
static u_long amd64_acpi_root;
static u_long acpi_root_phys;
SYSCTL_ULONG(_machdep, OID_AUTO, acpi_root, CTLFLAG_RD, &amd64_acpi_root, 0,
"The physical address of the RSDP");
SYSCTL_ULONG(_machdep, OID_AUTO, acpi_root, CTLFLAG_RD, &acpi_root_phys, 0,
"The physical address of the RSDP");
ACPI_STATUS
AcpiOsInitialize(void)
{
return(0);
return (AE_OK);
}
ACPI_STATUS
AcpiOsTerminate(void)
{
return(0);
return (AE_OK);
}
static u_long
acpi_get_root_from_loader(void)
{
long acpi_root;
if (resource_long_value("acpi", 0, "rsdp", &acpi_root) == 0)
return (acpi_root);
return (0);
}
static u_long
acpi_get_root_from_memory(void)
{
ACPI_SIZE acpi_root;
if (ACPI_SUCCESS(AcpiFindRootPointer(&acpi_root)))
return (acpi_root);
return (0);
}
ACPI_PHYSICAL_ADDRESS
AcpiOsGetRootPointer(void)
{
u_long ptr;
if (amd64_acpi_root == 0 &&
(resource_long_value("acpi", 0, "rsdp", (long *)&ptr) == 0 ||
AcpiFindRootPointer((ACPI_SIZE *)&ptr) == AE_OK) &&
ptr != 0)
amd64_acpi_root = ptr;
if (acpi_root_phys == 0) {
acpi_root_phys = acpi_get_root_from_loader();
if (acpi_root_phys == 0)
acpi_root_phys = acpi_get_root_from_memory();
}
return (amd64_acpi_root);
return (acpi_root_phys);
}

View File

@ -28,9 +28,6 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
/*
* 6.1 : Environmental support
*/
#include <sys/types.h>
#include <sys/bus.h>
#include <sys/linker_set.h>
@ -39,33 +36,56 @@ __FBSDID("$FreeBSD$");
#include <contrib/dev/acpica/include/acpi.h>
#include <contrib/dev/acpica/include/actables.h>
static u_long i386_acpi_root;
static u_long acpi_root_phys;
SYSCTL_ULONG(_machdep, OID_AUTO, acpi_root, CTLFLAG_RD, &i386_acpi_root, 0,
"The physical address of the RSDP");
SYSCTL_ULONG(_machdep, OID_AUTO, acpi_root, CTLFLAG_RD, &acpi_root_phys, 0,
"The physical address of the RSDP");
ACPI_STATUS
AcpiOsInitialize(void)
{
return(0);
return (AE_OK);
}
ACPI_STATUS
AcpiOsTerminate(void)
{
return(0);
return (AE_OK);
}
static u_long
acpi_get_root_from_loader(void)
{
long acpi_root;
if (resource_long_value("acpi", 0, "rsdp", &acpi_root) == 0)
return (acpi_root);
return (0);
}
static u_long
acpi_get_root_from_memory(void)
{
ACPI_SIZE acpi_root;
if (ACPI_SUCCESS(AcpiFindRootPointer(&acpi_root)))
return (acpi_root);
return (0);
}
ACPI_PHYSICAL_ADDRESS
AcpiOsGetRootPointer(void)
{
u_long ptr;
if (i386_acpi_root == 0 &&
(resource_long_value("acpi", 0, "rsdp", (long *)&ptr) == 0 ||
AcpiFindRootPointer((ACPI_SIZE *)&ptr) == AE_OK) &&
ptr != 0)
i386_acpi_root = ptr;
if (acpi_root_phys == 0) {
acpi_root_phys = acpi_get_root_from_loader();
if (acpi_root_phys == 0)
acpi_root_phys = acpi_get_root_from_memory();
}
return (i386_acpi_root);
return (acpi_root_phys);
}

View File

@ -35,8 +35,6 @@ __FBSDID("$FreeBSD$");
#include <contrib/dev/acpica/include/acpi.h>
static struct uuid acpi_root_uuid = EFI_TABLE_ACPI20;
static u_long acpi_root_phys;
SYSCTL_ULONG(_machdep, OID_AUTO, acpi_root, CTLFLAG_RD, &acpi_root_phys, 0,
@ -46,27 +44,35 @@ ACPI_STATUS
AcpiOsInitialize(void)
{
return(AE_OK);
return (AE_OK);
}
ACPI_STATUS
AcpiOsTerminate(void)
{
return(AE_OK);
return (AE_OK);
}
static u_long
acpi_get_root_from_efi(void)
{
static struct uuid acpi_root_uuid = EFI_TABLE_ACPI20;
void *acpi_root;
acpi_root = efi_get_table(&acpi_root_uuid);
if (acpi_root != NULL)
return (IA64_RR_MASK((uintptr_t)acpi_root));
return (0);
}
ACPI_PHYSICAL_ADDRESS
AcpiOsGetRootPointer(void)
{
void *acpi_root;
if (acpi_root_phys == 0) {
acpi_root = efi_get_table(&acpi_root_uuid);
if (acpi_root == NULL)
return (0);
acpi_root_phys = IA64_RR_MASK((u_long)acpi_root);
}
if (acpi_root_phys == 0)
acpi_root_phys = acpi_get_root_from_efi();
return (acpi_root_phys);
}