apm - интерфейс APM BIOS
Специальный файл устройства apm - это интерфейс к подсистеме расширенного управления питанием Intel/Microsoft (APM - Advanced Power Management) BIOS на ноутбуках.
apm предлагает следующие функции управления питанием.
Некоторые реализации APM выполняют команду HLT (остановить процессор пока не произойдет прерывание) в вызове " Idle CPU " (ожидание процессора), а другие -нет. Поэтому включение APMIO_HALTCPU может привести к избыточным выполнениям команды HLT , поскольку " Idle CPU " вызывается из процедуры переключения контекста ядра, обязательно выполняющей команду HLT . Это может снижать пиковую производительность системы.
Кроме того, система зависает, если команда HLT отключена в процедуре переключения контекста ядра, а реализация подсистемы APM на машине не выполняет HLT в вызове " Idle CPU ". В некоторых реализациях, не поддерживающих замедление таймера процессора, подсистема APM может и не выполнять HLT . apm отключает поддержку операции APMIO_NOTHALTCPU на таких машинах.
Текущая версия apm не вызвает " Idle CPU " из процедуры переключения контекста ядра, если не поддерживается замедление таймера, и по умолчанию выполняет команду HLT . Поэтому в большинстве случаев использовать эти две операции не нужно.
Эти интерфейсы используются командой apm(8) .
| Имя | Действие | Описание |
| PMEV_STANDBYREQ | остановка системы | запрос ожидания |
| PMEV_SUSPENDREQ | остановка системы | запрос останова |
| PMEV_USERSUSPENDREQ | остановка системы | запрос останова пользователем |
| PMEV_CRITSUSPEND | остановка системы | критический запрос останова |
| PMEV_NORMRESUME | восстановление системы | обычное восстановление |
| PMEV_CRITRESUME | восстановление системы | критическое восстановление |
| PMEV_STANDBYRESUME | восстановление системы | восстановление из состояния ожидания |
| PMEV_BATTERYLOW | уведомление | батарея разряжена |
| PMEV_UPDATETIME | настройка часов | изменить время |
ПРЕДУПРЕЖДЕНИЕ! Многие, если не большинство, современных реализаций APM-bios в ноутбуках содержат ошибки. Используя этот интерфейс, мы можете повредить экран или батареи ноутбука. (В MS-Windows этой проблемы нет потому, что там используется интерфейс в реальном режиме.) Если вы заметили странности в поведении системы при использовании этого кода, отключите питание и батареи как можно быстрее, лучше - немедленно, и отключите этот код.
Мы очень заинтересованы в обеспечении работоспособности этого кода, поэтому, пожалуйста, пошлите нам свои наблюдения о любых отклонениях.
Когда интерфейс apm активен, вызов процедуры настройки BIOS с помощью горячих клавиш может вызвать серьезные трудности при возобновлении работы системы. Программы настройки BIOS следует вызывать в процессе начальной загрузки или из DOS.
Некоторые реализации подсистемы APM не могут обрабатывать некоторые событие, например, нажатие кнопки питания или закрытие ноутбука. В таких случаях систему надо останавливать только с помощью команды apm(8) или zzz(8) .
Замедление врашение диска, уменьшение подсветки экрана и включение питания по требованию (power on demand) в текущей версии не поддерживаются.
Тацуми Хосокава (Tatsumi Hosokawa) ( hosokawa@jp.FreeBSD.org )
FreeBSD 4.6, 1 ноября 1994 года