OsdEnvironment.c revision 84447
184447Sdfr/*-
284447Sdfr * Copyright (c) 2000,2001 Michael Smith
384447Sdfr * Copyright (c) 2000 BSDi
484447Sdfr * All rights reserved.
584447Sdfr *
684447Sdfr * Redistribution and use in source and binary forms, with or without
784447Sdfr * modification, are permitted provided that the following conditions
884447Sdfr * are met:
984447Sdfr * 1. Redistributions of source code must retain the above copyright
1084447Sdfr *    notice, this list of conditions and the following disclaimer.
1184447Sdfr * 2. Redistributions in binary form must reproduce the above copyright
1284447Sdfr *    notice, this list of conditions and the following disclaimer in the
1384447Sdfr *    documentation and/or other materials provided with the distribution.
1484447Sdfr *
1584447Sdfr * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
1684447Sdfr * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1784447Sdfr * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1884447Sdfr * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
1984447Sdfr * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2084447Sdfr * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2184447Sdfr * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2284447Sdfr * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2384447Sdfr * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2484447Sdfr * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2584447Sdfr * SUCH DAMAGE.
2684447Sdfr *
2784447Sdfr *	$FreeBSD: head/sys/ia64/acpica/OsdEnvironment.c 84447 2001-10-04 08:45:19Z dfr $
2884447Sdfr */
2984447Sdfr
3084447Sdfr/*
3184447Sdfr * 6.1 : Environmental support
3284447Sdfr */
3384447Sdfr
3484447Sdfr#include "acpi.h"
3584447Sdfr
3684447Sdfrextern u_int64_t ia64_efi_acpi_table;
3784447Sdfrextern u_int64_t ia64_efi_acpi20_table;
3884447Sdfr
3984447SdfrACPI_STATUS
4084447SdfrAcpiOsInitialize(void)
4184447Sdfr{
4284447Sdfr
4384447Sdfr	return(NULL);
4484447Sdfr}
4584447Sdfr
4684447SdfrACPI_STATUS
4784447SdfrAcpiOsTerminate(void)
4884447Sdfr{
4984447Sdfr
5084447Sdfr	return(NULL);
5184447Sdfr}
5284447Sdfr
5384447SdfrACPI_STATUS
5484447SdfrAcpiOsGetRootPointer(
5584447Sdfr    UINT32			Flags,
5684447Sdfr    ACPI_PHYSICAL_ADDRESS	*RsdpPhysicalAddress)
5784447Sdfr{
5884447Sdfr	RSDP_DESCRIPTOR *rsdp;
5984447Sdfr	XSDT_DESCRIPTOR *xsdt;
6084447Sdfr
6184447Sdfr	if (ia64_efi_acpi20_table) {
6284447Sdfr		*RsdpPhysicalAddress = ia64_efi_acpi20_table;
6384447Sdfr		rsdp = (RSDP_DESCRIPTOR *)
6484447Sdfr			IA64_PHYS_TO_RR7(ia64_efi_acpi20_table);
6584447Sdfr		xsdt = (XSDT_DESCRIPTOR *)
6684447Sdfr			IA64_PHYS_TO_RR7(rsdp->XsdtPhysicalAddress);
6784447Sdfr		ia64_parse_xsdt(xsdt);
6884447Sdfr		return(AE_OK);
6984447Sdfr	} else if (ia64_efi_acpi_table) {
7084447Sdfr		*RsdpPhysicalAddress = ia64_efi_acpi_table;
7184447Sdfr		return(AE_OK);
7284447Sdfr	}
7384447Sdfr
7484447Sdfr	return(AE_NOT_FOUND);
7584447Sdfr}
76