1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
;*************************************************************************
;*************************************************************************
;** **
;** (C)Copyright 1985-2009, American Megatrends, Inc. **
;** **
;** All Rights Reserved. **
;** **
;** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
;** **
;** Phone: (770)-246-8600 **
;** **
;*************************************************************************
;*************************************************************************
;*************************************************************************
; $Header: /Alaska/SOURCE/Core/Modules/x64Core/x64AsmLib/CPULib_GetInterruptState.asm 1 10/01/10 5:07p Felixp $
;
; $Revision: 1 $
;
; $Date: 10/01/10 5:07p $
;*************************************************************************
; Revision History
; ----------------
; $Log: /Alaska/SOURCE/Core/Modules/x64Core/x64AsmLib/CPULib_GetInterruptState.asm $
;
; 1 10/01/10 5:07p Felixp
;
; 1 8/24/06 12:57p Felixp
;
;*************************************************************************
;<AMI_FHDR_START>
;
; Name:
;
; Description:
;
;<AMI_FHDR_END>
;*************************************************************************
.code
;*************************************************************************
;<AMI_PHDR_START>
;
; Name: CPULib_GetInterruptState
;
; Description:
; BOOLEAN CPULib_GetInterruptState()returns the current CPU interrupt state.
;
; Input:
; VOID.
;
; Output:
; FALSE if interrupts are disabled; otherwise TRUE.
;
; Modified:
;
; Referrals:
;
; Notes:
;
;<AMI_PHDR_END>
;*************************************************************************
CPULib_GetInterruptState PROC PUBLIC
xor cl, cl
pushf ; push flags onto stack.
pop ax ; eax = flags.
bt ax, 9 ; IF (bit 9) if set, set carry flag.
; Interrupts are allowed if IF is set.
adc cl, 0 ; CL = IF = CF.
mov al, cl ; Return value
ret
CPULib_GetInterruptState ENDP
END
;*************************************************************************
;*************************************************************************
;** **
;** (C)Copyright 1985-2009, American Megatrends, Inc. **
;** **
;** All Rights Reserved. **
;** **
;** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
;** **
;** Phone: (770)-246-8600 **
;** **
;*************************************************************************
|