Subversion Repositories Kolibri OS

Rev

Rev 7132 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 7132 Rev 7734
Line 9... Line 9...
9
;;  See file COPYING for details.                               ;;
9
;;  See file COPYING for details.                               ;;
10
;;  Copyright 2003 Ville Turjanmaa                              ;;
10
;;  Copyright 2003 Ville Turjanmaa                              ;;
11
;;                                                              ;;
11
;;                                                              ;;
12
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
12
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 13... Line 13...
13
 
13
 
-
 
14
$Revision: 7734 $
-
 
15
 
-
 
16
; ACPI Generic Address Structure
-
 
17
struct GAS
-
 
18
        asid        db ? ; address space id
-
 
19
        bit_width   db ?
-
 
20
        bit_offset  db ?
-
 
21
        access_size db ?
-
 
22
        address     DQ ?
-
 
23
ends
-
 
24
 
-
 
25
ASID.SYSTEM_MEMORY = 0
-
 
26
ASID.SYSTEM_IO     = 1
-
 
27
ASID.PCI_CONFIG    = 2
-
 
28
ASID.PCI_EC        = 3
-
 
29
ASID.PCI_SMBUS     = 4
-
 
30
 
-
 
31
ACCESS_SIZE.UNDEFINED = 0
-
 
32
ACCESS_SIZE.BYTE      = 1
-
 
33
ACCESS_SIZE.WORD      = 2
-
 
34
ACCESS_SIZE.DWORD     = 3
Line 14... Line 35...
14
$Revision: 7132 $
35
ACCESS_SIZE.QWORD     = 4
15
 
36
 
Line 16... Line 37...
16
align 4
37
align 4
Line 171... Line 192...
171
        out     dx, ax
192
        out     dx, ax
172
@@:
193
@@:
173
        jmp     $
194
        jmp     $
Line 174... Line 195...
174
 
195
 
-
 
196
no_acpi_power_off:
-
 
197
        cmp     byte[BOOT_LO.shutdown_type], SYSTEM_REBOOT
-
 
198
        jnz     no_acpi_reboot
-
 
199
        ; try to reboot via ACPI fixed features
-
 
200
        mov     ebx, [acpi_fadt_base-OS_BASE]
-
 
201
        cmp     dword[ebx], 'FACP'
-
 
202
        jne     no_acpi_power_off
-
 
203
        test    dword[ebx+0x70], 1 SHL 10    ; RESET_REG_SUP
-
 
204
        jz      no_acpi_reboot
-
 
205
        cmp     [ebx+0x74+GAS.asid], ASID.SYSTEM_IO
-
 
206
        jnz     no_acpi_reboot
-
 
207
        cmp     [ebx+0x74+GAS.bit_width], 8
-
 
208
        jnz     no_acpi_reboot
-
 
209
        cmp     [ebx+0x74+GAS.bit_offset], 0
-
 
210
        jnz     no_acpi_reboot
-
 
211
        cmp     [ebx+0x74+GAS.access_size], ACCESS_SIZE.BYTE
-
 
212
        ja      no_acpi_reboot
-
 
213
        cmp     [ebx+0x74+GAS.address.hi], 0
-
 
214
        jnz     no_acpi_reboot
-
 
215
        mov     edx, [ebx+0x74+GAS.address.lo]
-
 
216
        movzx   eax, byte[ebx+0x80]
-
 
217
        out     dx, al
-
 
218
        jmp     $
-
 
219
        ; unreachable
175
no_acpi_power_off:
220
no_acpi_reboot:
Line 176... Line 221...
176
        jmp     0x50000
221
        jmp     0x50000
177
 
222
 
178
align 4
223
align 4