Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Aug 2008 17:38:43 GMT
From:      Julian Elischer <julian@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 147747 for review
Message-ID:  <200808181738.m7IHchkp098502@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=147747

Change 147747 by julian@julian_trafmon1 on 2008/08/18 17:37:45

	IF-vimage-commit2 @147746

Affected files ...

.. //depot/projects/vimage-commit3/src/sys/conf/options#6 integrate
.. //depot/projects/vimage-commit3/src/sys/ddb/db_output.c#2 integrate
.. //depot/projects/vimage-commit3/src/sys/dev/usb/hid.c#2 integrate
.. //depot/projects/vimage-commit3/src/sys/dev/usb/ums.c#2 integrate
.. //depot/projects/vimage-commit3/src/sys/sys/vimage.h#7 integrate

Differences ...

==== //depot/projects/vimage-commit3/src/sys/conf/options#6 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options,v 1.634 2008/08/17 23:27:27 bz Exp $
+# $FreeBSD: src/sys/conf/options,v 1.635 2008/08/18 16:48:09 attilio Exp $
 #
 #        On the handling of kernel options
 #
@@ -48,6 +48,7 @@
 
 # Debugging options.
 DDB
+DDB_BUFR_SIZE	opt_ddb.h
 DDB_CAPTURE_DEFAULTBUFSIZE	opt_ddb.h
 DDB_CAPTURE_MAXBUFSIZE	opt_ddb.h
 DDB_CTF		opt_ddb.h

==== //depot/projects/vimage-commit3/src/sys/ddb/db_output.c#2 (text+ko) ====

@@ -33,7 +33,9 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/ddb/db_output.c,v 1.38 2007/12/25 23:06:51 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/ddb/db_output.c,v 1.40 2008/08/18 16:51:44 attilio Exp $");
+
+#include "opt_ddb.h"
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -47,6 +49,13 @@
 #include <ddb/ddb.h>
 #include <ddb/db_output.h>
 
+struct dbputchar_arg {
+	size_t	da_nbufr;
+	size_t	da_remain;
+	char	*da_pbufr;
+	char	*da_pnext;
+};
+
 /*
  *	Character output - tracks position in line.
  *	To do this correctly, we should know how wide
@@ -73,6 +82,8 @@
 SYSCTL_INT(_debug, OID_AUTO, ddb_use_printf, CTLFLAG_RW, &ddb_use_printf, 0,
     "use printf for all ddb output");
 
+static void	db_putc(int c);
+static void	db_puts(const char *str);
 static void	db_putchar(int c, void *arg);
 static void	db_pager(void);
 
@@ -107,9 +118,34 @@
  * Output character.  Buffer whitespace.
  */
 static void
-db_putchar(c, arg)
-	int	c;		/* character to output */
-	void *	arg;
+db_putchar(int c, void *arg)
+{
+	struct dbputchar_arg *dap = arg;
+
+	if (dap->da_pbufr == NULL) {
+
+		 /* No bufferized output is provided. */
+		db_putc(c);
+	} else {
+
+		*dap->da_pnext++ = c;
+		dap->da_remain--;
+
+		/* Leave always the buffer 0 terminated. */
+		*dap->da_pnext = '\0';
+
+		/* Check if the buffer needs to be flushed. */
+		if (dap->da_remain < 2 || c == '\n') {
+			db_puts(dap->da_pbufr);
+			dap->da_pnext = dap->da_pbufr;
+			dap->da_remain = dap->da_nbufr;
+			*dap->da_pnext = '\0';
+		}
+	}
+}
+
+static void
+db_putc(int c)
 {
 
 	/*
@@ -180,6 +216,15 @@
 	/* other characters are assumed non-printing */
 }
 
+static void
+db_puts(const char *str)
+{
+	int i;
+
+	for (i = 0; str[i] != '\0'; i++)
+		db_putc(str[i]);
+}
+
 /*
  * Turn on the pager.
  */
@@ -272,30 +317,43 @@
  * Printing
  */
 void
-#if __STDC__
 db_printf(const char *fmt, ...)
