diff options
| author | scottr <scottr@NetBSD.org> | 2000-03-19 07:37:58 +0000 |
|---|---|---|
| committer | scottr <scottr@NetBSD.org> | 2000-03-19 07:37:58 +0000 |
| commit | 4f29e4d330c7f5c79e7dd6ed76dfdda838b4c2f0 (patch) | |
| tree | 1f39515a820ef322db1a9b2653be17d926d975e6 /sys | |
| parent | 893f3574fba347e1f4cc735b8940aaed87a53ede (diff) | |
Add and use macros to build ADB FLUSH, LISTEN, and TALK commands.
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/arch/mac68k/dev/adb_direct.c | 25 | ||||
| -rw-r--r-- | sys/arch/mac68k/dev/adbsys.c | 26 | ||||
| -rw-r--r-- | sys/arch/mac68k/dev/adbvar.h | 7 | ||||
| -rw-r--r-- | sys/arch/mac68k/dev/akbd.c | 17 | ||||
| -rw-r--r-- | sys/arch/mac68k/dev/ams.c | 22 | ||||
| -rw-r--r-- | sys/arch/mac68k/dev/pm_direct.c | 4 |
6 files changed, 47 insertions, 54 deletions
diff --git a/sys/arch/mac68k/dev/adb_direct.c b/sys/arch/mac68k/dev/adb_direct.c index f189c2f85fa..ff4772b7cb7 100644 --- a/sys/arch/mac68k/dev/adb_direct.c +++ b/sys/arch/mac68k/dev/adb_direct.c @@ -1,4 +1,4 @@ -/* $NetBSD: adb_direct.c,v 1.40 2000/03/18 08:07:50 scottr Exp $ */ +/* $NetBSD: adb_direct.c,v 1.41 2000/03/19 07:37:58 scottr Exp $ */ /* From: adb_direct.c 2.02 4/18/97 jpw */ @@ -810,7 +810,7 @@ switch_start: } #endif - adbLastDevice = (adbInputBuffer[1] & 0xf0) >> 4; + adbLastDevice = ADB_CMDADDR(adbInputBuffer[1]); if (adbInputBuffer[0] == 1 && !adbWaiting) { /* SRQ!!!*/ #ifdef ADB_DEBUG @@ -824,8 +824,7 @@ switch_start: adbLastDevice); #endif adbOutputBuffer[0] = 1; - adbOutputBuffer[1] = - ((adbLastDevice & 0x0f) << 4) | 0x0c; + adbOutputBuffer[1] = ADBTALK(adbLastDevice, 0); adbSentChars = 0; /* nothing sent yet */ adbActionState = ADB_ACTION_POLLING; /* set next state */ @@ -997,7 +996,8 @@ switch_start: } else { /* send talk to last device instead */ adbOutputBuffer[0] = 1; - adbOutputBuffer[1] = (adbOutputBuffer[1] & 0xf0) | 0x0c; + adbOutputBuffer[1] = + ADBTALK(ADB_CMDADDR(adbOutputBuffer[1]), 0); adbSentChars = 0; /* nothing sent yet */ adbActionState = ADB_ACTION_IDLE; /* set next state */ @@ -1670,7 +1670,7 @@ adb_pass_up(struct adbCommand *in) if (adbStarting) return; /* get device's comp. routine and data area */ - if (-1 == get_adb_info(&block, ((cmd & 0xf0) >> 4))) + if (-1 == get_adb_info(&block, ADB_CMDADDR(cmd))) return; } } @@ -2148,11 +2148,10 @@ adb_reinit(void) /* initial scan through the devices */ for (i = 1; i < 16; i++) { - command = ((int)(i & 0xf) << 4) | 0xf; /* talk R3 */ + command = ADBTALK(i, 3); result = adb_op_sync((Ptr)send_string, (Ptr)0, (Ptr)0, (short)command); - /* anything come back? */ if (send_string[0] != 0) { /* check for valid device handler */ switch (send_string[2]) { @@ -2201,12 +2200,12 @@ adb_reinit(void) #endif /* send TALK R3 to address */ - command = ((int)(device & 0xf) << 4) | 0xf; + command = ADBTALK(device, 3); adb_op_sync((Ptr)send_string, (Ptr)0, (Ptr)0, (short)command); /* move device to higher address */ - command = ((int)(device & 0xf) << 4) | 0xb; + command = ADBLISTEN(device, 3); send_string[0] = 2; send_string[1] = (u_char)(saveptr | 0x60); send_string[2] = 0xfe; @@ -2215,7 +2214,7 @@ adb_reinit(void) delay(500); /* send TALK R3 - anthing at new address? */ - command = ((int)(saveptr & 0xf) << 4) | 0xf; + command = ADBTALK(saveptr, 3); adb_op_sync((Ptr)send_string, (Ptr)0, (Ptr)0, (short)command); delay(500); @@ -2229,7 +2228,7 @@ adb_reinit(void) } /* send TALK R3 - anything at old address? */ - command = ((int)(device & 0xf) << 4) | 0xf; + command = ADBTALK(device, 3); result = adb_op_sync((Ptr)send_string, (Ptr)0, (Ptr)0, (short)command); if (send_string[0] != 0) { @@ -2291,7 +2290,7 @@ adb_reinit(void) printf_intr("moving back...\n"); #endif /* move old device back */ - command = ((int)(saveptr & 0xf) << 4) | 0xb; + command = ADBLISTEN(saveptr, 3); send_string[0] = 2; send_string[1] = (u_char)(device | 0x60); send_string[2] = 0xfe; diff --git a/sys/arch/mac68k/dev/adbsys.c b/sys/arch/mac68k/dev/adbsys.c index 7dd2101b9eb..dbdade5a992 100644 --- a/sys/arch/mac68k/dev/adbsys.c +++ b/sys/arch/mac68k/dev/adbsys.c @@ -1,4 +1,4 @@ -/* $NetBSD: adbsys.c,v 1.42 1999/11/07 08:08:10 scottr Exp $ */ +/* $NetBSD: adbsys.c,v 1.43 2000/03/19 07:44:58 scottr Exp $ */ /*- * Copyright (C) 1994 Bradley A. Grantham @@ -65,7 +65,7 @@ adb_complete(buffer, data_area, adb_command) printf("adb: transaction completion\n"); #endif - adbaddr = (adb_command & 0xf0) >> 4; + adbaddr = ADB_CMDADDR(adb_command); error = GetADBInfo(&adbdata, adbaddr); #ifdef ADB_DEBUG if (adb_debug) @@ -110,7 +110,7 @@ adb_msa3_complete(buffer, data_area, adb_command) printf("adb: transaction completion\n"); #endif - adbaddr = (adb_command & 0xf0) >> 4; + adbaddr = ADB_CMDADDR(adb_command); error = GetADBInfo(&adbdata, adbaddr); #ifdef ADB_DEBUG if (adb_debug) @@ -156,7 +156,7 @@ adb_mm_nonemp_complete(buffer, data_area, adb_command) printf("adb: transaction completion\n"); #endif - adbaddr = (adb_command & 0xf0) >> 4; + adbaddr = ADB_CMDADDR(adb_command); error = GetADBInfo(&adbdata, adbaddr); #ifdef ADB_DEBUG if (adb_debug) @@ -228,7 +228,7 @@ extdms_init(totaladbs) (adbdata.devType == ADBMS_USPEED || adbdata.devType == ADBMS_UCONTOUR)) { /* Found MicroSpeed Mouse Deluxe Mac or Contour Mouse */ - cmd = ((adbaddr<<4)&0xF0)|0x9; /* listen 1 */ + cmd = ADBLISTEN(adbaddr, 1); /* * To setup the MicroSpeed or the Contour, it appears @@ -264,10 +264,8 @@ extdms_init(totaladbs) (adbdata.devType == ADBMS_100DPI || adbdata.devType == ADBMS_200DPI)) { /* found a mouse */ - cmd = ((adbaddr << 4) & 0xf0) | 0x3; - + cmd = ADBTALK(adbaddr, 3); extdms_done = 0; - cmd = (cmd & 0xf3) | 0x0c; /* talk command */ ADBOp((Ptr)buffer, (Ptr)extdms_complete, (Ptr)&extdms_done, cmd); @@ -287,7 +285,7 @@ extdms_init(totaladbs) /* Attempt to initialize Extended Mouse Protocol */ buffer[2] = '\004'; /* make handler ID 4 */ extdms_done = 0; - cmd = (cmd & 0xf3) | 0x08; /* listen command */ + cmd = ADBLISTEN(adbaddr, 3); ADBOp((Ptr)buffer, (Ptr)extdms_complete, (Ptr)&extdms_done, cmd); while (!extdms_done) @@ -297,9 +295,8 @@ extdms_init(totaladbs) * Check to see if successful, if not * try to initialize it as other types */ - cmd = ((adbaddr << 4) & 0xf0) | 0x3; + cmd = ADBTALK(adbaddr, 3); extdms_done = 0; - cmd = (cmd & 0xf3) | 0x0c; /* talk command */ ADBOp((Ptr)buffer, (Ptr)extdms_complete, (Ptr)&extdms_done, cmd); while (!extdms_done) @@ -309,7 +306,7 @@ extdms_init(totaladbs) /* Attempt to initialize as an A3 mouse */ buffer[2] = 0x03; /* make handler ID 3 */ extdms_done = 0; - cmd = (cmd & 0xf3) | 0x08; /* listen command */ + cmd = ADBLISTEN(adbaddr, 3); ADBOp((Ptr)buffer, (Ptr)extdms_complete, (Ptr)&extdms_done, cmd); while (!extdms_done) @@ -319,9 +316,8 @@ extdms_init(totaladbs) * Check to see if successful, if not * try to initialize it as other types */ - cmd = ((adbaddr << 4) & 0xf0) | 0x3; + cmd = ADBTALK(adbaddr, 3); extdms_done = 0; - cmd = (cmd & 0xf3) | 0x0c; /* talk command */ ADBOp((Ptr)buffer, (Ptr)extdms_complete, (Ptr)&extdms_done, cmd); while (!extdms_done) @@ -329,7 +325,7 @@ extdms_init(totaladbs) if (buffer[2] == ADBMS_MSA3) { /* Initialize as above */ - cmd = ((adbaddr << 4) & 0xF0) | 0xA; + cmd = ADBLISTEN(adbaddr, 2); /* listen 2 */ buffer[0] = 3; buffer[1] = 0x00; diff --git a/sys/arch/mac68k/dev/adbvar.h b/sys/arch/mac68k/dev/adbvar.h index ce5f24cc9f9..9b21ac6e6c2 100644 --- a/sys/arch/mac68k/dev/adbvar.h +++ b/sys/arch/mac68k/dev/adbvar.h @@ -1,4 +1,4 @@ -/* $NetBSD: adbvar.h,v 1.17 1999/11/07 08:22:50 scottr Exp $ */ +/* $NetBSD: adbvar.h,v 1.18 2000/03/19 07:44:58 scottr Exp $ */ /* * Copyright (C) 1994 Bradley A. Grantham @@ -87,6 +87,11 @@ void extdms_complete __P((void)); #define ADB_HW_IOP 0x5 /* Machines with an IOP */ #define MAX_ADB_HW 5 /* Number of ADB hardware types */ +#define ADB_CMDADDR(cmd) ((u_int8_t)(cmd & 0xf0) >> 4) +#define ADBFLUSH(dev) ((((u_int8_t)dev & 0x0f) << 4) | 0x01) +#define ADBLISTEN(dev, reg) ((((u_int8_t)dev & 0x0f) << 4) | 0x08 | reg) +#define ADBTALK(dev, reg) ((((u_int8_t)dev & 0x0f) << 4) | 0x0c | reg) + #ifndef MRG_ADB /* adb_direct.c */ int adb_poweroff __P((void)); diff --git a/sys/arch/mac68k/dev/akbd.c b/sys/arch/mac68k/dev/akbd.c index d49377af97f..6f8ea68c604 100644 --- a/sys/arch/mac68k/dev/akbd.c +++ b/sys/arch/mac68k/dev/akbd.c @@ -1,4 +1,4 @@ -/* $NetBSD: akbd.c,v 1.6 2000/02/17 02:07:07 ender Exp $ */ +/* $NetBSD: akbd.c,v 1.7 2000/03/19 07:37:58 scottr Exp $ */ /* * Copyright (C) 1998 Colin Wood @@ -161,7 +161,7 @@ akbdattach(parent, self, aux) break; case ADB_EXTKBD: kbd_done = 0; - cmd = (((sc->adbaddr << 4) & 0xf0) | 0x0d ); /* talk R1 */ + cmd = ADBTALK(sc->adbaddr, 1); ADBOp((Ptr)buffer, (Ptr)extdms_complete, (Ptr)&kbd_done, cmd); @@ -278,7 +278,7 @@ kbd_adbcomplete(buffer, data_area, adb_command) printf("adb: transaction completion\n"); #endif - adbaddr = (adb_command & 0xf0) >> 4; + adbaddr = ADB_CMDADDR(adb_command); ksc = (struct akbd_softc *)data_area; event.addr = adbaddr; @@ -356,8 +356,7 @@ getleds(addr) buffer[0] = 0; kbd_done = 0; - /* talk R2 */ - cmd = ((addr & 0xf) << 4) | 0x0c | 0x02; + cmd = ADBTALK(addr, 2); ADBOp((Ptr)buffer, (Ptr)extdms_complete, (Ptr)&kbd_done, cmd); while (!kbd_done) /* busy-wait until done */ ; @@ -390,8 +389,7 @@ setleds(ksc, leds) buffer[0] = 0; kbd_done = 0; - /* talk R2 */ - cmd = ((addr & 0xf) << 4) | 0x0c | 0x02; + cmd = ADBTALK(addr, 2); ADBOp((Ptr)buffer, (Ptr)extdms_complete, (Ptr)&kbd_done, cmd); while (!kbd_done) /* busy-wait until done */ ; @@ -403,14 +401,13 @@ setleds(ksc, leds) buffer[2] &= 0xf8; buffer[2] |= leds; - /* listen R2 */ - cmd = ((addr & 0xf) << 4) | 0x08 | 0x02; + cmd = ADBLISTEN(addr, 2); ADBOp((Ptr)buffer, (Ptr)extdms_complete, (Ptr)&kbd_done, cmd); while (!kbd_done) /* busy-wait until done */ ; /* talk R2 */ - cmd = ((addr & 0xf) << 4) | 0x0c | 0x02; + cmd = ADBTALK(addr, 2); ADBOp((Ptr)buffer, (Ptr)extdms_complete, (Ptr)&kbd_done, cmd); while (!kbd_done) /* busy-wait until done */ ; diff --git a/sys/arch/mac68k/dev/ams.c b/sys/arch/mac68k/dev/ams.c index 904cbbcecdb..0edfc8a9e42 100644 --- a/sys/arch/mac68k/dev/ams.c +++ b/sys/arch/mac68k/dev/ams.c @@ -1,4 +1,4 @@ -/* $NetBSD: ams.c,v 1.6 2000/02/14 07:01:46 scottr Exp $ */ +/* $NetBSD: ams.c,v 1.7 2000/03/19 07:37:58 scottr Exp $ */ /* * Copyright (C) 1998 Colin Wood @@ -230,7 +230,7 @@ ems_init(sc) if (sc->handler_id == ADBMS_USPEED || sc->handler_id == ADBMS_UCONTOUR) { /* Found MicroSpeed Mouse Deluxe Mac or Contour Mouse */ - cmd = ((adbaddr<<4)&0xF0)|0x9; /* listen 1 */ + cmd = ADBLISTEN(adbaddr, 1); /* * To setup the MicroSpeed or the Contour, it appears @@ -269,10 +269,8 @@ ems_init(sc) if ((sc->handler_id == ADBMS_100DPI) || (sc->handler_id == ADBMS_200DPI)) { /* found a mouse */ - cmd = ((adbaddr << 4) & 0xf0) | 0x3; - + cmd = ADBTALK(adbaddr, 3); extdms_done = 0; - cmd = (cmd & 0xf3) | 0x0c; /* talk command */ ADBOp((Ptr)buffer, (Ptr)extdms_complete, (Ptr)&extdms_done, cmd); @@ -292,7 +290,7 @@ ems_init(sc) /* Attempt to initialize Extended Mouse Protocol */ buffer[2] = '\004'; /* make handler ID 4 */ extdms_done = 0; - cmd = (cmd & 0xf3) | 0x08; /* listen command */ + cmd = ADBLISTEN(adbaddr, 3); ADBOp((Ptr)buffer, (Ptr)extdms_complete, (Ptr)&extdms_done, cmd); while (!extdms_done) @@ -302,9 +300,8 @@ ems_init(sc) * Check to see if successful, if not * try to initialize it as other types */ - cmd = ((adbaddr << 4) & 0xf0) | 0x3; + cmd = ADBTALK(adbaddr, 3); extdms_done = 0; - cmd = (cmd & 0xf3) | 0x0c; /* talk command */ ADBOp((Ptr)buffer, (Ptr)extdms_complete, (Ptr)&extdms_done, cmd); while (!extdms_done) @@ -379,7 +376,7 @@ ems_init(sc) /* Attempt to initialize as an A3 mouse */ buffer[2] = 0x03; /* make handler ID 3 */ extdms_done = 0; - cmd = (cmd & 0xf3) | 0x08; /* listen command */ + cmd = ADBLISTEN(adbaddr, 3); ADBOp((Ptr)buffer, (Ptr)extdms_complete, (Ptr)&extdms_done, cmd); while (!extdms_done) @@ -389,9 +386,8 @@ ems_init(sc) * Check to see if successful, if not * try to initialize it as other types */ - cmd = ((adbaddr << 4) & 0xf0) | 0x3; + cmd = ADBTALK(adbaddr, 3); extdms_done = 0; - cmd = (cmd & 0xf3) | 0x0c; /* talk command */ ADBOp((Ptr)buffer, (Ptr)extdms_complete, (Ptr)&extdms_done, cmd); while (!extdms_done) @@ -400,7 +396,7 @@ ems_init(sc) if (buffer[2] == ADBMS_MSA3) { sc->handler_id = ADBMS_MSA3; /* Initialize as above */ - cmd = ((adbaddr << 4) & 0xF0) | 0xA; + cmd = ADBLISTEN(adbaddr, 2); /* listen 2 */ buffer[0] = 3; buffer[1] = 0x00; @@ -444,7 +440,7 @@ ms_adbcomplete(buffer, data_area, adb_command) printf("adb: transaction completion\n"); #endif - adbaddr = (adb_command & 0xf0) >> 4; + adbaddr = ADB_CMDADDR(adb_command); amsc = (struct ams_softc *)data_area; if ((amsc->handler_id == ADBMS_EXTENDED) && (amsc->sc_devid[0] == 0)) { diff --git a/sys/arch/mac68k/dev/pm_direct.c b/sys/arch/mac68k/dev/pm_direct.c index ac9f3831de1..1347a73bdc5 100644 --- a/sys/arch/mac68k/dev/pm_direct.c +++ b/sys/arch/mac68k/dev/pm_direct.c @@ -1,4 +1,4 @@ -/* $NetBSD: pm_direct.c,v 1.10 1999/11/07 00:12:56 scottr Exp $ */ +/* $NetBSD: pm_direct.c,v 1.11 2000/03/19 07:37:58 scottr Exp $ */ /* * Copyright (C) 1997 Takashi Hamada @@ -1164,7 +1164,7 @@ pm_adb_poll_next_device_pm1(pmdata) /* find another existent ADB device to poll */ for (i = 1; i < 16; i++) { - ndid = (((pmdata->data[3] & 0xf0) >> 4) + i) & 0xf; + ndid = (ADB_CMDADDR(pmdata->data[3]) + i) & 0xf; bendid <<= ndid; if ((pm_existent_ADB_devices & bendid) != 0) break; |
