ACPI

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
jedld

ACPI

Post by jedld »

Anyone know how to use ACPI to turn off the computer via software? (Assuming a 32-bit protected mode OS)
drizzt

Re:ACPI

Post by drizzt »

Maybe this will help you:

INT 15 - Advanced Power Management v1.0+ - CONNECT 32-BIT PROTMODE INTERFACE
   AX = 5303h
   BX = device ID of system BIOS (0000h)
Return: CF clear if successful
    AX = real-mode segment base address of protected-mode 32-bit code
      segment
    EBX = offset of entry point
    CX = real-mode segment base address of protected-mode 16-bit code
      segment
    DX = real-mode segment base address of protected-mode 16-bit data
      segment
    ---APM v1.1---
    SI = APM BIOS code segment length
    DI = APM BIOS data segment length
   CF set on error
    AH = error code (02h,05h,07h,08h,09h) (see #00473)
Notes:   the caller must initialize three consecutive descriptors with the
    returned segment base addresses for 32-bit code, 16-bit code, and
    16-bit data, respectively; these descriptors must be valid whenever
    the protected-mode interface is called, and will have their limits
    arbitrarily set to 64K.
   the protected mode interface is invoked by making a far call to the
    32-bit code segment with the same register values as for INT 15; it
    must be invoked while CPL=0, the code segment descriptor must have a
    DPL of 0, the stack must be in a 32-bit segment and have enough room
    for BIOS use and possible interrupts, and the current I/O permission
    bit map must allow access to the I/O ports used for power management.
   functions 00h-03h are not available from protected mode
   on connection, an APM v1.1 or v1.2 BIOS switches to APM v1.0
    compatibility mode until it is informed that the user supports a
    newer version of APM
Post Reply