+{
+#ifdef DDB_BUFR_SIZE
+	char bufr[DDB_BUFR_SIZE];
+#endif
+	struct dbputchar_arg dca;
+	va_list	listp;
+
+#ifdef DDB_BUFR_SIZE
+	dca.da_pbufr = bufr;
+	dca.da_pnext = dca.da_pbufr;
+	dca.da_nbufr = sizeof(bufr);
+	dca.da_remain = sizeof(bufr);
+	*dca.da_pnext = '\0';
 #else
-db_printf(fmt)
-	const char *fmt;
+	dca.da_pbufr = NULL;
 #endif
-{
-	va_list	listp;
 
 	va_start(listp, fmt);
-	kvprintf (fmt, db_putchar, NULL, db_radix, listp);
+	kvprintf (fmt, db_putchar, &dca, db_radix, listp);
 	va_end(listp);
+
+#ifdef DDB_BUFR_SIZE
+	if (*dca.da_pbufr != '\0')
+		db_puts(dca.da_pbufr);
+#endif
 }
 
 int db_indent;
 
 void
-#if __STDC__
 db_iprintf(const char *fmt,...)
-#else
-db_iprintf(fmt)
-	const char *fmt;
+{
+#ifdef DDB_BUFR_SIZE
+	char bufr[DDB_BUFR_SIZE];
 #endif
-{
+	struct dbputchar_arg dca;
 	register int i;
 	va_list listp;
 
@@ -303,9 +361,25 @@
 		db_printf("\t");
 	while (--i >= 0)
 		db_printf(" ");
+
+#ifdef DDB_BUFR_SIZE
+	dca.da_pbufr = bufr;
+	dca.da_pnext = dca.da_pbufr;
+	dca.da_nbufr = sizeof(bufr);
+	dca.da_remain = sizeof(bufr);
+	*dca.da_pnext = '\0';
+#else
+	dca.da_pbufr = NULL;
+#endif
+
 	va_start(listp, fmt);
-	kvprintf (fmt, db_putchar, NULL, db_radix, listp);
+	kvprintf (fmt, db_putchar, &dca, db_radix, listp);
 	va_end(listp);
+
+#ifdef DDB_BUFR_SIZE
+	if (*dca.da_pbufr != '\0')
+		db_puts(dca.da_pbufr);
+#endif
 }
 
 /*

==== //depot/projects/vimage-commit3/src/sys/dev/usb/hid.c#2 (text+ko) ====

@@ -2,7 +2,7 @@
 
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/usb/hid.c,v 1.29 2007/06/20 05:10:52 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/usb/hid.c,v 1.31 2008/08/18 17:05:59 kaiw Exp $");
 /*-
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -193,8 +193,11 @@
 		case 0:			/* Main */
 			switch (bTag) {
 			case 8:		/* Input */
-				if (!(s->kindset & (1 << hid_input)))
+				if (!(s->kindset & (1 << hid_input))) {
+					if (s->nu > 0)
+						s->nu--;
 					continue;
+				}
 				c->kind = hid_input;
 				c->flags = dval;
 			ret:
@@ -223,8 +226,11 @@
 					return (1);
 				}
 			case 9:		/* Output */
-				if (!(s->kindset & (1 << hid_output)))
+				if (!(s->kindset & (1 << hid_output))) {
+					if (s->nu > 0)
+						s->nu--;
 					continue;
+				}
 				c->kind = hid_output;
 				c->flags = dval;
 				goto ret;
@@ -237,8 +243,11 @@
 				s->nu = 0;
 				return (1);
 			case 11:	/* Feature */
-				if (!(s->kindset & (1 << hid_feature)))
+				if (!(s->kindset & (1 << hid_feature))) {
+					if (s->nu > 0)
+						s->nu--;
 					continue;
+				}
 				c->kind = hid_feature;
 				c->flags = dval;
 				goto ret;
@@ -266,7 +275,7 @@
 				c->logical_maximum = dval;
 				break;
 			case 3:
-				c->physical_maximum = dval;
+				c->physical_minimum = dval;
 				break;
 			case 4:
 				c->physical_maximum = dval;

==== //depot/projects/vimage-commit3/src/sys/dev/usb/ums.c#2 (text+ko) ====

@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/usb/ums.c,v 1.99 2008/04/30 19:37:54 kaiw Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/usb/ums.c,v 1.101 2008/08/18 17:13:23 kaiw Exp $");
 
 /*
  * HID spec: http://www.usb.org/developers/devclass_docs/HID1_11.pdf
@@ -283,6 +283,9 @@
 	/* Try the wheel first as the Z activator since it's tradition. */
 	wheel = hid_locate(desc, size, HID_USAGE2(HUP_GENERIC_DESKTOP,
 						  HUG_WHEEL),
+			    hid_input, &sc->sc_loc_z, &flags) ||
+		hid_locate(desc, size, HID_USAGE2(HUP_GENERIC_DESKTOP,
+						  HUG_TWHEEL),
 			    hid_input, &sc->sc_loc_z, &flags);
 
 	if (wheel) {
@@ -359,12 +362,6 @@
 				hid_input, &sc->sc_loc_btn[i-1], 0);
 
 	sc->sc_isize = hid_report_size(desc, size, hid_input, &sc->sc_iid);
-	sc->sc_ibuf = malloc(sc->sc_isize, M_USB, M_NOWAIT);
-	if (!sc->sc_ibuf) {
-		printf("%s: no memory\n", device_get_nameunit(sc->sc_dev));
-		free(sc->sc_loc_btn, M_USB);
-		return ENXIO;
-	}
 
 	/*
 	 * The Microsoft Wireless Notebook Optical Mouse seems to be in worse
@@ -407,6 +404,13 @@
 		sc->sc_loc_btn[2].pos = 2;
 	}
 
+	sc->sc_ibuf = malloc(sc->sc_isize, M_USB, M_NOWAIT);
+	if (!sc->sc_ibuf) {
+		printf("%s: no memory\n", device_get_nameunit(sc->sc_dev));
+		free(sc->sc_loc_btn, M_USB);
+		return ENXIO;
+	}
+
 	sc->sc_ep_addr = ed->bEndpointAddress;
 	sc->sc_disconnected = 0;
 	free(desc, M_TEMP);

==== //depot/projects/vimage-commit3/src/sys/sys/vimage.h#7 (text+ko) ====




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200808181738.m7IHchkp098502>