PERFORCE change 147747 for review
Julian Elischer
julian at FreeBSD.org
Mon Aug 18 17:38:44 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=147747
Change 147747 by julian at 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) ====
More information about the p4-projects
mailing list