PERFORCE change 148055 for review

Ed Schouten ed at FreeBSD.org
Thu Aug 21 21:40:12 UTC 2008


http://perforce.freebsd.org/chv.cgi?CH=148055

Change 148055 by ed at ed_flippo on 2008/08/21 21:40:09

	Even though I hate preprocessor-abuse, I think it's a lot easier
	if we create a fancy macro to test if a hook is currently
	in place.

Affected files ...

.. //depot/projects/mpsafetty/sys/kern/tty_ttydisc.c#14 edit
.. //depot/projects/mpsafetty/sys/sys/ttyhook.h#4 edit

Differences ...

==== //depot/projects/mpsafetty/sys/kern/tty_ttydisc.c#14 (text+ko) ====

@@ -1085,7 +1085,7 @@
 	len = ttyoutq_read(&tp->t_outq, buf, len);
 
 	/* Invoke TTY hooks. XXX: ttyhook_getc_capture()? */
-	if (tp->t_hook != NULL && tp->t_hook->th_getc_capture != NULL)
+	if (ttyhook_hashook(tp, getc_capture))
 		tp->t_hook->th_getc_capture(tp, buf, len);
 
 	ttydisc_wakeup_watermark(tp);
@@ -1112,7 +1112,7 @@
 	 * copying to userspace. We just simulate it by copying data to
 	 * a shadow buffer.
 	 */
-	if (tp->t_hook != NULL && tp->t_hook->th_getc_capture != NULL) {
+	if (ttyhook_hashook(tp, getc_capture)) {
 		while (uio->uio_resid > 0) {
 			/* Read to shadow buffer. */
 			len = ttyoutq_read(&tp->t_outq, buf,
@@ -1121,8 +1121,7 @@
 				break;
 
 			/* Process with hook. Handle sudden removal. */
-			if (tp->t_hook != NULL &&
-			    tp->t_hook->th_getc_capture != NULL)
+			if (ttyhook_hashook(tp, getc_capture))
 				tp->t_hook->th_getc_capture(tp, buf, len);
 
 			/* Copy to userspace. */

==== //depot/projects/mpsafetty/sys/sys/ttyhook.h#4 (text+ko) ====

@@ -48,6 +48,8 @@
 int	ttyhook_register(struct tty **, struct thread *, int,
     struct ttyhook *, void *);
 void	ttyhook_unregister(struct tty *);
-#define	ttyhook_softc(tp)	((tp)->t_hooksoftc)
+#define	ttyhook_softc(tp)		((tp)->t_hooksoftc)
+#define	ttyhook_hashook(tp,hook)	((tp)->t_hook != NULL && \
+					(tp)->t_hook->th_ ## hook != NULL)
 
 #endif /* !_SYS_TTYHOOK_H_ */


More information about the p4-projects mailing list