|
@@ -28,15 +28,10 @@ unsigned long currticks ( void ) {
|
28
|
28
|
|
29
|
29
|
/* Re-enable interrupts so that the timer interrupt can occur
|
30
|
30
|
*/
|
31
|
|
- REAL_EXEC ( rm_currticks,
|
32
|
|
- "sti\n\t"
|
33
|
|
- "nop\n\t"
|
34
|
|
- "nop\n\t"
|
35
|
|
- "cli\n\t",
|
36
|
|
- 0,
|
37
|
|
- OUT_CONSTRAINTS (),
|
38
|
|
- IN_CONSTRAINTS (),
|
39
|
|
- CLOBBER ( "eax" ) ); /* can't have an empty clobber list */
|
|
31
|
+ __asm__ __volatile__ ( REAL_CODE ( "sti\n\t"
|
|
32
|
+ "nop\n\t"
|
|
33
|
+ "nop\n\t"
|
|
34
|
+ "cli\n\t" ) : : );
|
40
|
35
|
|
41
|
36
|
get_real ( ticks, BDA_SEG, 0x006c );
|
42
|
37
|
get_real ( midnight, BDA_SEG, 0x0070 );
|
|
@@ -54,12 +49,7 @@ unsigned long currticks ( void ) {
|
54
|
49
|
CPU_NAP - Save power by halting the CPU until the next interrupt
|
55
|
50
|
**************************************************************************/
|
56
|
51
|
void cpu_nap ( void ) {
|
57
|
|
- REAL_EXEC ( rm_cpu_nap,
|
58
|
|
- "sti\n\t"
|
59
|
|
- "hlt\n\t"
|
60
|
|
- "cli\n\t",
|
61
|
|
- 0,
|
62
|
|
- OUT_CONSTRAINTS (),
|
63
|
|
- IN_CONSTRAINTS (),
|
64
|
|
- CLOBBER ( "eax" ) ); /* can't have an empty clobber list */
|
|
52
|
+ __asm__ __volatile__ ( REAL_CODE ( "sti\n\t"
|
|
53
|
+ "hlt\n\t"
|
|
54
|
+ "cli\n\t" ) : : );
|
65
|
55
|
}
|