Module Name:    src
Committed By:   nat
Date:           Sun Jan 12 09:07:02 UTC 2025

Modified Files:
        src/sys/arch/macppc/dev: aed.c akbd.c

Log Message:
Catch up macppc to the same as mac68k.

Unfortunately these files could not be tested fully as aed/akbd/ams and
adb_direct have suffered from bit rot and there corresponding attachments
are commented out in all macppc kernels.


To generate a diff of this commit:
cvs rdiff -u -r1.35 -r1.36 src/sys/arch/macppc/dev/aed.c
cvs rdiff -u -r1.47 -r1.48 src/sys/arch/macppc/dev/akbd.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/macppc/dev/aed.c
diff -u src/sys/arch/macppc/dev/aed.c:1.35 src/sys/arch/macppc/dev/aed.c:1.36
--- src/sys/arch/macppc/dev/aed.c:1.35	Wed Jun  5 11:01:47 2024
+++ src/sys/arch/macppc/dev/aed.c	Sun Jan 12 09:07:02 2025
@@ -1,4 +1,4 @@
-/*	$NetBSD: aed.c,v 1.35 2024/06/05 11:01:47 nat Exp $	*/
+/*	$NetBSD: aed.c,v 1.36 2025/01/12 09:07:02 nat Exp $	*/
 
 /*
  * Copyright (C) 1994	Bradley A. Grantham
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: aed.c,v 1.35 2024/06/05 11:01:47 nat Exp $");
+__KERNEL_RCSID(0, "$NetBSD: aed.c,v 1.36 2025/01/12 09:07:02 nat Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -53,7 +53,7 @@ __KERNEL_RCSID(0, "$NetBSD: aed.c,v 1.35
  */
 static int	aedmatch(device_t, cfdata_t, void *);
 static void	aedattach(device_t, device_t, void *);
-static void	aed_emulate_mouse(adb_event_t *event);
+static int	aed_emulate_mouse(adb_event_t *event);
 static void	aed_kbdrpt(void *kstate);
 static void	aed_dokeyupdown(adb_event_t *event);
 static void	aed_handoff(adb_event_t *event);
@@ -161,9 +161,9 @@ aed_input(adb_event_t *event)
 
 	switch (event->def_addr) {
 	case ADBADDR_KBD:
-		if (aed_sc->sc_options & AED_MSEMUL)
-			aed_emulate_mouse(&new_event);
-		else
+		if (aed_sc->sc_options & AED_MSEMUL) {
+			rv = aed_emulate_mouse(&new_event);
+		} else
 			aed_dokeyupdown(&new_event);
 		break;
 	case ADBADDR_MS:
@@ -186,11 +186,12 @@ aed_input(adb_event_t *event)
  * 3rd mouse button events while the 1, 2, and 3 keys will generate
  * the corresponding mouse button event.
  */
-static void 
+static int 
 aed_emulate_mouse(adb_event_t *event)
 {
 	static int emulmodkey_down = 0;
 	adb_event_t new_event;
+	int result = 0;
 
 	if (event->u.k.key == ADBK_KEYDOWN(ADBK_OPTION)) {
 		emulmodkey_down = 1;
@@ -209,6 +210,7 @@ aed_emulate_mouse(adb_event_t *event)
 		switch(event->u.k.key) {
 #ifdef ALTXBUTTONS
 		case ADBK_KEYDOWN(ADBK_1):
+			result = 1;
 			aed_sc->sc_buttons |= 1;	/* left down */
 			new_event.def_addr = ADBADDR_MS;
 			new_event.u.m.buttons = aed_sc->sc_buttons;
@@ -217,6 +219,7 @@ aed_emulate_mouse(adb_event_t *event)
 			aed_handoff(&new_event);
 			break;
 		case ADBK_KEYUP(ADBK_1):
+			result = 1;
 			aed_sc->sc_buttons &= ~1;	/* left up */
 			new_event.def_addr = ADBADDR_MS;
 			new_event.u.m.buttons = aed_sc->sc_buttons;
@@ -229,6 +232,7 @@ aed_emulate_mouse(adb_event_t *event)
 #ifdef ALTXBUTTONS
 		case ADBK_KEYDOWN(ADBK_2):
 #endif
+			result = 1;
 			aed_sc->sc_buttons |= 2;	/* middle down */
 			new_event.def_addr = ADBADDR_MS;
 			new_event.u.m.buttons = aed_sc->sc_buttons;
@@ -240,6 +244,7 @@ aed_emulate_mouse(adb_event_t *event)
 #ifdef ALTXBUTTONS
 		case ADBK_KEYUP(ADBK_2):
 #endif
+			result = 1;
 			aed_sc->sc_buttons &= ~2;	/* middle up */
 			new_event.def_addr = ADBADDR_MS;
 			new_event.u.m.buttons = aed_sc->sc_buttons;
@@ -251,6 +256,7 @@ aed_emulate_mouse(adb_event_t *event)
 #ifdef ALTXBUTTONS
 		case ADBK_KEYDOWN(ADBK_3):
 #endif
+			result = 1;
 			aed_sc->sc_buttons |= 4;	/* right down */
 			new_event.def_addr = ADBADDR_MS;
 			new_event.u.m.buttons = aed_sc->sc_buttons;
@@ -262,6 +268,7 @@ aed_emulate_mouse(adb_event_t *event)
 #ifdef ALTXBUTTONS
 		case ADBK_KEYUP(ADBK_3):
 #endif
+			result = 1;
 			aed_sc->sc_buttons &= ~4;	/* right up */
 			new_event.def_addr = ADBADDR_MS;
 			new_event.u.m.buttons = aed_sc->sc_buttons;
@@ -315,6 +322,8 @@ aed_emulate_mouse(adb_event_t *event)
 	} else {
 		aed_dokeyupdown(event);
 	}
+
+	return result;
 }
 
 /*

Index: src/sys/arch/macppc/dev/akbd.c
diff -u src/sys/arch/macppc/dev/akbd.c:1.47 src/sys/arch/macppc/dev/akbd.c:1.48
--- src/sys/arch/macppc/dev/akbd.c:1.47	Sat Aug  7 16:18:57 2021
+++ src/sys/arch/macppc/dev/akbd.c	Sun Jan 12 09:07:02 2025
@@ -1,4 +1,4 @@
-/*	$NetBSD: akbd.c,v 1.47 2021/08/07 16:18:57 thorpej Exp $	*/
+/*	$NetBSD: akbd.c,v 1.48 2025/01/12 09:07:02 nat Exp $	*/
 
 /*
  * Copyright (C) 1998	Colin Wood
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: akbd.c,v 1.47 2021/08/07 16:18:57 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: akbd.c,v 1.48 2025/01/12 09:07:02 nat Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -308,6 +308,12 @@ kbd_processevent(adb_event_t *event, str
         new_event = *event;
 	new_event.u.k.key = event->bytes[0];
 	new_event.bytes[1] = 0xff;
+#if NAED > 0
+	int result;
+
+	if ((result = aed_input(&new_event)) != 0)
+		return;
+#endif
 	kbd_intr(&new_event);
 #if NAED > 0
 	aed_input(&new_event);

Reply via email to