*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->FreeBSD man pages -> i386/apm (4)              



NAME    [Toc]    [Back]

     apm -- APM BIOS interface

SYNOPSIS    [Toc]    [Back]

     device apm

DESCRIPTION    [Toc]    [Back]

     apm is an interface to the Intel / Microsoft APM (Advanced Power Management)
 BIOS on laptop PCs.

     apm provides the following power management functions.

	   1.	When the system wakes up from suspended mode, apm adjusts the
		system clock to RTC.

	   2.	When the system wakes up from suspended mode, apm passes a
		message to syslogd(8) comprising of system wakeup time and
		elapsed time during suspended mode.

	   3.	apm slows CPU clock when there are no system activities
		(runnable processes, interrupts, etc.).  This function is
		available only on systems whose APM supports CPU idling.

	   4.	apm exports an application interface as a character device.
		Applications can control APM, or retrieve APM status information
 via this interface.  apm exports the following interfaces.
	These symbols are defined in <machine/apm_bios.h>.

			    Suspend system.

			    Get power management information.


			    Enable / Disable power management.


			    Control execution of HLT in the kernel context
			    switch routine.

			    Get per battery information.

			    Some APM implementations execute the HLT (Halt CPU
			    until an interrupt occurs) instruction in the
			    ``Idle CPU'' call, while others do not.  Thus
			    enabling this may result in redundant HLT executions
 because ``Idle CPU'' is called from the kernel
 context switch routine that inherently executes
 HLT. This may reduce peak system performance.

			    Also the system hangs up if HLT instruction is
			    disabled in the kernel context switch routine, and
			    if the APM implementation of the machine does not
			    execute HLT in ``Idle CPU''.  On some implementations
 that do not support CPU clock slowdown, APM
			    might not execute HLT.  apm disables
			    APMIO_NOTHALTCPU operation on such machines.

			    The current version of apm does not call ``Idle
			    CPU'' from the kernel context switch routine if
			    clock slowdown is not supported, and it executes
			    HLT instruction by default.  Therefore, there is
			    no need to use these two operations in most cases.

		These interfaces are used by apm(8).

	   5.	apm polls APM events and handles the following events.

		Name		       Action		Description
		PMEV_STANDBYREQ        suspend system	standby request
		PMEV_SUSPENDREQ        suspend system	suspend request
		PMEV_USERSUSPENDREQ    suspend system	user suspend request
		PMEV_CRITSUSPEND       suspend system	critical suspend
		PMEV_NORMRESUME        resume system	normal resume
		PMEV_CRITRESUME        resume system	critical resume
		PMEV_STANDBYRESUME     resume system	standby resume
		PMEV_BATTERYLOW        notify message	battery low
		PMEV_UPDATETIME        adjust clock	update time

BUGS    [Toc]    [Back]

     WARNING!  Many, if not most, of the implementations of APM-bios in laptops
 today are buggy.  You may be putting your LCD-display and batteries
     at a risk by using this interface.  (The reason this isn't a problem for
     MS-windows is that they use the real-mode interface.)  If you see any
     weird behavior from your system with this code in use, unplug the power
     and batteries ASAP, if not immediately, and disable this code.

     We are very interested in getting this code working, so please send you
     observations of any anomalous behavior to us.

     When apm is active, calling the BIOS setup routine by using hot-keys, may
     cause serious trouble when resuming the system.  BIOS setup programs
     should be called during bootstrap, or from DOS.

     Some APM implementations cannot handle events such as pushing the power
     button or closing the cover.  On such implementations, the system must be
     suspended only by using apm(8) or zzz(8).

     Disk spin-down, LCD backlight control, and power on demand have not been
     supported on the current version.

SEE ALSO    [Toc]    [Back]

     apm(8), zzz(8)

AUTHORS    [Toc]    [Back]

     Tatsumi Hosokawa <hosokawa@jp.FreeBSD.org>

FreeBSD 5.2.1		       November 1, 1994 		 FreeBSD 5.2.1
[ Back ]
 Similar pages
Name OS Title
bios FreeBSD interact with PC BIOS
BIO_push NetBSD add and remove BIOs from a chain.
bios OpenBSD a driver for PC Firmware, aka BIOS
BIO_pop Tru64 Add and remove BIOs from a chain.
pcibios OpenBSD introduction to PCI BIOS support
BIO_push Tru64 Add and remove BIOs from a chain.
apm FreeBSD control the APM BIOS and display its information
apmconf FreeBSD control the APM BIOS and display its information
bioscall NetBSD call system BIOS function from real mode
tirdwr IRIX Transport Interface read/write interface STREAMS module
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service