3 * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4 * PURPOSE: APM BIOS detection routines
5 * COPYRIGHT: Copyright 2004 Eric Kohl (eric.kohl@reactos.org)
11 DBG_DEFAULT_CHANNEL(HWDETECT
);
18 /* APM BIOS - Installation check */
19 #if defined(SARCH_PC98)
22 Int386(0x1F, &RegsIn
, &RegsOut
);
26 Int386(0x15, &RegsIn
, &RegsOut
);
28 if (INT386_SUCCESS(RegsOut
) && RegsOut
.w
.bx
== 'PM')
30 TRACE("Found APM BIOS\n");
31 TRACE("AH: %x\n", RegsOut
.b
.ah
);
32 TRACE("AL: %x\n", RegsOut
.b
.al
);
33 TRACE("BH: %x\n", RegsOut
.b
.bh
);
34 TRACE("BL: %x\n", RegsOut
.b
.bl
);
35 TRACE("CX: %x\n", RegsOut
.w
.cx
);
40 TRACE("No APM BIOS found\n");
46 DetectApmBios(PCONFIGURATION_COMPONENT_DATA SystemKey
, ULONG
*BusNumber
)
48 PCONFIGURATION_COMPONENT_DATA BiosKey
;
49 PCM_PARTIAL_RESOURCE_LIST PartialResourceList
;
55 Size
= sizeof(CM_PARTIAL_RESOURCE_LIST
) -
56 sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR
);
58 /* Set 'Configuration Data' value */
59 PartialResourceList
= FrLdrHeapAlloc(Size
, TAG_HW_RESOURCE_LIST
);
60 if (PartialResourceList
== NULL
)
62 ERR("Failed to allocate resource descriptor\n");
65 RtlZeroMemory(PartialResourceList
, Size
);
66 PartialResourceList
->Version
= 0;
67 PartialResourceList
->Revision
= 0;
68 PartialResourceList
->Count
= 0;
70 /* FIXME: Add configuration data */
72 /* Create new bus key */
73 FldrCreateComponentKey(SystemKey
,
84 /* Increment bus number */