diff options
-rw-r--r-- | sys/i386/apm/apm.c | 14 | ||||
-rw-r--r-- | sys/i386/bios/apm.c | 14 |
2 files changed, 22 insertions, 6 deletions
diff --git a/sys/i386/apm/apm.c b/sys/i386/apm/apm.c index 081a1ade8c58..bb45048fa168 100644 --- a/sys/i386/apm/apm.c +++ b/sys/i386/apm/apm.c @@ -13,7 +13,7 @@ * * Sep, 1994 Implemented on FreeBSD 1.1.5.1R (Toshiba AVS001WD) * - * $Id: apm.c,v 1.33 1996/03/19 04:39:53 nate Exp $ + * $Id: apm.c,v 1.34 1996/03/19 04:49:13 nate Exp $ */ #include "apm.h" @@ -501,7 +501,11 @@ apm_cpu_idle(void) if (sc->idle_cpu) { if (sc->active) { - __asm ("movw $0x5305, %ax; lcall _apm_addr"); + u_long eax, ebx, ecx; + + eax = (APM_BIOS <<8) | APM_CPUIDLE; + ecx = ebx = 0; + apm_int(&eax, &ebx, &ecx); } } /* @@ -526,7 +530,11 @@ apm_cpu_busy(void) struct apm_softc *sc = &apm_softc; if (sc->idle_cpu && sc->active) { - __asm("movw $0x5306, %ax; lcall _apm_addr"); + u_long eax, ebx, ecx; + + eax = (APM_BIOS <<8) | APM_CPUIDLE; + ecx = ebx = 0; + apm_int(&eax, &ebx, &ecx); } } diff --git a/sys/i386/bios/apm.c b/sys/i386/bios/apm.c index 081a1ade8c58..bb45048fa168 100644 --- a/sys/i386/bios/apm.c +++ b/sys/i386/bios/apm.c @@ -13,7 +13,7 @@ * * Sep, 1994 Implemented on FreeBSD 1.1.5.1R (Toshiba AVS001WD) * - * $Id: apm.c,v 1.33 1996/03/19 04:39:53 nate Exp $ + * $Id: apm.c,v 1.34 1996/03/19 04:49:13 nate Exp $ */ #include "apm.h" @@ -501,7 +501,11 @@ apm_cpu_idle(void) if (sc->idle_cpu) { if (sc->active) { - __asm ("movw $0x5305, %ax; lcall _apm_addr"); + u_long eax, ebx, ecx; + + eax = (APM_BIOS <<8) | APM_CPUIDLE; + ecx = ebx = 0; + apm_int(&eax, &ebx, &ecx); } } /* @@ -526,7 +530,11 @@ apm_cpu_busy(void) struct apm_softc *sc = &apm_softc; if (sc->idle_cpu && sc->active) { - __asm("movw $0x5306, %ax; lcall _apm_addr"); + u_long eax, ebx, ecx; + + eax = (APM_BIOS <<8) | APM_CPUIDLE; + ecx = ebx = 0; + apm_int(&eax, &ebx, &ecx); } } |