NetBSD/sys/dev/acpi/acpica
jruoho 2731b5ff2f Print a warning if AcpiOsSleep() is called with a value larger than two
seconds. It is known that there are systems in the field that pass bogus AML
values to the Sleep() operation code, possibly requesting delays that could
be measured in days.

Discussed with jmcneill@.

XXX: While the used mstohz(9) is documented to round to one second if the
     passed value is larger than 131072 ms, we may still need to force a
     sensible upper limit if this warning starts to appear.
2010-05-12 17:03:11 +00:00
..
OsdEnvironment.c When ACPI is not present, free any resources used by the ACPICA. Also, 2009-08-23 15:16:16 +00:00
OsdHardware.c fix undefined return values of Read/WriteMemory, found by clang 2009-09-15 19:41:30 +00:00
OsdInterrupt.c Switch to ACPICA 20090730, and update for API changes. 2009-08-18 16:41:02 +00:00
OsdMemory.c Switch to ACPICA 20090730, and update for API changes. 2009-08-18 16:41:02 +00:00
OsdMisc.c Document "how-to override the DSDT" in the manual page instead of code. 2010-04-11 08:58:43 +00:00
OsdSchedule.c Print a warning if AcpiOsSleep() is called with a value larger than two 2010-05-12 17:03:11 +00:00
OsdStream.c
OsdSynch.c Switch to ACPICA 20090730, and update for API changes. 2009-08-18 16:41:02 +00:00
README
acpi_func.h Add missing (FreeBSD) license. Ok jmcneill@. 2010-03-08 12:35:08 +00:00
files.acpica Switch to ACPICA 20090730, and update for API changes. 2009-08-18 16:41:02 +00:00

README

#	$NetBSD: README,v 1.3 2003/02/06 00:27:06 perry Exp $

This is the Intel ACPI Component Architecture, Intel's reference
implementation of the core operating system ACPI support.  The
portion in the Osd/ subdirectory is provided by the oprerating
system as the glue between the OS and the ACPICA.

Please, do not import an updated ACPI CA snapshot from Intel unless
you absolutely know what you're doing -- The Intel directory layout
changes from release to release, and we must munge it (by hand) into
something sane that we can use.

The routines that the operating system must provide are documented
in the following document:

	ACPI Component Architecture Programmer Reference
	Intel Corp.

Copies of the document may be retrieved from:

	http://developer.intel.com/technology/iapc/acpi/downloads.htm

Machine-dependent code must provide the following routines for Osd:

ACPI_STATUS	acpi_md_OsInitialize(void);
ACPI_STATUS	acpi_md_OsTerminate(void);
ACPI_STATUS	acpi_md_OsGetRootPointer(UINT32 Flags,
		    ACPI_PHYSICAL_ADDRESS *PhysicalAddress);

UINT8		acpi_md_OsIn8(ACPI_IO_ADDRESS InPort);
UINT16		acpi_md_OsIn16(ACPI_IO_ADDRESS InPort);
UINT32		acpi_md_OsIn32(ACPI_IO_ADDRESS InPort);

void		acpi_md_OsOut8(ACPI_IO_ADDRESS OutPort, UINT8 Value);
void		acpi_md_OsOut16(ACPI_IO_ADDRESS OutPort, UINT16 Value);
void		acpi_md_OsOut32(ACPI_IO_ADDRESS OutPort, UINT32 Value);

ACPI_STATUS	acpi_md_OsInstallInterruptHandler(UINT32 InterruptNumber,
		    OSD_HANDLER ServiceRoutine, void *Context, void **cookiep);
void		acpi_md_OsRemoveInterruptHandler(void *cookie);

ACPI_STATUS	acpi_md_OsMapMemory(ACPI_PHYSICAL_ADDRESS PhysicalAddress,
		    UINT32 Length, void **LogicalAddress);
void		acpi_md_OsUnmapMemory(void *LogicalAddress, UINT32 Length);
ACPI_STATUS	acpi_md_OsGetPhysicalAddress(void *LogicalAddress,
		    ACPI_PHYSICAL_ADDRESS *PhysicalAddress);

BOOLEAN		acpi_md_OsReadable(void *Pointer, UINT32 Length);
BOOLEAN		acpi_md_OsWritable(void *Pointer, UINT32 Length);

	-- Jason R. Thorpe <thorpej@wasabisystems.com>