From owner-p4-projects@FreeBSD.ORG Mon Aug 18 17:38:44 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7EF69106569D; Mon, 18 Aug 2008 17:38:44 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 426F61065697 for ; Mon, 18 Aug 2008 17:38:44 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 29A4A8FC13 for ; Mon, 18 Aug 2008 17:38:44 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.2/8.14.2) with ESMTP id m7IHch2r098504 for ; Mon, 18 Aug 2008 17:38:43 GMT (envelope-from julian@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m7IHchkp098502 for perforce@freebsd.org; Mon, 18 Aug 2008 17:38:43 GMT (envelope-from julian@freebsd.org) Date: Mon, 18 Aug 2008 17:38:43 GMT Message-Id: <200808181738.m7IHchkp098502@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to julian@freebsd.org using -f From: Julian Elischer To: Perforce Change Reviews Cc: Subject: PERFORCE change 147747 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Aug 2008 17:38:44 -0000 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 -__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 #include @@ -47,6 +49,13 @@ #include #include +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 -__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 -__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) ====