diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2004-11-25 18:32:12 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2004-11-25 18:32:12 +0000 |
commit | 06601d07c3f3a948ad4b435e9cce75bf9077f455 (patch) | |
tree | 9251a36ae3d19312fbc860cddc0107339e4181c8 /sys/arch/mac68k/dev/adb_direct.c | |
parent | ab3b10696322bc78ecdd88ea3d7b1c61c975f342 (diff) |
Move towards a more flexible and generic interrupt system, as well as better
zs behaviour.
From NetBSD; integration work by Martin Reindl
Diffstat (limited to 'sys/arch/mac68k/dev/adb_direct.c')
-rw-r--r-- | sys/arch/mac68k/dev/adb_direct.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/sys/arch/mac68k/dev/adb_direct.c b/sys/arch/mac68k/dev/adb_direct.c index 3200c91a940..73214a76ef9 100644 --- a/sys/arch/mac68k/dev/adb_direct.c +++ b/sys/arch/mac68k/dev/adb_direct.c @@ -1,4 +1,4 @@ -/* $OpenBSD: adb_direct.c,v 1.13 2003/11/03 06:43:02 david Exp $ */ +/* $OpenBSD: adb_direct.c,v 1.14 2004/11/25 18:32:10 miod Exp $ */ /* $NetBSD: adb_direct.c,v 1.5 1997/04/21 18:04:28 scottr Exp $ */ /* From: adb_direct.c 2.02 4/18/97 jpw */ @@ -204,8 +204,6 @@ int ADBNumDevices; /* num. of ADB devices found with ADBReInit */ extern struct mac68k_machine_S mac68k_machine; -int zshard(int); - void pm_setup_adb(void); void pm_check_adb_devices(int); void pm_intr(void); @@ -1073,7 +1071,7 @@ switch_start: ADB_SET_STATE_ACKON(); /* start ACK to ADB chip */ delay(ADB_DELAY); /* delay */ ADB_SET_STATE_ACKOFF(); /* end ACK to ADB chip */ - zshard(0); /* grab any serial interrupts */ + (void)intr_dispatch(0x70); break; case ADB_ACTION_IN: @@ -1087,7 +1085,7 @@ switch_start: ADB_SET_STATE_ACKON(); /* start ACK to ADB chip */ delay(ADB_DELAY); /* delay */ ADB_SET_STATE_ACKOFF(); /* end ACK to ADB chip */ - zshard(0); /* grab any serial interrupts */ + (void)intr_dispatch(0x70); if (1 == ending) { /* end of message? */ ADB_SET_STATE_INACTIVE(); /* signal end of frame */ @@ -1148,7 +1146,7 @@ switch_start: adbActionState = ADB_ACTION_OUT; /* set next state */ delay(ADB_DELAY); /* delay */ - zshard(0); /* grab any serial interrupts */ + (void)intr_dispatch(0x70); if (ADB_INTR_IS_ON) { /* ADB intr low during * write */ @@ -1189,13 +1187,13 @@ switch_start: adbWriteDelay = 1; /* must retry when done with * read */ delay(ADB_DELAY); /* delay */ - zshard(0); /* grab any serial interrupts */ + (void)intr_dispatch(0x70); goto switch_start; /* process next state right * now */ break; } delay(ADB_DELAY); /* required delay */ - zshard(0); /* grab any serial interrupts */ + (void)intr_dispatch(0x70); if (adbOutputBuffer[0] == adbSentChars) { /* check for done */ if (0 == adb_cmd_result(adbOutputBuffer)) { /* do we expect data |