Протестировал.
На ноуте без APM: до обновления программа запускается и показывает окошко, от которого нельзя избавиться (кроме как прибить через Ctrl+Alt+Del), в котором написано 000%. После обновления программа наглухо виснет до создания окна. mtdbg показывает, что все вызовы функции 49 возвращают eax=8 и CF установлен, а виснет в цикле, приведённом выше - он упорно ждёт, когда же флаг CF будет сброшен.
На ноуте с APM: программа падает сама, а через раз ещё и роняет систему, независимо от обновления. mtdbg показывает, что первый же вызов функции 49 гробит первую страницу памяти приложения и практически наверняка что-то ещё.
Резюме: APM сейчас вообще неюзабельно. Я бы вообще выкинул его поддержку из ядра - устаревшая технология, сейчас компы повсеместно оснащены ACPI, который заменил APM, а если где-то найдётся древний комп с APM без ACPI, то наверняка рядом найдётся и комп вообще без их поддержки.
Advanced Power Management
-
Ушёл к умным, знающим и культурным людям.
Ядро 1097 показания остались прежними. Ничего не изменилось.
diamond
Я не согласен с тем что нужно выкинуть. Если уж убирать то в отдельный драйвер. Нужно - загружаем, не нужно - не загружаем. Даже если кто-нибудь напишет поддержку ACPI (только что-то не наблюдаю желающих и умеющих, хотя периодически вопрос поднимается уже на протяжениии 3-4 лет), это не отменяет наличие APM. Комперы с поддержкой APM есть и еще будут присутствовать значительное время в наличии.
diamond
Вообщето можно еще правой кнопкой мыши по вкладке программы в @PANEL кликнуть, вылезет окно в котором можно выбрать завершение.от которого нельзя избавиться (кроме как прибить через Ctrl+Alt+Del)
Ломать всегда легче чем cделать. Согласен?Резюме: APM сейчас вообще неюзабельно. Я бы вообще выкинул его поддержку из ядра - устаревшая технология, сейчас компы повсеместно оснащены ACPI, который заменил APM, а если где-то найдётся древний комп с APM без ACPI, то наверняка рядом найдётся и комп вообще без их поддержки
Я не согласен с тем что нужно выкинуть. Если уж убирать то в отдельный драйвер. Нужно - загружаем, не нужно - не загружаем. Даже если кто-нибудь напишет поддержку ACPI (только что-то не наблюдаю желающих и умеющих, хотя периодически вопрос поднимается уже на протяжениии 3-4 лет), это не отменяет наличие APM. Комперы с поддержкой APM есть и еще будут присутствовать значительное время в наличии.
Согласен. Поэтому и предлагаю "ломать", а не "сделать"Ломать всегда легче чем cделать. Согласен?
В данный конкретный момент поддержка APM глючит, и потому ей пользоваться нельзя. Есть два варианта исправления ситуации. Первый - удалить глючащий код вместе с поддержкой APM. Второй - найти, в чём глюки и исправить. Лично я не собираюсь заниматься вторым вариантом, поскольку есть первый и поскольку я не вижу большой трагедии в удалении APM, а на довод "Комперы с поддержкой APM есть и еще будут присутствовать значительное время в наличии." уже ответил "а если где-то найдётся древний комп с APM без ACPI, то наверняка рядом найдётся и комп вообще без их поддержки."
Ушёл к умным, знающим и культурным людям.
diamond
Твой подход неоптимален, получается если у человека на руке из 5-й пальцев раотает только один, то давайте ему руку ампутируем! Зачем ему такая рука? Ведь в соседнем городе завод делает замечательные экзопротезы...
1. Давай тогда выкинем звуковую подсистему - она даже не все Ас97 кодеки поддерживает, и вообще ведь теперь все компы поголовно с HDA кодеками идут. А наверняка стоят рядом компы в которых вообще нету ни АС97, ни HDA. Я тоже не хочу ковырять AC97, а Сергей не собирается HDA делать - так давай выкинем.
2. Давай тогда выкинем дисковую подсистему, ведь она не поддерживает SATA и LBA48. И никто этим заниматься в ближайшее время не будет!
3. Давай тогда выбросим поддержку 640*480*16 и 320*240*256 - ну ведь давно уже у всех видеокарты с VESA 2 и выше.
Можно много чего выбросить, но как бы вместе с водой не выплеснуть и ребенка...
Твой подход неоптимален, получается если у человека на руке из 5-й пальцев раотает только один, то давайте ему руку ампутируем! Зачем ему такая рука? Ведь в соседнем городе завод делает замечательные экзопротезы...
1. Давай тогда выкинем звуковую подсистему - она даже не все Ас97 кодеки поддерживает, и вообще ведь теперь все компы поголовно с HDA кодеками идут. А наверняка стоят рядом компы в которых вообще нету ни АС97, ни HDA. Я тоже не хочу ковырять AC97, а Сергей не собирается HDA делать - так давай выкинем.
2. Давай тогда выкинем дисковую подсистему, ведь она не поддерживает SATA и LBA48. И никто этим заниматься в ближайшее время не будет!
3. Давай тогда выбросим поддержку 640*480*16 и 320*240*256 - ну ведь давно уже у всех видеокарты с VESA 2 и выше.
Можно много чего выбросить, но как бы вместе с водой не выплеснуть и ребенка...
Наверное ф.49 глючит из-за махинаций с таблицами страниц при вызове. Надо попробовать сместить базу сегментов на OS_BASE как для вызовов BIOS32.
Mario79
Последний раз повторяю. Из-за болезни одного пальца можно ампутировать всю руку. Сравнения некорректны, потому что звуковая подсистема, дисковая подсистема и поддержка EGA и VGA режимов работают, а APM - нет. Как это можно уже второй раз не понять?
Последний раз повторяю. Из-за болезни одного пальца можно ампутировать всю руку. Сравнения некорректны, потому что звуковая подсистема, дисковая подсистема и поддержка EGA и VGA режимов работают, а APM - нет. Как это можно уже второй раз не понять?
Ушёл к умным, знающим и культурным людям.
diamond
2. APM не мешает работе других систем, конфликтов не наблюдаю.
3. Еще раз повторяю - убить, удалить, уничтожить, убрать всегда проще чем создать. Еще раз настаиваю о переносе, а не о удалении.
4. Ты готов делать реализацию ACPI?
1. Пример с гашением монитора работает. И после этого ты приводишь довод о абсолютной неработоспособности?!а APM - нет. Как это можно уже второй раз не понять?
2. APM не мешает работе других систем, конфликтов не наблюдаю.
3. Еще раз повторяю - убить, удалить, уничтожить, убрать всегда проще чем создать. Еще раз настаиваю о переносе, а не о удалении.
4. Ты готов делать реализацию ACPI?
а еще, когда сделают ACPI, надо будет только в индикаторе заменить 2 функции, а интерфейс программы уже готов)..
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!
Gluk
А еще когда портируем DB2...
А еще когда портируем DB2...
Ghost
Некоторые BIOS используют первые 64к памяти для своих нужд. Может в этом проблема?
Некоторые BIOS используют первые 64к памяти для своих нужд. Может в этом проблема?
Maxis ты о чем?
При настройке компиляции линукс ядра(последнии версии) есть опция запретить использовать системой первые 64 килобайта физической памяти поскольку BIOS некоторых мат. плат использует эту область памяти в своих целях.Ghost wrote:Maxis ты о чем?
1. Не "последнии верси" а "крайние версии"
2. Я так и не понял к чему эти 64 кб? объясни хотя бы о чем ты говоришь?
2. Я так и не понял к чему эти 64 кб? объясни хотя бы о чем ты говоришь?
Ghost
Некоторые BIOSы мат. плат используют эту область и если её затереть, то могут возникнуть проблемы с различными энергосберегающими и другими функциями. Дословно я уже не помню, что конкретно было в той опции компиляции ядра. Возможно проблемма с APM именно в этом.
Некоторые BIOSы мат. плат используют эту область и если её затереть, то могут возникнуть проблемы с различными энергосберегающими и другими функциями. Дословно я уже не помню, что конкретно было в той опции компиляции ядра. Возможно проблемма с APM именно в этом.
По поводу ACPI - если кто будет делать, или кто просто посмотреть на код хочет - вот самая на мой взгляд адекватная и актуальная реализация, причем независимая от системы. Люди специально для таких случаев старались )
http://www.acpica.org/
http://www.acpica.org/