From owner-p4-projects@FreeBSD.ORG Sun Jul 6 12:51:52 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9926737B407; Sun, 6 Jul 2003 12:51:51 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3B04337B40E for ; Sun, 6 Jul 2003 12:51:51 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E458544001 for ; Sun, 6 Jul 2003 12:51:49 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h66Jpn0U022301 for ; Sun, 6 Jul 2003 12:51:49 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h66JpnAR022295 for perforce@freebsd.org; Sun, 6 Jul 2003 12:51:49 -0700 (PDT) Date: Sun, 6 Jul 2003 12:51:49 -0700 (PDT) Message-Id: <200307061951.h66JpnAR022295@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 34133 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Jul 2003 19:51:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=34133 Change 34133 by marcel@marcel_nfs on 2003/07/06 12:51:16 Rework some of the bones and add some meat to try it on for size: o Redefine the interrupt sources/priorities to have more relation to the higher level operation. This gives a better abstraction and therefore better hardware independence. o Add a flag to the softc for when there's no interrupt resource. We don't do anything with it yet. o Add transmit and receive buffers. Make them OBUFSIZ and IBUFSIZ in size (resp). Both buffers are circular. o Flesh-out the low-level (hardware) interrupt handler and add the software interrupt stuff for the high-level processing. o Improve uart_bus_probe() to properly create the KOBJ instance of the UART class with which we're going to work. UART drivers can now access their class specific data in all cases. o Get the fundamentals of uart_bus_detach() filled in. UARTs are likely to come and go, so we want this to work right. o Add new UART interface methods to the ns8250 and the sab82532 drivers. We need to start fleshing those out next. Affected files ... .. //depot/projects/uart/dev/uart/uart_bus.h#3 edit .. //depot/projects/uart/dev/uart/uart_core.c#3 edit .. //depot/projects/uart/dev/uart/uart_dev_ns8250.c#2 edit .. //depot/projects/uart/dev/uart/uart_dev_sab82532.c#3 edit .. //depot/projects/uart/dev/uart/uart_if.m#3 edit .. //depot/projects/uart/dev/uart/uart_tty.c#2 edit .. //depot/projects/uart/dev/uart/uart_tty.h#2 edit Differences ... ==== //depot/projects/uart/dev/uart/uart_bus.h#3 (text+ko) ==== @@ -29,17 +29,17 @@ #ifndef _DEV_UART_BUS_H_ #define _DEV_UART_BUS_H_ -/* - * Interrupt sources (in priority order): - * line - line errors (overrun, framing) - * recv - received data - * xmit - transmitter idle - * ctrl - line- and modem signals - */ -#define UART_IPEND_LINE 0x01 -#define UART_IPEND_RECV 0x02 -#define UART_IPEND_XMIT 0x04 -#define UART_IPEND_CTRL 0x08 +/* Interrupt sources (in priority order). See also uart_core.c */ +#define UART_IPEND_OVERRUN 0x0001 +#define UART_IPEND_BREAK 0x0002 +#define UART_IPEND_RXREADY 0x0004 +#define UART_IPEND_SIGCHG 0x0008 +#define UART_IPEND_TXIDLE 0x0010 + +/* Received character status bits. */ +#define UART_STAT_BREAK 0x1000 +#define UART_STAT_OVERRUN 0x2000 +#define UART_STAT_PARERR 0x4000 /* * UART class & instance (=softc) @@ -69,14 +69,28 @@ int sc_console:1; /* This UART is a console. */ int sc_dbgport:1; /* This UART is a debug port. */ int sc_fastintr:1; /* This UART uses fast interrupts. */ - int sc_hasfifo:1; /* This UART has a FIFO. */ + int sc_hasfifo:1; /* This UART has FIFOs. */ int sc_leaving:1; /* This UART is going away. */ + int sc_polled:1; /* This UART has no interrupts. */ + /* Receiver data. */ + uint16_t *sc_rxbuf; + int sc_rxbufsz; + int sc_rxput; + int sc_rxget; int sc_rxfifosz; /* Size of RX FIFO. */ + + /* Transmitter data. */ + uint8_t *sc_txbuf; + int sc_txbufsz; + int sc_txput; + int sc_txget; int sc_txfifosz; /* Size of TX FIFO. */ dev_t sc_si; + void *sc_softih; struct tty *sc_tty; + uint32_t sc_ttypend; }; extern devclass_t uart_devclass; @@ -86,4 +100,17 @@ int uart_bus_detach(device_t dev); int uart_bus_probe(device_t dev, int regshft, int rclk, int rid); +static __inline int +uart_rx_put(struct uart_softc *sc, int xc) +{ + int ptr; + + ptr = (sc->sc_rxput + 1 < sc->sc_rxbufsz) ? sc->sc_rxput + 1 : 0; + if (ptr == sc->sc_rxget) + return (ENOSPC); + sc->sc_rxbuf[sc->sc_rxput] = xc; + sc->sc_rxput = ptr; + return (0); +} + #endif /* _DEV_UART_BUS_H_ */ ==== //depot/projects/uart/dev/uart/uart_core.c#3 (text+ko) ==== @@ -32,11 +32,14 @@ #include #include #include +#include #include #include #include #include #include +#include +#include #include #include @@ -54,28 +57,87 @@ MALLOC_DEFINE(M_UART, "UART", "UART driver"); -static int -uart_intr_line(struct uart_softc *sc) +/* + * A break condition has been detected. We treat the break condition as + * a special case that should not happen during normal operation. When + * the break condition is to be passed to higher levels in the form of + * a NUL character, we really want the break to be in the right place in + * the input stream. The overhead to achieve that is not in relation to + * the exceptional nature of the break condition, so we permit ourselves + * to be sloppy. + */ +static void +uart_intr_break(struct uart_softc *sc) +{ +#if defined(DDB) && defined(BREAK_TO_DEBUGGER) + breakpoint(); +#else + if (sc->sc_tty == NULL || sc->sc_tty->t_iflag & IGNBRK) + return; + if (uart_rx_put(sc, UART_STAT_BREAK)) + sc->sc_rxbuf[sc->sc_rxput] |= UART_STAT_BREAK; + atomic_set_32(&sc->sc_ttypend, UART_IPEND_RXREADY); +#endif +} + +/* + * Handle a receiver overrun situation. We lost at least 1 byte in the + * input stream and it's our job to contain the situation. We grab as + * much of the data we can, but otherwise flush the receiver FIFO to + * create some breathing room. The net effect is that we avoid the + * overrun condition to happen for the next X characters, where X is + * related to the FIFO size at the cost of loosing data right away. + * So, instead of having multiple overrun interrupts in close proximity + * to each other and possibly pessimizing UART interrupt latency for + * other UARTs in a multiport configuration, we create a longer segment + * of missing characters by freeing up the FIFO. + * Each overrun condition is marked in the input buffer by a token. The + * token represents the loss of at least one, but possible more bytes in + * the input stream. + */ +static void +uart_intr_overrun(struct uart_softc *sc) { - return (0); + UART_RECEIVE(sc); + UART_RXFLUSH(sc); + if (uart_rx_put(sc, UART_STAT_OVERRUN)) + sc->sc_rxbuf[sc->sc_rxput] = UART_STAT_OVERRUN; + atomic_set_32(&sc->sc_ttypend, UART_IPEND_RXREADY); } -static int -uart_intr_recv(struct uart_softc *sc) +/* + * Received data ready. + */ +static void +uart_intr_rxready(struct uart_softc *sc) { - return (0); + UART_RECEIVE(sc); + atomic_set_32(&sc->sc_ttypend, UART_IPEND_RXREADY); } -static int -uart_intr_xmit(struct uart_softc *sc) +/* + * Line or modem status change (OOB signalling). + */ +static void +uart_intr_sigchg(struct uart_softc *sc) { - return (0); + int sig; + + sig = UART_GETSIG(sc); + /* + * TODO: process the signals. + */ } -static int -uart_intr_ctrl(struct uart_softc *sc) +/* + * The transmitter can accept more data. + */ +static void +uart_intr_txidle(struct uart_softc *sc) { - return (0); + if (sc->sc_txget != sc->sc_txput) + UART_TRANSMIT(sc); + atomic_set_32(&sc->sc_ttypend, UART_IPEND_TXIDLE); } static void @@ -84,48 +146,46 @@ struct uart_softc *sc = arg; int ipend; + if (sc->sc_leaving) + return; + ipend = UART_IPEND(sc); - while (ipend != 0) { - if (ipend & UART_IPEND_LINE) - uart_intr_line(sc); - if (ipend & UART_IPEND_RECV) - uart_intr_recv(sc); - if (ipend & UART_IPEND_XMIT) - uart_intr_xmit(sc); - if (ipend & UART_IPEND_CTRL) - uart_intr_ctrl(sc); - ipend = UART_IPEND(sc); - } + if (ipend & UART_IPEND_OVERRUN) + uart_intr_overrun(sc); + if (ipend & UART_IPEND_BREAK) + uart_intr_break(sc); + if (ipend & UART_IPEND_RXREADY) + uart_intr_rxready(sc); + if (ipend & UART_IPEND_SIGCHG) + uart_intr_sigchg(sc); + if (ipend & UART_IPEND_TXIDLE) + uart_intr_txidle(sc); + if (sc->sc_ttypend != 0) + swi_sched(sc->sc_softih, 0); } int uart_bus_probe(device_t dev, int regshft, int rclk, int rid) { - struct uart_softc *sc; + struct uart_softc *sc, *sc0; int error; - sc = device_get_softc(dev); - sc->sc_dev = dev; - /* * The sc_class field defines the type of UART we're going to work - * with. Initialize the softc (=object/instance) so that we can use - * the class methods. Initializing the softc also compiles the - * class if not already compiled. Note that at this time the class - * does not match the softc. The softc belongs to class uart_class - * (the abstract base class), while the sc_class field points to - * a derived class (e.g. ns8250_class). The object of the derived - * class can be (and likely is) larger than the base class. We - * therefore depend on kobj_init to not assume that the object is - * in fact an instantiation of the class we give it. When we attach - * the device, the assignment (device->driver) is definite and we'll - * make sure the softc is replaced with the correct one. This means - * that the UART_PROBE() method cannot use any of the class specific - * data items. This is a bit annoying, because a driver may need to - * do extensive probing to accurately set the device description and - * it's a pain to have to do it again because we couldn't save the - * results of the previous probing. This may need to be revisited. + * with and thus the size of the softc. Replace the generic softc + * with one that matches the UART and initialize it. Initialization + * also compiles the class if not already compiled. We also set the + * initial device description equal to the UART class name, unless + * a description has already been set. This name can be overwritten + * with a more specific description. */ + sc0 = device_get_softc(dev); + sc = malloc(sc0->sc_class->size, M_UART, M_WAITOK|M_ZERO); + bcopy(sc0, sc, sizeof(*sc)); + device_set_softc(dev, sc); + sc->sc_dev = dev; + if (device_get_desc(dev) == NULL) + device_set_desc(dev, sc->sc_class->name); kobj_init((kobj_t)sc, (kobj_class_t)sc->sc_class); /* @@ -159,11 +219,8 @@ sc->sc_bas.rclk = (rclk == 0) ? sc->sc_class->uc_rclk : rclk; error = UART_PROBE(sc); - if (error) { - bus_release_resource(dev, sc->sc_rtype, sc->sc_rrid, - sc->sc_rres); - return (error); - } + if (error) + goto out; /* * Figure out if this UART is a console device or a debug port and @@ -183,22 +240,17 @@ if (!sc->sc_console && !sc->sc_dbgport) { error = UART_RESET(sc); - if (error) { - bus_release_resource(dev, sc->sc_rtype, sc->sc_rrid, - sc->sc_rres); - return (error); - } + if (error) + goto out; } error = UART_INITFIFO(sc); - if (error) { - bus_release_resource(dev, sc->sc_rtype, sc->sc_rrid, - sc->sc_rres); - return (error); - } + if (error) + goto out; - device_set_desc(dev, sc->sc_class->name); error = UART_DESCRIBE(sc); + + out: bus_release_resource(dev, sc->sc_rtype, sc->sc_rrid, sc->sc_rres); return (error); } @@ -243,12 +295,11 @@ } } if (sc->sc_ires == NULL) { - /* - * XXX no interrupt resource. Force polled mode. - */ + /* XXX no interrupt resource. Force polled mode. */ + sc->sc_polled = 1; } - if (sc->sc_console || sc->sc_dbgport || sc->sc_fastintr) { + if (sc->sc_console || sc->sc_dbgport) { sep = ""; device_print_prettyname(dev); if (sc->sc_console) { @@ -261,13 +312,30 @@ printf("%sdebug port", sep); sep = ", "; } + printf("\n"); + } + + if (bootverbose && (sc->sc_fastintr || sc->sc_polled)) { + sep = ""; + device_print_prettyname(dev); if (sc->sc_fastintr) { printf("%sfast interrupt", sep); sep = ", "; } + if (sc->sc_polled) { + printf("%spolled mode", sep); + sep = ", "; + } printf("\n"); } + sc->sc_rxbufsz = IBUFSIZ; + sc->sc_rxbuf = malloc(sc->sc_rxbufsz * sizeof(*sc->sc_rxbuf), + M_UART, M_WAITOK); + sc->sc_txbufsz = OBUFSIZ; + sc->sc_txbuf = malloc(sc->sc_txbufsz * sizeof(*sc->sc_txbuf), + M_UART, M_WAITOK); + uart_tty_attach(sc); return (0); @@ -279,13 +347,21 @@ sc = device_get_softc(dev); + sc->sc_leaving = 1; + uart_tty_detach(sc); + free(sc->sc_txbuf, M_UART); + free(sc->sc_rxbuf, M_UART); + if (sc->sc_ires != NULL) { bus_teardown_intr(dev, sc->sc_ires, sc->sc_icookie); bus_release_resource(dev, SYS_RES_IRQ, sc->sc_irid, sc->sc_ires); } bus_release_resource(dev, sc->sc_rtype, sc->sc_rrid, sc->sc_rres); + + UART_SHUTDOWN(sc); + return (0); } ==== //depot/projects/uart/dev/uart/uart_dev_ns8250.c#2 (text+ko) ==== @@ -253,15 +253,29 @@ }; static int ns8250_bus_describe(struct uart_softc *); +static int ns8250_bus_getsig(struct uart_softc *); static int ns8250_bus_initfifo(struct uart_softc *); +static int ns8250_bus_ipend(struct uart_softc *); static int ns8250_bus_probe(struct uart_softc *); +static int ns8250_bus_receive(struct uart_softc *); static int ns8250_bus_reset(struct uart_softc *); +static int ns8250_bus_rxflush(struct uart_softc *); +static int ns8250_bus_shutdown(struct uart_softc *); +static int ns8250_bus_transmit(struct uart_softc *); +static int ns8250_bus_txflush(struct uart_softc *); static kobj_method_t ns8250_methods[] = { KOBJMETHOD(uart_describe, ns8250_bus_describe), + KOBJMETHOD(uart_getsig, ns8250_bus_getsig), KOBJMETHOD(uart_initfifo, ns8250_bus_initfifo), + KOBJMETHOD(uart_ipend, ns8250_bus_ipend), KOBJMETHOD(uart_probe, ns8250_bus_probe), + KOBJMETHOD(uart_receive, ns8250_bus_receive), KOBJMETHOD(uart_reset, ns8250_bus_reset), + KOBJMETHOD(uart_rxflush, ns8250_bus_rxflush), + KOBJMETHOD(uart_shutdown, ns8250_bus_shutdown), + KOBJMETHOD(uart_transmit, ns8250_bus_transmit), + KOBJMETHOD(uart_txflush, ns8250_bus_txflush), { 0, 0 } }; @@ -313,6 +327,13 @@ } static int +ns8250_bus_getsig(struct uart_softc *sc) +{ + + return (0); +} + +static int ns8250_bus_initfifo(struct uart_softc *sc) { @@ -320,6 +341,13 @@ } static int +ns8250_bus_ipend(struct uart_softc *sc) +{ + + return (0); +} + +static int ns8250_bus_probe(struct uart_softc *sc) { @@ -327,9 +355,44 @@ } static int +ns8250_bus_receive(struct uart_softc *sc) +{ + + return (0); +} + +static int ns8250_bus_reset(struct uart_softc *sc) { ns8250_init(&sc->sc_bas, 9600, 8, 1, UART_PARITY_NONE); return (0); } + +static int +ns8250_bus_rxflush(struct uart_softc *sc) +{ + + return (0); +} + +static int +ns8250_bus_shutdown(struct uart_softc *sc) +{ + + return (0); +} + +static int +ns8250_bus_transmit(struct uart_softc *sc) +{ + + return (0); +} + +static int +ns8250_bus_txflush(struct uart_softc *sc) +{ + + return (0); +} ==== //depot/projects/uart/dev/uart/uart_dev_sab82532.c#3 (text+ko) ==== @@ -115,15 +115,29 @@ }; static int sab82532_bus_describe(struct uart_softc *); +static int sab82532_bus_getsig(struct uart_softc *); static int sab82532_bus_initfifo(struct uart_softc *); +static int sab82532_bus_ipend(struct uart_softc *); static int sab82532_bus_probe(struct uart_softc *); +static int sab82532_bus_receive(struct uart_softc *); static int sab82532_bus_reset(struct uart_softc *); +static int sab82532_bus_rxflush(struct uart_softc *); +static int sab82532_bus_shutdown(struct uart_softc *); +static int sab82532_bus_transmit(struct uart_softc *); +static int sab82532_bus_txflush(struct uart_softc *); static kobj_method_t sab82532_methods[] = { KOBJMETHOD(uart_describe, sab82532_bus_describe), + KOBJMETHOD(uart_getsig, sab82532_bus_getsig), KOBJMETHOD(uart_initfifo, sab82532_bus_initfifo), + KOBJMETHOD(uart_ipend, sab82532_bus_ipend), KOBJMETHOD(uart_probe, sab82532_bus_probe), + KOBJMETHOD(uart_receive, sab82532_bus_receive), KOBJMETHOD(uart_reset, sab82532_bus_reset), + KOBJMETHOD(uart_rxflush, sab82532_bus_rxflush), + KOBJMETHOD(uart_shutdown, sab82532_bus_shutdown), + KOBJMETHOD(uart_transmit, sab82532_bus_transmit), + KOBJMETHOD(uart_txflush, sab82532_bus_txflush), { 0, 0 } }; @@ -151,12 +165,19 @@ default: vstr = "v4?"; break; } - snprintf(buf, sizeof(buf), "Siemens SAB 82532 %s (ch %s)", vstr, ch); + snprintf(buf, sizeof(buf), "SAB 82532 %s, channel %s", vstr, ch); device_set_desc_copy(sc->sc_dev, buf); return (0); } static int +sab82532_bus_getsig(struct uart_softc *sc) +{ + + return (0); +} + +static int sab82532_bus_initfifo(struct uart_softc *sc) { @@ -164,6 +185,13 @@ } static int +sab82532_bus_ipend(struct uart_softc *sc) +{ + + return (0); +} + +static int sab82532_bus_probe(struct uart_softc *sc) { @@ -171,9 +199,44 @@ } static int +sab82532_bus_receive(struct uart_softc *sc) +{ + + return (0); +} + +static int sab82532_bus_reset(struct uart_softc *sc) { sab82532_init(&sc->sc_bas, 9600, 8, 1, UART_PARITY_NONE); return (0); } + +static int +sab82532_bus_rxflush(struct uart_softc *sc) +{ + + return (0); +} + +static int +sab82532_bus_shutdown(struct uart_softc *sc) +{ + + return (0); +} + +static int +sab82532_bus_transmit(struct uart_softc *sc) +{ + + return (0); +} + +static int +sab82532_bus_txflush(struct uart_softc *sc) +{ + + return (0); +} ==== //depot/projects/uart/dev/uart/uart_if.m#3 (text+ko) ==== @@ -34,7 +34,7 @@ INTERFACE uart; -# describe() - set the device description +# describe() - set the device description. # This method is called after FIFOs are initialized and is used to set the # device description to match the actual hardware (as much as is possible). # The method is free to perform whatever UART programming is required to @@ -44,7 +44,13 @@ struct uart_softc *this; }; -# initfifo() - detect and size FIFOs +# getsig() - get line and modem signals. +# XXX needs explanation. +METHOD int getsig { + struct uart_softc *this; +}; + +# initfifo() - detect and size FIFOs. # This method is called after the UART is reset and is responsible for finding # out the size of the transmitter and receiver FIFOs. The method is allowed # to reprogram the UART, but should not permanently disrupt console or debug @@ -53,7 +59,7 @@ struct uart_softc *this; }; -# ipend() - query UART for pending interrupts +# ipend() - query UART for pending interrupts. # When an interrupt is signalled, the handler will call this method to find # out which of the interrupt sources needs attention. The handler will use # this information to dispatch service routines that deal with each of the @@ -74,6 +80,13 @@ struct uart_softc *this; }; +# receive() - move data from the receive FIFO to the receive buffer. +# This method is called to move received data to the receive buffer and +# additionally should make sure the receive interrupt should be cleared. +METHOD int receive { + struct uart_softc *this; +}; + # reset() - program an initial state. # It is unspecified at this time what the initial state is and/or whether it # should be a state that is common for all supported UARTs. This method is @@ -81,3 +94,27 @@ METHOD int reset { struct uart_softc *this; }; + +# rxflush() - flush the receiver and receiver FIFO. +# XXX needs explanation. +METHOD int rxflush { + struct uart_softc *this; +}; + +# shutdown() - disable or inactivate UART. +# XXX needs explanation. +METHOD int shutdown { + struct uart_softc *this; +}; + +# transmit() - move data from the transmit buffer to the transmit FIFO. +# XXX needs explanation. +METHOD int transmit { + struct uart_softc *this; +}; + +# txflush() - flush the transmitter and transmitter FIFO. +# XXX needs explanation. +METHOD int txflush { + struct uart_softc *this; +}; ==== //depot/projects/uart/dev/uart/uart_tty.c#2 (text+ko) ==== @@ -36,6 +36,7 @@ #include #include #include +#include #include #include @@ -143,6 +144,15 @@ return (ENOTTY); } +void +uart_tty_intr(void *arg) +{ + struct uart_softc *sc = arg; + + if (sc->sc_leaving) + return; +} + int uart_tty_attach(struct uart_softc *sc) { @@ -158,6 +168,9 @@ tp->t_dev = sc->sc_si; + swi_add(&tty_ithd, uart_driver_name, uart_tty_intr, sc, SWI_TTY, + INTR_TYPE_TTY, &sc->sc_softih); + return (0); } @@ -165,6 +178,8 @@ uart_tty_detach(struct uart_softc *sc) { - /* XXX */ + ithread_remove_handler(sc->sc_softih); + destroy_dev(sc->sc_si); + /* ttyfree(sc->sc_tty); */ return (0); } ==== //depot/projects/uart/dev/uart/uart_tty.h#2 (text+ko) ==== @@ -33,5 +33,6 @@ int uart_tty_attach(struct uart_softc *); int uart_tty_detach(struct uart_softc *); +void uart_tty_intr(void *arg); #endif /* _DEV_UART_TTY_H_ */ From owner-p4-projects@FreeBSD.ORG Sun Jul 6 13:31:42 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B0CE237B404; Sun, 6 Jul 2003 13:31:41 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5B3BD37B401 for ; Sun, 6 Jul 2003 13:31:41 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3FEB943FD7 for ; Sun, 6 Jul 2003 13:31:40 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h66KVe0U034641 for ; Sun, 6 Jul 2003 13:31:40 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h66KVbHw034603 for perforce@freebsd.org; Sun, 6 Jul 2003 13:31:37 -0700 (PDT) Date: Sun, 6 Jul 2003 13:31:37 -0700 (PDT) Message-Id: <200307062031.h66KVbHw034603@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 34134 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Jul 2003 20:31:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=34134 Change 34134 by marcel@marcel_nfs on 2003/07/06 13:30:50 IFC @34131 Affected files ... .. //depot/projects/uart/alpha/alpha/mp_machdep.c#3 integrate .. //depot/projects/uart/alpha/alpha/pmap.c#3 integrate .. //depot/projects/uart/amd64/amd64/pmap.c#3 integrate .. //depot/projects/uart/contrib/dev/ath/freebsd/i386-elf.hal.o.uu#2 integrate .. //depot/projects/uart/dev/em/if_em.h#2 integrate .. //depot/projects/uart/dev/en/midway.c#3 integrate .. //depot/projects/uart/dev/firewire/fwdma.c#3 integrate .. //depot/projects/uart/dev/firewire/fwohci.c#3 integrate .. //depot/projects/uart/dev/firewire/fwohci_pci.c#3 integrate .. //depot/projects/uart/dev/firewire/sbp.c#3 integrate .. //depot/projects/uart/dev/fxp/if_fxp.c#3 integrate .. //depot/projects/uart/dev/lge/if_lge.c#2 integrate .. //depot/projects/uart/dev/nge/if_nge.c#2 integrate .. //depot/projects/uart/dev/pccbb/pccbb.c#2 integrate .. //depot/projects/uart/dev/sound/pci/ich.c#3 integrate .. //depot/projects/uart/dev/txp/if_txp.c#2 integrate .. //depot/projects/uart/dev/usb/ehci_pci.c#2 integrate .. //depot/projects/uart/dev/usb/hid.c#2 integrate .. //depot/projects/uart/dev/usb/hid.h#2 integrate .. //depot/projects/uart/dev/usb/if_axe.c#2 integrate .. //depot/projects/uart/dev/usb/if_cue.c#2 integrate .. //depot/projects/uart/dev/usb/ohci.c#2 integrate .. //depot/projects/uart/dev/usb/ohcireg.h#2 integrate .. //depot/projects/uart/dev/usb/ucom.c#2 integrate .. //depot/projects/uart/dev/usb/udbp.c#2 integrate .. //depot/projects/uart/dev/usb/udbp.h#2 integrate .. //depot/projects/uart/dev/usb/ufm.c#2 integrate .. //depot/projects/uart/dev/usb/uftdi.c#2 integrate .. //depot/projects/uart/dev/usb/ugen.c#2 integrate .. //depot/projects/uart/dev/usb/uhci.c#2 integrate .. //depot/projects/uart/dev/usb/uhcireg.h#2 integrate .. //depot/projects/uart/dev/usb/uhcivar.h#2 integrate .. //depot/projects/uart/dev/usb/uhid.c#2 integrate .. //depot/projects/uart/dev/usb/uhub.c#2 integrate .. //depot/projects/uart/dev/usb/ukbd.c#2 integrate .. //depot/projects/uart/dev/usb/umass.c#2 integrate .. //depot/projects/uart/dev/usb/umct.c#2 integrate .. //depot/projects/uart/dev/usb/ums.c#2 integrate .. //depot/projects/uart/dev/usb/uplcom.c#2 integrate .. //depot/projects/uart/dev/usb/urio.c#2 integrate .. //depot/projects/uart/dev/usb/usb_mem.h#2 integrate .. //depot/projects/uart/dev/usb/usb_port.h#2 integrate .. //depot/projects/uart/dev/usb/usb_subr.c#2 integrate .. //depot/projects/uart/dev/usb/usbdevs#3 integrate .. //depot/projects/uart/dev/usb/usbdi.c#2 integrate .. //depot/projects/uart/dev/usb/usbdi.h#2 integrate .. //depot/projects/uart/dev/usb/usbdi_util.c#2 integrate .. //depot/projects/uart/dev/usb/usbdi_util.h#2 integrate .. //depot/projects/uart/dev/usb/usbdivar.h#2 integrate .. //depot/projects/uart/dev/usb/uvisor.c#2 integrate .. //depot/projects/uart/dev/usb/uvscom.c#2 integrate .. //depot/projects/uart/dev/wi/if_wi.c#4 integrate .. //depot/projects/uart/dev/zs/zs.c#2 integrate .. //depot/projects/uart/fs/msdosfs/msdosfs_vnops.c#2 integrate .. //depot/projects/uart/i386/i386/pmap.c#3 integrate .. //depot/projects/uart/i386/i386/vm_machdep.c#2 integrate .. //depot/projects/uart/i386/isa/pcvt/pcvt_drv.c#3 integrate .. //depot/projects/uart/ia64/ia64/db_trace.c#2 integrate .. //depot/projects/uart/ia64/ia64/pmap.c#4 integrate .. //depot/projects/uart/ia64/ia64/unwind.c#2 integrate .. //depot/projects/uart/ia64/include/unwind.h#2 integrate .. //depot/projects/uart/kern/kern_descrip.c#2 integrate .. //depot/projects/uart/kern/kern_prot.c#2 integrate .. //depot/projects/uart/kern/kern_sig.c#2 integrate .. //depot/projects/uart/kern/kern_thr.c#2 integrate .. //depot/projects/uart/kern/kern_thread.c#3 integrate .. //depot/projects/uart/kern/kern_umtx.c#2 integrate .. //depot/projects/uart/kern/sched_ule.c#2 integrate .. //depot/projects/uart/kern/vfs_syscalls.c#2 integrate .. //depot/projects/uart/modules/geom/geom_mbr/Makefile#2 integrate .. //depot/projects/uart/net/if_vlan.c#2 integrate .. //depot/projects/uart/netgraph/ng_tee.c#2 integrate .. //depot/projects/uart/netinet/ip_fw.h#2 integrate .. //depot/projects/uart/netinet/ip_fw2.c#2 integrate .. //depot/projects/uart/pci/if_dc.c#2 integrate .. //depot/projects/uart/pci/if_pcn.c#2 integrate .. //depot/projects/uart/pci/if_rl.c#4 integrate .. //depot/projects/uart/pci/if_sf.c#2 integrate .. //depot/projects/uart/pci/if_sis.c#3 integrate .. //depot/projects/uart/pci/if_sk.c#2 integrate .. //depot/projects/uart/pci/if_ste.c#2 integrate .. //depot/projects/uart/pci/if_vr.c#2 integrate .. //depot/projects/uart/pci/if_wb.c#2 integrate .. //depot/projects/uart/pci/if_xl.c#3 integrate .. //depot/projects/uart/powerpc/powerpc/pmap.c#3 integrate .. //depot/projects/uart/security/mac_bsdextended/mac_bsdextended.c#2 integrate .. //depot/projects/uart/security/mac_ifoff/mac_ifoff.c#2 integrate .. //depot/projects/uart/security/mac_lomac/mac_lomac.c#2 integrate .. //depot/projects/uart/security/mac_test/mac_test.c#2 integrate .. //depot/projects/uart/sparc64/sparc64/pmap.c#3 integrate .. //depot/projects/uart/sys/param.h#3 integrate .. //depot/projects/uart/sys/signalvar.h#2 integrate .. //depot/projects/uart/ufs/ufs/ufs_vnops.c#2 integrate .. //depot/projects/uart/vm/pmap.h#3 integrate .. //depot/projects/uart/vm/vm_contig.c#3 integrate .. //depot/projects/uart/vm/vm_map.c#4 integrate .. //depot/projects/uart/vm/vm_mmap.c#2 integrate Differences ... ==== //depot/projects/uart/alpha/alpha/mp_machdep.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/mp_machdep.c,v 1.43 2003/07/02 16:09:00 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/mp_machdep.c,v 1.44 2003/07/03 14:33:17 jhb Exp $"); #include #include @@ -379,7 +379,7 @@ } continue; } - if (resource_disabled("cpu", i)) + if (resource_disabled("cpu", i)) { printf("CPU %d disabled by loader.\n", i); continue; } ==== //depot/projects/uart/alpha/alpha/pmap.c#3 (text+ko) ==== @@ -148,7 +148,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.128 2003/06/29 21:20:02 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.129 2003/07/03 20:18:00 alc Exp $"); #include #include @@ -2070,7 +2070,6 @@ return (void *) ALPHA_PHYS_TO_K0SEG(pa - (i * PAGE_SIZE)); } -#define MAX_INIT_PT (96) /* * pmap_object_init_pt preloads the ptes for a given object * into the specified pmap. This eliminates the blast of soft @@ -2079,112 +2078,12 @@ void pmap_object_init_pt(pmap_t pmap, vm_offset_t addr, vm_object_t object, vm_pindex_t pindex, - vm_size_t size, int limit) + vm_size_t size) { - vm_offset_t tmpidx; - int psize; - vm_page_t p, mpte; - int objpgs; - if (pmap == NULL || object == NULL) - return; - VM_OBJECT_LOCK(object); - psize = alpha_btop(size); - - if ((object->type != OBJT_VNODE) || - ((limit & MAP_PREFAULT_PARTIAL) && (psize > MAX_INIT_PT) && - (object->resident_page_count > MAX_INIT_PT))) { - goto unlock_return; - } - - if (psize + pindex > object->size) { - if (object->size < pindex) - goto unlock_return; - psize = object->size - pindex; - } - - mpte = NULL; - /* - * if we are processing a major portion of the object, then scan the - * entire thing. - */ - if (psize > (object->resident_page_count >> 2)) { - objpgs = psize; - - for (p = TAILQ_FIRST(&object->memq); - ((objpgs > 0) && (p != NULL)); - p = TAILQ_NEXT(p, listq)) { - - tmpidx = p->pindex; - if (tmpidx < pindex) { - continue; - } - tmpidx -= pindex; - if (tmpidx >= psize) { - continue; - } - /* - * don't allow an madvise to blow away our really - * free pages allocating pv entries. - */ - if ((limit & MAP_PREFAULT_MADVISE) && - cnt.v_free_count < cnt.v_free_reserved) { - break; - } - vm_page_lock_queues(); - if (((p->valid & VM_PAGE_BITS_ALL) == VM_PAGE_BITS_ALL) && - (p->busy == 0) && - (p->flags & (PG_BUSY | PG_FICTITIOUS)) == 0) { - if ((p->queue - p->pc) == PQ_CACHE) - vm_page_deactivate(p); - vm_page_busy(p); - vm_page_unlock_queues(); - VM_OBJECT_UNLOCK(object); - mpte = pmap_enter_quick(pmap, - addr + alpha_ptob(tmpidx), p, mpte); - VM_OBJECT_LOCK(object); - vm_page_lock_queues(); - vm_page_wakeup(p); - } - vm_page_unlock_queues(); - objpgs -= 1; - } - } else { - /* - * else lookup the pages one-by-one. - */ - for (tmpidx = 0; tmpidx < psize; tmpidx += 1) { - /* - * don't allow an madvise to blow away our really - * free pages allocating pv entries. - */ - if ((limit & MAP_PREFAULT_MADVISE) && - cnt.v_free_count < cnt.v_free_reserved) { - break; - } - p = vm_page_lookup(object, tmpidx + pindex); - if (p == NULL) - continue; - vm_page_lock_queues(); - if ((p->valid & VM_PAGE_BITS_ALL) == VM_PAGE_BITS_ALL && - (p->busy == 0) && - (p->flags & (PG_BUSY | PG_FICTITIOUS)) == 0) { - if ((p->queue - p->pc) == PQ_CACHE) - vm_page_deactivate(p); - vm_page_busy(p); - vm_page_unlock_queues(); - VM_OBJECT_UNLOCK(object); - mpte = pmap_enter_quick(pmap, - addr + alpha_ptob(tmpidx), p, mpte); - VM_OBJECT_LOCK(object); - vm_page_lock_queues(); - vm_page_wakeup(p); - } - vm_page_unlock_queues(); - } - } -unlock_return: - VM_OBJECT_UNLOCK(object); + VM_OBJECT_LOCK_ASSERT(object, MA_OWNED); + KASSERT(object->type == OBJT_DEVICE, + ("pmap_object_init_pt: non-device object")); } /* ==== //depot/projects/uart/amd64/amd64/pmap.c#3 (text+ko) ==== @@ -39,7 +39,7 @@ * SUCH DAMAGE. * * from: @(#)pmap.c 7.7 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.418 2003/06/29 21:20:03 alc Exp $ + * $FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.419 2003/07/03 20:18:01 alc Exp $ */ /*- * Copyright (c) 2003 Networks Associates Technology, Inc. @@ -2057,31 +2057,22 @@ return ((void *)crashdumpmap); } -#define MAX_INIT_PT (96) /* - * pmap_object_init_pt preloads the ptes for a given object - * into the specified pmap. This eliminates the blast of soft - * faults on process startup and immediately after an mmap. + * This code maps large physical mmap regions into the + * processor address space. Note that some shortcuts + * are taken, but the code works. */ void pmap_object_init_pt(pmap_t pmap, vm_offset_t addr, vm_object_t object, vm_pindex_t pindex, - vm_size_t size, int limit) + vm_size_t size) { - vm_pindex_t tmpidx; - int psize; - vm_page_t p, mpte; + vm_page_t p; - if (pmap == NULL || object == NULL) - return; - VM_OBJECT_LOCK(object); - /* - * This code maps large physical mmap regions into the - * processor address space. Note that some shortcuts - * are taken, but the code works. - */ - if ((object->type == OBJT_DEVICE) && - ((addr & (NBPDR - 1)) == 0) && ((size & (NBPDR - 1)) == 0)) { + VM_OBJECT_LOCK_ASSERT(object, MA_OWNED); + KASSERT(object->type == OBJT_DEVICE, + ("pmap_object_init_pt: non-device object")); + if (((addr & (NBPDR - 1)) == 0) && ((size & (NBPDR - 1)) == 0)) { int i; vm_page_t m[1]; int npdes; @@ -2089,7 +2080,7 @@ pde = pmap_pde(pmap, addr); if (pde != 0 && (*pde & PG_V) != 0) - goto unlock_return; + return; retry: p = vm_page_lookup(object, pindex); if (p != NULL) { @@ -2099,14 +2090,14 @@ } else { p = vm_page_alloc(object, pindex, VM_ALLOC_NORMAL); if (p == NULL) - goto unlock_return; + return; m[0] = p; if (vm_pager_get_pages(object, m, 1, 0) != VM_PAGER_OK) { vm_page_lock_queues(); vm_page_free(p); vm_page_unlock_queues(); - goto unlock_return; + return; } p = vm_page_lookup(object, pindex); @@ -2116,9 +2107,8 @@ vm_page_unlock_queues(); ptepa = VM_PAGE_TO_PHYS(p); - if (ptepa & (NBPDR - 1)) { - goto unlock_return; - } + if (ptepa & (NBPDR - 1)) + return; p->valid = VM_PAGE_BITS_ALL; @@ -2130,65 +2120,7 @@ pde++; } pmap_invalidate_all(kernel_pmap); - goto unlock_return; - } - - psize = amd64_btop(size); - - if ((object->type != OBJT_VNODE) || - ((limit & MAP_PREFAULT_PARTIAL) && (psize > MAX_INIT_PT) && - (object->resident_page_count > MAX_INIT_PT))) { - goto unlock_return; } - - if (psize + pindex > object->size) { - if (object->size < pindex) - goto unlock_return; - psize = object->size - pindex; - } - - mpte = NULL; - - if ((p = TAILQ_FIRST(&object->memq)) != NULL) { - if (p->pindex < pindex) { - p = vm_page_splay(pindex, object->root); - if ((object->root = p)->pindex < pindex) - p = TAILQ_NEXT(p, listq); - } - } - /* - * Assert: the variable p is either (1) the page with the - * least pindex greater than or equal to the parameter pindex - * or (2) NULL. - */ - for (; - p != NULL && (tmpidx = p->pindex - pindex) < psize; - p = TAILQ_NEXT(p, listq)) { - /* - * don't allow an madvise to blow away our really - * free pages allocating pv entries. - */ - if ((limit & MAP_PREFAULT_MADVISE) && - cnt.v_free_count < cnt.v_free_reserved) { - break; - } - vm_page_lock_queues(); - if ((p->valid & VM_PAGE_BITS_ALL) == VM_PAGE_BITS_ALL && - (p->busy == 0) && - (p->flags & (PG_BUSY | PG_FICTITIOUS)) == 0) { - if ((p->queue - p->pc) == PQ_CACHE) - vm_page_deactivate(p); - vm_page_busy(p); - vm_page_unlock_queues(); - mpte = pmap_enter_quick(pmap, - addr + amd64_ptob(tmpidx), p, mpte); - vm_page_lock_queues(); - vm_page_wakeup(p); - } - vm_page_unlock_queues(); - } -unlock_return: - VM_OBJECT_UNLOCK(object); } /* ==== //depot/projects/uart/contrib/dev/ath/freebsd/i386-elf.hal.o.uu#2 (text+ko) ==== @@ -36,7 +36,7 @@ * $Id: i386-elf.hal.o.uu,v 1.3 2003/06/25 04:50:26 sam Exp $ */ begin 644 hal.o -M?T5,1@$!`0D```````````$``P`!``````````````!8TP$``````#0````` +M?T5,1@$!`0D```````````$``P`!```````````````XT@$``````#0````` M`"@`#0`*`````````````````%6)Y0^W50B!^@<1``!T88'Z!Q$``'\9@_H2 M?PR#^A%]5H/Z!W1*ZU^#^A-T4^M8D('Z$Q$``'1(@?H3$0``?Q"!^A(1``!T M+^L]C;8`````N`````"!^A/P``!T+[@4````@?H;\0``="+K&XUT)@"X*``` @@ -378,2286 +378,2289 @@ MN@````"%P'0EBT,0@WL,`'4+C9``:```[8G"ZP:+D`!H``"+11!FB1"Z`0`` M`(G0BUW\B>Q=PXGV58GE@^P4B5W\BUT(BTL0BT4,C12%`&````^W11"#>PP` M=0V-%`KOZPJ-M"8`````B00*QT0D#`@```#'1"0(#````,=$)`0`;```B1PD -MZ/S___^%P`^5P`^VP(M=_(GL7<.-M"8`````C;PG`````%6)Y8/L'(E=](EU -M^(E]_(M="`^W=0R)WV8/MH-4`0``N0P```!F.?`/A*$```"`NTX!````>`JY -M"P```.F.````BT,0@WL,`'4)C9`00```[>L&BX`00```B47PBU,0@\@!@WL, -M`'4)@<(00```[^L&B8(00```B70D",=$)`2_````B1PDZ/S___^%P'01B?"( -MAU0!``"Y`````.L'B?:Y`P```(M3$(M%\(-[#`!U#X'"$$```._K#(VV```` -M`(F"$$```+@!````A6X`0```%W#C;8`````58GEBT4(@+A9 -M`0````^5P`^VP%W#C70F`(V\)P````!5B>6#[!")7?R+70C'1"0$`````(D< -M).C\____A<`/E,`/ML")1"0(QT0D!`````")'"3H_/___XM=_(GL7<.058GE +MZ/S___^%P`^5P`^VP(M=_(GL7<.-M"8`````C;PG`````%6)Y8M-$(M5"&8/ +MMH)4`0``9CE%#'4)N`P```#K%HGV@+I.`0````^9P`^VP(T$Q0,```"#.0!T +M`HD!N`````!=PXVT)@````"-O"<`````58GEBT4(#[:`5`$``%W#D%6)Y;@! +M````7<.-M@````!5B>6+10B`N%D!````#Y7`#[;`7<.-="8`C;PG`````%6) +MY8/L$(E=_(M=",=$)`0`````B1PDZ/S___^%P`^4P`^VP(E$)`C'1"0$```` +M`(D<).C\____BUW\B>Q=PY!5B>6+50B+30R#^05W(HM"$(-Z#`!U"8V0'$`` +M`.WK!HN`'$```(/@+]/H@^`!ZP6X_____UW#B?:-O"<`````58GE5E.#[`B+ +M70B+30R+0Q"#>PP`=0N-D!1```#MB<;K!HNP%$```(G*P>(,`PP`=0F!PA1```#O +MZP:)@A1```"+@_@!```-`````8E$)`2)'"3H_/___X/$"%M>7<.-M"8````` +M58GE4XM-"(M=#(M!$(-Y#`!U#8V0$$```.WK"HUT)@"+@!!```"%VW0'@_L$ +M=`?K#X/@G^L0@^#?@\A`ZPB)]H/(((/@OXM1$(-Y#`!U"8'"$$```._K!HF" +M$$```%M=P^L-D)"0D)"0D)"0D)"0D%6)Y8M%"(M0$(-X#`!U"8'"!(```.WK +M!HN"!(```*D``(``#Y7`#[;`0%W#C70F`%6)Y5=64X/L%(M="`^W11")1?`/ +MMT44B47LB=_'1"0(!@```(M%#(E$)`2-@P0"``")!"3H_/___XM3$`^VBP0" +M```/MH,%`@``P>`("<$/MH,&`@``P>`0"<$/MH,'`@``P>`8"<&#>PP`=0N! +MP@B```")R._K!HF*"(```(MS$`^VAPD"``#!X`@/MI<(`@``B=$)P8M%\"7_ +M/P``P>`0"<&#>PP`=0N-E@R```")R._K!HF.#(```&:#??``='"+0Q"#>PP` +M=0F-D"2```#MZP:+@"2```")P8M%[(/`!&:#?>P`#Y3"#[;22B'0@>'__X#_ +MP>`0)0``?P"+4Q`)R(-[#`!U"8'")(```._K!HF")(```,=$)`@`````QT0D +M!`````")'"3H_/___^L(B1PDZ/S___^#Q!1;7E]=P^L-D)"0D)"0D)"0D)"0 +MD%6)Y8/L#(D<)(ET)`2)?"0(BU4(BT(0@WH,`'4)C9!P@```[>L&BX!P@``` +MB<>^`````(M5"(M"$(-Z#`!U"8V0;(```.WK!HN`;(```+H`````B?$)P8G[ +M"=.)R(G:BQPDBW0D!(M\)`B)[%W#B?95B>6+10B+4!"#>`P`=0F!PFR```#M +MZP:+@FR```!=PU6)Y8M-"(M!$(-Y#`!U"8V0)(```.WK!HN`)(```(M1$`T` +M```!@WD,`'4)@<(D@```[^L&B8(D@```7<.-=@!5B>6#[`B)'"2)="0$BUT( +MBT,0@WL,`'4)C9!DF```[>L&BX!DF```B<'!Z1.!X?\!``#WP0`!``!T!H'Q +M`/[__XM#$(-[#`!U"XV0<(```.V)QNL&B[!P@```BU,0@WL,`'4,@<)L@``` +M[>L)C78`BX)L@```,?`QR(L<)(MT)`2)[%W#C70F`(V\)P````!5B>6+10@/ +MMXA$`0``BU`0@W@,`'4*@<(@0```[>L'D(N"($```"7_````.<$/E,`/ML!= +MPXUT)@"-O"<`````58GE4XM-"(M=#(M!$(-Y#`!U#8V0F(```.WK"HUT)@"+ +M@)B````!`XM!$(-Y#`!U#XV0E(```.WK#(VV`````(N`E(````%#!(M!$(-Y +M#`!U#HV0G(```.WK"Y"-="8`BX"<@````4,,BT$0@WD,`'4.C9"0@```[>L+ +MD(UT)@"+@)"````!0PB+01"#>0P`=0Z-D*"```#MZPN0C70F`(N`H(````%# +M$%M=PXUT)@!5B>6X`0```%W#C;8`````58GEBTT(BT$0@WD,`'4)C9!H@``` +M[>L&BX!H@```BU$0@^#G@WD,`'4)@<)H@```[^L&B8)H@```7<.0C70F`%6) +MY8M-"(M!$(-Y#`!U"8V0:(```.WK!HN`:(```&:#N40!```%=PB#R!#K!HUV +M`(/(&(M1$(-Y#`!U"8'":(```._K!HF":(```%W#C78`58GE4XM-"(G+BT$0 +M@WD,`'4.C5`DN`````#OZPJ-=@#'0"0`````BX/X`0``#0!```")@_@!``"+ +M41"#>0P`=0:#PB#OZP.)0B"+01"#>0P`=0V-4"2X`0```._K"8GVQT`D`0`` +M`%M=PXVV`````%6)Y;@`````7<.-M@````!5B>5=PXUT)@"-O"<`````58GE +M7<.-="8`C;PG`````%6)Y8/L#,=$)`3]`@``QP0D`````.C\____QT0D!!8# +M``#'!"0`````Z/S____'1"0(/0```,=$)`2`"P``BT4(B00DZ/S___^)[%W# +MD)"058GE4XM-"`^W71"+01"#>0P`=0R-D`2```#MZPF-=@"+@`2```"+41`E +M__]__PT```0`@WD,`'4)@<($@```[^L&B8($@```@WT,`'0?BU$0B=@-```# +M`(-Y#`!U"8'"!$```._K!HF"!$```%M=PU6)Y5=64X/L!(M="(-]#``/A)H` +M``"+0Q"#>PP`=0Z-D`1```"X`````._K"L>`!$````````#'!"30!P``Z/S_ +M__^^"@```+\00```C78`BT,0@WL,`'4)C9`00```[>L#BP0'J0```0!T,\<$ +M),@```#H_/___XM#$(-[#`!U#XV0!$```+@`````[^L+D,>`!$````````!. +M=;/K!(7V=0VX`````.M`C;8`````BT,0@WL,`'4)C9`$@```[>L&BX`$@``` +MBU,0)?__>_^#>PP`=0F!P@2```#OZP:)@@2```"X`0```(/$!%M>7UW#C;0F +M`````(V\)P````!5B>6+30B+01"#>0P`=0F-D`2```#MZP:+@`2```"+41`E +M__]__PT```0`@WD,`'4/@<($@```[^L,C;8`````B8($@```@WT,`'0ABT$0 +M@WD,`'4.C9`$0```N````0#OZPK'@`1```````$`7<.058GE@^P8B5WTB77X +MB7W\BT4(BUT,BTT0#[=5%(G&OP$```"#^P)T*(/[`G<'@_L!=`GK/(/[`W0G +MZS6)5"0(B4PD!(D$).C5_?__ZRJ-=@")3"0$B00DZ#3^__^)Q^L7B4PD!(D$ +M).@D____ZPF)]K@`````ZPB)GOP!``")^(M=](MU^(M]_(GL7<.-="8`58GE +MBT4(BX#\`0``7<.)]E6)Y;@!````7<.-M@````!5B>6X`````%W#C;8````` +M58GEBTT(BT$0@WD,`'4)C9`$@```[>L&BX`$@```BU$0)?__;_^#>0P`=0F! +MP@2```#OZP:)@@2```"X`0```%W#C;0F`````(V\)P````!5B>6+30B+01"# +M>0P`=0F-D`2```#MZP:+@`2```"+41`E__]__PT``!``@WD,`'4/@<($@``` +M[^L,C;8`````B8($@```N`$```!=PY"0D%6)Y8/L#(E=_(M%#(/X`70'@_@" +M=`KK#[L`````ZQ&0NP````#K";@`````ZQ.)]HE<)`2+10B)!"3H_/___XG8 +MBUW\B>Q=PY"0D)"0D)"058GEBT4(BU`0@W@,`'4&@\(,[>L#BT(,7<.-M@`` +M``!5B>6+30B+41"+10R#>0P`=0:#P@SOZP.)0@Q=PXUV`%6)Y8M%"(M0$(-X +M#`!U$8/""+@$````[^L-C;8`````QT((!````%W#C;0F`````%6)Y5=64X/L +M!(MU"(M&$(-^#`!U$HU0"+@@````[^L.N`$```#K3<=`""````"[`````+\( +M````D(VT)@````"+1A"#?@P`=0>-4`CMZP20BP0'J00```!TQL<$)`H```#H +M_/___T.!^^<#``!^T;@`````@\0$6UY?7<.-="8`58GE@^P(B1PDB70D!(M% +M"(M8#(M($+YH@```A=MU"8V1:(```.WK!HN!:(```(/@OX7;=0N-%`[OZPB0 +MC70F`(D$#HL<)(MT)`2)[%W#B?95B>6#[`B)'"2)="0$BT4(BU@,BT@0OFB` +M``"%VW4)C9%H@```[>L&BX%H@```@\A`A=MU"XT4#N_K")"-="8`B00.BQPD +MBW0D!(GL7<.)]E6)Y8M-"(M1$(M%#(-Y#`!U#H'"4(```._K"Y"-="8`B8)0 +M@```BU$0BT40@WD,`'4.@<)4@```[^L+D(UT)@")@E2```!=PY"-M"8````` +M58GE@^P(B1PDB70D!(M="(M-#+@`````@_D_#X>/````@_D?=DJ+0Q"#>PP` +M=1&-D%2```#MB<+K#(VV`````(N05(```(MS$(/I(+C^____T\`AT(-[#`!U +M"(V65(```.L_B894@```ZT"0C70F`(M#$(-[#`!U"XV04(```.V)PNL&BY!0 +M@```BW,0N/[____3P"'0@WL,`'4)C990@```[^L&B890@```N`$```"+'"2+ +M="0$B>Q=PY"-="8`58GE@^P(B1PDB70D!(M="(M-#+@`````@_D_#X>/```` +M@_D?=DJ+0Q"#>PP`=1&-D%2```#MB<+K#(VV`````(N05(```(MS$(/I(+@! +M````T^`)T(-[#`!U"(V65(```.L_B894@```ZT"0C70F`(M#$(-[#`!U"XV0 +M4(```.V)PNL&BY!0@```BW,0N`$```#3X`G0@WL,`'4)C990@```[^L&B890 +M@```N`$```"+'"2+="0$B>Q=PY"-="8`58GEBT4(BU`0@W@,`'4)@<),@``` +M[>L&BX),@```7<-5B>6+30B+10RI``(``'0()?_]__^#R""+41"#>0P`=0^! +MPDR```#OZPR-M@````")@DR```!=PY"-M"8`````58GEBTT0BU4,QT((```` +M`(G()?\/``")0@SW110@````=`@-`"```(E"#,="%`````#'0A``````.4H, +M=`>X`````.L%N`$```!=PXUT)@!5B>564XM5"(MU#(GS]D84`74-N`\```#I +M%0$``(UV``^W1A`E_P\``&:)1B"+3A2!X0"`_P_!Z0^+0A"#>@P`=0Z-D&R` +M``#MZPN0C70F`(N`;(```(G"P>H*@>+__P``B=`E_Q\``#G(0C70F``G1B<@E_W\``&:)1B+&1B0`BT,4J0(```!U1:D$```` +M=`;&1B0!ZSCV0Q00=`:`3B0(ZRSV0Q0(=`:`3B0$ZR"`3B0"BT,4)>````#! +MZ`6(1B6-M"8`````C;PG`````(M#$"4``/@'P>@3B$8FBT,4J0`!``!T#24` +M?@``P>@)B$8GZP3&1B?_BT,0)0"`!P#!Z`^(1BB+0Q#!Z`XD`8A&*8M#$,'H +M#"0!B$8JN`````!;7EW#D)"0D)"0D)"0D%6)Y5=64X/L&(M]"(M=#(E]\(M5 +M$`^W0@(E``$``+H,````9H7`#X1D"0``BT<0@W\,`'4+C9`00```[>L(B?:+ +M@!!```"#X&")1>R+=1")="0$B3PDZ/S___^Z`P```(7`#X0H"0``BU<0BT7P +M#[:(\`$```^V@/$!``#!X`@)P8MU\`^VAO(!``#!X!`)P0^VAO,!``#!X!@) +MP8-_#`!U"X'"`(```(G([^L&B8H`@```@_L!#X33````@_L!`(#[:2]`$```G0#0``40"#?PP`=0F-D02```#O +MZP:)@02```"+1Q"#?PP`=0N-4"BX`````._K!\=`*`````"+1Q"#?PP`=1"- +MD!!```"X0!```.G`````QX`00```0!```.G0````BT\0BUWP#[:#]0$``,'@ +M"`^VD_0!```)T`T``%(`@W\,`'4)C9$$@```[^L&B8$$@```BT<0@W\,`'4* +MC5`HN`$```#K3<=`*`$```#K3HM/$(MU\`^VAO4!``#!X`@/MI;T`0``"=`- +M```4`(-_#`!U"8V1!(```._K!HF!!(```(M'$(-_#`!U"XU0*+@`````[^L' +MQT`H`````(M'$(-_#`!U#HV0$$```+@D$```[^L`(#[:2"`(```G0@W\,`'4)C9$,@```[^L&B8$,@``` +MBU<0@W\,`'4(N`````#OZP;'`@````"+1Q"#?PP`=0N-4`2X`````._K!\=` +M!`````"+1Q"#?PP`=0N-4`RX`````._K!\=`#`````"+1Q"#?PP`=0:-4!SM +MZP.+0!R+1Q"#?PP`=0N-4""X`````._K!\=`(`````"+1Q"#?PP`=0N-4"2X +M`````._K!\=`)`````"+7?#'@_@!````````BT<0@W\,`'4&C5`L[>L#BT`L +MBT<0@W\,`'4+C5`PN`4```#OZP?'0#`%````BT<0@W\,`'4+C5`TN`4```#O +MZP?'0#0%````BT<0@W\,`'4+C5!$N`@```#OZP?'0$0(````BT<0@W\,`'4+ +MC5!(N`@```#OZP?'0$@(````BT<0@W\,`'4+C5!0N`````#OZP?'0%`````` +MBT<0@W\,`'4+C5!,N`````#OZP?'0$P`````BT<0@W\,`'4.C9`,0```N``` +M``#OZPK'@`Q`````````BT<0@W\,`'4+C5!`N`````#OZP?'0$``````BT<0 +M@W\,`'4.C9`8@```N``'``#OZPK'@!B`````!P``BT<0@W\,`'4.C9!(@``` +MN`````#OZPK'@$B`````````QT0D!`````")/"3H_/___XM'$(-_#`!U#HV0 +M4(```+@`````[^L*QX!0@````````(M'$(-_#`!U#HV05(```+@`````[^L* +MQX!4@````````(M'$(-_#`!U#HV06(```+@`````[^L*QX!8@````````(M' +M$(-_#`!U#HV07(```+@`````[^L*QX!<@````````(M'$(-_#`!U#HV08(`` +M`+@!````[^L*QX!@@````0```(M'$(-_#`!U#HV09(```+@!````[^L*QX!D +M@````0```(M'$(-_#`!U#HV0:(```+@`````[^L*QX!H@````````(M'$(-_ +M#`!U#HV0*(```+@`````[^L*QX`H@````````(M'$(-_#`!U#HV0+(```+@` +M````[^L*QX`L@````````(M'$(-_#`!U#HV0;(```+@`````[^L*QX!L@``` +M`````(M'$(-_#`!U#HV0,(```+C_____[^L*QX`P@```_____XM'$(-_#`!U +M#HV0-(```+C_____[^L*QX`T@```_____XM'$(-_#`!U#HV0.(```+@!```` +M[^L*QX`X@````0```(M'$(-_#`!U"XU0%+@`````[^L'QT`4`````+L````` +MD(VT)@````"+#-V`#0``@WT4`'0-C8$`@/__/?\/``!V&8MW$(L$W80-``"# +M?PP`=0:-%#'OZP.)!#%#@?NF````=L2+=1")="0$B3PDZ/S___^Z`P```(7` +M#X3(`@``BW<,BU\0A?9U"8V3*)@``.WK!HN#*)@``(G!@>'_`/__BU7P#[:" +M5@$``,'@"`G!A?9U"XV3*)@``(G([^L&B8LHF```BU\0BU7P#[:*5P$``,'A +M&`^V@EL&BX-(F```B<&!X?\/_/^+5?`/MX)0`0``P>`*)0#P`P`)P87V +M=0N-DTB8``")R._K!HF+2)@``(MW#(M?$(7V=0F-DV28``#MZP:+@V28``") +MP8'A_P_X_XM5\`^V@E4!``#!X`PE`/`'``G!A?9U"XV39)@``(G([^L&B8MD +MF```BW<,BU\0A?9U"8V3$)D``.WK!HN#$)D``(G!@^'\BU7P#[>"4`$``(/@ +M`PG!A?9U"XV3$)D``(G([^L&B8L0F0``BU40B50D!(D\).AB$```N@,```"% +MP`^$!0$``(M'$(-_#`!U#HV0')@``+@!````[^L*QX`L&BX$D@```)?__?_Z%VW4&C10.[^L#B00.N`$```#K$HUV`(M% +M&(,X`'0"B1"X`````(/$&%M>7UW#B?:-O"<`````58GE4XM-"(M=#(M!$(-Y +M#`!U#8V0!(```.WK"HUT)@"+@`2````E__\``(/[`70@@_L!<@^#^P9U-HM1 +M$`T``%$`ZQ2+41`-``!2`.L*B?:+41`-```4`(-Y#`!U"8'"!(```._K$(F" +M!(```.L(D+@`````ZP6X`0```%M=PY!5B>6#[`S'1"0("@```,=$)`0(```` +MBT4(B00DZ,\%``")[%W#C70F`(V\)P````!5B>6#[!2)7?R+70C'1"0,```` +M`,=$)`@!````QT0D!`(```")'"3H_/___[H`````A````BU,,BW,0N0````"%_W01#[=' +M`H/@$&:%P'0%N0$```"%TG4+C98$F```B#(M.$+]H@```A=MU"8V1:(```.WK!HN!:(```(/(8(7;=0:- +M%`_OZP.)!`^+1A"#?@P`=0V-D"2```#MZPJ-="8`BX`D@```B47PBU80)?__ +M?_^#?@P`=0F!PB2```#OZP:)@B2```#'!"2@#P``Z/S___^+7@R+3A"_")@` +M`(7;=0^-D0B8``#MZPR-M@````"+@0B8```-````"(7;=0:-%`_OZP.)!`_' +M!"0*````Z/S___^+10R)1"0$B30DZ-T+``"Z`````(7`#X0#`P``QP0DZ`,` +M`.C\____BUX,BTX0OPB8``"%VW4)C9$(F```[>L&BX$(F```)?____>%VW4- +MC10/[^L*C;0F`````(D$#XM&$(-^#`!U"8V06)@``.WK!HN`6)@``(E%[(M& +M$(-^#`!U"8V07)@``.WK!HN`7)@``(E%Z(M&$(-^#`!U#HV0:)@``.WK"Y"- +M="8`BX!HF```B47DBU80BT7L#0``_`.#?@P`=0F!PEB8``#OZP:)@EB8``"+ +M5A"+1>@E?P#`_PV`P#\`@WX,`'4)@<) +M#(M.$+\(F```A=MU#XV1")@``.WK#(VV`````(N!")@```T````(A=MU!HT4 +M#^_K`XD$#\<$)`H```#H_/___XM&$(-^#`!U$XV0U)@``+@A````[^L/D(UT +M)@#'@-28```A````BUX,BTX0OPB8``"%VW4)C9$(F```[>L&BX$(F```)?__ +M__>%VW4&C10/[^L#B00/QP0DZ`,``.C\____BUX,BTX0OV"8``"%VW4+C9%@ +MF```[>L(B?:+@6"8``"#R`&%VW4&C10/[^L#B00/QT0D#`````#'1"0(`0`` +M`,=$)`1@F```B30DZ/S___^+5A"+1>R#?@P`=0Z!PEB8``#OZPN0C70F`(F" +M6)@``(M6$(M%Z(-^#`!U#H'"7)@``._K"Y"-="8`B8)#(M.$+]H@```A=MU"8V1:(```.WK!HN!:(```(/@GX7;=0N- +M%`_OZPB0C70F`(D$#XM6$(M%\(-^#`!U"8'")(```._K!HF")(```+H!```` +MB="#Q"!;7E]=PXUV`%6)Y8/L'(E=](EU^(E]_(M]"(M=#(G>A=L/E<`/ML!( +M"<:+5Q")V(-_#`!U"8'"`$```._K!HF:`$```(M%$(D$).C\____@^,/@^8/ +MB5PD#(ET)`C'1"0$`$```(D\).C\____BUWTBW7XBWW\B>Q=PXVT)@````"- +MO"<`````58GE5E.#[`2+30P/MD40B$7WNP````"Z"@````^VP(UP`8VT)@`` +M``"-O"<`````C002!`,X1?=U#(`\"C\/A8(```#K2HT$$@0##[;`.<9U1872 +M?D&`/`H_=#2`?!'_/W0M#[8<"@^V3!'_*-!`D$`XM5%(@"#[9$&0OK5HGP`?@$`XM-%(@!#[;* +M#[8$'BG!:<#``"ZTTUB$(G(]^+!Z@8/MD0>"P#0#[;`@\0$6UY?7<.058GE5U93@^P8 +MBU4,BWT(#[>'4@$``,'H!"0'BTT0B$$/#[:'4@$``"0'B$$0#[<"+3(4``"Y +M`````&8]E@`/A_8"``"[``````^VAU0!```ZA!];`0``=`9#@_L#=O&Y```` +M`(/[!`^$S0(```^W"H'I,A0``+IG9F9FBF-!,T`````*-1?.)1"0,#[9$,QF)1"0(B70D!(M%"(D$).CV +M_?__B,.-1?*)1"0,BU40#[9""8E$)`B)="0$BTT(B0PDZ-/]__^(1>Z-1?&) +M1"0,BU40#[9""(E$)`B)="0$BTT(B0PDZ*_]__^(1>V-1?")1"0,BU40#[9" +M!XE$)`B)="0$BTT(B0PDZ(O]__^(PF:#OT@"````#X1=`0``#[>'2`(``(/X +M`G0>@_@"?P>#^`%T#NLB@_@#=!.#^`1T%.L6@&WS`^L0@&WS!NL*@&WS">L$ +MQD7S`P^V1?.)1"0(B70D!(M%"(D$).@Z_/__BU40B$(.C47OB40D#`^V0@Z) +M1"0(B70D!(M-"(D,).@&_?__B,,/MD7S.D7R=@0/MD7RB$7R#[;`B40D"(ET +M)`2+10B)!"3H[OO__XM5$(A""8U%[XE$)`P/MD()B40D"(ET)`2+30B)#"3H +MNOS__XA%[@^V1?,Z1?%V!`^V1?&(1?$/ML")1"0(B70D!(M%"(D$).BA^___ +MBU40B$((C47OB40D#`^V0@B)1"0(B70D!(M-"(D,).AM_/__B$7M#[9%\SI% +M\'8$#[9%\(A%\`^VP(E$)`B)="0$BT4(B00DZ%3[__^+51"(0@>-1>^)1"0, +M#[9"!XE$)`B)="0$BTT(B0PDZ"#\__^(P@^V1?.)AT0"``"+31`/MD$.B$$* +MB$$+B$$,B$$-B-@HT(@!B-@J1>V(00&(V"I%[HA!`L9!!@#&004`QD$$`,9! +M`P"Y`0```(G(@\086UY?7<.-M@````"-OP````!5B>575E.#['R-?82^S!(` +M`/RY$0```/.EQT0D"!$```"-7=2)7"0$QP0DN!(``.C\____B5PD"(M%#(E$ +M)`2+10B)!"3H9OS__[H`````A<`/A*D"```/MD7C_LBZ`````#P$#X>6`@`` +M#[9%Y/[(N@`````\!`^'@P(``+L`````C;0F`````(V\)P````#'1"0$!0`` +M``^V1"O4B00DZ/S___^(1"O4C4,!#[?89H/[!G;;NP<```"-M@````#'1"0$ +M!@````^V1"O4B00DZ/S___^(1"O4C4,!#[?89H/[#G;;#[9%U<'@!27@```` +M#[95U(#B'P^VT@G0"46$#[95U\'B!X'B@`````^V1=;!X`*#X'P)P@^V1=7` +MZ`.#X`,)P@E5B`^V5=C!X@2!XO`````/MD77T.B#X`\)P@E5C`^V5=K!X@:! +MXL`````/MD79`<"#X#X)P@^V1=C`Z`0D`0^VP`G""560#[95V\'B`X'B^``` +M``^V1=K`Z`*#X`<)P@E5E`^V5=W!X@>!XH`````/MD7<`<"#X'X)P@^V1=O` +MZ`4D`0^VP`G""568#[95WL'B!8'BX`````^V1=W0Z(/@'PG""56<#[95W\'B +M`X'B^`````^V1=[`Z`.#X`<)P@E5H`^V5>`!TH/B?@^V1=_`Z`4D`0^VP`G" +M"56D#[9%X<'@!27@````"46H#[95XL'B`X'B^`````^V1>'`Z`.#X`<)P@E5 +MK`^V1>+`Z`4D`0^VP`E%L,=$)`0#````#[9%XXD$).C\____P>`')8`````) +M1:3'1"0$`P````^V1>.)!"3H_/___]'H@^`#"46HQT0D!`,````/MD7DB00D +MZ/S____!X`*#X!P)1:B[`````+F0P` +M=0F!PM28``#OZP:)@M28``"Z`0```(UV`(V\)P````")T(/$?%M>7UW#C;8` +M````58GE@^P@B5WTB77XB7W\BWT(BW4,B?N-1?")1"0,C47RB40D"`^W1@*) +M1"0$B3PD_YL%B?:+!`?!Z!.)PH'B_P$``*D``0``=`:!\@#^__]#@_L4?P># +M^KA_NNL*N0````"#^KA_!;D!````B5=PY"0D)"0D)"0D)"058GE4XM5#(M="(/Z +M`701@_H!Y`````.L)N/_____K+XGVB`$`(```````#'@!0"````````QX`8`@```````(G(6UW#58GEBT4, +MBU4(N0````"#^`%W*,'@!(V$$`P"``"#.`!U#KD`````ZQ*-M"8`````QP`` +M````N0$```")R%W#D%6)Y8/L&(E=](EU^(E]_(M="(M%#(G>C8L``@``N@`` +M``"#^`$/ARH#``#!X`2-O!@,`@``@S\`=0JZ`````.D1`P``@S\!#X4#`P`` +M@[LL`@```'44QX-``@```@```,>#.`(```\```"+AD`"```#1P2)1?`/MT$" +M@^`09H7`#X04`0``BT,0@WL,`'4.C9`0@```N.`!``#OZPK'@!"```#@`0`` +MBT,0@WL,`'4.C9`4@```N``(``COZPK'@!2`````"``(BT,0@WL,`'4.C9`@ +M@```N,^/W0'OZPK'@""```#/C]T!BU,0BT7PP>`$*T7PP>`0C8````\`#>`! +M``"#>PP`=0F!PD"```#OZP:)@D"```"+0Q"#>PP`=0Z-D$2```"XP`.N!>_K +M"L>`1(```,`#K@6+0PR)1>R+2Q"#?>P`=0F-D428``#MZP:+@428``"#X("# +MR#B#?>P`=0F-D428``#OZP:)@428``"+0Q"#>PP`=1"-D`28``"X(R``;^D. +M`0``QX`$F```(R``;^D,`0``BT,0@WL,`'4.C9`0@```N&@!``#OZPK'@!"` +M``!H`0``BT,0@WL,`'4.C9`4@```N``$``3OZPK'@!2`````!``$BT,0@WL, +M`'4.C9`@@```N*>/W0'OZPK'@""```"GC]T!BU,0BT7P:$4B=#!X`0E\`````G! +MB?"#X`\)P8')`"`(`(-[#`!U"XV7'(```(G([^L5B8\<@```ZPV0D)"0D)"0 +MD)"0D)"0N@$```")T(M=](MU^(M]_(GL7<.-M@````"-OP````!5B>53BUT( +MBTT,N/____^#^0%W,8G(P>`$BX08#`(``(7`=!R#^`%U%XM3$(-[#`!U`^WK +M$(L"ZPR-M"8`````N/____];7<.0C;0F`````%6)Y5.+70B+30RX`````(/Y +M`7=1BPP`=!.) +M`NL?BU,0BT40@WL,`'4&@\($[^L-B4($ZPBX`````.L&D+@!````6UW#D(VT +M)@````!5B>6#[!")7?B)=?R+70B)'"3H_/___XG&)?___W^)1"0$B1PDZ/S_ +M__^+0Q"#>PP`=0V-D&2```#MZPJ-="8`BX!D@```B<*#?0P`=!*X)0```"G0 +MT>@!PNLED(UT)@"#^`%V`TKK&(ET)`2)'"3H_/___[@`````ZS"0C70F`(M+ +M$(G0@WL,`'4)C9%D@```[^L&B9%D@```B70D!(D<).C\____N`$```"+7?B+ +M=?R)[%W#C70F`(V\)P````!5B>53BUT(BT4,N0````"#^`$/AYT```#!X`2+ +MA!@,`@``@_@!=!&#^`%R?(/X`G1:@_@#=![K<(M#$(-[#`!U"HU0"+@!```` +MZU''0`@!````ZUR+0Q"#>PP`=0N-4`BX`@```._K!\=`"`(```"+0Q"#>PP` +M=0J-4"BX#@```.L:QT`H#@```.LEBT,0@WL,`'4+C5`HN`H```#OZQ''0"@* +M````ZPBY`````.L&D+D!````B53BUT(BTT,N`````"# +M^0%W-HG(P>`$BX08#`(``(7`="&#^`%U'(M#$(-[#`!U!HU0%.WK`XM`%"4` +M>```P>@+ZP6X`````%M=PXUV`%6)Y8/L'(E=](EU^(E]_(M="(M-#+@````` +M@_D!#X?B````BL$D(L$!ZD`>```=!7'!"0*```` +MZ/S___]&@?[G`P``?M&+0Q"#>PP`=0N-4`BX`````._K!\=`"`````"!_N<# +M```/GL`/ML#K+<=$)`P`````QT0D"`0```#'1"0$+````(D<).C\____ZPN- +MM@````"X`````(M=](MU^(M]_(GL7<.-M"8`````C;PG`````%6)Y;@````` +M7<.-M@````!5B>6#[`R)'"2)="0$B7PD"(M5&(MU*(M],(M-#(-])`!U#;@` +M````Z:,```"-=@"#^@)V$+@`````@_H$#X>-````ZPN)T\'C&NL)C70F`+L` +M```,BT40)?\/``"+52#!XA()T(M5%,'B#('B`/`#``G0"=CWQP$```!T!0T` +M```!B<*#?2P`=`:!R@````*)40B#_O]T&8GPP>`-)0#@!P")00R)T`T```!` +MB4$(ZP?'00P`````]\<$````=`N+13@E``#X_PE!#+@!````BQPDBW0D!(M\ +M)`B)[%W#D%6)Y;@!````7<.-M@````!5B>53BT40BTT,B<*!XO\/``"[```` +M`#G"=3^#?10`=`4)40SK"L=!"`````")40R#?1@`=`J!80S_[___ZPB0@4D, +M`!```,=!%`````#'01``````NP$```")V%M=PY!5B>6+30R)RO9!%`%U"K@/ +M````Z8,````/MT$4)?X?``!FB4$@#[=!$F:)02+&020`BT$0J0$```!U'ZD" +M````=`3&020!]D(0"'0$@$DD`O9"$`1T!(!))`2+0@@E```\`,'H$HA!)8M" +M%"4`X!\`P>@-B$$FBT(0)?````#!Z`2(02>+0A`E``\``,'H"(A!*,9!*@"X +M`````%W#D)"058GE5U93@^P(BUT(BT,0@WL,`'4.C9#0F```N!8<``#OZPK' +M@-"8```6'```N0````"_```!`+X```$`C70F`(M#$(-[#`!U"XV0@)@``(GP +M[^L&B;B`F```08/Y!W[@BT,0@WL,`'4)C9``G```[>L&BX``G```B<+!ZAB) +MT,'H!(/B#\'B!`G"QT0D!`@```")%"3H_/___X/$"%M>7UW#C;0F`````(V\ +M)P````!5B>575E.#[!P/MT4(B47HQP0DN`L``.C\____B<.%P'4.QT7L`@`` +M`.E"!0``B?:)1>2)Q[X@$P``N#@!``#WPP0```!T%*$@$P``B0.->P2^)!,` +M`+@T`0``_(G!P>D"\Z6+1>B+5>1FB4($9L="!@``BT4,B4((BT40B4(,BT44 +MB4(0QX,X`0``P'@``,>#/`$```````#'@X0+````````QX.8"P```````,># +M<`L```````#'@YP+```*````QX-L"P```````,>#H`L```H```#'@X`+```" +M````QX.0"P```````,=$)`0`````B10DZ/S___^%P'43QT7L`P```.EG!``` +MC;0F`````(M5Y&:!>@0;\751BT(0@WH,`'4.C9``H@``N`````#OZPK'@`"B +M````````BU7DBT(0@WH,`'4.C9!\F```N!D```#OZPK'@'R8```9````QP0D +MZ`,``.C\____BU7DBT(0@WH,`'4+C9`@0```[8G!ZP:+B"!````/ML'!Z`2) +M@T`!``")RH/B#V:)DT0!``"#Z`*#^`(/A^,"``"+5>2+0A"#>@P`=0F-D!B8 +M``#MZP:+@!B8``")@TP!``"+1>2)!"3HYP,``(7`=1/'1>P.````Z8<#``"- +MM"8`````@[M``0```W8EBU7DBT(0@WH,`'4-C9``F```N`<```#K(\>``)@` +M``<```#K)(M5Y(M"$(-Z#`!U#HV0`)@``+A'````[^L*QX``F```1P```,<$ +M)-`'``#H_/___XM%Y(D$).CW_/__9HF#1@$``"7P````9H/X$`^%(0(``(U% +M\HE$)`C'1"0$P0```(M5Y(D4).C\____A<`/A-`"``!F@7WR_R]W#,=%[`4` +M``#IRP(```^W1?)FB8-0`0``BU7DBT(0@WH,`'4)C9`00```[>L&BX`00``` +M@^`8P>@#@_@"=`S'1>P*````Z8X"``"-1?*)1"0(QT0D!#\```"+1>2)!"3H +M_/___X7`#X1=`@``#[=%\F:)@U(!``"_`````+X`````C57RB50D"(V&P``` +M`(E$)`2+1>2)!"3H_/___X7`#X0D`@``#[=%\C''1H'^/P,``';-@?___P`` +M=`S'1>P'````Z1`"``!FQX.:`@``"@!FQX.D!````P"^`````(T$=HT$AF;' +MA(.B`@``"P!&@_X)=NJ^`````+I8%```#[<$2)%"3H_/___X7`#X1P`0``@[M``0```P^&G@```&:#NV@!```` +M#X20````BU7DBT(0@WH,`'4.C9``F```N`=```#OZPK'@`"8```'0```QP0D +MT`<``.C\____BT7DB00DZ`G[__]FB8-(`0``BU7DBT(0@WH,`'4.C9``F``` +MN`<```#OZPK'@`"8```'````QP0DT`<``.C\____#[>#2`$``"7P````9H/X +M('05QT7L#0```.G4````9L>#:`$`````C47RB40D",=$)`2_````BT7DB00D +MZ/S___^%P`^$F@````^W1?)FB8-4`0``9H/X`74:C47LB40D",=$)`00```` +MBU7DB10DZ/S___^+1>2)!"3H_/___[\`````O@````"-1?*)1"0(N!\````I +M\(E$)`2+5>2)%"3H_/___X7`=#D/MT7R`P)````ZP_'1>P(````D(VT)@`` +M``"%VW0(B1PDZ/S___^#?1@`=`B+1>R+51B)`K@`````@\0<6UY?7<.)]HV\ +M)P````!5B>6#[`2+10B)!"3H_/___XGL7<.-="8`C;PG`````%6)Y5=64X/L +M.(M]",=%W`"```#'1>`@F```QT7D55555<=%Z*JJJJK'1>QF9F9FQT7PF9F9 +MF<=%T`````"+1=#!X`*+="CPP`=1"!PBB```#O +MZPV-M"8`````B8HH@```@WT,!@^$B````(M3$(G(*P4`````P>`#@WL,`'4, +M@<(L@```[^L)C78`B8(L@```BU,0B<@K!0````#!X`.#>PP`=0F!PC"```#O +MZP:)@C"```"+0PR)1>R+>Q"+5?"#NFP+````=`J)R`.";`L``.L#C4$!@WWL +M`'4/C9PP`=0^-D"R```"X____ +M_^_K"Y#'@"R```#_____BT,0@WL,`'4.C9`P@```N/_____OZPK'@#"```#_ +M____BT,0@WL,`'4.C9`T@```N`$```#OZP['@#2````!````C70F`('F__\` +M`(-]#`%T%(-]#`%R%H-]#`9T&.LFC;8`````@ +M7UW#C;0F`````(V\)P````!5B>564X/L"(MU"+L`````QT0D!`(```")-"3H +M_/___X7`=!7'!"0*````Z/S___]#@?OG`P``?M>!^^<#```/GL`/ML"#Q`A; +M7EW#C70F`%6)Y8M-"(M!$(-Y#`!U$8V0*(```+@`````[^L-C78`QX`H@``` +M`````(M!$(-Y#`!U#8V0!(```.WK"HUT)@"+@`2````-```$`(M1$"7__\__ +M@WD,`'4)@<($@```[^L&B8($@```BT$0@WD,`'4/C9`@@```N/__``#OZPN0 +MQX`@@```__\``%W#C70F`%6)Y5=64XMU"(M%#(!X"P`/A+H```"+7@R+3A"_ +M!(```(7;=0N-D02```#MZPB)]HN!!(````T``!``A=MU!HT4#^_K`XD$#XM5 +M#`^V0@L/ME(*#Z_"BTT,#[=1"(M.$`^OPH-^#`!U"8V1)(```._K!HF!)(`` +M`(M6$(M-#`^W00R#?@P`=0F!PCB```#OZP:)@CB```"+50P/MD(*#Z]%&`-% +M%`^W4@@/K\*+5A`#11#!X`.#?@P`=0B!PC"```#K-XF",(```.LXD(UT)@"+ +M7@R+3A"_!(```(7;=0F-D02```#MZP:+@02````E___O_X7;=0F-%`_OZP:- +M=@")!`^+5A"+30R+`8-^#`!U#X'"*(```._K#(VV`````(F"*(```(M^#(M> +M$(7_=1"-DR"```#MZPV-M"8`````BX,@@```B<*!X@``@/^+30P/MT$(B=$) +MP8M%#&:#>!``=!$/MT`0@\`$P>`0)0``?P`)P87_=0N-DR"```")R._K!HF+ +M((```(M^#(M>$(7_=0V-DQB```#MZPJ-="8`BX,8@```B<&!X?\`__^+50P/ +MMT(4P>`()0#_```)P87_=0V-DQB```")R._K"(GVB8L8@```BWX,BUX0O@1` +M``"%_W4+C9,$0```[>L(B?:+@P1```")P8'A``#__XM5#`^W0A*-!,7H____ +M)?__```)P87_=0F-%!Z)R._K!)")#!Y;7E]=PY"0D)"0D)"058GEBT4(BU`0 +M@W@,`'4)@<((0```[>L&BX((0```A<`/E<`/ML!=PY"-M"8`````58GEBT4( +MBTT,BU`0@W@,`'4.@<+`````[>L+D(UT)@"+@L````")PH/X_W43QP$````` +MN`````#K18VV`````"6ZV`4!B0'WP@``"`!T!PT```!`B0'WP@4```!T`X,) +M`??"0`$``'0#@PE`]\(@````=`:!"0```$"X`0```%W#ZPV0D)"0D)"0D)"0 +MD)"058GEBT4(BX#`"@``7<.)]E6)Y5=64XM-"(M=#(G/B['`"@``A?9Y,8M! +M$(-Y#`!U#XU0)+@`````[^L+C70F`,=`)`````"+01"#>0P`=0:-4"3MZP.+ +M0"2)V"6ZV`4!]\-`````=`4-P`$``/?#`0```'0#@\@']\,```!`=`4-```( +M`(M1$(-Y#`!U"8'"H````._K!HF"H````(F?P`H``(7;>2"+01"#>0P`=1"- +M4"2X`0```._K#)"-="8`QT`D`0```(GP6UY?7<.0D%6)Y;B`````7<.-M@`` +M``!5B>6+30@/MT4,9H/X?W`%!1R(``"#>0P`=04!PNWK`XL$$"4` +M@/__N@$```!FA`%!0"(``"#>PP`=0H!PK@`````[^L'QP00 +M`````(M3$(G(P>`%!02(``"#>PP`=0H!PK@`````[^L'QP00`````(M3$(G( +MP>`%!0B(``"#>PP`=1`!PK@`````[^L-C;8`````QP00`````(M3$(G(P>`% +M!1"(``"#>PP`=0H!PK@`````[^L'QP00`````(M3$(G(P>`%!12(``"#>PP` +M=0H!PK@`````[^L'QP00`````(M3$(G(P>`%!1B(``"#>PP`=0X!PK@````` +M[^L+C70F`,<$$`````"+4Q")R,'@!046#[`R)'"2)="0$B7PD"(M5 +M$`^W=0RX`````&:#_G\/AZ$```"%TG0X#[9:!<'C"`^V0@0)PP^V2@/!X1@/ +MMD("P>`0"<$/MD(!P>`("<$/M@()P='IB=C!X!\)P='KZPJ[`````+D````` +MBT4(BW@0B?#!X`6-D!B(``")R(M-"(-Y#`!U!XT4.N_K!)")!#J+10B+2!") +M\,'@!8V0'(@``(G8#0"```"+70B#>PP`=0R-%`KOZPF-M@````")!`JX`0`` +M`(L<)(MT)`2+?"0(B>Q=PXGVC;PG`````%6)Y5=64X/L'(M=$`^W10R)1?"# +M?1@`#Y7`#[;(28'A5E5558'I5E555;@`````9H-]\'\/A^@!``"#.P1_$;@` +M````Z=D!``"-M"8`````#[9S!`^V0P7!X`@)Q@^V0P;!X!`)Q@^V0P?!X!@) +MQC'.#[9#"<'@"`^V4P@)PHE5[#%-[(%E[/__```/MD,*B47H#[9#"\'@"`E% +MZ`^V0PS!X!`)1>@/MD,-P>`8"47H,4WH#[9##\'@"`^V4PX)PHE5Y#%-Y(%E +MY/__```/MGL0#[9#$<'@"`G'#[9#$L'@$`G'#[9#$\'@&`G',<^#.PU_!H'G +M_P```(,[!7\'NP````#K$8,[#7\'NP$```#K!;L#````BT4(BT@0BT7PP>`% +MC9``B```B?"+=0B#?@P`=0V-%`KOZPJ-M"8`````B00*BT4(BT@0BT7PP>`% +MC9`$B```BT7LBW4(@WX,`'4&C10*[^L#B00*BT4(BT@0BT7PP>`%C9`(B``` +MBT7HBW4(@WX,`'4(C10*[^L%B?:)!`J+10B+2!"+1?#!X`6-D`R(``"+1>2+ +M=0B#?@P`=0:-%`KOZP.)!`J+10B+2!"+1?#!X`6-D!"(``")^(MU"(-^#`!U +M"8T4"N_K!HUV`(D\"HM%"(M($(M%\,'@!8V0%(@``(G8BUT(@WL,`'4&C10* +M[^L#B00*BT44B40D"(MU\(ET)`2+10B)!"3H_/___X/$'%M>7UW#D)"0D)"0 +M58GE@^P,QT0D"`8```"+10@%M`H``(E$)`2+10R)!"3H_/___XGL7<.-M"8` +M````58GE@^P4B5W\BUT(BU,0BT4,@WL,`'4)@<(`8```[^L&B8(`8```BT,0 +M@WL,`'40C9`(8```N`$```#OZPR)]L>`"&````$```#'1"0,`@```,=$)`@# +M````QT0D!`Q@``")'"3H_/___[H`````A6#[!2)7?R+30@/MUT0BU$0BT4,@WD,`'4)@<(`8```[^L&B8(`8```BU$0 +MB=B#>0P`=0J!P@1@``#OZP>0B9H$8```BT$0@WD,`'41C9`(8```N`(```#O +MZPV-=@#'@`A@```"````QT0D#`@```#'1"0(#````,=$)`0,8```B0PDZ/S_ +M__^%P`^5P`^VP(M=_(GL7<.-M"8`````58GEBTT0#[=%#(M5"&8Y@E0!``!U +M"K@,````ZQ>-=@"`NE(!````#YG`#[;`C03%`P```(7)=`*)`;@`````76+10@/MX!4`0``7<.058GEBU4(N`````!F@[IF +M`0```'04N`$```!F@[I6`0```'4%N`,```!F@[IH`0```'0#@\@$7<.0C;0F +M`````%6)Y8/L%(E=_(M="&:#NUH!````=$R-1?J)1"0(QT0D!`\```")'"3H +M_/___[H`````AQX.L"P```````,>#J`L```````#'@[0+````````9H.[ +M6@$````/E<`/MM")T(M=_(GL7<.)]HV\)P````!5B>564X/L#(M="(G>QT0D +M!`````")'"3H_/___X7`#Y3`#[;`B40D",=$)`0`````B1PDZ/S___^+@Z@+ +M``")1"0$B1PDZ/S___^+0Q"#>PP`=0R-D`"8``#MZPF-=@"+@`"8``"+4Q`E +M_]___X-[#`!U#('"`)@``._K"8UV`(F"`)@``(N&J`L``(E$)`2)'"3H_/__ +M_XF&L`L``#N&K`L```^5P`^VP(E$)`B+AJ@+``")1"0$B1PDZ/S___^#Q`Q; +M7EW#B?:-O"<`````58GE4XM="(M#$(-[#`!U$(V0%$```.V)PNL+D(UT)@"+ +MD!1```"+30P!R;@#````T^#WT"'0N@(```#3XHM+$`G0@WL,`'4)C9$40``` +M[^L&B8$40```N`$```!;7<.058GE@^P(B1PDB70D!(M="(M#$(-[#`!U"XV0 +M%$```.V)QNL&B[`40```BTT,`PP`=0V-D!A```#MZPJ-="8`BX`80```NO[____3PB'"BT40 +M@^`!T^"+2Q`)T(-[#`!U#HV1&$```._K"Y"-="8`B8$80```N`$```!;7<.) +M]E6)Y8M5"(M-#(/Y!7L&BX`<0```@^`OT^B# +MX`'K!;C_____7<.)]HV\)P````!5B>6#[`B+30B+01"#>0P`=0Z-D!1```#M +MZPN0C70F`(N`%$```"7\?_[_#0"```"#?1``=`4-```!`(M1$(-Y#`!U#('" +M%$```._K"8UV`(F"%$```(N!P`H```T````!B40D!(D,).C\____B>Q=P^L- +MD)"0D)"0D)"0D)"0D%6)Y8/L#(D<)(ET)`2)?"0(BT4(BW`,BU@0OQ!```"% +M]G4-C9,00```[>L*C70F`(N#$$```(G!@>&?__'_BT4,@^`'"PR%8!0``(7V +M=0B-%!^)R._K`XD,'XL<)(MT)`2+?"0(B>Q=PXVT)@````!5B>575E.#[!2+ +M70@/MT40B47P#[=%%(E%[(G?QT0D"`8```"+10R)1"0$C8.Z"@``B00DZ/S_ +M__^+4Q`/MHNZ"@``#[:#NPH``,'@"`G!#[:#O`H``,'@$`G!#[:#O0H``,'@ +M&`G!@WL,`'4+@<((@```B]"@``P>`(#[:7O`H` +M`(G1"<&+1?`E_S\``,'@$`G!@WL,`'4+C98,@```BL&BX`@@```B<&+1>R#P`1F@WWL``^4P@^V +MTDHAT('A__^`_\'@$"4``'\`BU,0"PP`=0F!PB"```#OZP:)@B"```"# +MQ!1;7E]=PY!5B>6#[`R)'"2)="0$B7PD"(M5"(M"$(-Z#`!U"8V04(```.WK +M!HN`4(```(G'O@````"+50B+0A"#>@P`=0F-D$R```#MZP:+@$R```"Z```` +M`(GQ"<&)^PG3BQ=PXGV58GEBT4(BU`0@W@,`'4) +M@<),@```[>L&BX),@```7<-5B>6+30B+01"#>0P`=0F-D""```#MZP:+@""` +M``"+41`-`````8-Y#`!U"8'"((```._K!HF"((```%W#C78`58GE@^P(B1PD +MB70D!(M="(M#$(-[#`!U"8V09)@``.WK!HN`9)@``(G!P>D3@>'_`0``]\$` +M`0``=`:!\0#^__^+0Q"#>PP`=0N-D%"```#MB<;K!HNP4(```(M3$(-[#`!U +M#('"3(```.WK"8UV`(N"3(```#'P,Q=PXUT)@"-O"<````` +M58GE4XM-"(M!$(-Y#`!U$(V0($```.V)PNL+D(UT)@"+D"!````/ML+!Z`2# +MX@^[`````#F!0`$``'449CF11`$``'4+NP$```"-M@````")V%M=PXUT)@"- +MO"<`````58GE4XM-"(M=#(M!$(-Y#`!U#8V0D(```.WK"HUT)@"+@)"````! +M`XM!$(-Y#`!U#XV0C(```.WK#(VV`````(N`C(````%#!(M!$(-Y#`!U#HV0 +ME(```.WK"Y"-="8`BX"4@````4,,BT$0@WD,`'4.C9"(@```[>L+D(UT)@"+ +M@(B````!0PB+01"#>0P`=0Z-D)B```#MZPN0C70F`(N`F(````%#$%M=PXUT +M)@!5B>6X`````%W#C;8`````58GE@^P(BTT(BT$0@WD,`'4.C9!4F0``N`$` +M``#OZPK'@%29```!````BX'`"@``#0!```")1"0$B0PDZ/S___^)[%W#C70F +M`(V\)P````!5B>6X`````%W#C;8`````58GE7<.-="8`C;PG`````%6)Y5W# +MC70F`(V\)P````!5B>6+10B+4!"#>`P`=0F!PAR<``#MZP:+@AR<```E_P`` +M`%W#C70F`(V\)P````!5B>6+10B+4!"#>`P`=0F!PEB```#MZP:+@EB```"# +MX`==PXVV`````(V\)P````!5B>6+30B+41"+10R#X`>#>0P`=0N!PEB```#O +MZPB)]HF"6(```%W#D(VT)@````!5B>575E.+?0B)^XM%$`^W0`(EX`$``#W` +M````=#(]P````'\,/:````!T%NF_````O@`````]0`$``'08Z:X```"^`0`` +M`.L,C;0F`````+X"````#[>4<\`!```/MX1SQ@$``,'@!@G"#[>$<\P!``#! +MX`P)P@^WA'/2`0``P>`2"<(/MX1SV`$``,'@&`G"#[>,<]X!```/MX1SY`$` +M`,'@!@G!#[>$<^H!``#!X`P)P0^WA'/P`0``P>`2"<$/MX1S]@$``,'@&`G! +M@WT,`70.@WT,`7(>@WT,`G0&ZP^)T>L2BR+1A"#?@P` +M=0F-D+````#MZP:+@+````")1>B+1A"#?@P`=0N-D*P```#MBR)5"0L&BXB`"``` +MBT80@WX,`'4)C9!`"```[>L&BX!`"```B5PD',=$)!@G!0``B4PD%,=$)!`S +M!0``B40D#,=$)`@Y!0``QT0D!#\%``#'!"0`````Z/S___^+1A"#?@P`=0N- +MD(`)``#MB<'K!HN(@`D``(M&$(-^#`!U"8V00`D``.WK!HN`0`D``(E,)`R) +M1"0(QT0D!&`%``#'!"0`````Z/S___^[`````(VV`````(V\)P````"+5A"- +M!)T`"@``@WX,`'4(`<+MB47@ZP:+%!")5>"+5A"-!)W`"0``@WX,`'4(`<+M +MB47L&C78`BPP0BU80C02=``@``(-^#`!U!0'"[>L#BP00 +MBU7@B50D'(M5W(E4)!B)?"04B4PD$(E$)`R)7"0(QT0D!(P%``#'!"0````` +MZ/S___]#@_L)#XXY____QT0D!+\$``#'!"0`````Z/S___^[`````(M6$(T$ +MG4`1``"#?@P`=0@!PNV)1=CK!HL4$(E5V(M6$(T$G0`1``"#?@P`=0@!PNV) +M1=3K!HL4$(E5U(M6$(T$G<`0``"#?@P`=0@!PNV)1=#K!HL4$(E5T(M6$(T$ +MG8`0``"#?@P`=0((@L(D(UT)@"+!`J)PH-]S`!U +M%8-]R`!U#X7_=0N%P'0UC;0F`````(E4)!B)?"04BT7(B40D$(M5S(E4)`R) +M7"0(QT0D!`0&``#'!"0`````Z/S___]#@_L)#XX8____@\106UY?7<-5B>53 +MBTT(#[==$(M!$(-Y#`!U#(V0!(```.WK"8UV`(N`!(```(M1$"7__]__#0`` +M!`"#>0P`=0F!P@2```#OZP:)@@2```"#?0P`=!^+41")V`T```(`@WD,`'4) +M@<($0```[^L&B8($0```6UW#58GE5U93@^P$BUT(@WT,``^$F@```(M#$(-[ +M#`!U#HV0!$```+@`````[^L*QX`$0````````,<$)`H```#H_/___[X*```` +MOQ!```"-=@"+0Q"#>PP`=0F-D!!```#MZP.+!`>I```!`'0SQP0DR````.C\ +M____BT,0@WL,`'4/C9`$0```N`````#OZPN0QX`$0````````$YUL^L$A?9U +M#;@`````ZSN-M@````"+7UW#C78`58GE@^P,B1PDB70D +M!(E\)`B+=0B+7@R+3A"_!(```(7;=0V-D02```#MZPJ-="8`BX$$@```#0`` +M!`"%VW4&C10/[^L#B00/@WT,`'0ABT80@WX,`'4.C9`$0```N````0#OZPK' +M@`1```````$`BQPDBW0D!(M\)`B)[%W#B?95B>6#[!")7?2)=?B)??R+=0@/ +MMT40B47PBUX,BTX0OP2```"%VW4)C9$$@```[>L&BX$$@```#0``!`"%VW4& +MC10/[^L#B00/@WT,`'0GBU80BT7P#0```@"#?@P`=1"!P@1```#OZPV-M"8` +M````B8($0```BUWTBW7XBWW\B>Q=PXVV`````(V\)P````!5B>6#[!B)7?2) +M=?B)??R+10B+70R+31`/MU44B<:_`0```(/[`G0J@_L"=P>#^P%T#NM.@_L# +M="F#^P1T,NM"B50D"(E,)`2)!"3H0/W__^L^B4PD!(D$).BB_?__B6X`````%W#C;8`````58GEN`````!=PXVV`````%6)Y;@`````7<.- +MM@````!5B>6X`````%W#D)"0D)"058GE@^P,B5W\BT4,@_@"=":#^`)W"H/X +M`70,ZR.-=@"#^`1T"^L9NP````#K&8GVNP````#K$+L`````ZPF)]K@````` +MZQ&)7"0$BT4(B00DZ/S___^)V(M=_(GL7<.058GEBT4(BU`0@W@,`'4&@\(, +M[>L#BT(,7<.-M@````!5B>6+30B+41"+10R#>0P`=0:#P@SOZP.)0@Q=PXUV +M`%6)Y8M%"(M0$(-X#`!U$8/""+@$````[^L-C;8`````QT((!````%W#C;0F +M`````%6)Y8/L$(M-"(M!$(-Y#`!U#HU0"+@@````[^L*C78`QT`((````,=$ +M)`P`````QT0D"`0```#'1"0$"````(D,).C\____A<`/E<`/ML")[%W#C;8` +M````C;PG`````%6)Y8/L"(D<)(ET)`2+10B+6`R+2!"^2(```(7;=0F-D4B` +M``#MZP:+@4B```"#X-^%VW4+C10.[^L(D(UT)@")!`Z+'"2+="0$B>Q=PXGV +M58GE@^P(B1PDB70D!(M%"(M8#(M($+Y(@```A=MU"8V12(```.WK!HN!2(`` +M`(/(((7;=0N-%`[OZPB0C70F`(D$#HL<)(MT)`2)[%W#B?95B>6+30B+41"+ +M10R#>0P`=0Z!PD"```#OZPN0C70F`(F"0(```(M1$(M%$(-Y#`!U#H'"1(`` +M`._K"Y"-="8`B8)$@```7<.0C;0F`````%6)Y8/L"(D<)(ET)`2+70B+30RX +M`````(/Y/P^'CP```(/Y'W9*BT,0@WL,`'41C9!$@```[8G"ZPR-M@````"+ +MD$2```"+PP`=0N-D$"```#MB<+K!HN00(```(MS$+C^____T\`AT(-[#`!U +M"8V60(```._K!HF&0(```+@!````BQPDBW0D!(GL7<.0C70F`%6)Y8/L"(D< +M)(ET)`2+70B+30RX`````(/Y/P^'CP```(/Y'W9*BT,0@WL,`'41C9!$@``` +M[8G"ZPR-M@````"+D$2```"+PP`=0N-D$"```#MB<+K!HN00(```(MS$+@! +M````T^`)T(-[#`!U"8V60(```._K!HF&0(```+@!````BQPDBW0D!(GL7<.0 +MC70F`%6)Y8M%"(M0$(-X#`!U"8'"/(```.WK!HN"/(```%W#58GEBTT(BU$0 +MBT4,@WD,`'4.@<(\@```[^L+D(UT)@")@CR```!=PY"-M"8`````58GEBTT0 +MBU4,QT((`````(G()?\/``")0@SW110@````=`@-`"```(E"#,="%`````#' +M0A``````.4H,=`>X`````.L%N`$```!=PXUT)@!5B>6+30R)RO9!%`%U"K@/ +M````Z:T````/MT$0)?\/``!FB4$@BT$4)0"`_P_!Z`]FB4$BQD$D`(M!%*D" >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Jul 7 13:19:18 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9DA6237B404; Mon, 7 Jul 2003 13:19:17 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3AB3537B401 for ; Mon, 7 Jul 2003 13:19:17 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5228343FCB for ; Mon, 7 Jul 2003 13:19:16 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h67KJG0U010607 for ; Mon, 7 Jul 2003 13:19:16 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h67KJFLl010604 for perforce@freebsd.org; Mon, 7 Jul 2003 13:19:15 -0700 (PDT) Date: Mon, 7 Jul 2003 13:19:15 -0700 (PDT) Message-Id: <200307072019.h67KJFLl010604@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 34169 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Jul 2003 20:19:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=34169 Change 34169 by marcel@marcel_nfs on 2003/07/07 13:19:04 Simplify the UART hardware interface. Abandon creating methods with specific (implied) meaning and replace them with methods that have a 1-to-1 relation with probe(), attach() and detach(). We call these methods the same. The point is that the set of probe(), reset(), initfifo() and describe() we had before had too much implied assumptions embedded in them. Now that we call a single probe(), the hardware driver has more control over probing (including disrupting console I/O). The same has been done for attach() and detach(), where detach() replaces shutdown(). Likewise, rxflush() is merged with txflush() and is called flush(). The flush() method takes a second argument identifying what to flush. This is how the tty code does it too. Implement ns8250::probe() as a proof of concept. The code has been brought over from sio/ng. And keep the 82532 driver in sync. This commit "leaks" uart_debug(). The function is either going away completely, or implemented differently. We definitely need tracing and debugging support, but I don't know yet in what form or shape. Affected files ... .. //depot/projects/uart/dev/uart/uart_bus.h#4 edit .. //depot/projects/uart/dev/uart/uart_core.c#4 edit .. //depot/projects/uart/dev/uart/uart_dev_ns8250.c#3 edit .. //depot/projects/uart/dev/uart/uart_dev_sab82532.c#4 edit .. //depot/projects/uart/dev/uart/uart_if.m#4 edit .. //depot/projects/uart/dev/uart/uart_tty.c#3 edit Differences ... ==== //depot/projects/uart/dev/uart/uart_bus.h#4 (text+ko) ==== @@ -29,6 +29,13 @@ #ifndef _DEV_UART_BUS_H_ #define _DEV_UART_BUS_H_ +#include +#include + +/* Flush targets. */ +#define UART_FLUSH_RECEIVER 0x0001 +#define UART_FLUSH_TRANSMITTER 0x0002 + /* Interrupt sources (in priority order). See also uart_core.c */ #define UART_IPEND_OVERRUN 0x0001 #define UART_IPEND_BREAK 0x0002 @@ -113,4 +120,17 @@ return (0); } +static __inline void +uart_debug(struct uart_softc *sc, const char *fmt, ...) +{ +#if defined(UART_DEBUG) || 1 + va_list ap; + va_start(ap, fmt); + if (sc != NULL) + device_print_prettyname(sc->sc_dev); + vprintf(fmt, ap); + va_end(ap); +#endif +} + #endif /* _DEV_UART_BUS_H_ */ ==== //depot/projects/uart/dev/uart/uart_core.c#4 (text+ko) ==== @@ -99,7 +99,7 @@ uart_intr_overrun(struct uart_softc *sc) { UART_RECEIVE(sc); - UART_RXFLUSH(sc); + UART_FLUSH(sc, UART_FLUSH_RECEIVER); if (uart_rx_put(sc, UART_STAT_OVERRUN)) sc->sc_rxbuf[sc->sc_rxput] = UART_STAT_OVERRUN; atomic_set_32(&sc->sc_ttypend, UART_IPEND_RXREADY); @@ -177,23 +177,23 @@ * also compiles the class if not already compiled. We also set the * initial device description equal to the UART class name, unless * a description has already been set. This name can be overwritten - * with a more specific description. + * with a more specific description later on. */ sc0 = device_get_softc(dev); sc = malloc(sc0->sc_class->size, M_UART, M_WAITOK|M_ZERO); bcopy(sc0, sc, sizeof(*sc)); device_set_softc(dev, sc); + kobj_init((kobj_t)sc, (kobj_class_t)sc->sc_class); sc->sc_dev = dev; if (device_get_desc(dev) == NULL) device_set_desc(dev, sc->sc_class->name); - kobj_init((kobj_t)sc, (kobj_class_t)sc->sc_class); /* * Allocate the register resource. We assume that all UARTs have * a single register window in either I/O port space or memory * mapped I/O space. Any UART that needs multiple windows will - * consequently not be supported by this driver. We try I/O port - * space first. + * consequently not be supported by this driver as-is. We try I/O + * port space first because that's the common case. */ sc->sc_rrid = rid; sc->sc_rtype = SYS_RES_IOPORT; @@ -209,24 +209,17 @@ } /* - * Fill in the bus access structure and perform a first level device - * probe. The probe is non-destructive and can be used on console - * devices and debug ports. + * Fill in the bus access structure and compare this device with + * a possible console device and/or a debug port. We set the flags + * in the softc so that the hardware dependent probe can adjust + * accordingly. In general, you don't want to permanently disrupt + * console I/O. */ sc->sc_bas.bsh = rman_get_bushandle(sc->sc_rres); sc->sc_bas.bst = rman_get_bustag(sc->sc_rres); sc->sc_bas.regshft = regshft; sc->sc_bas.rclk = (rclk == 0) ? sc->sc_class->uc_rclk : rclk; - error = UART_PROBE(sc); - if (error) - goto out; - - /* - * Figure out if this UART is a console device or a debug port and - * if neither, reset it. We assume console devices and debug ports - * are already in a working state, so there's no need to reset them. - */ if (uart_cpu_eqres(&sc->sc_bas, &uart_console.bas)) { sc->sc_console = 1; /* XXX check if ops matches class. */ @@ -238,19 +231,7 @@ } #endif - if (!sc->sc_console && !sc->sc_dbgport) { - error = UART_RESET(sc); - if (error) - goto out; - } - - error = UART_INITFIFO(sc); - if (error) - goto out; - - error = UART_DESCRIBE(sc); - - out: + error = UART_PROBE(sc); bus_release_resource(dev, sc->sc_rtype, sc->sc_rrid, sc->sc_rres); return (error); } @@ -299,6 +280,17 @@ sc->sc_polled = 1; } + sc->sc_rxbufsz = IBUFSIZ; + sc->sc_rxbuf = malloc(sc->sc_rxbufsz * sizeof(*sc->sc_rxbuf), + M_UART, M_WAITOK); + sc->sc_txbufsz = OBUFSIZ; + sc->sc_txbuf = malloc(sc->sc_txbufsz * sizeof(*sc->sc_txbuf), + M_UART, M_WAITOK); + + error = UART_ATTACH(sc); + if (error) + goto fail; + if (sc->sc_console || sc->sc_dbgport) { sep = ""; device_print_prettyname(dev); @@ -329,16 +321,26 @@ printf("\n"); } - sc->sc_rxbufsz = IBUFSIZ; - sc->sc_rxbuf = malloc(sc->sc_rxbufsz * sizeof(*sc->sc_rxbuf), - M_UART, M_WAITOK); - sc->sc_txbufsz = OBUFSIZ; - sc->sc_txbuf = malloc(sc->sc_txbufsz * sizeof(*sc->sc_txbuf), - M_UART, M_WAITOK); + error = uart_tty_attach(sc); + if (!error) + return (0); + + sc->sc_leaving = 1; + + UART_DETACH(sc); + + fail: + free(sc->sc_txbuf, M_UART); + free(sc->sc_rxbuf, M_UART); - uart_tty_attach(sc); + if (sc->sc_ires != NULL) { + bus_teardown_intr(dev, sc->sc_ires, sc->sc_icookie); + bus_release_resource(dev, SYS_RES_IRQ, sc->sc_irid, + sc->sc_ires); + } + bus_release_resource(dev, sc->sc_rtype, sc->sc_rrid, sc->sc_rres); - return (0); + return (error); } int uart_bus_detach(device_t dev) @@ -351,6 +353,8 @@ uart_tty_detach(sc); + UART_DETACH(sc); + free(sc->sc_txbuf, M_UART); free(sc->sc_rxbuf, M_UART); @@ -361,7 +365,5 @@ } bus_release_resource(dev, sc->sc_rtype, sc->sc_rrid, sc->sc_rres); - UART_SHUTDOWN(sc); - return (0); } ==== //depot/projects/uart/dev/uart/uart_dev_ns8250.c#3 (text+ko) ==== @@ -54,8 +54,8 @@ uart_setreg(bas, REG_LCR, lcr); uart_barrier(bas); - /* 1/10th the time to transmit 1 character (estimate). */ - return (16000000 * divisor / bas->rclk); + /* 1/10th the time to transmit 1 character (estimate). */ + return (16000000 * divisor / bas->rclk); } static int @@ -82,6 +82,52 @@ return (divisor); } +static int +ns8250_flush(struct uart_bas *bas, int what) +{ + int delay, limit; + + delay = ns8250_delay(bas); + + if (what & UART_FLUSH_TRANSMITTER) { + /* + * Pick an arbitrary high limit to avoid getting stuck in + * an infinite loop when the hardware is broken. Make the + * limit high enough to handle large FIFOs. + */ + limit = 10*1024; + while ((uart_getreg(bas, REG_LSR) & LSR_TEMT) == 0 && --limit) + DELAY(delay); + if (limit == 0) { + uart_debug(NULL, "transmitter appears stuck... "); + return (EIO); + } + } + + if (what & UART_FLUSH_RECEIVER) { + /* + * Pick an arbitrary high limit to avoid getting stuck in + * an infinite loop when the hardware is broken. Make the + * limit high enough to handle large FIFOs and integrated + * UARTs. The HP rx2600 for example has 3 UARTs on the + * management board that tend to get a lot of data send + * to it when the UART is first activated. + */ + limit=10*4096; + while ((uart_getreg(bas, REG_LSR) & LSR_RXRDY) && --limit) { + (void)uart_getreg(bas, REG_DATA); + uart_barrier(bas); + DELAY(delay << 2); + } + if (limit == 0) { + uart_debug(NULL, "receiver appears broken... "); + return (EIO); + } + } + + return (0); +} + /* * Low-level UART interface. */ @@ -140,6 +186,8 @@ int divisor; u_char iir, lcr; + uart_debug(NULL, "%s\n", __func__); + lcr = 0; if (databits >= 8) lcr |= LCR_8BITS; @@ -188,7 +236,7 @@ if (iir == IIR_RLS) (void)uart_getreg(bas, REG_LSR); else if (iir == IIR_RXRDY || iir == IIR_RXTOUT) - (void)uart_getreg(bas, REG_RBR); + (void)uart_getreg(bas, REG_DATA); else if (iir == IIR_MLSC) (void)uart_getreg(bas, REG_MSR); uart_barrier(bas); @@ -217,7 +265,7 @@ limit = 20; while ((uart_getreg(bas, REG_LSR) & LSR_THRE) == 0 && --limit) DELAY(delay); - uart_setreg(bas, REG_THR, c); + uart_setreg(bas, REG_DATA, c); limit = 40; while ((uart_getreg(bas, REG_LSR) & LSR_TEMT) == 0 && --limit) DELAY(delay); @@ -228,7 +276,7 @@ { if (uart_getreg(bas, REG_LSR) & LSR_RXRDY) - return (uart_getreg(bas, REG_RBR)); + return (uart_getreg(bas, REG_DATA)); return (-1); } @@ -242,7 +290,7 @@ while ((uart_getreg(bas, REG_LSR) & LSR_RXRDY) == 0) DELAY(delay); - return (uart_getreg(bas, REG_RBR)); + return (uart_getreg(bas, REG_DATA)); } /* @@ -250,32 +298,28 @@ */ struct ns8250_softc { struct uart_softc base; + uint8_t fcr; + uint8_t mcr; }; -static int ns8250_bus_describe(struct uart_softc *); +static int ns8250_bus_attach(struct uart_softc *); +static int ns8250_bus_detach(struct uart_softc *); +static int ns8250_bus_flush(struct uart_softc *, int); static int ns8250_bus_getsig(struct uart_softc *); -static int ns8250_bus_initfifo(struct uart_softc *); static int ns8250_bus_ipend(struct uart_softc *); static int ns8250_bus_probe(struct uart_softc *); static int ns8250_bus_receive(struct uart_softc *); -static int ns8250_bus_reset(struct uart_softc *); -static int ns8250_bus_rxflush(struct uart_softc *); -static int ns8250_bus_shutdown(struct uart_softc *); static int ns8250_bus_transmit(struct uart_softc *); -static int ns8250_bus_txflush(struct uart_softc *); static kobj_method_t ns8250_methods[] = { - KOBJMETHOD(uart_describe, ns8250_bus_describe), + KOBJMETHOD(uart_attach, ns8250_bus_attach), + KOBJMETHOD(uart_detach, ns8250_bus_detach), + KOBJMETHOD(uart_flush, ns8250_bus_flush), KOBJMETHOD(uart_getsig, ns8250_bus_getsig), - KOBJMETHOD(uart_initfifo, ns8250_bus_initfifo), KOBJMETHOD(uart_ipend, ns8250_bus_ipend), KOBJMETHOD(uart_probe, ns8250_bus_probe), KOBJMETHOD(uart_receive, ns8250_bus_receive), - KOBJMETHOD(uart_reset, ns8250_bus_reset), - KOBJMETHOD(uart_rxflush, ns8250_bus_rxflush), - KOBJMETHOD(uart_shutdown, ns8250_bus_shutdown), KOBJMETHOD(uart_transmit, ns8250_bus_transmit), - KOBJMETHOD(uart_txflush, ns8250_bus_txflush), { 0, 0 } }; @@ -288,53 +332,28 @@ }; static int -ns8250_bus_describe(struct uart_softc *sc) +ns8250_bus_attach(struct uart_softc *sc) { - if (sc->sc_hasfifo) { - /* - * NS16550 or higher. The minimum FIFO size is 16 bytes for - * the NS16550. The ST16C650 has 32-byte FIFOs, the ST16750 - * has 64-byte FIFOs and the ST16950 has 128-byte FIFOs. - */ - switch (sc->sc_rxfifosz) { - case 16: - device_set_desc(sc->sc_dev, "16550 or compatible"); - break; - case 32: - device_set_desc(sc->sc_dev, "16650 or compatible"); - break; - case 64: - device_set_desc(sc->sc_dev, "16750 or compatible"); - break; - case 128: - device_set_desc(sc->sc_dev, "16950 or compatible"); - break; - default: - device_set_desc(sc->sc_dev, - "Non-standard UART with FIFOs"); - break; - } - } else { - /* - * NS16450 or INS8250. We don't bother to differentiate - * between them. They're too old to be interesting. - */ - device_set_desc(sc->sc_dev, "8250 or 16450 or compatible"); - } + return (0); +} + +static int +ns8250_bus_detach(struct uart_softc *sc) +{ return (0); } static int -ns8250_bus_getsig(struct uart_softc *sc) +ns8250_bus_flush(struct uart_softc *sc, int what) { - return (0); + return (ns8250_flush(&sc->sc_bas, what)); } static int -ns8250_bus_initfifo(struct uart_softc *sc) +ns8250_bus_getsig(struct uart_softc *sc) { return (0); @@ -350,48 +369,144 @@ static int ns8250_bus_probe(struct uart_softc *sc) { + struct ns8250_softc *ns8250 = (struct ns8250_softc *)sc; + struct uart_bas *bas; + int count, delay, error, limit; + + uart_debug(sc, "%s\n", __func__); - return (ns8250_probe(&sc->sc_bas)); -} + bas = &sc->sc_bas; + + error = ns8250_probe(bas); + if (error) + return (error); + + ns8250->mcr = MCR_IENABLE; + if (!sc->sc_console && !sc->sc_dbgport) { + /* By using ns8250_init() we also set DTR and RTS. */ + ns8250_init(bas, 9600, 8, 1, UART_PARITY_NONE); + } else + ns8250->mcr |= MCR_DTR | MCR_RTS; + + error = ns8250_flush(bas, UART_FLUSH_TRANSMITTER); + if (error) + return (error); + + /* + * Set loopback mode. This avoids having garbage on the wire and + * also allows us send and receive data. We set DTR and RTS to + * avoid the possibility that automatic flow-control prevents + * any data from being sent. We clear IENABLE to avoid raising + * interrupts. + */ + uart_setreg(bas, REG_MCR, MCR_LOOPBACK | MCR_DTR | MCR_RTS); + uart_barrier(bas); + + /* + * Enable FIFOs. And check that the UART has them. If not, we're + * done. Otherwise we set DMA mode with the highest trigger level + * so that we can determine the FIFO size. Since this is the first + * time we enable the FIFOs, we reset them. + */ + uart_setreg(bas, REG_FCR, FCR_ENABLE); + uart_barrier(bas); + sc->sc_hasfifo = (uart_getreg(bas, REG_IIR) & IIR_FIFO_MASK) ? 1 : 0; + if (!sc->sc_hasfifo) { + /* + * NS16450 or INS8250. We don't bother to differentiate + * between them. They're too old to be interesting. + */ + uart_setreg(bas, REG_MCR, ns8250->mcr); + uart_barrier(bas); + device_set_desc(sc->sc_dev, "8250 or 16450 or compatible"); + return (0); + } + + uart_setreg(bas, REG_FCR, FCR_ENABLE | FCR_DMA_MODE | FCR_RX_HIGH | + FCR_XMT_RST | FCR_RCV_RST); + uart_barrier(bas); + + count = 0; + delay = ns8250_delay(bas); + + /* We have FIFOs. Flush the transmitter and receiver. */ + error = ns8250_flush(bas, UART_FLUSH_RECEIVER|UART_FLUSH_TRANSMITTER); + if (error) { + uart_setreg(bas, REG_MCR, ns8250->mcr); + uart_setreg(bas, REG_FCR, 0); + uart_barrier(bas); + goto describe; + } -static int -ns8250_bus_receive(struct uart_softc *sc) -{ + uart_setreg(bas, REG_IER, IER_ERXRDY); + uart_barrier(bas); - return (0); -} + /* + * We should have a sufficiently clean "pipe" to determine the + * size of the FIFOs. We send as much characters as is reasonable + * and wait for the the RX interrupt to be asserted, counting the + * characters as we send them. Based on that count we know the + * FIFO size. + */ + while ((uart_getreg(bas, REG_IIR) & IIR_RXRDY) == 0 && count < 1030) { + uart_setreg(bas, REG_DATA, 0); + uart_barrier(bas); + count++; -static int -ns8250_bus_reset(struct uart_softc *sc) -{ + limit = 30; + while ((uart_getreg(bas, REG_LSR) & LSR_TEMT) == 0 && --limit) + DELAY(delay); + if (limit == 0) { + uart_setreg(bas, REG_IER, 0); + uart_setreg(bas, REG_MCR, ns8250->mcr); + uart_setreg(bas, REG_FCR, 0); + uart_barrier(bas); + count = 0; + goto describe; + } + } - ns8250_init(&sc->sc_bas, 9600, 8, 1, UART_PARITY_NONE); - return (0); -} + uart_setreg(bas, REG_IER, 0); + uart_setreg(bas, REG_MCR, ns8250->mcr); -static int -ns8250_bus_rxflush(struct uart_softc *sc) -{ + /* Reset FIFOs. */ + ns8250->fcr = FCR_ENABLE; + uart_setreg(bas, REG_FCR, ns8250->fcr | FCR_XMT_RST | FCR_RCV_RST); + uart_barrier(bas); - return (0); -} + describe: + if (count >= 14 && count < 16) { + sc->sc_rxfifosz = 16; + device_set_desc(sc->sc_dev, "16550 or compatible"); + } else if (count >= 28 && count < 32) { + sc->sc_rxfifosz = 32; + device_set_desc(sc->sc_dev, "16650 or compatible"); + } else if (count >= 56 && count < 64) { + sc->sc_rxfifosz = 64; + device_set_desc(sc->sc_dev, "16750 or compatible"); + } else if (count >= 112 && count < 128) { + sc->sc_rxfifosz = 128; + device_set_desc(sc->sc_dev, "16950 or compatible"); + } else { + sc->sc_rxfifosz = 1; + device_set_desc(sc->sc_dev, + "Non-standard ns8250 class UART with FIFOs"); + } -static int -ns8250_bus_shutdown(struct uart_softc *sc) -{ + sc->sc_txfifosz = sc->sc_rxfifosz; return (0); } static int -ns8250_bus_transmit(struct uart_softc *sc) +ns8250_bus_receive(struct uart_softc *sc) { return (0); } static int -ns8250_bus_txflush(struct uart_softc *sc) +ns8250_bus_transmit(struct uart_softc *sc) { return (0); ==== //depot/projects/uart/dev/uart/uart_dev_sab82532.c#4 (text+ko) ==== @@ -114,30 +114,24 @@ struct uart_softc base; }; -static int sab82532_bus_describe(struct uart_softc *); +static int sab82532_bus_attach(struct uart_softc *); +static int sab82532_bus_detach(struct uart_softc *); +static int sab82532_bus_flush(struct uart_softc *, int); static int sab82532_bus_getsig(struct uart_softc *); -static int sab82532_bus_initfifo(struct uart_softc *); static int sab82532_bus_ipend(struct uart_softc *); static int sab82532_bus_probe(struct uart_softc *); static int sab82532_bus_receive(struct uart_softc *); -static int sab82532_bus_reset(struct uart_softc *); -static int sab82532_bus_rxflush(struct uart_softc *); -static int sab82532_bus_shutdown(struct uart_softc *); static int sab82532_bus_transmit(struct uart_softc *); -static int sab82532_bus_txflush(struct uart_softc *); static kobj_method_t sab82532_methods[] = { - KOBJMETHOD(uart_describe, sab82532_bus_describe), + KOBJMETHOD(uart_attach, sab82532_bus_attach), + KOBJMETHOD(uart_detach, sab82532_bus_detach), + KOBJMETHOD(uart_flush, sab82532_bus_flush), KOBJMETHOD(uart_getsig, sab82532_bus_getsig), - KOBJMETHOD(uart_initfifo, sab82532_bus_initfifo), KOBJMETHOD(uart_ipend, sab82532_bus_ipend), KOBJMETHOD(uart_probe, sab82532_bus_probe), KOBJMETHOD(uart_receive, sab82532_bus_receive), - KOBJMETHOD(uart_reset, sab82532_bus_reset), - KOBJMETHOD(uart_rxflush, sab82532_bus_rxflush), - KOBJMETHOD(uart_shutdown, sab82532_bus_shutdown), KOBJMETHOD(uart_transmit, sab82532_bus_transmit), - KOBJMETHOD(uart_txflush, sab82532_bus_txflush), { 0, 0 } }; @@ -150,78 +144,71 @@ }; static int -sab82532_bus_describe(struct uart_softc *sc) +sab82532_bus_attach(struct uart_softc *sc) { - char buf[80]; - const char *ch, *vstr; - - /* Assume the address range is naturally aligned. */ - ch = ((sc->sc_bas.bsh & 0x40) == 0) ? "A" : "B"; - - switch (uart_getreg(&sc->sc_bas, SAB_VSTR) & SAB_VSTR_VMASK) { - case SAB_VSTR_V_1: vstr = "v1"; break; - case SAB_VSTR_V_2: vstr = "v2"; break; - case SAB_VSTR_V_32: vstr = "v3.2"; break; - default: vstr = "v4?"; break; - } - snprintf(buf, sizeof(buf), "SAB 82532 %s, channel %s", vstr, ch); - device_set_desc_copy(sc->sc_dev, buf); return (0); } static int -sab82532_bus_getsig(struct uart_softc *sc) +sab82532_bus_detach(struct uart_softc *sc) { return (0); } static int -sab82532_bus_initfifo(struct uart_softc *sc) +sab82532_bus_flush(struct uart_softc *sc, int what) { return (0); } static int -sab82532_bus_ipend(struct uart_softc *sc) +sab82532_bus_getsig(struct uart_softc *sc) { return (0); } static int -sab82532_bus_probe(struct uart_softc *sc) +sab82532_bus_ipend(struct uart_softc *sc) { - return (sab82532_probe(&sc->sc_bas)); + return (0); } static int -sab82532_bus_receive(struct uart_softc *sc) +sab82532_bus_probe(struct uart_softc *sc) { + char buf[80]; + const char *ch, *vstr; + int error; - return (0); -} + error = sab82532_probe(&sc->sc_bas); + if (error) + return (error); -static int -sab82532_bus_reset(struct uart_softc *sc) -{ + if (!sc->sc_console && !sc->sc_dbgport) + sab82532_init(&sc->sc_bas, 9600, 8, 1, UART_PARITY_NONE); - sab82532_init(&sc->sc_bas, 9600, 8, 1, UART_PARITY_NONE); - return (0); -} + /* Assume the address range is naturally aligned. */ + ch = ((sc->sc_bas.bsh & 0x40) == 0) ? "A" : "B"; -static int -sab82532_bus_rxflush(struct uart_softc *sc) -{ + switch (uart_getreg(&sc->sc_bas, SAB_VSTR) & SAB_VSTR_VMASK) { + case SAB_VSTR_V_1: vstr = "v1"; break; + case SAB_VSTR_V_2: vstr = "v2"; break; + case SAB_VSTR_V_32: vstr = "v3.2"; break; + default: vstr = "v4?"; break; + } + snprintf(buf, sizeof(buf), "SAB 82532 %s, channel %s", vstr, ch); + device_set_desc_copy(sc->sc_dev, buf); return (0); } static int -sab82532_bus_shutdown(struct uart_softc *sc) +sab82532_bus_receive(struct uart_softc *sc) { return (0); @@ -233,10 +220,3 @@ return (0); } - -static int -sab82532_bus_txflush(struct uart_softc *sc) -{ - - return (0); -} ==== //depot/projects/uart/dev/uart/uart_if.m#4 (text+ko) ==== @@ -34,28 +34,28 @@ INTERFACE uart; -# describe() - set the device description. -# This method is called after FIFOs are initialized and is used to set the -# device description to match the actual hardware (as much as is possible). -# The method is free to perform whatever UART programming is required to -# obtain the information it needs, but should not permanently disrupt console -# or debug port operation. -METHOD int describe { +# attach() +# XXX needs explanation. +METHOD int attach { + struct uart_softc *this; +}; + +# detach() +# XXX needs explanation. +METHOD int detach { struct uart_softc *this; }; -# getsig() - get line and modem signals. +# flush() # XXX needs explanation. -METHOD int getsig { +METHOD int flush { struct uart_softc *this; + int what; }; -# initfifo() - detect and size FIFOs. -# This method is called after the UART is reset and is responsible for finding -# out the size of the transmitter and receiver FIFOs. The method is allowed -# to reprogram the UART, but should not permanently disrupt console or debug -# port operation. -METHOD int initfifo { +# getsig() - get line and modem signals. +# XXX needs explanation. +METHOD int getsig { struct uart_softc *this; }; @@ -72,10 +72,8 @@ struct uart_softc *this; } -# probe() - first level device probing. -# The intend of probe() is to perform a non-destructive probe that's simple -# in nature and does not (in theory) program the device in order to find out -# more about it. This method is used on console devices and debug ports. +# probe() +# XXX needs explanation. METHOD int probe { struct uart_softc *this; }; @@ -87,34 +85,8 @@ struct uart_softc *this; }; -# reset() - program an initial state. -# It is unspecified at this time what the initial state is and/or whether it -# should be a state that is common for all supported UARTs. This method is -# not used on console devices and debug ports. More details will follow... -METHOD int reset { - struct uart_softc *this; -}; - -# rxflush() - flush the receiver and receiver FIFO. -# XXX needs explanation. -METHOD int rxflush { - struct uart_softc *this; -}; - -# shutdown() - disable or inactivate UART. -# XXX needs explanation. -METHOD int shutdown { - struct uart_softc *this; -}; - # transmit() - move data from the transmit buffer to the transmit FIFO. # XXX needs explanation. METHOD int transmit { struct uart_softc *this; }; - -# txflush() - flush the transmitter and transmitter FIFO. -# XXX needs explanation. -METHOD int txflush { - struct uart_softc *this; -}; ==== //depot/projects/uart/dev/uart/uart_tty.c#3 (text+ko) ==== @@ -162,7 +162,8 @@ sc->sc_tty = tp; sc->sc_si = make_dev(&uart_cdevsw, device_get_unit(sc->sc_dev), - UID_ROOT, GID_WHEEL, 0600, "%s", device_get_desc(sc->sc_dev)); + UID_ROOT, GID_WHEEL, 0600, "%s%r", uart_driver_name, + device_get_unit(sc->sc_dev)); sc->sc_si->si_drv1 = sc; sc->sc_si->si_tty = tp; From owner-p4-projects@FreeBSD.ORG Mon Jul 7 20:15:45 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2B0B237B404; Mon, 7 Jul 2003 20:15:45 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B795F37B401 for ; Mon, 7 Jul 2003 20:15:44 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4A47F43FAF for ; Mon, 7 Jul 2003 20:15:44 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h683Fi0U046269 for ; Mon, 7 Jul 2003 20:15:44 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h683FhSN046266 for perforce@freebsd.org; Mon, 7 Jul 2003 20:15:43 -0700 (PDT) Date: Mon, 7 Jul 2003 20:15:43 -0700 (PDT) Message-Id: <200307080315.h683FhSN046266@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 34181 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Jul 2003 03:15:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=34181 Change 34181 by marcel@marcel_nfs on 2003/07/07 20:14:56 Replace a redundant device_get_parent(dev) when we already have the parent in variable parent. Affected files ... .. //depot/projects/uart/dev/uart/uart_bus_puc.c#3 edit Differences ... ==== //depot/projects/uart/dev/uart/uart_bus_puc.c#3 (text+ko) ==== @@ -81,7 +81,7 @@ return (ENXIO); } - if (BUS_READ_IVAR(device_get_parent(dev), dev, PUC_IVAR_FREQ, &rclk)) + if (BUS_READ_IVAR(parent, dev, PUC_IVAR_FREQ, &rclk)) rclk = 0; return (uart_bus_probe(dev, 0, rclk, 0)); } From owner-p4-projects@FreeBSD.ORG Tue Jul 8 12:22:32 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EBE8337B404; Tue, 8 Jul 2003 12:22:31 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 88C4D37B401 for ; Tue, 8 Jul 2003 12:22:31 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 53C0343F85 for ; Tue, 8 Jul 2003 12:22:30 -0700 (PDT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h68JMU0U068445 for ; Tue, 8 Jul 2003 12:22:30 -0700 (PDT) (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h68JMPb9068395 for perforce@freebsd.org; Tue, 8 Jul 2003 12:22:25 -0700 (PDT) Date: Tue, 8 Jul 2003 12:22:25 -0700 (PDT) Message-Id: <200307081922.h68JMPb9068395@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 34203 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Jul 2003 19:22:33 -0000 http://perforce.freebsd.org/chv.cgi?CH=34203 Change 34203 by jhb@jhb_laptop on 2003/07/08 12:22:19 IFC @34201. Affected files ... .. //depot/projects/smpng/sys/alpha/alpha/busdma_machdep.c#19 integrate .. //depot/projects/smpng/sys/alpha/alpha/mp_machdep.c#19 integrate .. //depot/projects/smpng/sys/alpha/alpha/pmap.c#48 integrate .. //depot/projects/smpng/sys/amd64/amd64/busdma_machdep.c#4 integrate .. //depot/projects/smpng/sys/amd64/amd64/pmap.c#6 integrate .. //depot/projects/smpng/sys/boot/efi/libefi/Makefile#8 integrate .. //depot/projects/smpng/sys/boot/i386/libi386/Makefile#10 integrate .. //depot/projects/smpng/sys/boot/ia64/libski/Makefile#6 integrate .. //depot/projects/smpng/sys/boot/ia64/libski/pal_stub.S#1 branch .. //depot/projects/smpng/sys/boot/ia64/libski/pal_stub.s#2 delete .. //depot/projects/smpng/sys/boot/pc98/libpc98/Makefile#9 integrate .. //depot/projects/smpng/sys/conf/NOTES#48 integrate .. //depot/projects/smpng/sys/conf/files#81 integrate .. //depot/projects/smpng/sys/conf/files.ia64#29 integrate .. //depot/projects/smpng/sys/contrib/dev/ath/freebsd/i386-elf.hal.o.uu#2 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi.c#43 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_isab.c#1 branch .. //depot/projects/smpng/sys/dev/ata/ata-chipset.c#16 integrate .. //depot/projects/smpng/sys/dev/ata/ata-pci.c#33 integrate .. //depot/projects/smpng/sys/dev/ata/ata-pci.h#10 integrate .. //depot/projects/smpng/sys/dev/em/if_em.h#15 integrate .. //depot/projects/smpng/sys/dev/en/midway.c#17 integrate .. //depot/projects/smpng/sys/dev/fatm/if_fatm.c#3 integrate .. //depot/projects/smpng/sys/dev/firewire/fwdma.c#3 integrate .. //depot/projects/smpng/sys/dev/firewire/fwohci.c#19 integrate .. //depot/projects/smpng/sys/dev/firewire/fwohci_pci.c#15 integrate .. //depot/projects/smpng/sys/dev/firewire/sbp.c#21 integrate .. //depot/projects/smpng/sys/dev/fxp/if_fxp.c#40 integrate .. //depot/projects/smpng/sys/dev/ips/ips_pci.c#4 integrate .. //depot/projects/smpng/sys/dev/kbd/atkbd.c#8 integrate .. //depot/projects/smpng/sys/dev/lge/if_lge.c#14 integrate .. //depot/projects/smpng/sys/dev/nge/if_nge.c#24 integrate .. //depot/projects/smpng/sys/dev/pccbb/pccbb.c#32 integrate .. //depot/projects/smpng/sys/dev/pci/isa_pci.c#4 integrate .. //depot/projects/smpng/sys/dev/ppc/ppc.c#1 branch .. //depot/projects/smpng/sys/dev/ppc/ppcreg.h#1 branch .. //depot/projects/smpng/sys/dev/random/randomdev.c#13 integrate .. //depot/projects/smpng/sys/dev/sio/sio.c#32 integrate .. //depot/projects/smpng/sys/dev/sound/pci/ich.c#21 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/feeder.c#8 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/feeder.h#3 integrate .. //depot/projects/smpng/sys/dev/txp/if_txp.c#15 integrate .. //depot/projects/smpng/sys/dev/usb/ehci_pci.c#3 integrate .. //depot/projects/smpng/sys/dev/usb/hid.c#6 integrate .. //depot/projects/smpng/sys/dev/usb/hid.h#3 integrate .. //depot/projects/smpng/sys/dev/usb/if_axe.c#3 integrate .. //depot/projects/smpng/sys/dev/usb/if_cue.c#14 integrate .. //depot/projects/smpng/sys/dev/usb/ohci.c#22 integrate .. //depot/projects/smpng/sys/dev/usb/ohcireg.h#4 integrate .. //depot/projects/smpng/sys/dev/usb/ucom.c#10 integrate .. //depot/projects/smpng/sys/dev/usb/udbp.c#8 integrate .. //depot/projects/smpng/sys/dev/usb/udbp.h#3 integrate .. //depot/projects/smpng/sys/dev/usb/ufm.c#6 integrate .. //depot/projects/smpng/sys/dev/usb/uftdi.c#6 integrate .. //depot/projects/smpng/sys/dev/usb/ugen.c#16 integrate .. //depot/projects/smpng/sys/dev/usb/uhci.c#25 integrate .. //depot/projects/smpng/sys/dev/usb/uhcireg.h#5 integrate .. //depot/projects/smpng/sys/dev/usb/uhcivar.h#8 integrate .. //depot/projects/smpng/sys/dev/usb/uhid.c#14 integrate .. //depot/projects/smpng/sys/dev/usb/uhub.c#11 integrate .. //depot/projects/smpng/sys/dev/usb/ukbd.c#10 integrate .. //depot/projects/smpng/sys/dev/usb/umass.c#26 integrate .. //depot/projects/smpng/sys/dev/usb/umct.c#2 integrate .. //depot/projects/smpng/sys/dev/usb/ums.c#11 integrate .. //depot/projects/smpng/sys/dev/usb/uplcom.c#6 integrate .. //depot/projects/smpng/sys/dev/usb/urio.c#14 integrate .. //depot/projects/smpng/sys/dev/usb/usb_mem.h#3 integrate .. //depot/projects/smpng/sys/dev/usb/usb_port.h#15 integrate .. //depot/projects/smpng/sys/dev/usb/usb_subr.c#14 integrate .. //depot/projects/smpng/sys/dev/usb/usbdevs#35 integrate .. //depot/projects/smpng/sys/dev/usb/usbdi.c#12 integrate .. //depot/projects/smpng/sys/dev/usb/usbdi.h#9 integrate .. //depot/projects/smpng/sys/dev/usb/usbdi_util.c#7 integrate .. //depot/projects/smpng/sys/dev/usb/usbdi_util.h#5 integrate .. //depot/projects/smpng/sys/dev/usb/usbdivar.h#10 integrate .. //depot/projects/smpng/sys/dev/usb/uvisor.c#5 integrate .. //depot/projects/smpng/sys/dev/usb/uvscom.c#8 integrate .. //depot/projects/smpng/sys/dev/wi/if_wi.c#53 integrate .. //depot/projects/smpng/sys/dev/wi/if_wi_pccard.c#19 integrate .. //depot/projects/smpng/sys/dev/zs/zs.c#7 integrate .. //depot/projects/smpng/sys/fs/msdosfs/msdosfs_vnops.c#19 integrate .. //depot/projects/smpng/sys/geom/geom_ctl.c#16 integrate .. //depot/projects/smpng/sys/i386/bios/apm.c#5 integrate .. //depot/projects/smpng/sys/i386/i386/busdma_machdep.c#21 integrate .. //depot/projects/smpng/sys/i386/i386/pmap.c#41 integrate .. //depot/projects/smpng/sys/i386/i386/sys_machdep.c#30 integrate .. //depot/projects/smpng/sys/i386/i386/vm_machdep.c#40 integrate .. //depot/projects/smpng/sys/i386/isa/pcvt/pcvt_drv.c#10 integrate .. //depot/projects/smpng/sys/ia64/ia64/busdma_machdep.c#18 integrate .. //depot/projects/smpng/sys/ia64/ia64/context.S#1 branch .. //depot/projects/smpng/sys/ia64/ia64/context.s#3 delete .. //depot/projects/smpng/sys/ia64/ia64/db_trace.c#11 integrate .. //depot/projects/smpng/sys/ia64/ia64/exception.S#1 branch .. //depot/projects/smpng/sys/ia64/ia64/exception.s#26 delete .. //depot/projects/smpng/sys/ia64/ia64/locore.S#1 branch .. //depot/projects/smpng/sys/ia64/ia64/locore.s#20 delete .. //depot/projects/smpng/sys/ia64/ia64/pal.S#1 branch .. //depot/projects/smpng/sys/ia64/ia64/pal.s#5 delete .. //depot/projects/smpng/sys/ia64/ia64/pmap.c#49 integrate .. //depot/projects/smpng/sys/ia64/ia64/setjmp.S#1 branch .. //depot/projects/smpng/sys/ia64/ia64/setjmp.s#2 delete .. //depot/projects/smpng/sys/ia64/ia64/support.S#1 branch .. //depot/projects/smpng/sys/ia64/ia64/support.s#13 delete .. //depot/projects/smpng/sys/ia64/ia64/syscall.S#1 branch .. //depot/projects/smpng/sys/ia64/ia64/syscall.s#4 delete .. //depot/projects/smpng/sys/ia64/ia64/unwind.c#8 integrate .. //depot/projects/smpng/sys/ia64/include/unwind.h#4 integrate .. //depot/projects/smpng/sys/isa/atkbdc_isa.c#7 integrate .. //depot/projects/smpng/sys/isa/fd.c#23 integrate .. //depot/projects/smpng/sys/isa/isa_common.c#12 integrate .. //depot/projects/smpng/sys/isa/isahint.c#3 integrate .. //depot/projects/smpng/sys/isa/isavar.h#5 integrate .. //depot/projects/smpng/sys/isa/psm.c#17 integrate .. //depot/projects/smpng/sys/isa/syscons_isa.c#6 integrate .. //depot/projects/smpng/sys/kern/kern_condvar.c#30 integrate .. //depot/projects/smpng/sys/kern/kern_descrip.c#48 integrate .. //depot/projects/smpng/sys/kern/kern_mutex.c#71 integrate .. //depot/projects/smpng/sys/kern/kern_prot.c#72 integrate .. //depot/projects/smpng/sys/kern/kern_sig.c#72 integrate .. //depot/projects/smpng/sys/kern/kern_tc.c#22 integrate .. //depot/projects/smpng/sys/kern/kern_thr.c#10 integrate .. //depot/projects/smpng/sys/kern/kern_thread.c#39 integrate .. //depot/projects/smpng/sys/kern/kern_umtx.c#5 integrate .. //depot/projects/smpng/sys/kern/sched_ule.c#14 integrate .. //depot/projects/smpng/sys/kern/subr_hints.c#6 integrate .. //depot/projects/smpng/sys/kern/subr_param.c#12 integrate .. //depot/projects/smpng/sys/kern/sys_pipe.c#29 integrate .. //depot/projects/smpng/sys/kern/vfs_syscalls.c#59 integrate .. //depot/projects/smpng/sys/modules/acpi/Makefile#12 integrate .. //depot/projects/smpng/sys/modules/geom/geom_mbr/Makefile#2 integrate .. //depot/projects/smpng/sys/net/if_vlan.c#17 integrate .. //depot/projects/smpng/sys/netgraph/atm/ng_atm.c#2 integrate .. //depot/projects/smpng/sys/netgraph/ng_tee.c#8 integrate .. //depot/projects/smpng/sys/netinet/ip_fw.h#14 integrate .. //depot/projects/smpng/sys/netinet/ip_fw2.c#16 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_nfsiod.c#9 integrate .. //depot/projects/smpng/sys/nfsserver/nfs_syscalls.c#19 integrate .. //depot/projects/smpng/sys/pc98/pc98/fd.c#24 integrate .. //depot/projects/smpng/sys/pc98/pc98/pc98kbd.c#4 integrate .. //depot/projects/smpng/sys/pc98/pc98/sio.c#29 integrate .. //depot/projects/smpng/sys/pc98/pc98/syscons_pc98.c#6 integrate .. //depot/projects/smpng/sys/pci/if_dc.c#40 integrate .. //depot/projects/smpng/sys/pci/if_dcreg.h#15 integrate .. //depot/projects/smpng/sys/pci/if_pcn.c#18 integrate .. //depot/projects/smpng/sys/pci/if_rl.c#32 integrate .. //depot/projects/smpng/sys/pci/if_sf.c#20 integrate .. //depot/projects/smpng/sys/pci/if_sis.c#28 integrate .. //depot/projects/smpng/sys/pci/if_sk.c#19 integrate .. //depot/projects/smpng/sys/pci/if_ste.c#22 integrate .. //depot/projects/smpng/sys/pci/if_vr.c#18 integrate .. //depot/projects/smpng/sys/pci/if_wb.c#17 integrate .. //depot/projects/smpng/sys/pci/if_xl.c#30 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/pmap.c#29 integrate .. //depot/projects/smpng/sys/security/mac_bsdextended/mac_bsdextended.c#7 integrate .. //depot/projects/smpng/sys/security/mac_ifoff/mac_ifoff.c#5 integrate .. //depot/projects/smpng/sys/security/mac_lomac/mac_lomac.c#10 integrate .. //depot/projects/smpng/sys/security/mac_test/mac_test.c#13 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/pmap.c#40 integrate .. //depot/projects/smpng/sys/sys/bus.h#10 integrate .. //depot/projects/smpng/sys/sys/param.h#44 integrate .. //depot/projects/smpng/sys/sys/pipe.h#4 integrate .. //depot/projects/smpng/sys/sys/signalvar.h#18 integrate .. //depot/projects/smpng/sys/ufs/ufs/ufs_vnops.c#29 integrate .. //depot/projects/smpng/sys/vm/pmap.h#20 integrate .. //depot/projects/smpng/sys/vm/vm_contig.c#15 integrate .. //depot/projects/smpng/sys/vm/vm_map.c#40 integrate .. //depot/projects/smpng/sys/vm/vm_mmap.c#30 integrate .. //depot/projects/smpng/sys/vm/vm_pageout.c#34 integrate Differences ... ==== //depot/projects/smpng/sys/alpha/alpha/busdma_machdep.c#19 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/busdma_machdep.c,v 1.40 2003/07/01 15:51:50 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/busdma_machdep.c,v 1.42 2003/07/01 21:20:51 mux Exp $"); #include #include @@ -106,12 +106,21 @@ static void init_bounce_pages(void *dummy); static int alloc_bounce_pages(bus_dma_tag_t dmat, u_int numpages); -static int reserve_bounce_pages(bus_dma_tag_t dmat, bus_dmamap_t map); -static vm_offset_t add_bounce_page(bus_dma_tag_t dmat, bus_dmamap_t map, +static int reserve_bounce_pages(bus_dma_tag_t dmat, bus_dmamap_t map, + int commit); +static bus_addr_t add_bounce_page(bus_dma_tag_t dmat, bus_dmamap_t map, vm_offset_t vaddr, bus_size_t size); static void free_bounce_page(bus_dma_tag_t dmat, struct bounce_page *bpage); static __inline int run_filter(bus_dma_tag_t dmat, bus_addr_t paddr); +/* + * Return true if a match is made. + * + * To find a match walk the chain of bus_dma_tag_t's looking for 'paddr'. + * + * If paddr is within the bounds of the dma tag then call the filter callback + * to check for a match, if there is no filter callback then assume a match. + */ static __inline int run_filter(bus_dma_tag_t dmat, bus_addr_t paddr) { @@ -282,8 +291,14 @@ atomic_subtract_int(&dmat->ref_count, 1); if (dmat->ref_count == 0) { free(dmat, M_DEVBUF); - } - dmat = parent; + /* + * Last reference count, so + * release our reference + * count on our parent. + */ + dmat = parent; + } else + dmat = NULL; } } return (0); @@ -379,16 +394,10 @@ sgmap_free_region(chipset.sgmap, map->sgmaphandle); } - if (map != NULL) { + if (map != NULL && map != &nobounce_dmamap) { if (STAILQ_FIRST(&map->bpages) != NULL) return (EBUSY); - /* - * The nobounce_dmamap map is not dynamically - * allocated, thus we should on no account try to - * free it. - */ - if (map != &nobounce_dmamap) - free(map, M_DEVBUF); + free(map, M_DEVBUF); } dmat->map_count--; return (0); @@ -430,7 +439,7 @@ /* * Free a piece of memory and it's allociated dmamap, that was allocated - * via bus_dmamem_alloc. + * via bus_dmamem_alloc. Make the same choice for free/contigfree. */ void bus_dmamem_free(bus_dma_tag_t dmat, void *vaddr, bus_dmamap_t map) @@ -525,18 +534,24 @@ /* Reserve Necessary Bounce Pages */ if (map->pagesneeded != 0) { mtx_lock(&bounce_lock); - if (reserve_bounce_pages(dmat, map) != 0) { - - /* Queue us for resources */ - map->dmat = dmat; - map->buf = buf; - map->buflen = buflen; - map->callback = callback; - map->callback_arg = callback_arg; - - STAILQ_INSERT_TAIL(&bounce_map_waitinglist, map, links); - mtx_unlock(&bounce_lock); - return (EINPROGRESS); + if (flags & BUS_DMA_NOWAIT) { + if (reserve_bounce_pages(dmat, map, 0) != 0) { + mtx_unlock(&bounce_lock); + return (ENOMEM); + } + } else { + if (reserve_bounce_pages(dmat, map, 1) != 0) { + /* Queue us for resources */ + map->dmat = dmat; + map->buf = buf; + map->buflen = buflen; + map->callback = callback; + map->callback_arg = callback_arg; + STAILQ_INSERT_TAIL(&bounce_map_waitinglist, + map, links); + mtx_unlock(&bounce_lock); + return (EINPROGRESS); + } } mtx_unlock(&bounce_lock); } @@ -619,7 +634,7 @@ pmap = NULL; lastaddr = *lastaddrp; - bmask = ~(dmat->boundary - 1); + bmask = ~(dmat->boundary - 1); for (seg = *segp; buflen > 0 ; ) { /* @@ -706,7 +721,7 @@ error = 0; if (m0->m_pkthdr.len <= dmat->maxsize) { int first = 1; - vm_offset_t lastaddr = 0; + bus_addr_t lastaddr = 0; struct mbuf *m; for (m = m0; m != NULL && error == 0; m = m->m_next) { @@ -742,7 +757,7 @@ bus_dmamap_callback2_t *callback, void *callback_arg, int flags) { - vm_offset_t lastaddr; + bus_addr_t lastaddr; #ifdef __GNUC__ bus_dma_segment_t dm_segments[dmat->nsegments]; #else @@ -825,7 +840,6 @@ struct bounce_page *bpage; if ((bpage = STAILQ_FIRST(&map->bpages)) != NULL) { - /* * Handle data bouncing. We might also * want to add support for invalidating @@ -887,7 +901,7 @@ PAGE_SIZE, dmat->boundary); mtx_unlock(&Giant); - if (bpage->vaddr == NULL) { + if (bpage->vaddr == 0) { free(bpage, M_DEVBUF); break; } @@ -904,12 +918,14 @@ } static int -reserve_bounce_pages(bus_dma_tag_t dmat, bus_dmamap_t map) +reserve_bounce_pages(bus_dma_tag_t dmat, bus_dmamap_t map, int commit) { int pages; mtx_assert(&bounce_lock, MA_OWNED); pages = MIN(free_bpages, map->pagesneeded - map->pagesreserved); + if (commit == 0 && map->pagesneeded > (map->pagesreserved + pages)) + return (map->pagesneeded - (map->pagesreserved + pages)); free_bpages -= pages; reserved_bpages += pages; map->pagesreserved += pages; @@ -918,7 +934,7 @@ return (pages); } -static vm_offset_t +static bus_addr_t add_bounce_page(bus_dma_tag_t dmat, bus_dmamap_t map, vm_offset_t vaddr, bus_size_t size) { @@ -961,7 +977,7 @@ free_bpages++; active_bpages--; if ((map = STAILQ_FIRST(&bounce_map_waitinglist)) != NULL) { - if (reserve_bounce_pages(map->dmat, map) == 0) { + if (reserve_bounce_pages(map->dmat, map, 1) == 0) { STAILQ_REMOVE_HEAD(&bounce_map_waitinglist, links); STAILQ_INSERT_TAIL(&bounce_map_callbacklist, map, links); ==== //depot/projects/smpng/sys/alpha/alpha/mp_machdep.c#19 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/mp_machdep.c,v 1.42 2003/06/10 16:50:43 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/mp_machdep.c,v 1.44 2003/07/03 14:33:17 jhb Exp $"); #include #include @@ -349,7 +349,6 @@ mtx_init(&ap_boot_mtx, "ap boot", NULL, MTX_SPIN); for (i = 0; i < hwrpb->rpb_pcs_cnt; i++) { - int dv; struct pcs *pcsp; if (i == boot_cpu_id) @@ -380,8 +379,7 @@ } continue; } - dv = 0; - if (resource_int_value("cpu", i, "disable", &dv) == 0 && dv) { + if (resource_disabled("cpu", i)) { printf("CPU %d disabled by loader.\n", i); continue; } ==== //depot/projects/smpng/sys/alpha/alpha/pmap.c#48 (text+ko) ==== @@ -148,7 +148,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.128 2003/06/29 21:20:02 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.130 2003/07/06 20:32:42 alc Exp $"); #include #include @@ -993,7 +993,7 @@ if (m->wire_count == 0) { vm_page_busy(m); vm_page_free_zero(m); - --cnt.v_wire_count; + atomic_subtract_int(&cnt.v_wire_count, 1); } return 1; } @@ -1181,7 +1181,7 @@ #endif p->wire_count--; - cnt.v_wire_count--; + atomic_subtract_int(&cnt.v_wire_count, 1); vm_page_free_zero(p); vm_page_unlock_queues(); return 1; @@ -2070,7 +2070,6 @@ return (void *) ALPHA_PHYS_TO_K0SEG(pa - (i * PAGE_SIZE)); } -#define MAX_INIT_PT (96) /* * pmap_object_init_pt preloads the ptes for a given object * into the specified pmap. This eliminates the blast of soft @@ -2079,112 +2078,12 @@ void pmap_object_init_pt(pmap_t pmap, vm_offset_t addr, vm_object_t object, vm_pindex_t pindex, - vm_size_t size, int limit) + vm_size_t size) { - vm_offset_t tmpidx; - int psize; - vm_page_t p, mpte; - int objpgs; - if (pmap == NULL || object == NULL) - return; - VM_OBJECT_LOCK(object); - psize = alpha_btop(size); - - if ((object->type != OBJT_VNODE) || - ((limit & MAP_PREFAULT_PARTIAL) && (psize > MAX_INIT_PT) && - (object->resident_page_count > MAX_INIT_PT))) { - goto unlock_return; - } - - if (psize + pindex > object->size) { - if (object->size < pindex) - goto unlock_return; - psize = object->size - pindex; - } - - mpte = NULL; - /* - * if we are processing a major portion of the object, then scan the - * entire thing. - */ - if (psize > (object->resident_page_count >> 2)) { - objpgs = psize; - - for (p = TAILQ_FIRST(&object->memq); - ((objpgs > 0) && (p != NULL)); - p = TAILQ_NEXT(p, listq)) { - - tmpidx = p->pindex; - if (tmpidx < pindex) { - continue; - } - tmpidx -= pindex; - if (tmpidx >= psize) { - continue; - } - /* - * don't allow an madvise to blow away our really - * free pages allocating pv entries. - */ - if ((limit & MAP_PREFAULT_MADVISE) && - cnt.v_free_count < cnt.v_free_reserved) { - break; - } - vm_page_lock_queues(); - if (((p->valid & VM_PAGE_BITS_ALL) == VM_PAGE_BITS_ALL) && - (p->busy == 0) && - (p->flags & (PG_BUSY | PG_FICTITIOUS)) == 0) { - if ((p->queue - p->pc) == PQ_CACHE) - vm_page_deactivate(p); - vm_page_busy(p); - vm_page_unlock_queues(); - VM_OBJECT_UNLOCK(object); - mpte = pmap_enter_quick(pmap, - addr + alpha_ptob(tmpidx), p, mpte); - VM_OBJECT_LOCK(object); - vm_page_lock_queues(); - vm_page_wakeup(p); - } - vm_page_unlock_queues(); - objpgs -= 1; - } - } else { - /* - * else lookup the pages one-by-one. - */ - for (tmpidx = 0; tmpidx < psize; tmpidx += 1) { - /* - * don't allow an madvise to blow away our really - * free pages allocating pv entries. - */ - if ((limit & MAP_PREFAULT_MADVISE) && - cnt.v_free_count < cnt.v_free_reserved) { - break; - } - p = vm_page_lookup(object, tmpidx + pindex); - if (p == NULL) - continue; - vm_page_lock_queues(); - if ((p->valid & VM_PAGE_BITS_ALL) == VM_PAGE_BITS_ALL && - (p->busy == 0) && - (p->flags & (PG_BUSY | PG_FICTITIOUS)) == 0) { - if ((p->queue - p->pc) == PQ_CACHE) - vm_page_deactivate(p); - vm_page_busy(p); - vm_page_unlock_queues(); - VM_OBJECT_UNLOCK(object); - mpte = pmap_enter_quick(pmap, - addr + alpha_ptob(tmpidx), p, mpte); - VM_OBJECT_LOCK(object); - vm_page_lock_queues(); - vm_page_wakeup(p); - } - vm_page_unlock_queues(); - } - } -unlock_return: - VM_OBJECT_UNLOCK(object); + VM_OBJECT_LOCK_ASSERT(object, MA_OWNED); + KASSERT(object->type == OBJT_DEVICE, + ("pmap_object_init_pt: non-device object")); } /* ==== //depot/projects/smpng/sys/amd64/amd64/busdma_machdep.c#4 (text+ko) ==== @@ -22,10 +22,11 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.48 2003/07/01 16:54:54 mux Exp $ */ +#include +__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.49 2003/07/01 19:16:48 mux Exp $"); + #include #include #include @@ -76,6 +77,7 @@ int busdma_swi_pending; +static struct mtx bounce_lock; static STAILQ_HEAD(bp_list, bounce_page) bounce_page_list; static int free_bpages; static int reserved_bpages; @@ -102,20 +104,17 @@ static void init_bounce_pages(void *dummy); static int alloc_bounce_pages(bus_dma_tag_t dmat, u_int numpages); static int reserve_bounce_pages(bus_dma_tag_t dmat, bus_dmamap_t map, - int commit); + int commit); static bus_addr_t add_bounce_page(bus_dma_tag_t dmat, bus_dmamap_t map, vm_offset_t vaddr, bus_size_t size); static void free_bounce_page(bus_dma_tag_t dmat, struct bounce_page *bpage); static __inline int run_filter(bus_dma_tag_t dmat, bus_addr_t paddr); -/* To protect all the the bounce pages related lists and data. */ -static struct mtx bounce_lock; - /* * Return true if a match is made. - * + * * To find a match walk the chain of bus_dma_tag_t's looking for 'paddr'. - * + * * If paddr is within the bounds of the dma tag then call the filter callback * to check for a match, if there is no filter callback then assume a match. */ @@ -372,7 +371,7 @@ int bus_dmamap_destroy(bus_dma_tag_t dmat, bus_dmamap_t map) { - if (map != NULL) { + if (map != NULL && map != &nobounce_dmamap) { if (STAILQ_FIRST(&map->bpages) != NULL) return (EBUSY); free(map, M_DEVBUF); @@ -509,7 +508,7 @@ map->buf = buf; map->buflen = buflen; STAILQ_INSERT_TAIL(&bounce_map_waitinglist, - map, links); + map, links); mtx_unlock(&bounce_lock); return (EINPROGRESS); } @@ -639,8 +638,7 @@ #endif int nsegs, error; - KASSERT(m0->m_flags & M_PKTHDR, - ("bus_dmamap_load_mbuf: no packet header")); + M_ASSERTPKTHDR(m0); flags |= BUS_DMA_NOWAIT; nsegs = 0; ==== //depot/projects/smpng/sys/amd64/amd64/pmap.c#6 (text+ko) ==== @@ -39,7 +39,7 @@ * SUCH DAMAGE. * * from: @(#)pmap.c 7.7 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.418 2003/06/29 21:20:03 alc Exp $ + * $FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.419 2003/07/03 20:18:01 alc Exp $ */ /*- * Copyright (c) 2003 Networks Associates Technology, Inc. @@ -2057,31 +2057,22 @@ return ((void *)crashdumpmap); } -#define MAX_INIT_PT (96) /* - * pmap_object_init_pt preloads the ptes for a given object - * into the specified pmap. This eliminates the blast of soft - * faults on process startup and immediately after an mmap. + * This code maps large physical mmap regions into the + * processor address space. Note that some shortcuts + * are taken, but the code works. */ void pmap_object_init_pt(pmap_t pmap, vm_offset_t addr, vm_object_t object, vm_pindex_t pindex, - vm_size_t size, int limit) + vm_size_t size) { - vm_pindex_t tmpidx; - int psize; - vm_page_t p, mpte; + vm_page_t p; - if (pmap == NULL || object == NULL) - return; - VM_OBJECT_LOCK(object); - /* - * This code maps large physical mmap regions into the - * processor address space. Note that some shortcuts - * are taken, but the code works. - */ - if ((object->type == OBJT_DEVICE) && - ((addr & (NBPDR - 1)) == 0) && ((size & (NBPDR - 1)) == 0)) { + VM_OBJECT_LOCK_ASSERT(object, MA_OWNED); + KASSERT(object->type == OBJT_DEVICE, + ("pmap_object_init_pt: non-device object")); + if (((addr & (NBPDR - 1)) == 0) && ((size & (NBPDR - 1)) == 0)) { int i; vm_page_t m[1]; int npdes; @@ -2089,7 +2080,7 @@ pde = pmap_pde(pmap, addr); if (pde != 0 && (*pde & PG_V) != 0) - goto unlock_return; + return; retry: p = vm_page_lookup(object, pindex); if (p != NULL) { @@ -2099,14 +2090,14 @@ } else { p = vm_page_alloc(object, pindex, VM_ALLOC_NORMAL); if (p == NULL) - goto unlock_return; + return; m[0] = p; if (vm_pager_get_pages(object, m, 1, 0) != VM_PAGER_OK) { vm_page_lock_queues(); vm_page_free(p); vm_page_unlock_queues(); - goto unlock_return; + return; } p = vm_page_lookup(object, pindex); @@ -2116,9 +2107,8 @@ vm_page_unlock_queues(); ptepa = VM_PAGE_TO_PHYS(p); - if (ptepa & (NBPDR - 1)) { - goto unlock_return; - } + if (ptepa & (NBPDR - 1)) + return; p->valid = VM_PAGE_BITS_ALL; @@ -2130,65 +2120,7 @@ pde++; } pmap_invalidate_all(kernel_pmap); - goto unlock_return; - } - - psize = amd64_btop(size); - - if ((object->type != OBJT_VNODE) || - ((limit & MAP_PREFAULT_PARTIAL) && (psize > MAX_INIT_PT) && - (object->resident_page_count > MAX_INIT_PT))) { - goto unlock_return; } - - if (psize + pindex > object->size) { - if (object->size < pindex) - goto unlock_return; - psize = object->size - pindex; - } - - mpte = NULL; - - if ((p = TAILQ_FIRST(&object->memq)) != NULL) { - if (p->pindex < pindex) { - p = vm_page_splay(pindex, object->root); - if ((object->root = p)->pindex < pindex) - p = TAILQ_NEXT(p, listq); - } - } - /* - * Assert: the variable p is either (1) the page with the - * least pindex greater than or equal to the parameter pindex - * or (2) NULL. - */ - for (; - p != NULL && (tmpidx = p->pindex - pindex) < psize; - p = TAILQ_NEXT(p, listq)) { - /* - * don't allow an madvise to blow away our really - * free pages allocating pv entries. - */ - if ((limit & MAP_PREFAULT_MADVISE) && - cnt.v_free_count < cnt.v_free_reserved) { - break; - } - vm_page_lock_queues(); - if ((p->valid & VM_PAGE_BITS_ALL) == VM_PAGE_BITS_ALL && - (p->busy == 0) && - (p->flags & (PG_BUSY | PG_FICTITIOUS)) == 0) { - if ((p->queue - p->pc) == PQ_CACHE) - vm_page_deactivate(p); - vm_page_busy(p); - vm_page_unlock_queues(); - mpte = pmap_enter_quick(pmap, - addr + amd64_ptob(tmpidx), p, mpte); - vm_page_lock_queues(); - vm_page_wakeup(p); - } - vm_page_unlock_queues(); - } -unlock_return: - VM_OBJECT_UNLOCK(object); } /* ==== //depot/projects/smpng/sys/boot/efi/libefi/Makefile#8 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/boot/efi/libefi/Makefile,v 1.11 2002/12/10 06:22:25 marcel Exp $ +# $FreeBSD: src/sys/boot/efi/libefi/Makefile,v 1.12 2003/07/02 11:53:55 ru Exp $ .PATH: ${.CURDIR}/../../../${MACHINE_ARCH}/${MACHINE_ARCH} @@ -6,7 +6,7 @@ INTERNALLIB= true SRCS= libefi.c efi_console.c time.c copy.c devicename.c module.c -SRCS+= delay.c efifs.c efinet.c elf_freebsd.c bootinfo.c pal.s +SRCS+= delay.c efifs.c efinet.c elf_freebsd.c bootinfo.c pal.S .if ${MACHINE_ARCH} == "ia64" SRCS+= efifpswa.c ==== //depot/projects/smpng/sys/boot/i386/libi386/Makefile#10 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/boot/i386/libi386/Makefile,v 1.31 2003/06/07 17:42:26 obrien Exp $ +# $FreeBSD: src/sys/boot/i386/libi386/Makefile,v 1.32 2003/07/02 12:45:45 ru Exp $ # LIB= i386 INTERNALLIB= true @@ -7,7 +7,7 @@ biospci.c biossmap.c bootinfo.c bootinfo32.c bootinfo64.c \ comconsole.c devicename.c elf32_freebsd.c \ elf64_freebsd.c gatea20.c \ - i386_copy.c i386_module.c nullconsole.c pxe.c \ + i386_copy.c i386_module.c nullconsole.c pxe.c pxetramp.s \ time.c vidconsole.c amd64_tramp.S CFLAGS+= -ffreestanding @@ -45,8 +45,4 @@ .endif -OBJS+= pxetramp.o -pxetramp.o: pxetramp.s - ${AS} ${AFLAGS} -o ${.TARGET} ${.ALLSRC:M*pxetramp*} - .include ==== //depot/projects/smpng/sys/boot/ia64/libski/Makefile#6 (text+ko) ==== @@ -1,11 +1,11 @@ -# $FreeBSD: src/sys/boot/ia64/libski/Makefile,v 1.9 2003/02/01 22:50:08 marcel Exp $ +# $FreeBSD: src/sys/boot/ia64/libski/Makefile,v 1.10 2003/07/02 11:47:33 ru Exp $ LIB= ski INTERNALLIB= true SRCS= skiconsole.c time.c copy.c devicename.c module.c exit.c SRCS+= delay.c skifs.c elf_freebsd.c bootinfo.c ssc.c -SRCS+= acpi_stub.c efi_stub.c pal_stub.s sal_stub.c +SRCS+= acpi_stub.c efi_stub.c pal_stub.S sal_stub.c CFLAGS+= -ffreestanding -fpic -g CFLAGS+= -I${.CURDIR}/../include ==== //depot/projects/smpng/sys/boot/pc98/libpc98/Makefile#9 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/boot/pc98/libpc98/Makefile,v 1.17 2003/06/08 03:16:59 nyan Exp $ +# $FreeBSD: src/sys/boot/pc98/libpc98/Makefile,v 1.18 2003/07/02 12:45:45 ru Exp $ # LIB= pc98 INTERNALLIB= true @@ -7,7 +7,7 @@ SRCS= bioscd.c biosdisk.c biosmem.c biospnp.c biospci.c biossmap.c \ bootinfo.c bootinfo32.c comconsole.c devicename.c elf32_freebsd.c \ - gatea20.c i386_copy.c i386_module.c nullconsole.c pxe.c \ + gatea20.c i386_copy.c i386_module.c nullconsole.c pxe.c pxetramp.s \ time.c vidconsole.c CFLAGS+= -ffreestanding @@ -46,8 +46,4 @@ .endif -OBJS+= pxetramp.o -pxetramp.o: pxetramp.s - ${AS} ${AFLAGS} -o ${.TARGET} ${.ALLSRC:M*pxetramp*} - .include ==== //depot/projects/smpng/sys/conf/NOTES#48 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1157 2003/06/28 05:47:34 scottl Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1161 2003/07/07 21:19:04 wollman Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -456,7 +456,7 @@ # The `ether' device provides generic code to handle # Ethernets; it is MANDATORY when an Ethernet device driver is # configured or token-ring is enabled. -# The 'wlan' device provides generic code to support 802.11 +# The `wlan' device provides generic code to support 802.11 # drivers, including host AP mode; it is MANDATORY for the wi # driver and will eventually be required by all 802.11 drivers. # The `fddi' device provides generic code to support FDDI. @@ -674,13 +674,13 @@ # One of these is mandatory: options FFS #Fast filesystem options NFSCLIENT #Network File System -options NFSSERVER #Network File System # The rest are optional: options CD9660 #ISO 9660 filesystem options FDESCFS #File descriptor filesystem options HPFS #OS/2 File system options MSDOSFS #MS DOS File System (FAT, FAT32) +options NFSSERVER #Network File System options NTFS #NT File System options NULLFS #NULL filesystem #options NWFS #NetWare filesystem @@ -727,8 +727,8 @@ # # In order to manage swap, the system must reserve bitmap space that # scales with the largest mounted swap device multiplied by NSWAPDEV, -# irregardless of whether other swap devices exist or not. So it -# is not a good idea to make this value too large. +# irrespective of whether other swap devices exist. So it is not a +# good idea to make this value too large. options NSWAPDEV=5 # Disk quotas are supported when this option is enabled. @@ -848,14 +848,15 @@ # device drivers. The host adapters are listed in the ISA and PCI # device configuration sections below. # -# Beginning with FreeBSD 2.0.5 you can wire down your SCSI devices so -# that a given bus, target, and LUN always come on line as the same -# device unit. In earlier versions the unit numbers were assigned -# in the order that the devices were probed on the SCSI bus. This -# means that if you removed a disk drive, you may have had to rewrite -# your /etc/fstab file, and also that you had to be careful when adding -# a new disk as it may have been probed earlier and moved your device -# configuration around. +# It is possible to wire down your SCSI devices so that a given bus, +# target, and LUN always come on line as the same device unit. In +# earlier versions the unit numbers were assigned in the order that +# the devices were probed on the SCSI bus. This means that if you +# removed a disk drive, you may have had to rewrite your /etc/fstab +# file, and also that you had to be careful when adding a new disk +# as it may have been probed earlier and moved your device configuration +# around. (See also option GEOM_VOL for a different solution to this +# problem.) # This old behavior is maintained as the default behavior. The unit # assignment begins with the first non-wired down unit for a device ==== //depot/projects/smpng/sys/conf/files#81 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.801 2003/06/28 06:12:41 sam Exp $ +# $FreeBSD: src/sys/conf/files,v 1.802 2003/07/08 18:59:32 jhb Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -241,6 +241,7 @@ dev/acpica/acpi_cmbat.c optional acpi dev/acpica/acpi_cpu.c optional acpi dev/acpica/acpi_ec.c optional acpi +dev/acpica/acpi_isab.c optional acpi dev/acpica/acpi_lid.c optional acpi dev/acpica/acpi_pci.c optional acpi pci dev/acpica/acpi_pci_link.c optional acpi pci ==== //depot/projects/smpng/sys/conf/files.ia64#29 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.ia64,v 1.52 2003/05/16 21:26:40 marcel Exp $ +# $FreeBSD: src/sys/conf/files.ia64,v 1.53 2003/07/02 12:57:06 ru Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -75,7 +75,7 @@ ia64/ia64/busdma_machdep.c standard ia64/ia64/clock.c standard ia64/ia64/clock_if.m standard -ia64/ia64/context.s standard +ia64/ia64/context.S standard ia64/ia64/critical.c standard ia64/ia64/db_disasm.c optional ddb ia64/ia64/db_interface.c optional ddb @@ -84,26 +84,26 @@ ia64/ia64/efi.c standard ia64/ia64/eficlock.c standard ia64/ia64/elf_machdep.c standard -ia64/ia64/exception.s standard +ia64/ia64/exception.S standard ia64/ia64/ia64-gdbstub.c optional ddb ia64/ia64/in_cksum.c optional inet ia64/ia64/interrupt.c standard -ia64/ia64/locore.s standard no-obj +ia64/ia64/locore.S standard no-obj ia64/ia64/machdep.c standard ia64/ia64/mca.c standard ia64/ia64/mem.c standard >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Jul 8 22:21:59 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1A8F637B404; Tue, 8 Jul 2003 22:21:59 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A048637B401 for ; Tue, 8 Jul 2003 22:21:58 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 26C0543FBF for ; Tue, 8 Jul 2003 22:21:58 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h695Lv0U069468 for ; Tue, 8 Jul 2003 22:21:57 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h695Lvip069462 for perforce@freebsd.org; Tue, 8 Jul 2003 22:21:57 -0700 (PDT) Date: Tue, 8 Jul 2003 22:21:57 -0700 (PDT) Message-Id: <200307090521.h695Lvip069462@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 34226 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 05:22:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=34226 Change 34226 by marcel@marcel_nfs on 2003/07/08 22:21:21 Add OF_decode_addr(). This function traverses the OF device tree and translates an unit address to a physical address for use as bus handle. There's no header in which we can put the prototype without breaking the build. It's not important... Obtained from: tmm@ Affected files ... .. //depot/projects/uart/sparc64/sparc64/ofw_machdep.c#2 edit Differences ... ==== //depot/projects/uart/sparc64/sparc64/ofw_machdep.c#2 (text+ko) ==== @@ -36,9 +36,17 @@ #include +#include #include #include +#include +#include +#include +#include + +int OF_decode_addr(phandle_t node, int *space, bus_addr_t *addr); + void OF_getetheraddr(device_t dev, u_char *addr) { @@ -50,3 +58,61 @@ panic("Could not determine the machine ethernet address"); bcopy(&idp.id_ether, addr, ETHER_ADDR_LEN); } + +int +OF_decode_addr(phandle_t node, int *space, bus_addr_t *addr) +{ + char name[32]; + struct isa_ranges ir[4]; + struct isa_regs reg; + struct upa_ranges ur[4]; + phandle_t bus, parent, pbus; + u_long child, dummy, phys; + int cs, i, rsz, type; + + parent = OF_parent(node); + if (parent == NULL) + return (ENXIO); + rsz = OF_getprop(parent, "ranges", ir, sizeof(ir)); + if (rsz == -1 || OF_getprop(node, "reg", ®, sizeof(reg)) == -1) + return (ENXIO); + phys = ISA_REG_PHYS(®); + dummy = phys + 1; + type = ofw_isa_map_iorange(ir, rsz / sizeof(*ir), &phys, &dummy); + if (type == SYS_RES_MEMORY) { + cs = PCI_CS_MEM32; + *space = PCI_MEMORY_BUS_SPACE; + } else { + cs = PCI_CS_IO; + *space = PCI_IO_BUS_SPACE; + } + bus = OF_parent(parent); + if (OF_getprop(bus, "name", name, sizeof(name)) == -1) + return (ENXIO); + name[sizeof(name) - 1] = '\0'; + if (strcmp(name, "pci") != 0) + return (ENXIO); + + /* Find the topmost PCI node (the host bridge) */ + while ((pbus = OF_parent(bus)) != 0) { + if (OF_getprop(pbus, "name", name, sizeof(name)) != -1) { + name[sizeof(name) - 1] = '\0'; + if (strcmp(name, "pci") != 0) + break; + } + bus = pbus; + } + if (pbus == 0) + return (ENXIO); + if ((rsz = OF_getprop(bus, "ranges", ur, sizeof(ur))) == -1) + return (ENXIO); + for (i = 0; i < (rsz / sizeof(ur[0])); i++) { + child = UPA_RANGE_CHILD(&ur[i]); + if (UPA_RANGE_CS(&ur[i]) == cs && phys >= child && + phys - child < UPA_RANGE_SIZE(&ur[i])) { + *addr = UPA_RANGE_PHYS(&ur[i]) + phys; + return (0); + } + } + return (ENXIO); +} From owner-p4-projects@FreeBSD.ORG Tue Jul 8 22:24:03 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0D98237B404; Tue, 8 Jul 2003 22:24:02 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B716637B401 for ; Tue, 8 Jul 2003 22:24:01 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 48DE643FF7 for ; Tue, 8 Jul 2003 22:24:01 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h695O10U070877 for ; Tue, 8 Jul 2003 22:24:01 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h695O0KO070871 for perforce@freebsd.org; Tue, 8 Jul 2003 22:24:00 -0700 (PDT) Date: Tue, 8 Jul 2003 22:24:00 -0700 (PDT) Message-Id: <200307090524.h695O0KO070871@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 34227 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 05:24:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=34227 Change 34227 by marcel@marcel_nfs on 2003/07/08 22:23:48 Remove two extra annoying debug printfs... Affected files ... .. //depot/projects/uart/dev/uart/uart_dev_ns8250.c#4 edit Differences ... ==== //depot/projects/uart/dev/uart/uart_dev_ns8250.c#4 (text+ko) ==== @@ -186,8 +186,6 @@ int divisor; u_char iir, lcr; - uart_debug(NULL, "%s\n", __func__); - lcr = 0; if (databits >= 8) lcr |= LCR_8BITS; @@ -373,8 +371,6 @@ struct uart_bas *bas; int count, delay, error, limit; - uart_debug(sc, "%s\n", __func__); - bas = &sc->sc_bas; error = ns8250_probe(bas); From owner-p4-projects@FreeBSD.ORG Tue Jul 8 22:29:09 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D75FA37B404; Tue, 8 Jul 2003 22:29:08 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8F82537B401 for ; Tue, 8 Jul 2003 22:29:08 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1474843FBF for ; Tue, 8 Jul 2003 22:29:08 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h695T70U071335 for ; Tue, 8 Jul 2003 22:29:07 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h695T7np071332 for perforce@freebsd.org; Tue, 8 Jul 2003 22:29:07 -0700 (PDT) Date: Tue, 8 Jul 2003 22:29:07 -0700 (PDT) Message-Id: <200307090529.h695T7np071332@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 34228 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 05:29:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=34228 Change 34228 by marcel@marcel_nfs on 2003/07/08 22:28:10 Add address decoding so that we can actually access the UART. While here, use the device name instead of probing() to determine the UART type. It's much safer. Also, don't compare the bus tag when we compare the bas. Low-level consoles have a fake tag, so they will not match. Comparing only the handle is not sufficient in general, but will do for now. Affected files ... .. //depot/projects/uart/dev/uart/uart_cpu_sparc64.c#2 edit Differences ... ==== //depot/projects/uart/dev/uart/uart_cpu_sparc64.c#2 (text+ko) ==== @@ -32,23 +32,24 @@ #include #include -#include #include #include #include +int OF_decode_addr(phandle_t node, int *space, bus_addr_t *addr); + static struct bus_space_tag bst_store[2]; int uart_cpu_getdev(int devtype, struct uart_devinfo *di) { char buffer[8]; - struct upa_regs regs; phandle_t chosen, consin, consout; ihandle_t stdin, stdout; - int space; + bus_addr_t addr; + int error, space; /* * Get the address of the UART that is selected as the console, if @@ -72,18 +73,14 @@ return (ENXIO); if (strcmp(buffer, "serial")) return (ENXIO); - if (OF_getprop(consout, "reg", ®s, sizeof(regs)) == -1) - return (ENXIO); - /* - * Figure out which of the spaces is most appropriate. - */ - space = UPA_BUS_SPACE; /* XXX yeah, right... */ + error = OF_decode_addr(consout, &space, &addr); + if (error) + return (error); /* Fill in the device info. */ di->bas.bst = &bst_store[devtype]; - di->bas.bsh = sparc64_fake_bustag(space, UPA_REG_PHYS(®s), - di->bas.bst); + di->bas.bsh = sparc64_fake_bustag(space, addr, di->bas.bst); di->bas.regshft = 0; di->bas.rclk = 0; di->baudrate = 9600; @@ -91,22 +88,22 @@ di->stopbits = 1; di->parity = UART_PARITY_NONE; - /* - * Figure out what kind of UART we have. - */ - di->ops = uart_ns8250_ops; - if (uart_probe(di) == 0) + if (OF_getprop(consout, "name", buffer, sizeof(buffer)) == -1) + return (ENXIO); + if (!strcmp(buffer, "se")) { + di->ops = uart_sab82532_ops; return (0); - di->ops = uart_sab82532_ops; - if (uart_probe(di) == 0) + } + if (!strcmp(buffer, "su")) { + di->ops = uart_ns8250_ops; return (0); - + } return (ENXIO); } int uart_cpu_eqres(struct uart_bas *b1, struct uart_bas *b2) { - - return ((b1->bsh == b2->bsh && b1->bst == b2->bst) ? 1 : 0); + + return ((b1->bsh == b2->bsh) ? 1 : 0); } From owner-p4-projects@FreeBSD.ORG Tue Jul 8 23:50:49 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E3F2837B404; Tue, 8 Jul 2003 23:50:48 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8BFCC37B401 for ; Tue, 8 Jul 2003 23:50:48 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1E73443F75 for ; Tue, 8 Jul 2003 23:50:48 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h696ol0U096842 for ; Tue, 8 Jul 2003 23:50:47 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h696okUd096833 for perforce@freebsd.org; Tue, 8 Jul 2003 23:50:46 -0700 (PDT) Date: Tue, 8 Jul 2003 23:50:46 -0700 (PDT) Message-Id: <200307090650.h696okUd096833@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 34229 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 06:50:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=34229 Change 34229 by marcel@marcel_nfs on 2003/07/08 23:50:01 Fix a braino. We cannot replace the softc in the probe() method because it will mess up bus_probe_and_attach(). An external softc will not be replaced by the core bus functions. Instead, replace the softc in the attach() method. Hence, hardware drivers cannot use any of the hardware instance members during probe(). Affected files ... .. //depot/projects/uart/dev/uart/uart_core.c#5 edit .. //depot/projects/uart/dev/uart/uart_dev_ns8250.c#5 edit Differences ... ==== //depot/projects/uart/dev/uart/uart_core.c#5 (text+ko) ==== @@ -167,22 +167,17 @@ int uart_bus_probe(device_t dev, int regshft, int rclk, int rid) { - struct uart_softc *sc, *sc0; + struct uart_softc *sc; int error; /* - * The sc_class field defines the type of UART we're going to work - * with and thus the size of the softc. Replace the generic softc - * with one that matches the UART and initialize it. Initialization - * also compiles the class if not already compiled. We also set the - * initial device description equal to the UART class name, unless - * a description has already been set. This name can be overwritten - * with a more specific description later on. + * Initialize the instance. Note that the instance (=softc) does + * not necessarily match the hardware specific softc. We can't do + * anything about it now, because we may not attach to the device. + * Hardware drivers cannot use any of the class specific fields + * while probing. */ - sc0 = device_get_softc(dev); - sc = malloc(sc0->sc_class->size, M_UART, M_WAITOK|M_ZERO); - bcopy(sc0, sc, sizeof(*sc)); - device_set_softc(dev, sc); + sc = device_get_softc(dev); kobj_init((kobj_t)sc, (kobj_class_t)sc->sc_class); sc->sc_dev = dev; if (device_get_desc(dev) == NULL) @@ -239,11 +234,20 @@ int uart_bus_attach(device_t dev) { - struct uart_softc *sc; + struct uart_softc *sc, *sc0; const char *sep; int error; - sc = device_get_softc(dev); + /* + * The sc_class field defines the type of UART we're going to work + * with and thus the size of the softc. Replace the generic softc + * with one that matches the UART now that we're certain we handle + * the device. + */ + sc0 = device_get_softc(dev); + sc = malloc(sc0->sc_class->size, M_UART, M_WAITOK|M_ZERO); + bcopy(sc0, sc, sizeof(*sc)); + device_set_softc(dev, sc); /* * Re-allocate. We expect that the softc contains the information ==== //depot/projects/uart/dev/uart/uart_dev_ns8250.c#5 (text+ko) ==== @@ -367,9 +367,9 @@ static int ns8250_bus_probe(struct uart_softc *sc) { - struct ns8250_softc *ns8250 = (struct ns8250_softc *)sc; struct uart_bas *bas; int count, delay, error, limit; + uint8_t mcr; bas = &sc->sc_bas; @@ -377,12 +377,12 @@ if (error) return (error); - ns8250->mcr = MCR_IENABLE; + mcr = MCR_IENABLE; if (!sc->sc_console && !sc->sc_dbgport) { /* By using ns8250_init() we also set DTR and RTS. */ ns8250_init(bas, 9600, 8, 1, UART_PARITY_NONE); } else - ns8250->mcr |= MCR_DTR | MCR_RTS; + mcr |= MCR_DTR | MCR_RTS; error = ns8250_flush(bas, UART_FLUSH_TRANSMITTER); if (error) @@ -412,7 +412,7 @@ * NS16450 or INS8250. We don't bother to differentiate * between them. They're too old to be interesting. */ - uart_setreg(bas, REG_MCR, ns8250->mcr); + uart_setreg(bas, REG_MCR, mcr); uart_barrier(bas); device_set_desc(sc->sc_dev, "8250 or 16450 or compatible"); return (0); @@ -428,7 +428,7 @@ /* We have FIFOs. Flush the transmitter and receiver. */ error = ns8250_flush(bas, UART_FLUSH_RECEIVER|UART_FLUSH_TRANSMITTER); if (error) { - uart_setreg(bas, REG_MCR, ns8250->mcr); + uart_setreg(bas, REG_MCR, mcr); uart_setreg(bas, REG_FCR, 0); uart_barrier(bas); goto describe; @@ -454,7 +454,7 @@ DELAY(delay); if (limit == 0) { uart_setreg(bas, REG_IER, 0); - uart_setreg(bas, REG_MCR, ns8250->mcr); + uart_setreg(bas, REG_MCR, mcr); uart_setreg(bas, REG_FCR, 0); uart_barrier(bas); count = 0; @@ -463,11 +463,10 @@ } uart_setreg(bas, REG_IER, 0); - uart_setreg(bas, REG_MCR, ns8250->mcr); + uart_setreg(bas, REG_MCR, mcr); /* Reset FIFOs. */ - ns8250->fcr = FCR_ENABLE; - uart_setreg(bas, REG_FCR, ns8250->fcr | FCR_XMT_RST | FCR_RCV_RST); + uart_setreg(bas, REG_FCR, FCR_ENABLE | FCR_XMT_RST | FCR_RCV_RST); uart_barrier(bas); describe: From owner-p4-projects@FreeBSD.ORG Tue Jul 8 23:55:56 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3CA8837B404; Tue, 8 Jul 2003 23:55:56 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B11D537B401 for ; Tue, 8 Jul 2003 23:55:55 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 48E2643FAF for ; Tue, 8 Jul 2003 23:55:55 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h696tt0U099407 for ; Tue, 8 Jul 2003 23:55:55 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h696tsEk099404 for perforce@freebsd.org; Tue, 8 Jul 2003 23:55:54 -0700 (PDT) Date: Tue, 8 Jul 2003 23:55:54 -0700 (PDT) Message-Id: <200307090655.h696tsEk099404@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 34230 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 06:55:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=34230 Change 34230 by marcel@marcel_nfs on 2003/07/08 23:55:29 Add flag PUC_FLAGS_ALTRES. The flag tells puc(4) to try both memory and I/O port resources. The first one will be used. PUC_FLAGS_MEMORY tells puc(4) to try memory first. By default I/O port us tried first as that is the most common. Replace the magic 8 (size of ns8250 register resource) with ressz, which we set according to the subtype. Minor cleanups. Affected files ... .. //depot/projects/uart/dev/puc/puc.c#4 edit .. //depot/projects/uart/dev/puc/pucvar.h#4 edit Differences ... ==== //depot/projects/uart/dev/puc/puc.c#4 (text+ko) ==== @@ -220,8 +220,15 @@ res = bus_alloc_resource(dev, type, &rid, 0ul, ~0ul, 1, RF_ACTIVE); + if (res == NULL && + sc->sc_desc.ports[i].flags & PUC_FLAGS_ALTRES) { + type = (type == SYS_RES_IOPORT) + ? SYS_RES_MEMORY : SYS_RES_IOPORT; + res = bus_alloc_resource(dev, type, &rid, 0ul, ~0ul, 1, + RF_ACTIVE); + } if (res == NULL) { - printf("could not get resource\n"); + device_printf(dev, "could not get resource\n"); continue; } sc->sc_bar_mappings[bidx].type = type; @@ -306,11 +313,11 @@ rle->res->r_start = rman_get_start(res) + sc->sc_desc.ports[i].offset; - rle->res->r_end = rle->res->r_start + 8 - 1; + rle->res->r_end = rle->res->r_start + ressz - 1; rle->res->r_bustag = rman_get_bustag(res); bus_space_subregion(rle->res->r_bustag, rman_get_bushandle(res), - sc->sc_desc.ports[i].offset, 8, + sc->sc_desc.ports[i].offset, ressz, &rle->res->r_bushandle); } @@ -328,7 +335,7 @@ if (sc->sc_ports[i].dev == NULL) { if (sc->barmuxed) { bus_space_unmap(rman_get_bustag(rle->res), - rman_get_bushandle(rle->res), 8); + rman_get_bushandle(rle->res), ressz); free(rle->res, M_DEVBUF); free(pdev, M_DEVBUF); } @@ -348,8 +355,7 @@ if (device_probe_and_attach(sc->sc_ports[i].dev) != 0) { if (sc->barmuxed) { bus_space_unmap(rman_get_bustag(rle->res), - rman_get_bushandle(rle->res), - 8); + rman_get_bushandle(rle->res), ressz); free(rle->res, M_DEVBUF); free(pdev, M_DEVBUF); } @@ -438,7 +444,7 @@ printf("print_resource_list: rl %p\n", rl); SLIST_FOREACH(rle, rl, link) - printf(" type %x, rid %x start %x end %x count %x\n", + printf(" type %x, rid %x start %lx end %lx count %lx\n", rle->type, rle->rid, rle->start, rle->end, rle->count); printf("print_resource_list: end.\n"); #endif @@ -465,11 +471,9 @@ retval = NULL; rle = resource_list_find(rl, type, *rid); if (rle) { - start = rle->start; - end = rle->end; - count = rle->count; #ifdef PUC_DEBUG - printf("found rle, %lx, %lx, %lx\n", start, end, count); + printf("found rle, %lx, %lx, %lx\n", rle->start, rle->end, + rle->count); #endif retval = rle->res; } else ==== //depot/projects/uart/dev/puc/pucvar.h#4 (text+ko) ==== @@ -104,6 +104,7 @@ #define PUC_ILR_TYPE_DIGI 1 #define PUC_FLAGS_MEMORY 0x0001 /* Use memory mapped I/O. */ +#define PUC_FLAGS_ALTRES 0x0002 /* Use alternate I/O type. */ #define PUC_PORT_VALID(desc, port) \ ((port) < PUC_MAX_PORTS && (desc).ports[(port)].type != PUC_PORT_TYPE_NONE) From owner-p4-projects@FreeBSD.ORG Wed Jul 9 00:06:11 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7BCE237B404; Wed, 9 Jul 2003 00:06:10 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 181EC37B401 for ; Wed, 9 Jul 2003 00:06:10 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E126743F3F for ; Wed, 9 Jul 2003 00:06:08 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h697680U003444 for ; Wed, 9 Jul 2003 00:06:08 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h69767IV003440 for perforce@freebsd.org; Wed, 9 Jul 2003 00:06:07 -0700 (PDT) Date: Wed, 9 Jul 2003 00:06:07 -0700 (PDT) Message-Id: <200307090706.h69767IV003440@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 34231 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 07:06:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=34231 Change 34231 by marcel@marcel_nfs on 2003/07/09 00:05:10 IFC @34224 Affected files ... .. //depot/projects/ia64/MAINTAINERS#32 integrate .. //depot/projects/ia64/Makefile.inc1#72 integrate .. //depot/projects/ia64/bin/rmail/Makefile#4 integrate .. //depot/projects/ia64/contrib/cvs/src/main.c#4 integrate .. //depot/projects/ia64/contrib/groff/tmac/doc.tmac#7 integrate .. //depot/projects/ia64/etc/Makefile#31 integrate .. //depot/projects/ia64/etc/mail/Makefile#13 integrate .. //depot/projects/ia64/etc/rc.d/ypbind#6 integrate .. //depot/projects/ia64/etc/rc.d/yppasswdd#6 integrate .. //depot/projects/ia64/etc/rc.d/ypserv#7 integrate .. //depot/projects/ia64/etc/rc.d/ypset#5 integrate .. //depot/projects/ia64/etc/rc.d/ypupdated#4 integrate .. //depot/projects/ia64/etc/rc.d/ypxfrd#5 integrate .. //depot/projects/ia64/etc/rc.shutdown#8 integrate .. //depot/projects/ia64/etc/sendmail/Makefile#10 integrate .. //depot/projects/ia64/gnu/usr.bin/cvs/lib/config.h.proto#2 integrate .. //depot/projects/ia64/lib/libc/locale/setlocale.c#8 integrate .. //depot/projects/ia64/lib/libc/locale/setlocale.h#4 integrate .. //depot/projects/ia64/lib/libc/locale/setrunelocale.c#7 integrate .. //depot/projects/ia64/lib/libmilter/Makefile#3 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_attr_get_np.c#3 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_cancel.c#9 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_getschedparam.c#3 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_info.c#4 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_join.c#6 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_kern.c#24 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_mutex_prioceiling.c#3 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_sig.c#15 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_sigaction.c#5 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_sigmask.c#5 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_sigpending.c#5 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_sigsuspend.c#7 integrate .. //depot/projects/ia64/lib/libsm/Makefile#3 integrate .. //depot/projects/ia64/lib/libsmdb/Makefile#4 integrate .. //depot/projects/ia64/lib/libsmutil/Makefile#4 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_cancel.c#6 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_detach.c#5 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_exit.c#8 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_gc.c#8 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_init.c#8 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_join.c#9 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_kern.c#9 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_mutex.c#13 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_private.h#9 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_spinlock.c#6 integrate .. //depot/projects/ia64/libexec/mail.local/Makefile#3 integrate .. //depot/projects/ia64/libexec/smrsh/Makefile#3 integrate .. //depot/projects/ia64/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#102 integrate .. //depot/projects/ia64/sbin/ipfw/ipfw.8#22 integrate .. //depot/projects/ia64/sbin/ipfw/ipfw2.c#20 integrate .. //depot/projects/ia64/share/doc/psd/21.ipc/3.t#3 integrate .. //depot/projects/ia64/share/doc/psd/21.ipc/4.t#2 integrate .. //depot/projects/ia64/share/doc/smm/08.sendmailop/Makefile#3 integrate .. //depot/projects/ia64/share/examples/etc/make.conf#33 integrate .. //depot/projects/ia64/share/man/man4/divert.4#4 integrate .. //depot/projects/ia64/share/man/man5/Makefile#13 integrate .. //depot/projects/ia64/share/man/man5/config.5#1 branch .. //depot/projects/ia64/share/man/man5/make.conf.5#37 integrate .. //depot/projects/ia64/share/man/man5/utmp.5#6 integrate .. //depot/projects/ia64/share/man/man7/build.7#7 integrate .. //depot/projects/ia64/share/man/man7/security.7#7 integrate .. //depot/projects/ia64/share/sendmail/Makefile#5 integrate .. //depot/projects/ia64/share/syscons/keymaps/norwegian.iso.kbd#2 integrate .. //depot/projects/ia64/sys/alpha/alpha/pmap.c#35 integrate .. //depot/projects/ia64/sys/amd64/amd64/pmap.c#10 integrate .. //depot/projects/ia64/sys/conf/NOTES#56 integrate .. //depot/projects/ia64/sys/conf/files#85 integrate .. //depot/projects/ia64/sys/dev/acpica/acpi_isab.c#1 branch .. //depot/projects/ia64/sys/dev/pci/isa_pci.c#4 integrate .. //depot/projects/ia64/sys/dev/sound/pci/ich.c#15 integrate .. //depot/projects/ia64/sys/dev/sound/pcm/feeder.c#11 integrate .. //depot/projects/ia64/sys/dev/sound/pcm/feeder.h#3 integrate .. //depot/projects/ia64/sys/dev/usb/umct.c#3 integrate .. //depot/projects/ia64/sys/dev/wi/if_wi_pccard.c#22 integrate .. //depot/projects/ia64/sys/geom/geom_dump.c#22 integrate .. //depot/projects/ia64/sys/i386/i386/pmap.c#49 integrate .. //depot/projects/ia64/sys/i386/i386/sys_machdep.c#17 integrate .. //depot/projects/ia64/sys/i386/i386/vm_machdep.c#27 integrate .. //depot/projects/ia64/sys/isa/isa_common.c#9 integrate .. //depot/projects/ia64/sys/isa/isavar.h#4 integrate .. //depot/projects/ia64/sys/isa/psm.c#16 integrate .. //depot/projects/ia64/sys/kern/sched_ule.c#22 integrate .. //depot/projects/ia64/sys/kern/subr_param.c#9 integrate .. //depot/projects/ia64/sys/kern/sys_pipe.c#33 integrate .. //depot/projects/ia64/sys/modules/acpi/Makefile#10 integrate .. //depot/projects/ia64/sys/net/if_vlan.c#14 integrate .. //depot/projects/ia64/sys/net/if_vlan_var.h#7 integrate .. //depot/projects/ia64/sys/netinet/ip_fw2.c#23 integrate .. //depot/projects/ia64/sys/pci/if_dc.c#39 integrate .. //depot/projects/ia64/sys/pci/if_dcreg.h#13 integrate .. //depot/projects/ia64/sys/sparc64/sparc64/pmap.c#41 integrate .. //depot/projects/ia64/sys/sys/pipe.h#5 integrate .. //depot/projects/ia64/sys/vm/vm_pageout.c#42 integrate .. //depot/projects/ia64/usr.bin/calendar/calendars/calendar.freebsd#33 integrate .. //depot/projects/ia64/usr.bin/login/login.1#4 integrate .. //depot/projects/ia64/usr.bin/vacation/Makefile#4 integrate .. //depot/projects/ia64/usr.sbin/config/config.y#4 integrate .. //depot/projects/ia64/usr.sbin/daemon/daemon.c#2 integrate .. //depot/projects/ia64/usr.sbin/editmap/Makefile#2 integrate .. //depot/projects/ia64/usr.sbin/fdcontrol/fdcontrol.8#4 integrate .. //depot/projects/ia64/usr.sbin/jail/jail.c#7 integrate .. //depot/projects/ia64/usr.sbin/lpr/lpd/lpd.c#6 integrate .. //depot/projects/ia64/usr.sbin/mailstats/Makefile#3 integrate .. //depot/projects/ia64/usr.sbin/mailwrapper/mailwrapper.c#3 integrate .. //depot/projects/ia64/usr.sbin/makemap/Makefile#3 integrate .. //depot/projects/ia64/usr.sbin/mtest/mtest.c#2 integrate .. //depot/projects/ia64/usr.sbin/pppctl/pppctl.c#2 integrate .. //depot/projects/ia64/usr.sbin/praliases/Makefile#3 integrate .. //depot/projects/ia64/usr.sbin/repquota/repquota.8#5 integrate .. //depot/projects/ia64/usr.sbin/repquota/repquota.c#7 integrate .. //depot/projects/ia64/usr.sbin/rtprio/rtprio.c#2 integrate .. //depot/projects/ia64/usr.sbin/rwhod/rwhod.8#4 integrate .. //depot/projects/ia64/usr.sbin/rwhod/rwhod.c#4 integrate .. //depot/projects/ia64/usr.sbin/sendmail/Makefile#8 integrate .. //depot/projects/ia64/usr.sbin/timed/timed/timed.c#3 integrate .. //depot/projects/ia64/usr.sbin/timed/timedc/cmds.c#5 integrate Differences ... ==== //depot/projects/ia64/MAINTAINERS#32 (text+ko) ==== @@ -1,4 +1,4 @@ -$FreeBSD: src/MAINTAINERS,v 1.72 2003/06/16 16:12:05 obrien Exp $ +$FreeBSD: src/MAINTAINERS,v 1.73 2003/07/07 03:54:02 gshapiro Exp $ subsystem login notes ----------------------------- @@ -86,7 +86,6 @@ stating your preferences here instead. bin/dd/Makefile:MAINTAINER= green@FreeBSD.org -bin/rmail/Makefile:MAINTAINER= gshapiro@FreeBSD.org contrib/cvs/FREEBSD-upgrade:MAINTAINER= peter@FreeBSD.org games/fortune/datfiles/Makefile:MAINTAINER= jkh@FreeBSD.org gnu/usr.bin/cvs/Makefile:MAINTAINER= peter@FreeBSD.org @@ -98,14 +97,8 @@ gnu/usr.bin/cvs/libdiff/Makefile:MAINTAINER= peter@FreeBSD.org gnu/usr.bin/man/apropos/Makefile:MAINTAINER= wosch@FreeBSD.org lib/libc/posix1e/Makefile.inc:MAINTAINER= rwatson@FreeBSD.org -lib/libmilter/Makefile:MAINTAINER= gshapiro@FreeBSD.org -lib/libsm/Makefile:MAINTAINER= gshapiro@FreeBSD.org -lib/libsmdb/Makefile:MAINTAINER= gshapiro@FreeBSD.org -lib/libsmutil/Makefile:MAINTAINER= gshapiro@FreeBSD.org lib/libusbhid/Makefile:MAINTAINER= n_hibma@FreeBSD.ORG lib/libz/Makefile:MAINTAINER= peter@FreeBSD.org -libexec/mail.local/Makefile:MAINTAINER= gshapiro@FreeBSD.org -libexec/smrsh/Makefile:MAINTAINER= gshapiro@FreeBSD.org sbin/dhclient/Makefile.inc:MAINTAINER= murray@FreeBSD.org sbin/ffsinfo/Makefile:MAINTAINER= tomsoft@FreeBSD.ORG, chm@FreeBSD.ORG sbin/growfs/Makefile:MAINTAINER= tomsoft@FreeBSD.ORG, chm@FreeBSD.ORG @@ -114,8 +107,6 @@ sbin/ipfstat/Makefile:MAINTAINER= darrenr@freebsd.org sbin/ipmon/Makefile:MAINTAINER= darrenr@freebsd.org sbin/ipnat/Makefile:MAINTAINER= darrenr@freebsd.org -share/doc/smm/08.sendmailop/Makefile:MAINTAINER= gshapiro@FreeBSD.org -share/sendmail/Makefile:MAINTAINER= gshapiro@FreeBSD.org sys/boot/i386/cdboot/Makefile:MAINTAINER= jhb@FreeBSD.org sys/boot/i386/pxeldr/Makefile:MAINTAINER= jhb@FreeBSD.org sys/compat/svr4/Makefile:MAINTAINER= newton@freebsd.org @@ -146,18 +137,12 @@ sys/modules/uscanner/Makefile:MAINTAINER= n_hibma@freebsd.org usr.bin/chat/Makefile:MAINTAINER= peter@freebsd.org usr.bin/locate/Makefile:MAINTAINER= wosch@FreeBSD.org -usr.bin/vacation/Makefile:MAINTAINER= gshapiro@FreeBSD.org -usr.sbin/editmap/Makefile:MAINTAINER= gshapiro@FreeBSD.org usr.sbin/inetd/Makefile:MAINTAINER= dwmalone@FreeBSD.org usr.sbin/ipftest/Makefile:MAINTAINER= darrenr@freebsd.org usr.sbin/ipresend/Makefile:MAINTAINER= darrenr@freebsd.org usr.sbin/ipsend/Makefile:MAINTAINER= darrenr@freebsd.org usr.sbin/iptest/Makefile:MAINTAINER= darrenr@freebsd.org -usr.sbin/mailstats/Makefile:MAINTAINER= gshapiro@FreeBSD.org -usr.sbin/makemap/Makefile:MAINTAINER= gshapiro@FreeBSD.org usr.sbin/ntp/doc/Makefile:MAINTAINER= sheldonh@FreeBSD.org usr.sbin/pppd/Makefile:MAINTAINER= peter@freebsd.org usr.sbin/pppstats/Makefile:MAINTAINER= peter@freebsd.org -usr.sbin/praliases/Makefile:MAINTAINER= gshapiro@FreeBSD.org -usr.sbin/sendmail/Makefile:MAINTAINER= gshapiro@FreeBSD.org usr.sbin/zic/Makefile:MAINTAINER= wollman@FreeBSD.org ==== //depot/projects/ia64/Makefile.inc1#72 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/Makefile.inc1,v 1.375 2003/07/04 14:27:06 ru Exp $ +# $FreeBSD: src/Makefile.inc1,v 1.377 2003/07/08 01:24:21 obrien Exp $ # # Make command line options: # -DNO_KERBEROS Do not build Heimdal (Kerberos 5) @@ -373,11 +373,11 @@ # installcheck: .if !defined(NO_SENDMAIL) - @if ! `grep -q '^smmsp:' /etc/passwd`; then \ + @if ! `id -u smmsp > /dev/null`; then \ echo "ERROR: Required smmsp user is missing, see /usr/src/UPDATING."; \ false; \ fi - @if ! `grep -q '^smmsp:' /etc/group`; then \ + @if ! `id -g smmsp > /dev/null`; then \ echo "ERROR: Required smmsp group is missing, see /usr/src/UPDATING."; \ false; \ fi @@ -667,7 +667,7 @@ _yacc= usr.bin/yacc .endif -.if exists(${.CURDIR}/rescue) && defined(RESCUE) && \ +.if defined(RESCUE) && \ ${BOOTSTRAPPING} < 501100 _crunchgen= usr.sbin/crunch/crunchgen .endif @@ -752,7 +752,7 @@ _btxld= usr.sbin/btxld .endif -.if (exists(${.CURDIR}/rescue) && defined(RESCUE) || \ +.if (defined(RESCUE) || \ defined(RELEASEDIR)) && \ (${TARGET_ARCH} != ${MACHINE_ARCH} || ${BOOTSTRAPPING} < 501101) _crunchide= usr.sbin/crunch/crunchide ==== //depot/projects/ia64/bin/rmail/Makefile#4 (text+ko) ==== @@ -1,7 +1,5 @@ # @(#)Makefile 8.1 (Berkeley) 5/31/93 -# $FreeBSD: src/bin/rmail/Makefile,v 1.17 2002/02/17 22:05:05 gshapiro Exp $ - -MAINTAINER= gshapiro@FreeBSD.org +# $FreeBSD: src/bin/rmail/Makefile,v 1.18 2003/07/07 03:54:02 gshapiro Exp $ SENDMAIL_DIR=${.CURDIR}/../../contrib/sendmail .PATH: ${SENDMAIL_DIR}/rmail ==== //depot/projects/ia64/contrib/cvs/src/main.c#4 (text+ko) ==== @@ -10,7 +10,7 @@ * Credit to Dick Grune, Vrije Universiteit, Amsterdam, for writing * the shell-script CVS system that this is based on. * - * $FreeBSD: src/contrib/cvs/src/main.c,v 1.22 2002/12/02 03:17:48 peter Exp $ + * $FreeBSD: src/contrib/cvs/src/main.c,v 1.23 2003/07/07 19:15:36 obrien Exp $ */ #include @@ -110,7 +110,7 @@ { { "add", "ad", "new", add, CVS_CMD_MODIFIES_REPOSITORY | CVS_CMD_USES_WORK_DIR }, { "admin", "adm", "rcs", admin, CVS_CMD_MODIFIES_REPOSITORY | CVS_CMD_USES_WORK_DIR }, - { "annotate", "ann", NULL, annotate, CVS_CMD_USES_WORK_DIR }, + { "annotate", "ann", "blame", annotate, CVS_CMD_USES_WORK_DIR }, { "checkout", "co", "get", checkout, 0 }, { "commit", "ci", "com", commit, CVS_CMD_MODIFIES_REPOSITORY | CVS_CMD_USES_WORK_DIR }, { "diff", "di", "dif", diff, CVS_CMD_USES_WORK_DIR }, ==== //depot/projects/ia64/contrib/groff/tmac/doc.tmac#7 (text+ko) ==== @@ -2696,10 +2696,8 @@ . nr doc-display-ft-stack\n[doc-display-depth] \n[.f] . nr doc-display-ps-stack\n[doc-display-depth] \n[.ps] . -. ie t \{\ -. nop \*[doc-Li-font]\c +. ie t \ . ta T 9n -. \} . el \ . ta T 8n . nf @@ -2747,6 +2745,10 @@ . if !\n[doc-is-compact] \ . sp \n[doc-display-vertical]u . +. if "\*[doc-display-type-stack\n[doc-display-depth]]"literal" \ +. if t \ +. nop \*[doc-Li-font]\c +. . if !\n[cR] \ . ne 2v . ==== //depot/projects/ia64/etc/Makefile#31 (text+ko) ==== @@ -1,5 +1,5 @@ # from: @(#)Makefile 5.11 (Berkeley) 5/21/91 -# $FreeBSD: src/etc/Makefile,v 1.314 2003/06/10 01:22:30 ache Exp $ +# $FreeBSD: src/etc/Makefile,v 1.315 2003/07/06 19:23:31 gshapiro Exp $ .if !defined(NO_SENDMAIL) SUBDIR= sendmail @@ -45,8 +45,12 @@ PPPCNF= ppp.conf +.if defined(NO_SENDMAIL) +ETCMAIL=mailer.conf aliases +.else ETCMAIL=Makefile README mailer.conf access.sample virtusertable.sample \ mailertable.sample aliases +.endif # Special top level files for FreeBSD FREEBSD=COPYRIGHT ==== //depot/projects/ia64/etc/mail/Makefile#13 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/etc/mail/Makefile,v 1.33 2003/02/08 21:55:31 gshapiro Exp $ +# $FreeBSD: src/etc/mail/Makefile,v 1.35 2003/07/06 19:17:04 gshapiro Exp $ # # This Makefile provides an easy way to generate the configuration # file and database maps for the sendmail(8) daemon. @@ -44,16 +44,19 @@ # This Makefile uses `.mc' as the default MTA .mc file. This # can be changed by defining SENDMAIL_MC in /etc/make.conf, e.g.: # -# SENDMAIL_MC=/etc/mail/myconfig.mc +# SENDMAIL_MC=/etc/mail/myconfig.mc # # If '.mc' does not exist, it is created using 'freebsd.mc' # as a template. # -# It also uses 'freebsd.submit.mc' as the default mail submission .mc file. -# This can be changed by defining SENDMAIL_SUBMIT_MC in /etc/make.conf, -# e.g.: +# It also uses '.submit.mc' as the default mail submission .mc +# file. This can be changed by defining SENDMAIL_SUBMIT_MC in +# /etc/make.conf, e.g.: +# +# SENDMAIL_SUBMIT_MC=/etc/mail/mysubmit.mc # -# SENDMAIL_SUBMIT_MC=/etc/mail/mysubmit.mc +# If '.submit.mc' does not exist, it is created using +# 'freebsd.submit.mc' as a template. # ------------------------------------------------------------------------ # # The Makefile knows about the following maps: @@ -69,7 +72,13 @@ cp freebsd.mc ${SENDMAIL_MC} .endif -SENDMAIL_SUBMIT_MC?= freebsd.submit.mc +.ifndef SENDMAIL_SUBMIT_MC +SENDMAIL_SUBMIT_MC!= hostname +SENDMAIL_SUBMIT_MC:= ${SENDMAIL_SUBMIT_MC}.submit.mc + +${SENDMAIL_SUBMIT_MC}: + cp freebsd.submit.mc ${SENDMAIL_SUBMIT_MC} +.endif INSTALL_CF= ${SENDMAIL_MC:R}.cf @@ -105,7 +114,7 @@ SENDMAIL_MAP_PERMS?= 0640 # Set a reasonable default -.MAIN: all +.MAIN: all # # ------------------------------------------------------------------------ @@ -131,16 +140,16 @@ # .for _f in ${SENDMAIL_MAP_SRC} .if (exists(${_f}.sample) && !exists(${_f})) -${_f}: ${_f}.sample +${_f}: ${_f}.sample sed -e 's/^/#/' < ${.OODATE} > ${.TARGET} .endif -${_f}.db: ${_f} +${_f}.db: ${_f} ${MAKEMAP} ${SENDMAIL_MAP_TYPE} ${.TARGET} < ${.OODATE} chmod ${SENDMAIL_MAP_PERMS} ${.TARGET} .endfor -userdb.db: userdb +userdb.db: userdb ${MAKEMAP} btree ${.TARGET} < ${.OODATE} chmod ${SENDMAIL_MAP_PERMS} ${.TARGET} @@ -153,18 +162,18 @@ # # M4(1) is used to generate the .cf file from the .mc file. # -.SUFFIXES: .cf .mc +.SUFFIXES: .cf .mc -.mc.cf: ${M4FILES} +.mc.cf: ${M4FILES} ${M4} -D_CF_DIR_=${SENDMAIL_CF_DIR}/ ${SENDMAIL_M4_FLAGS} \ - ${SENDMAIL_CF_DIR}/m4/cf.m4 ${@:R}.mc > ${.TARGET} + ${SENDMAIL_CF_DIR}/m4/cf.m4 ${@:R}.mc > ${.TARGET} # # Aliases are handled separately since they normally reside in /etc # and can be rebuild without the help of makemap. # .for _f in ${SENDMAIL_ALIASES} -${_f}.db: ${_f} +${_f}.db: ${_f} ${SENDMAIL} -bi -OAliasFile=${.ALLSRC} chmod ${SENDMAIL_MAP_PERMS} ${.TARGET} .endfor @@ -173,13 +182,13 @@ # ------------------------------------------------------------------------ # -all: cf maps aliases +all: cf maps aliases clean: depend: -cf: ${INSTALL_CF} ${INSTALL_SUBMIT_CF} +cf: ${INSTALL_CF} ${INSTALL_SUBMIT_CF} .ifdef SENDMAIL_SET_USER_ID install: install-cf @@ -187,13 +196,13 @@ install: install-cf install-submit-cf .endif -install-cf: ${INSTALL_CF} +install-cf: ${INSTALL_CF} .if ${INSTALL_CF} != /etc/mail/sendmail.cf ${INSTALL} -m ${SHAREMODE} ${INSTALL_CF} /etc/mail/sendmail.cf .endif -install-submit-cf: ${INSTALL_SUBMIT_CF} +install-submit-cf: ${INSTALL_SUBMIT_CF} .ifdef SENDMAIL_SET_USER_ID @echo ">>> ERROR: You should not create a submit.cf file if you are using a" @echo " set-user-ID sendmail binary (SENDMAIL_SET_USER_ID is set" @@ -205,9 +214,9 @@ .endif .endif -aliases: ${SENDMAIL_ALIASES:%=%.db} +aliases: ${SENDMAIL_ALIASES:%=%.db} -maps: ${SENDMAIL_MAP_OBJ} +maps: ${SENDMAIL_MAP_OBJ} start start-mta start-mspq: @if [ -r ${SENDMAIL_START_SCRIPT} ]; then \ ==== //depot/projects/ia64/etc/rc.d/ypbind#6 (text+ko) ==== @@ -1,7 +1,7 @@ #!/bin/sh # # $NetBSD: ypbind,v 1.5 2002/03/22 04:34:01 thorpej Exp $ -# $FreeBSD: src/etc/rc.d/ypbind,v 1.5 2003/01/24 00:37:52 mtm Exp $ +# $FreeBSD: src/etc/rc.d/ypbind,v 1.6 2003/07/09 03:21:03 mtm Exp $ # # PROVIDE: ypbind @@ -40,7 +40,7 @@ _domain=`domainname` if [ -z "$_domain" ]; then - warn "domainname(1) is not set." + warn "NIS domainname(1) is not set." return 1 fi } ==== //depot/projects/ia64/etc/rc.d/yppasswdd#6 (text+ko) ==== @@ -1,7 +1,7 @@ #!/bin/sh # # $NetBSD: yppasswdd,v 1.6 2002/03/22 04:34:01 thorpej Exp $ -# $FreeBSD: src/etc/rc.d/yppasswdd,v 1.6 2003/01/24 00:37:52 mtm Exp $ +# $FreeBSD: src/etc/rc.d/yppasswdd,v 1.7 2003/07/09 03:21:03 mtm Exp $ # # PROVIDE: yppasswdd @@ -46,7 +46,7 @@ _domain=`domainname` if [ -z "$_domain" ]; then - warn "domainname(1) is not set." + warn "NIS domainname(1) is not set." return 1 fi } ==== //depot/projects/ia64/etc/rc.d/ypserv#7 (text+ko) ==== @@ -1,7 +1,7 @@ #!/bin/sh # # $NetBSD: ypserv,v 1.5 2000/09/19 13:04:39 lukem Exp $ -# $FreeBSD: src/etc/rc.d/ypserv,v 1.6 2003/01/24 00:37:52 mtm Exp $ +# $FreeBSD: src/etc/rc.d/ypserv,v 1.7 2003/07/09 03:21:03 mtm Exp $ # # PROVIDE: ypserv @@ -40,7 +40,7 @@ _domain=`domainname` if [ -z "$_domain" ]; then - warn "domainname(1) is not set." + warn "NIS domainname(1) is not set." return 1 fi ==== //depot/projects/ia64/etc/rc.d/ypset#5 (text+ko) ==== @@ -1,6 +1,6 @@ #!/bin/sh # -# $FreeBSD: src/etc/rc.d/ypset,v 1.4 2003/01/24 00:37:52 mtm Exp $ +# $FreeBSD: src/etc/rc.d/ypset,v 1.5 2003/07/09 03:21:03 mtm Exp $ # # PROVIDE: ypset @@ -31,7 +31,7 @@ _domain=`domainname` if [ -z "$_domain" ]; then - warn "domainname(1) is not set." + warn "NIS domainname(1) is not set." return 1 fi } ==== //depot/projects/ia64/etc/rc.d/ypupdated#4 (text+ko) ==== @@ -1,6 +1,6 @@ #!/bin/sh # -# $FreeBSD: src/etc/rc.d/ypupdated,v 1.3 2002/10/12 10:31:31 schweikh Exp $ +# $FreeBSD: src/etc/rc.d/ypupdated,v 1.4 2003/07/09 03:21:03 mtm Exp $ # # PROVIDE: ypupdated @@ -29,7 +29,7 @@ _domain=`domainname` if [ -z "$_domain" ]; then - warn "domainname(1) is not set." + warn "NIS domainname(1) is not set." return 1 fi } ==== //depot/projects/ia64/etc/rc.d/ypxfrd#5 (text+ko) ==== @@ -1,6 +1,6 @@ #!/bin/sh # -# $FreeBSD: src/etc/rc.d/ypxfrd,v 1.4 2003/01/24 00:37:52 mtm Exp $ +# $FreeBSD: src/etc/rc.d/ypxfrd,v 1.5 2003/07/09 03:21:03 mtm Exp $ # # PROVIDE: ypxfrd @@ -31,7 +31,7 @@ _domain=`domainname` if [ -z "$_domain" ]; then - warn "domainname(1) is not set." + warn "NIS domainname(1) is not set." return 1 fi } ==== //depot/projects/ia64/etc/rc.shutdown#8 (text+ko) ==== @@ -24,7 +24,7 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $FreeBSD: src/etc/rc.shutdown,v 1.24 2002/09/19 20:14:50 gordon Exp $ +# $FreeBSD: src/etc/rc.shutdown,v 1.25 2003/07/08 02:52:14 mtm Exp $ # # Site-specific closing actions for daemons run by init on shutdown, @@ -43,66 +43,10 @@ PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin export HOME PATH -# If there is a global system configuration file, suck it in. -# XXX - It's only purpose is to catch rc_ng="YES". -# -if [ -r /etc/defaults/rc.conf ]; then - . /etc/defaults/rc.conf - source_rc_confs -elif [ -r /etc/rc.conf ]; then - . /etc/rc.conf -fi +. /etc/rc.subr -case ${rc_ng} in -[Yy][Ee][Ss]) - . /etc/rc.subr - - load_rc_config 'XXX' - - # If requested, start a watchdog timer in the background which - # will terminate rc.shutdown if rc.shutdown doesn't complete - # within the specified time. - # - _rcshutdown_watchdog= - if [ -n "$rcshutdown_timeout" ]; then - debug "Initiating watchdog timer." - sleep $rcshutdown_timeout && ( - _msg="$rcshutdown_timeout second watchdog" \ - " timeout expired. Shutdown terminated." - logger -t rc.shutdown "$_msg" - echo "$_msg" - date - kill -KILL $$ >/dev/null 2>&1 - ) & - _rcshutdown_watchdog=$! - fi +load_rc_config 'XXX' - # Determine the shutdown order of the /etc/rc.d scripts, - # and perform the operation - # XXX - rcorder(8) with multiple -k switches works as a logical OR, - # so, we can't do this: rcorder -k shutdown -k FreeBSD. - # - files=`eval grep -l \'^# KEYWORD:.*FreeBSD\' \`rcorder -k shutdown /etc/rc.d/* 2>/dev/null\`` - - for _rc_elem in `reverse_list $files`; do - debug "run_rc_script $_rc_elem stop" - run_rc_script $_rc_elem stop - done - - # Terminate the background watchdog timer (if it is running) - # - if [ -n "$_rcshutdown_watchdog" ]; then - kill -TERM $_rcshutdown_watchdog >/dev/null 2>&1 - fi - - echo '.' - exit 0 - ;; -*) - # fall-through to the old rc scripts - ;; -esac - # reverse_list list # print the list in reverse order # @@ -115,93 +59,44 @@ echo $_revlist } -# Write some entropy so the rebooting /dev/random can reseed +# If requested, start a watchdog timer in the background which +# will terminate rc.shutdown if rc.shutdown doesn't complete +# within the specified time. # -case ${entropy_file} in -[Nn][Oo] | '') - ;; -*) - echo -n 'Writing entropy file:' - rm -f ${entropy_file} - oumask=`umask` - umask 077 - if touch ${entropy_file} ; then - entropy_file_confirmed="${entropy_file}" - else - # Try this as a reasonable alternative for read-only - # roots, diskless workstations, etc. - rm -f /var/db/entropy - if touch /var/db/entropy ; then - entropy_file_confirmed=/var/db/entropy - fi - fi - case ${entropy_file_confirmed} in - '') - echo ' ERROR - entropy file write failed' - ;; - *) - dd if=/dev/random of=${entropy_file_confirmed} \ - bs=4096 count=1 2> /dev/null - echo '.' - ;; - esac - umask ${oumask} - ;; -esac +_rcshutdown_watchdog= +if [ -n "$rcshutdown_timeout" ]; then + debug "Initiating watchdog timer." + sleep $rcshutdown_timeout && ( + _msg="$rcshutdown_timeout second watchdog" \ + " timeout expired. Shutdown terminated." + logger -t rc.shutdown "$_msg" + echo "$_msg" + date + kill -KILL $$ >/dev/null 2>&1 + ) & + _rcshutdown_watchdog=$! +fi -# Check if /var/db/mounttab is clean. -case $1 in -reboot) - if [ -f /var/db/mounttab ]; then - rpc.umntall - fi - ;; -esac +# Determine the shutdown order of the /etc/rc.d scripts, +# and perform the operation +# XXX - rcorder(8) with multiple -k switches works as a logical OR, +# so, we can't do this: rcorder -k shutdown -k FreeBSD. +# +files=`eval grep -l \'^# KEYWORD:.*FreeBSD\' \`rcorder -k shutdown /etc/rc.d/* 2>/dev/null\`` -echo -n 'Shutting down daemon processes:' +for _rc_elem in `reverse_list $files`; do + debug "run_rc_script $_rc_elem stop" + run_rc_script $_rc_elem stop +done -# for each valid dir in $local_startup, search for init scripts matching *.sh -case ${local_startup} in -[Nn][Oo] | '') - ;; -*) - slist="" - if [ -z "${script_name_sep}" ]; then - script_name_sep=" " - fi - for dir in ${local_startup}; do - if [ -d "${dir}" ]; then - for script in ${dir}/*.sh; do - slist="${slist}${script_name_sep}${script}" - done - fi - done - script_save_sep="$IFS" - IFS="${script_name_sep}" - for script in `reverse_list ${slist}`; do - if [ -x "${script}" ]; then - (set -T - trap 'exit 1' 2 - ${script} stop) - fi - done - IFS="${script_save_sep}" - echo '.' - ;; -esac +# Terminate the background watchdog timer (if it is running) +# +if [ -n "$_rcshutdown_watchdog" ]; then + kill -TERM $_rcshutdown_watchdog >/dev/null 2>&1 +fi # Insert other shutdown procedures here -# Saving firewall state tables should be done last -echo -n 'Saving firewall state tables:' - -# Save IP-filter state tables -case ${ipfs_enable} in -[Yy][Ee][Ss]) - echo -n ' ipfs' - ${ipfs_program:-/sbin/ipfs} -W ${ipfs_flags} - ;; -esac echo '.' exit 0 ==== //depot/projects/ia64/etc/sendmail/Makefile#10 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.19 (Berkeley) 1/14/97 -# $FreeBSD: src/etc/sendmail/Makefile,v 1.21 2002/07/29 09:40:06 ru Exp $ +# $FreeBSD: src/etc/sendmail/Makefile,v 1.25 2003/07/07 03:19:46 gshapiro Exp $ M4= m4 CHMOD= chmod @@ -13,127 +13,86 @@ # this is overkill, but.... M4FILES!= find ${CFDIR} -type f -name '*.m4' -print -.SUFFIXES: .mc .cf +.SUFFIXES: .mc .cf -.mc.cf: ${M4FILES} +.mc.cf: ${M4FILES} ${RM} ${.TARGET} - (cd ${.CURDIR} && \ - ${M4} -D_CF_DIR_=${CFDIR}/ ${SENDMAIL_M4_FLAGS} \ - ${CFDIR}/m4/cf.m4 ${@:R}.mc) > ${.TARGET} + ${M4} -D_CF_DIR_=${CFDIR}/ ${SENDMAIL_M4_FLAGS} \ + ${CFDIR}/m4/cf.m4 ${.IMPSRC} > ${.TARGET} ${CHMOD} ${ROMODE} ${.TARGET} +DEST_CF= ${DESTDIR}/etc/mail/sendmail.cf +DEST_SUBMIT_CF= ${DESTDIR}/etc/mail/submit.cf + ALL= freebsd.cf -CLEANFILES+= freebsd.cf # Local SENDMAIL_MC or SENDMAIL_CF may be set in /etc/make.conf. -# Warning! If set, this causes 'make install' to always copy it +# Warning! If set, this causes 'make install' to always copy it # over /etc/mail/sendmail.cf!!! # Caveat emptor! Be sure you want this before you enable it. .if defined(SENDMAIL_MC) -INSTALL_CF= ${SENDMAIL_MC:R}.cf -.else -.if defined(SENDMAIL_CF) +INSTALL_CF= ${SENDMAIL_MC:T:R}.cf +ALL+= ${INSTALL_CF} +${INSTALL_CF}: ${SENDMAIL_MC} +.elif defined(SENDMAIL_CF) INSTALL_CF= ${SENDMAIL_CF} .endif -.endif -.ifndef SENDMAIL_SET_USER_ID -.if defined(SENDMAIL_SUBMIT_MC) -INSTALL_SUBMIT_CF=${SENDMAIL_SUBMIT_MC:R}.cf +.if !defined(SENDMAIL_SET_USER_ID) && defined(SENDMAIL_SUBMIT_MC) +INSTALL_SUBMIT_CF= ${SENDMAIL_SUBMIT_MC:T:R}.cf +ALL+= ${INSTALL_SUBMIT_CF} +${INSTALL_SUBMIT_CF}: ${SENDMAIL_SUBMIT_MC} .endif -.endif -DEST_CF= ${DESTDIR}/etc/mail/sendmail.cf -DEST_SUBMIT_CF= ${DESTDIR}/etc/mail/submit.cf - -ALL+= ${INSTALL_CF} ${INSTALL_SUBMIT_CF} - -# Make sure we don't remove /etc/mail/sendmail.cf on make clean -# since this will break a running system during a buildworld. -.if defined(INSTALL_CF) -.if ${INSTALL_CF} != ${DEST_CF} -CLEANFILES+= ${INSTALL_CF} -.endif -.endif - -.if defined(INSTALL_SUBMIT_CF) -.if ${INSTALL_SUBMIT_CF} != ${DEST_SUBMIT_CF} -CLEANFILES+= ${INSTALL_SUBMIT_CF} -.endif -.endif - -# Additional .cf files to build +# Additional .cf files to build. .if defined(SENDMAIL_ADDITIONAL_MC) -SENDMAIL_ADDITIONAL_CF= ${SENDMAIL_ADDITIONAL_MC:S/.mc$/.cf/g} +SENDMAIL_ADDITIONAL_CF= ${SENDMAIL_ADDITIONAL_MC:T:S/.mc$/.cf/} ALL+= ${SENDMAIL_ADDITIONAL_CF} -CLEANFILES+= ${SENDMAIL_ADDITIONAL_CF} +.for mc in ${SENDMAIL_ADDITIONAL_MC} +${mc:T:R}.cf: ${mc} +.endfor .endif -all: ${ALL} +CLEANFILES= ${ALL} -depend: +all: ${ALL} -install: ${INSTALL_CF} ${INSTALL_SUBMIT_CF} -.if (defined(SENDMAIL_MC) && defined(SENDMAIL_CF)) - @echo ">>> ERROR: Both SENDMAIL_CF and SENDMAIL_MC can not be set" +install distribution: ${ALL} +.if defined(SENDMAIL_MC) && defined(SENDMAIL_CF) + @echo ">>> ERROR: Both SENDMAIL_MC and SENDMAIL_CF cannot be set" @false .endif -.if defined(INSTALL_CF) -.if ${INSTALL_CF} != ${DEST_CF} - ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 ${INSTALL_CF} \ - ${DEST_CF} +.if make(distribution) + ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \ + ${.CURDIR}/freebsd.mc freebsd.cf ${DESTDIR}/etc/mail + ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 \ + ${CFDIR}/cf/submit.mc ${DESTDIR}/etc/mail/freebsd.submit.mc + ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 \ + ${CFDIR}/cf/submit.cf ${DESTDIR}/etc/mail/freebsd.submit.cf + ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 \ + ${SMDIR}/helpfile ${DESTDIR}/etc/mail + ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 640 \ + /dev/null ${DESTDIR}/var/log/sendmail.st .endif -.endif -.if defined(SENDMAIL_ADDITIONAL_CF) +.if defined(INSTALL_CF) && ${INSTALL_CF} != ${DEST_CF} + ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \ + ${INSTALL_CF} ${DEST_CF} +.elif make(distribution) ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \ - ${SENDMAIL_ADDITIONAL_CF} ${DESTDIR}/etc/mail + freebsd.cf ${DEST_CF} .endif -.ifndef SENDMAIL_SET_USER_ID -.if defined(INSTALL_SUBMIT_CF) -.if ${INSTALL_SUBMIT_CF} != ${DEST_SUBMIT_CF} +.if defined(SENDMAIL_ADDITIONAL_CF) && make(install) ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \ - ${INSTALL_SUBMIT_CF} ${DEST_SUBMIT_CF} + ${SENDMAIL_ADDITIONAL_CF} ${DESTDIR}/etc/mail .endif -.endif -.endif - -# Helper for src/etc/Makefile -distribution: freebsd.cf freebsd.mc ${INSTALL_CF} ${INSTALL_SUBMIT_CF} -.if (defined(SENDMAIL_MC) && defined(SENDMAIL_CF)) - @echo ">>> ERROR: Both SENDMAIL_CF and SENDMAIL_MC can not be set" - @false -.endif - ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 ${.CURDIR}/freebsd.mc \ - ${DESTDIR}/etc/mail/freebsd.mc - ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 freebsd.cf \ - ${DESTDIR}/etc/mail/freebsd.cf -.if defined(INSTALL_CF) -.if ${INSTALL_CF} != ${DEST_CF} - ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 ${INSTALL_CF} \ - ${DEST_CF} -.endif -.else - ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 freebsd.cf \ - ${DEST_CF} -.endif - ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 ${CFDIR}/cf/submit.mc \ - ${DESTDIR}/etc/mail/freebsd.submit.mc - ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 ${CFDIR}/cf/submit.cf \ - ${DESTDIR}/etc/mail/freebsd.submit.cf -.ifndef SENDMAIL_SET_USER_ID -.if defined(INSTALL_SUBMIT_CF) -.if ${INSTALL_SUBMIT_CF} != ${DEST_SUBMIT_CF} +.if !defined(SENDMAIL_SET_USER_ID) +.if defined(INSTALL_SUBMIT_CF) && ${INSTALL_SUBMIT_CF} != ${DEST_SUBMIT_CF} ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \ - ${INSTALL_SUBMIT_CF} ${DEST_SUBMIT_CF} + ${INSTALL_SUBMIT_CF} ${DEST_SUBMIT_CF} +.elif make(distribution) + ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 \ + ${CFDIR}/cf/submit.cf ${DEST_SUBMIT_CF} .endif -.else - ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 ${CFDIR}/cf/submit.cf \ - ${DEST_SUBMIT_CF} -.endif .endif - ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 ${SMDIR}/helpfile \ - ${DESTDIR}/etc/mail/helpfile - ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 640 /dev/null \ - ${DESTDIR}/var/log/sendmail.st .include ==== //depot/projects/ia64/gnu/usr.bin/cvs/lib/config.h.proto#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/gnu/usr.bin/cvs/lib/config.h.proto,v 1.16 2003/01/21 23:00:36 peter Exp $ */ +/* $FreeBSD: src/gnu/usr.bin/cvs/lib/config.h.proto,v 1.17 2003/07/07 19:13:39 obrien Exp $ */ /* config.h. Generated by configure. */ /* config.h.in. Generated from configure.in by autoheader. */ @@ -38,7 +38,9 @@ absolute path to an executable, use the shell to find where the editor actually is. This allows sites with /usr/bin/vi or /usr/ucb/vi to work equally well (assuming that their PATH is reasonable). */ +#ifndef EDITOR_DFLT #define EDITOR_DFLT "vi" +#endif /* Define to enable encryption support. */ /* #undef ENCRYPTION */ ==== //depot/projects/ia64/lib/libc/locale/setlocale.c#8 (text+ko) ==== @@ -39,7 +39,7 @@ static char sccsid[] = "@(#)setlocale.c 8.1 (Berkeley) 7/4/93"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/locale/setlocale.c,v 1.46 2003/06/25 22:42:33 phantom Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/locale/setlocale.c,v 1.47 2003/07/06 02:03:37 ache Exp $"); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Jul 9 00:08:14 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D9D8C37B404; Wed, 9 Jul 2003 00:08:13 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 756E237B401 for ; Wed, 9 Jul 2003 00:08:13 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 565B643FA3 for ; Wed, 9 Jul 2003 00:08:12 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h6978C0U003484 for ; Wed, 9 Jul 2003 00:08:12 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h6978BWQ003481 for perforce@freebsd.org; Wed, 9 Jul 2003 00:08:11 -0700 (PDT) Date: Wed, 9 Jul 2003 00:08:11 -0700 (PDT) Message-Id: <200307090708.h6978BWQ003481@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 34232 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 07:08:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=34232 Change 34232 by marcel@marcel_nfs on 2003/07/09 00:07:31 IFC @34224 Affected files ... .. //depot/projects/uart/alpha/alpha/pmap.c#4 integrate .. //depot/projects/uart/amd64/amd64/pmap.c#4 integrate .. //depot/projects/uart/conf/NOTES#2 integrate .. //depot/projects/uart/conf/files#4 integrate .. //depot/projects/uart/dev/acpica/acpi_isab.c#1 branch .. //depot/projects/uart/dev/pci/isa_pci.c#2 integrate .. //depot/projects/uart/dev/sound/pci/ich.c#4 integrate .. //depot/projects/uart/dev/sound/pcm/feeder.c#2 integrate .. //depot/projects/uart/dev/sound/pcm/feeder.h#2 integrate .. //depot/projects/uart/dev/usb/umct.c#3 integrate .. //depot/projects/uart/dev/wi/if_wi_pccard.c#2 integrate .. //depot/projects/uart/geom/geom_dump.c#2 integrate .. //depot/projects/uart/i386/i386/pmap.c#4 integrate .. //depot/projects/uart/i386/i386/sys_machdep.c#2 integrate .. //depot/projects/uart/isa/isa_common.c#2 integrate .. //depot/projects/uart/isa/isavar.h#2 integrate .. //depot/projects/uart/isa/psm.c#3 integrate .. //depot/projects/uart/kern/sched_ule.c#3 integrate .. //depot/projects/uart/kern/subr_param.c#2 integrate .. //depot/projects/uart/kern/sys_pipe.c#2 integrate .. //depot/projects/uart/modules/acpi/Makefile#2 integrate .. //depot/projects/uart/net/if_vlan.c#3 integrate .. //depot/projects/uart/net/if_vlan_var.h#2 integrate .. //depot/projects/uart/netinet/ip_fw2.c#3 integrate .. //depot/projects/uart/pci/if_dc.c#3 integrate .. //depot/projects/uart/pci/if_dcreg.h#2 integrate .. //depot/projects/uart/sparc64/sparc64/pmap.c#4 integrate .. //depot/projects/uart/sys/pipe.h#2 integrate .. //depot/projects/uart/vm/vm_pageout.c#3 integrate Differences ... ==== //depot/projects/uart/alpha/alpha/pmap.c#4 (text+ko) ==== @@ -148,7 +148,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.129 2003/07/03 20:18:00 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.130 2003/07/06 20:32:42 alc Exp $"); #include #include @@ -993,7 +993,7 @@ if (m->wire_count == 0) { vm_page_busy(m); vm_page_free_zero(m); - --cnt.v_wire_count; + atomic_subtract_int(&cnt.v_wire_count, 1); } return 1; } @@ -1181,7 +1181,7 @@ #endif p->wire_count--; - cnt.v_wire_count--; + atomic_subtract_int(&cnt.v_wire_count, 1); vm_page_free_zero(p); vm_page_unlock_queues(); return 1; ==== //depot/projects/uart/amd64/amd64/pmap.c#4 (text+ko) ==== @@ -39,7 +39,7 @@ * SUCH DAMAGE. * * from: @(#)pmap.c 7.7 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.419 2003/07/03 20:18:01 alc Exp $ + * $FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.420 2003/07/08 19:40:34 alc Exp $ */ /*- * Copyright (c) 2003 Networks Associates Technology, Inc. @@ -2119,7 +2119,7 @@ ptepa += NBPDR; pde++; } - pmap_invalidate_all(kernel_pmap); + pmap_invalidate_all(pmap); } } ==== //depot/projects/uart/conf/NOTES#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1157 2003/06/28 05:47:34 scottl Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1161 2003/07/07 21:19:04 wollman Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -456,7 +456,7 @@ # The `ether' device provides generic code to handle # Ethernets; it is MANDATORY when an Ethernet device driver is # configured or token-ring is enabled. -# The 'wlan' device provides generic code to support 802.11 +# The `wlan' device provides generic code to support 802.11 # drivers, including host AP mode; it is MANDATORY for the wi # driver and will eventually be required by all 802.11 drivers. # The `fddi' device provides generic code to support FDDI. @@ -674,13 +674,13 @@ # One of these is mandatory: options FFS #Fast filesystem options NFSCLIENT #Network File System -options NFSSERVER #Network File System # The rest are optional: options CD9660 #ISO 9660 filesystem options FDESCFS #File descriptor filesystem options HPFS #OS/2 File system options MSDOSFS #MS DOS File System (FAT, FAT32) +options NFSSERVER #Network File System options NTFS #NT File System options NULLFS #NULL filesystem #options NWFS #NetWare filesystem @@ -727,8 +727,8 @@ # # In order to manage swap, the system must reserve bitmap space that # scales with the largest mounted swap device multiplied by NSWAPDEV, -# irregardless of whether other swap devices exist or not. So it -# is not a good idea to make this value too large. +# irrespective of whether other swap devices exist. So it is not a +# good idea to make this value too large. options NSWAPDEV=5 # Disk quotas are supported when this option is enabled. @@ -848,14 +848,15 @@ # device drivers. The host adapters are listed in the ISA and PCI # device configuration sections below. # -# Beginning with FreeBSD 2.0.5 you can wire down your SCSI devices so -# that a given bus, target, and LUN always come on line as the same -# device unit. In earlier versions the unit numbers were assigned -# in the order that the devices were probed on the SCSI bus. This -# means that if you removed a disk drive, you may have had to rewrite -# your /etc/fstab file, and also that you had to be careful when adding -# a new disk as it may have been probed earlier and moved your device -# configuration around. +# It is possible to wire down your SCSI devices so that a given bus, +# target, and LUN always come on line as the same device unit. In +# earlier versions the unit numbers were assigned in the order that +# the devices were probed on the SCSI bus. This means that if you +# removed a disk drive, you may have had to rewrite your /etc/fstab +# file, and also that you had to be careful when adding a new disk +# as it may have been probed earlier and moved your device configuration +# around. (See also option GEOM_VOL for a different solution to this +# problem.) # This old behavior is maintained as the default behavior. The unit # assignment begins with the first non-wired down unit for a device ==== //depot/projects/uart/conf/files#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.801 2003/06/28 06:12:41 sam Exp $ +# $FreeBSD: src/sys/conf/files,v 1.802 2003/07/08 18:59:32 jhb Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -241,6 +241,7 @@ dev/acpica/acpi_cmbat.c optional acpi dev/acpica/acpi_cpu.c optional acpi dev/acpica/acpi_ec.c optional acpi +dev/acpica/acpi_isab.c optional acpi dev/acpica/acpi_lid.c optional acpi dev/acpica/acpi_pci.c optional acpi pci dev/acpica/acpi_pci_link.c optional acpi pci ==== //depot/projects/uart/dev/pci/isa_pci.c#2 (text+ko) ==== @@ -27,7 +27,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/pci/isa_pci.c,v 1.7 2002/10/30 19:55:06 iedowse Exp $ + * $FreeBSD: src/sys/dev/pci/isa_pci.c,v 1.8 2003/07/08 18:56:58 jhb Exp $ */ /* @@ -42,6 +42,7 @@ #include #include +#include #include #include @@ -54,7 +55,7 @@ }; static int isab_probe(device_t dev); -static int isab_attach(device_t dev); +static int pci_isab_attach(device_t dev); static int isab_detach(device_t dev); static int isab_resume(device_t dev); static int isab_suspend(device_t dev); @@ -62,7 +63,7 @@ static device_method_t isab_methods[] = { /* Device interface */ DEVMETHOD(device_probe, isab_probe), - DEVMETHOD(device_attach, isab_attach), + DEVMETHOD(device_attach, pci_isab_attach), DEVMETHOD(device_detach, isab_detach), DEVMETHOD(device_shutdown, bus_generic_shutdown), DEVMETHOD(device_suspend, isab_suspend), @@ -86,8 +87,6 @@ sizeof(struct isab_softc), }; -static devclass_t isab_devclass; - DRIVER_MODULE(isab, pci, isab_driver, isab_devclass, 0, 0); /* @@ -155,21 +154,17 @@ } static int -isab_attach(device_t dev) +pci_isab_attach(device_t dev) { - device_t child; struct isab_softc *sc = device_get_softc(dev); int error, rid; /* * Attach an ISA bus. Note that we can only have one ISA bus. */ - child = device_add_child(dev, "isa", 0); - if (child != NULL) { - error = bus_generic_attach(dev); - if (error) - return (error); - } + error = isab_attach(dev); + if (error) + return (error); switch (pci_get_devid(dev)) { case 0x71108086: /* Intel 82371AB */ ==== //depot/projects/uart/dev/sound/pci/ich.c#4 (text+ko) ==== @@ -32,7 +32,7 @@ #include #include -SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/ich.c,v 1.30 2003/07/06 03:11:06 cg Exp $"); +SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/ich.c,v 1.31 2003/07/06 23:54:00 cg Exp $"); /* -------------------------------------------------------------------- */ @@ -43,6 +43,7 @@ #define SIS7012ID 0x70121039 /* SiS 7012 needs special handling */ #define ICH4ID 0x24c58086 /* ICH4 needs special handling too */ +#define ICH5ID 0x24d58086 /* ICH5 needs to be treated as ICH4 */ /* buffer descriptor */ struct ich_desc { @@ -577,8 +578,8 @@ stat = ich_rd(sc, ICH_REG_GLOB_STA, 4); if ((stat & ICH_GLOB_STA_PCR) == 0) { - /* ICH4 may fail when busmastering is enabled. Continue */ - if (pci_get_devid(sc->dev) != ICH4ID) { + /* ICH4/ICH5 may fail when busmastering is enabled. Continue */ + if ((pci_get_devid(sc->dev) != ICH4ID) && (pci_get_devid(sc->dev) != ICH5ID)) { return ENXIO; } } @@ -628,7 +629,11 @@ case ICH4ID: device_set_desc(dev, "Intel ICH4 (82801DB)"); - return 0; + return -1000; /* allow a better driver to override us */ + + case ICH5ID: + device_set_desc(dev, "Intel ICH5 (82801EB)"); + return -1000; /* allow a better driver to override us */ case SIS7012ID: device_set_desc(dev, "SiS 7012"); @@ -682,15 +687,15 @@ * By default, ich4 has NAMBAR and NABMBAR i/o spaces as * read-only. Need to enable "legacy support", by poking into * pci config space. The driver should use MMBAR and MBBAR, - * but doing so will mess things up here. ich4 has enough new - * features it warrants it's own driver. + * but doing so will mess things up here. ich4/5 have enough new + * features to warrant a seperate driver. */ - if (pci_get_devid(dev) == ICH4ID) { + if ((pci_get_devid(dev) == ICH4ID) || (pci_get_devid(dev) == ICH5ID)) { pci_write_config(dev, PCIR_ICH_LEGACY, ICH_LEGACY_ENABLE, 1); } /* - * Enable bus master. On ich4 this may prevent the detection of + * Enable bus master. On ich4/5 this may prevent the detection of * the primary codec becoming ready in ich_init(). */ pci_enable_busmaster(dev); @@ -712,7 +717,7 @@ sc->bufsz = pcm_getbuffersize(dev, 4096, ICH_DEFAULT_BUFSZ, ICH_MAX_BUFSZ); if (bus_dma_tag_create(NULL, 8, 0, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, - NULL, NULL, sc->bufsz, 1, 0x3ffff, 0, + NULL, NULL, sc->bufsz, 1, 0x3ffff, 0, busdma_lock_mutex, &Giant, &sc->dmat) != 0) { device_printf(dev, "unable to create dma tag\n"); goto bad; @@ -811,7 +816,7 @@ struct sc_info *sc; int i; - sc = pcm_getdevinfo(dev); + sc = pcm_getdevinfo(dev); for (i = 0 ; i < 3; i++) { sc->ch[i].run_save = sc->ch[i].run; if (sc->ch[i].run) { ==== //depot/projects/uart/dev/sound/pcm/feeder.c#2 (text+ko) ==== @@ -28,7 +28,7 @@ #include "feeder_if.h" -SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pcm/feeder.c,v 1.29 2003/03/05 14:48:28 orion Exp $"); +SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pcm/feeder.c,v 1.30 2003/07/07 17:40:02 cg Exp $"); MALLOC_DEFINE(M_FEEDER, "feeder", "pcm feeder"); @@ -194,11 +194,13 @@ nf->source = c->feeder; + /* XXX we should use the lowest common denominator for align */ if (nf->align > 0) c->align += nf->align; else if (nf->align < 0 && c->align < -nf->align) c->align = -nf->align; - + if (c->feeder != NULL) + c->feeder->parent = nf; c->feeder = nf; return 0; @@ -372,6 +374,20 @@ return (c->direction == PCMDIR_REC)? best : c->feeder->desc->out; } +void +feeder_printchain(struct pcm_feeder *head) +{ + struct pcm_feeder *f; + + printf("feeder chain (head @%p)\n", head); + f = head; + while (f != NULL) { + printf("%s/%d @ %p\n", f->class->name, f->desc->idx, f); + f = f->source; + } + printf("[end]\n\n"); +} + /*****************************************************************************/ static int ==== //depot/projects/uart/dev/sound/pcm/feeder.h#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/sound/pcm/feeder.h,v 1.8 2002/01/26 22:13:24 cg Exp $ + * $FreeBSD: src/sys/dev/sound/pcm/feeder.h,v 1.9 2003/07/07 17:40:02 cg Exp $ */ struct pcm_feederdesc { @@ -57,6 +57,7 @@ int chn_addfeeder(struct pcm_channel *c, struct feeder_class *fc, struct pcm_feederdesc *desc); int chn_removefeeder(struct pcm_channel *c); struct pcm_feeder *chn_findfeeder(struct pcm_channel *c, u_int32_t type); +void feeder_printchain(struct pcm_feeder *head); #define FEEDER_DECLARE(feeder, palign, pdata) \ static struct feeder_class feeder ## _class = { \ ==== //depot/projects/uart/dev/usb/umct.c#3 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/usb/umct.c,v 1.2 2003/07/04 01:50:39 jmg Exp $ + * $FreeBSD: src/sys/dev/usb/umct.c,v 1.3 2003/07/07 18:01:23 wpaul Exp $ */ /* @@ -241,7 +241,10 @@ if (UE_GET_DIR(ed->bEndpointAddress) == UE_DIR_OUT) { ucom->sc_bulkout_no = ed->bEndpointAddress; - ucom->sc_obufsize = UGETW(ed->wMaxPacketSize); + if (uaa->product == USB_PRODUCT_MCT_SITECOM_USB232) + ucom->sc_obufsize = 16; /* device is broken */ + else + ucom->sc_obufsize = UGETW(ed->wMaxPacketSize); continue; } ==== //depot/projects/uart/dev/wi/if_wi_pccard.c#2 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/wi/if_wi_pccard.c,v 1.28 2003/06/28 06:17:26 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/wi/if_wi_pccard.c,v 1.29 2003/07/07 07:57:35 imp Exp $"); #include "opt_wi.h" @@ -137,6 +137,7 @@ PCMCIA_CARD(COREGA, WIRELESS_LAN_PCC_11, 0), PCMCIA_CARD(COREGA, WIRELESS_LAN_PCCA_11, 0), PCMCIA_CARD(COREGA, WIRELESS_LAN_PCCB_11, 0), + PCMCIA_CARD(COREGA, WIRELESS_LAN_PCCL_11, 0), PCMCIA_CARD(DLINK, DWL650H, 0), PCMCIA_CARD(ELSA, XI300_IEEE, 0), PCMCIA_CARD(ELSA, XI325_IEEE, 0), ==== //depot/projects/uart/geom/geom_dump.c#2 (text+ko) ==== @@ -34,7 +34,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/geom/geom_dump.c,v 1.28 2003/06/11 06:49:15 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/geom/geom_dump.c,v 1.29 2003/07/08 21:12:40 phk Exp $"); #include #include @@ -114,6 +114,8 @@ struct g_provider *pp; struct g_consumer *cp; + if (gp->flags & G_GEOM_WITHER) + return; LIST_FOREACH(pp, &gp->provider, provider) { sbuf_printf(sb, "%d %s %s %ju %u", level, gp->class->name, pp->name, (uintmax_t)pp->mediasize, pp->sectorsize); @@ -162,7 +164,9 @@ sbuf_printf(sb, "\t \n", cp->provider); sbuf_printf(sb, "\t r%dw%de%d\n", cp->acr, cp->acw, cp->ace); - if (cp->geom->dumpconf != NULL) { + if (cp->geom->flags & G_GEOM_WITHER) + ; + else if (cp->geom->dumpconf != NULL) { sbuf_printf(sb, "\t \n"); cp->geom->dumpconf(sb, "\t ", cp->geom, cp, NULL); sbuf_printf(sb, "\t \n"); @@ -182,7 +186,9 @@ sbuf_printf(sb, "\t %jd\n", (intmax_t)pp->mediasize); sbuf_printf(sb, "\t %u\n", pp->sectorsize); - if (pp->geom->dumpconf != NULL) { + if (pp->geom->flags & G_GEOM_WITHER) + ; + else if (pp->geom->dumpconf != NULL) { sbuf_printf(sb, "\t \n"); pp->geom->dumpconf(sb, "\t ", pp->geom, NULL, pp); sbuf_printf(sb, "\t \n"); @@ -201,7 +207,9 @@ sbuf_printf(sb, " \n", gp->class); sbuf_printf(sb, " %s\n", gp->name); sbuf_printf(sb, " %d\n", gp->rank); - if (gp->dumpconf != NULL) { + if (gp->flags & G_GEOM_WITHER) + sbuf_printf(sb, " \n"); + else if (gp->dumpconf != NULL) { sbuf_printf(sb, " \n"); gp->dumpconf(sb, "\t", gp, NULL, NULL); sbuf_printf(sb, " \n"); ==== //depot/projects/uart/i386/i386/pmap.c#4 (text+ko) ==== @@ -42,7 +42,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.416 2003/07/04 22:13:39 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.417 2003/07/08 19:40:35 alc Exp $"); /*- * Copyright (c) 2003 Networks Associates Technology, Inc. * All rights reserved. @@ -2264,7 +2264,7 @@ ptepa += NBPDR; ptepindex += 1; } - pmap_invalidate_all(kernel_pmap); + pmap_invalidate_all(pmap); } } ==== //depot/projects/uart/i386/i386/sys_machdep.c#2 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/i386/sys_machdep.c,v 1.83 2003/06/15 00:31:23 davidxu Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/sys_machdep.c,v 1.84 2003/07/08 00:14:30 davidxu Exp $"); #include "opt_kstack_pages.h" #include "opt_mac.h" @@ -289,9 +289,7 @@ if (td->td_proc != curthread->td_proc) return; - mtx_lock_spin(&sched_lock); set_user_ldt(&td->td_proc->p_md); - mtx_unlock_spin(&sched_lock); } #endif @@ -462,9 +460,6 @@ #endif } else { mdp->md_ldt = pldt = new_ldt; -#ifdef SMP - mtx_unlock_spin(&sched_lock); -#endif } #ifdef SMP /* signal other cpus to reload ldt */ @@ -472,8 +467,8 @@ NULL, td); #else set_user_ldt(mdp); +#endif mtx_unlock_spin(&sched_lock); -#endif } descs_size = uap->num * sizeof(union descriptor); ==== //depot/projects/uart/isa/isa_common.c#2 (text+ko) ==== @@ -58,7 +58,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/isa/isa_common.c,v 1.35 2003/06/11 00:32:45 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/isa/isa_common.c,v 1.36 2003/07/08 18:56:58 jhb Exp $"); #include #include @@ -1117,3 +1117,20 @@ DRIVER_MODULE(isa, legacy, isa_driver, isa_devclass, 0, 0); #endif MODULE_VERSION(isa, 1); + +/* + * Code common to ISA bridges. + */ + +devclass_t isab_devclass; + +int +isab_attach(device_t dev) +{ + device_t child; + + child = device_add_child(dev, "isa", 0); + if (child != NULL) + return (bus_generic_attach(dev)); + return (ENXIO); +} ==== //depot/projects/uart/isa/isavar.h#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/isa/isavar.h,v 1.24 2002/10/15 00:02:51 jhb Exp $ + * $FreeBSD: src/sys/isa/isavar.h,v 1.25 2003/07/08 18:56:58 jhb Exp $ */ #ifndef _ISA_ISAVAR_H_ @@ -152,6 +152,9 @@ ISA_ACCESSOR(compatid, COMPATID, int) ISA_ACCESSOR(configattr, CONFIGATTR, int) +/* Device class for ISA bridges. */ +extern devclass_t isab_devclass; + extern intrmask_t isa_irq_pending(void); extern void isa_probe_children(device_t dev); @@ -164,6 +167,8 @@ extern int isa_dmastatus(int chan); extern int isa_dmastop(int chan); +int isab_attach(device_t dev); + #ifdef PC98 #include ==== //depot/projects/uart/isa/psm.c#3 (text+ko) ==== @@ -59,7 +59,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/isa/psm.c,v 1.59 2003/07/01 14:41:16 mikeh Exp $"); +__FBSDID("$FreeBSD: src/sys/isa/psm.c,v 1.60 2003/07/07 05:40:13 mikeh Exp $"); #include "opt_psm.h" @@ -1040,6 +1040,10 @@ /* * NOTE: some controllers appears to hang the `keyboard' when the aux * port doesn't exist and `PSMC_RESET_DEV' is issued. + * + * Attempt to reset the controller twice -- this helps + * pierce through some KVM switches. The second reset + * is non-fatal. */ if (!reset_aux_dev(sc->kbdc)) { recover_from_error(sc->kbdc); @@ -1047,6 +1051,11 @@ if (verbose) printf("psm%d: failed to reset the aux device.\n", unit); endprobe(ENXIO); + } else if (!reset_aux_dev(sc->kbdc)) { + recover_from_error(sc->kbdc); + if (verbose >= 2) + printf("psm%d: failed to reset the aux device (2).\n", + unit); } } ==== //depot/projects/uart/kern/sched_ule.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/sched_ule.c,v 1.51 2003/07/04 19:59:00 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/sched_ule.c,v 1.53 2003/07/08 06:19:40 jeff Exp $"); #include #include @@ -237,7 +237,7 @@ int sched_pickcpu(void); /* Operations on per processor queues */ -static struct kse * kseq_choose(struct kseq *kseq); +static struct kse * kseq_choose(struct kseq *kseq, int steal); static void kseq_setup(struct kseq *kseq); static void kseq_add(struct kseq *kseq, struct kse *ke); static void kseq_rem(struct kseq *kseq, struct kse *ke); @@ -455,7 +455,7 @@ { struct kse *ke; - ke = kseq_choose(from); + ke = kseq_choose(from, 1); runq_remove(ke->ke_runq, ke); ke->ke_state = KES_THREAD; kseq_rem(from, ke); @@ -465,8 +465,14 @@ } #endif +/* + * Pick the highest priority task we have and return it. If steal is 1 we + * will return kses that have been denied slices due to their nice being too + * low. In the future we should prohibit stealing interrupt threads as well. + */ + struct kse * -kseq_choose(struct kseq *kseq) +kseq_choose(struct kseq *kseq, int steal) { struct kse *ke; struct runq *swap; @@ -492,7 +498,7 @@ * TIMESHARE kse group and its nice was too far out * of the range that receives slices. */ - if (ke->ke_slice == 0) { + if (ke->ke_slice == 0 && steal == 0) { runq_remove(ke->ke_runq, ke); sched_slice(ke); ke->ke_runq = kseq->ksq_next; @@ -528,7 +534,9 @@ static void sched_setup(void *dummy) { +#ifdef SMP int i; +#endif slice_min = (hz/100); /* 10ms */ slice_max = (hz/7); /* ~140ms */ @@ -1060,7 +1068,7 @@ */ kseq = KSEQ_SELF(); #if 0 - if (kseq->ksq_load > 1 && (nke = kseq_choose(kseq)) != NULL) { + if (kseq->ksq_load > 1 && (nke = kseq_choose(kseq, 0)) != NULL) { if (sched_strict && nke->ke_thread->td_priority < td->td_priority) td->td_flags |= TDF_NEEDRESCHED; @@ -1157,7 +1165,7 @@ #else kseq->ksq_load > 1 && #endif - (ke = kseq_choose(kseq)) != NULL && + (ke = kseq_choose(kseq, 0)) != NULL && ke->ke_thread->td_priority < td->td_priority) curthread->td_flags |= TDF_NEEDRESCHED; mtx_unlock_spin(&sched_lock); @@ -1175,7 +1183,7 @@ retry: #endif kseq = KSEQ_SELF(); - ke = kseq_choose(kseq); + ke = kseq_choose(kseq, 0); if (ke) { runq_remove(ke->ke_runq, ke); ke->ke_state = KES_THREAD; ==== //depot/projects/uart/kern/subr_param.c#2 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/subr_param.c,v 1.56 2003/06/11 00:56:57 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/subr_param.c,v 1.58 2003/07/08 18:59:21 silby Exp $"); #include "opt_param.h" #include "opt_maxusers.h" @@ -77,6 +77,9 @@ int nswbuf; int maxswzone; /* max swmeta KVA storage */ int maxbcache; /* max buffer cache KVA storage */ +int maxpipes; /* Limit on # of pipes */ +int maxpipekva; /* Limit on pipe KVA */ +int maxpipekvawired; /* Limit on wired pipe KVA */ u_quad_t maxtsiz; /* max text size */ u_quad_t dfldsiz; /* initial data size limit */ u_quad_t maxdsiz; /* max data size */ @@ -132,6 +135,23 @@ init_param2(long physpages) { + /* Kernel map size */ + int kmempages, kmemtunable; + kmempages = VM_KMEM_SIZE / PAGE_SIZE; +#if defined(VM_KMEM_SIZE_SCALE) + if ((physpages / VM_KMEM_SIZE_SCALE) > kmempages) + kmempages = (physpages / VM_KMEM_SIZE_SCALE); +#endif + +#if defined(VM_KMEM_SIZE_MAX) + if (kmempages * PAGE_SIZE >= VM_KMEM_SIZE_MAX) + kmempages = VM_KMEM_SIZE_MAX / PAGE_SIZE; +#endif + kmemtunable = 0; + TUNABLE_INT_FETCH("kern.vm.kmem.size", &kmemtunable); + if (kmemtunable != 0) + kmempages = kmemtunable / PAGE_SIZE; + kmempages = min(physpages, kmempages); /* Base parameters */ maxusers = MAXUSERS; TUNABLE_INT_FETCH("kern.maxusers", &maxusers); @@ -161,6 +181,23 @@ maxfilesperproc = (maxfiles * 9) / 10; /* + * Limit number of pipes to a reasonable fraction of kmap entries, + * pageable pipe memory usage to 2.5% of the kernel map, and wired + * pipe memory usage to 1% of the same. Ensure that all have + * reasonable floors. (See sys_pipe.c for more info.) + */ + maxpipes = kmempages / 5; + maxpipekva = (kmempages / 40) * PAGE_SIZE; + maxpipekvawired = (kmempages / 100) * PAGE_SIZE; + + if (maxpipes < 128) + maxpipes = 128; + if (maxpipekva < 512 * 1024) + maxpipekva = 512 * 1024; + if (maxpipekvawired < 512 * 1024) + maxpipekvawired = 512 * 1024; + + /* * Cannot be changed after boot. */ nbuf = NBUF; ==== //depot/projects/uart/kern/sys_pipe.c#2 (text+ko) ==== @@ -45,10 +45,32 @@ * happen for small transfers so that the system will not spend all of * its time context switching. PIPE_SIZE is constrained by the * amount of kernel virtual memory. + * + * In order to limit the resource use of pipes, three sysctls exist: + * + * kern.ipc.maxpipes - A limit on the total number of pipes in the system. + * Note that since pipes are bidirectional, the effective value is this + * number divided by two. + * + * kern.ipc.maxpipekva - This value limits the amount of pageable memory that + * can be used by pipes. Whenever the amount in use exceeds this value, + * all new pipes will be SMALL_PIPE_SIZE in size, rather than PIPE_SIZE. + * Big pipe creation will be limited as well. + * + * kern.ipc.maxpipekvawired - This value limits the amount of memory that may + * be wired in order to facilitate direct copies using page flipping. + * Whenever this value is exceeded, pipes will fall back to using regular + * copies. + * + * These values are autotuned in subr_param.c. + * + * Memory usage may be monitored through the sysctls + * kern.ipc.pipes, kern.ipc.pipekva and kern.ipc.pipekvawired. + * */ #include -__FBSDID("$FreeBSD: src/sys/kern/sys_pipe.c,v 1.137 2003/06/18 18:16:39 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/sys_pipe.c,v 1.138 2003/07/08 04:02:31 silby Exp $"); #include "opt_mac.h" @@ -68,6 +90,7 @@ #include #include #include +#include #include #include #include @@ -148,25 +171,30 @@ #define MAXPIPESIZE (2*PIPE_SIZE/3) /* - * Maximum amount of kva for pipes -- this is kind-of a soft limit, but - * is there so that on large systems, we don't exhaust it. - */ -#define MAXPIPEKVA (8*1024*1024) - -/* - * Limit for direct transfers, we cannot, of course limit - * the amount of kva for pipes in general though. - */ -#define LIMITPIPEKVA (16*1024*1024) - -/* * Limit the number of "big" pipes */ #define LIMITBIGPIPES 32 static int nbigpipe; +static int amountpipes; static int amountpipekva; +static int amountpipekvawired; +SYSCTL_DECL(_kern_ipc); + +SYSCTL_INT(_kern_ipc, OID_AUTO, maxpipes, CTLFLAG_RW, + &maxpipes, 0, ""); +SYSCTL_INT(_kern_ipc, OID_AUTO, maxpipekva, CTLFLAG_RW, + &maxpipekva, 0, "Pipe KVA limit"); +SYSCTL_INT(_kern_ipc, OID_AUTO, maxpipekvawired, CTLFLAG_RW, + &maxpipekvawired, 0, "Pipe KVA wired limit"); +SYSCTL_INT(_kern_ipc, OID_AUTO, pipes, CTLFLAG_RD, + &amountpipes, 0, ""); +SYSCTL_INT(_kern_ipc, OID_AUTO, pipekva, CTLFLAG_RD, + &amountpipekva, 0, "Pipe KVA usage"); +SYSCTL_INT(_kern_ipc, OID_AUTO, pipekvawired, CTLFLAG_RD, + &amountpipekvawired, 0, "Pipe wired KVA usage"); + static void pipeinit(void *dummy __unused); static void pipeclose(struct pipe *cpipe); static void pipe_free_kmem(struct pipe *cpipe); @@ -303,11 +331,19 @@ struct vm_object *object; caddr_t buffer; int npages, error; + static int curfail = 0; + static struct timeval lastfail; GIANT_REQUIRED; KASSERT(cpipe->pipe_mtxp == NULL || !mtx_owned(PIPE_MTX(cpipe)), ("pipespace: pipe mutex locked")); + if (amountpipes > maxpipes) { + if (ppsratecheck(&lastfail, &curfail, 1)) + printf("kern.maxpipes exceeded, please see tuning(7).\n"); + return (ENOMEM); + } + npages = round_page(size)/PAGE_SIZE; /* * Create an object, I don't like the idea of paging to/from @@ -339,6 +375,7 @@ cpipe->pipe_buffer.in = 0; cpipe->pipe_buffer.out = 0; cpipe->pipe_buffer.cnt = 0; + atomic_add_int(&amountpipes, 1); atomic_add_int(&amountpipekva, cpipe->pipe_buffer.size); return (0); } @@ -385,7 +422,13 @@ #endif cpipe->pipe_mtxp = NULL; /* avoid pipespace assertion */ - error = pipespace(cpipe, PIPE_SIZE); + /* + * Reduce to 1/4th pipe size if we're over our global max. + */ + if (amountpipekva > maxpipekva) + error = pipespace(cpipe, SMALL_PIPE_SIZE); + else + error = pipespace(cpipe, PIPE_SIZE); if (error) return (error); @@ -654,8 +697,11 @@ int j; vm_page_lock_queues(); - for (j = 0; j < i; j++) + for (j = 0; j < i; j++) { vm_page_unwire(wpipe->pipe_map.ms[j], 1); + atomic_subtract_int(&amountpipekvawired, + PAGE_SIZE); + } vm_page_unlock_queues(); return (EFAULT); } @@ -663,6 +709,7 @@ m = PHYS_TO_VM_PAGE(paddr); vm_page_lock_queues(); vm_page_wire(m); + atomic_add_int(&amountpipekvawired, PAGE_SIZE); vm_page_unlock_queues(); wpipe->pipe_map.ms[i] = m; } @@ -719,7 +766,7 @@ if (wpipe->pipe_map.kva) { pmap_qremove(wpipe->pipe_map.kva, wpipe->pipe_map.npages); - if (amountpipekva > MAXPIPEKVA) { + if (amountpipekva > maxpipekva) { vm_offset_t kva = wpipe->pipe_map.kva; wpipe->pipe_map.kva = 0; kmem_free(kernel_map, kva, @@ -729,8 +776,10 @@ } } vm_page_lock_queues(); - for (i = 0; i < wpipe->pipe_map.npages; i++) + for (i = 0; i < wpipe->pipe_map.npages; i++) { vm_page_unwire(wpipe->pipe_map.ms[i], 1); + atomic_subtract_int(&amountpipekvawired, PAGE_SIZE); + } vm_page_unlock_queues(); wpipe->pipe_map.npages = 0; } @@ -904,6 +953,7 @@ * so. */ if ((uio->uio_resid > PIPE_SIZE) && + (amountpipekva < maxpipekva) && (nbigpipe < LIMITBIGPIPES) && (wpipe->pipe_state & PIPE_DIRECTW) == 0 && (wpipe->pipe_buffer.size <= PIPE_SIZE) && @@ -950,7 +1000,7 @@ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Jul 9 10:58:18 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 136F837B405; Wed, 9 Jul 2003 10:58:18 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id AC97437B401 for ; Wed, 9 Jul 2003 10:58:17 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id DA52343F93 for ; Wed, 9 Jul 2003 10:58:16 -0700 (PDT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h69HwG0U021049 for ; Wed, 9 Jul 2003 10:58:16 -0700 (PDT) (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h69HwGAB021046 for perforce@freebsd.org; Wed, 9 Jul 2003 10:58:16 -0700 (PDT) Date: Wed, 9 Jul 2003 10:58:16 -0700 (PDT) Message-Id: <200307091758.h69HwGAB021046@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 34250 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 17:58:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=34250 Change 34250 by jhb@jhb_laptop on 2003/07/09 10:58:01 First cut at adding generic pager support into ddb's output routines. Convert 'ps' to use this method. By the way, I think it would be a good idea if ps just showed procs and a separate 'show threads' command showed actual threads. This is how mach does things apparently. Affected files ... .. //depot/projects/smpng/sys/ddb/db_command.c#13 edit .. //depot/projects/smpng/sys/ddb/db_output.c#4 edit .. //depot/projects/smpng/sys/ddb/db_ps.c#21 edit .. //depot/projects/smpng/sys/ddb/ddb.h#8 edit Differences ... ==== //depot/projects/smpng/sys/ddb/db_command.c#13 (text+ko) ==== @@ -343,7 +343,9 @@ /* * Execute the command. */ + db_setup_paging(NULL, NULL, -1); (*cmd->fcn)(addr, have_addr, count, modif); + db_setup_paging(NULL, NULL, -1); if (cmd->flag & CS_SET_DOT) { /* ==== //depot/projects/smpng/sys/ddb/db_output.c#4 (text+ko) ==== @@ -62,6 +62,10 @@ #define NEXT_TAB(i) \ ((((i) + db_tab_stop_width) / db_tab_stop_width) * db_tab_stop_width) db_expr_t db_max_width = 79; /* output line width */ +static int db_newlines = 0; /* # lines this page */ +static int db_maxlines = -1; /* max lines per page */ +static db_page_calloutfcn_t *db_page_callout = NULL; +static void *db_page_callout_arg = NULL; static void db_putchar(int c, void *arg); @@ -98,6 +102,7 @@ int c; /* character to output */ void * arg; { + if (c > ' ' && c <= '~') { /* * Printing character. @@ -115,6 +120,14 @@ db_output_position = 0; db_last_non_space = 0; db_check_interrupt(); + if (db_maxlines > 0 && db_page_callout != NULL) { + db_newlines++; + if (db_newlines >= db_maxlines) { + db_maxlines = -1; + db_page_callout(db_page_callout_arg); + db_newlines = 0; + } + } } else if (c == '\r') { /* Return */ @@ -139,6 +152,56 @@ } /* + * Register callout for providing a pager for output. + */ +void +db_setup_paging(db_page_calloutfcn_t *callout, void *arg, int maxlines) +{ + + db_page_callout = callout; + db_page_callout_arg = arg; + db_maxlines = maxlines; +} + +/* + * A simple paging callout function. If the argument is not null, it + * points to an integer that will be set to 1 if the user asks to quit. + */ +void +db_simple_pager(void *arg) +{ + int c; + + db_printf("--More--\r"); + for (;;) { + c = cngetc(); + switch (c) { + case '\n': + /* Just one more line. */ + db_setup_paging(db_simple_pager, arg, 1); + return; + case ' ': + /* Another page. */ + db_setup_paging(db_simple_pager, arg, + DB_LINES_PER_PAGE); + return; + case 'q': + case 'Q': + case 'x': + case 'X': + /* Quit */ + if (arg != NULL) { + *(int *)arg = 1; + return; + } + /* FALLTHROUGH */ + default: + cnputc('\007'); + } + } +} + +/* * Return output position */ int ==== //depot/projects/smpng/sys/ddb/db_ps.c#21 (text+ko) ==== @@ -55,13 +55,13 @@ db_expr_t dummy3; char * dummy4; { - int np; - int nl = 0; volatile struct proc *p, *pp; volatile struct thread *td; char *state; + int np, quit; np = nprocs; + quit = 0; /* sx_slock(&allproc_lock); */ if (!LIST_EMPTY(&allproc)) @@ -69,32 +69,9 @@ else p = &proc0; + db_setup_paging(db_simple_pager, &quit, DB_LINES_PER_PAGE); db_printf(" pid proc addr uid ppid pgrp flag stat wmesg wchan cmd\n"); - while (--np >= 0) { - /* - * XXX just take 20 for now... - */ - if (nl++ >= 20) { - int c; - - db_printf("--More--"); - c = cngetc(); - db_printf("\r"); - /* - * A whole screenfull or just one line? - */ - switch (c) { - case '\n': /* just one line */ - nl = 20; - break; - case ' ': - nl = 0; /* another screenfull */ - break; - default: /* exit */ - db_printf("\n"); - return; - } - } + while (--np >= 0 && !quit) { if (p == NULL) { printf("oops, ran out of processes early!\n"); break; @@ -131,7 +108,8 @@ db_printf("(threaded) %s\n", p->p_comm); FOREACH_THREAD_IN_PROC(p, td) { dumpthread(p, td); - nl++; + if (quit) + break; } /* PROC_UNLOCK(p); */ @@ -145,6 +123,7 @@ static void dumpthread(volatile struct proc *p, volatile struct thread *td) { + if (p->p_flag & P_SA) db_printf( " thread %p ksegrp %p ", td, td->td_ksegrp); if (TD_ON_SLEEPQ(td)) { ==== //depot/projects/smpng/sys/ddb/ddb.h#8 (text+ko) ==== @@ -39,9 +39,13 @@ #include /* type definitions */ +#define DB_LINES_PER_PAGE 20 + typedef void db_cmdfcn_t(db_expr_t addr, boolean_t have_addr, db_expr_t count, char *modif); +typedef void db_page_calloutfcn_t(void *arg); + #define DB_COMMAND(cmd_name, func_name) \ DB_SET(cmd_name, func_name, db_cmd_set, 0, NULL) #define DB_SHOW_COMMAND(cmd_name, func_name) \ @@ -100,6 +104,8 @@ int db_readline(char *lstart, int lsize); void db_restart_at_pc(boolean_t watchpt); void db_set_watchpoints(void); +void db_setup_paging(db_page_calloutfcn_t *callout, void *arg, + int maxlines); void db_skip_to_eol(void); boolean_t db_stop_at_pc(boolean_t *is_breakpoint); #define db_strcpy strcpy @@ -139,6 +145,8 @@ db_cmdfcn_t vm_page_print; #endif +db_page_calloutfcn_t db_simple_pager; + /* Scare the user with backtrace of curthread to console. */ void db_print_backtrace(void); From owner-p4-projects@FreeBSD.ORG Wed Jul 9 11:58:35 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7B37337B404; Wed, 9 Jul 2003 11:58:34 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2E47737B401 for ; Wed, 9 Jul 2003 11:58:34 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B8BE343F75 for ; Wed, 9 Jul 2003 11:58:33 -0700 (PDT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h69IwX0U039860 for ; Wed, 9 Jul 2003 11:58:33 -0700 (PDT) (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h69IwXne039857 for perforce@freebsd.org; Wed, 9 Jul 2003 11:58:33 -0700 (PDT) Date: Wed, 9 Jul 2003 11:58:33 -0700 (PDT) Message-Id: <200307091858.h69IwXne039857@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 34256 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 18:58:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=34256 Change 34256 by jhb@jhb_laptop on 2003/07/09 11:58:07 - Add a newline when quitting to avoid trashing the db> prompt. - Disable the bell for bad keys for now. bells in ddb don't shut up right now. Affected files ... .. //depot/projects/smpng/sys/ddb/db_output.c#5 edit Differences ... ==== //depot/projects/smpng/sys/ddb/db_output.c#5 (text+ko) ==== @@ -192,11 +192,14 @@ /* Quit */ if (arg != NULL) { *(int *)arg = 1; + db_printf("\n"); return; } /* FALLTHROUGH */ default: +#if 0 cnputc('\007'); +#endif } } } From owner-p4-projects@FreeBSD.ORG Wed Jul 9 12:04:44 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6C37137B404; Wed, 9 Jul 2003 12:04:43 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id F2F8E37B401 for ; Wed, 9 Jul 2003 12:04:42 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9ADF143F85 for ; Wed, 9 Jul 2003 12:04:42 -0700 (PDT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h69J4g0U043632 for ; Wed, 9 Jul 2003 12:04:42 -0700 (PDT) (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h69J4gKV043629 for perforce@freebsd.org; Wed, 9 Jul 2003 12:04:42 -0700 (PDT) Date: Wed, 9 Jul 2003 12:04:42 -0700 (PDT) Message-Id: <200307091904.h69J4gKV043629@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 34258 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 19:04:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=34258 Change 34258 by jhb@jhb_laptop on 2003/07/09 12:04:05 Port show ktr to the simple pager. Affected files ... .. //depot/projects/smpng/sys/kern/kern_ktr.c#21 edit Differences ... ==== //depot/projects/smpng/sys/kern/kern_ktr.c#21 (text+ko) ==== @@ -267,9 +267,9 @@ DB_SHOW_COMMAND(ktr, db_ktr_all) { - int c, lines; - int all = 0; - + int c, quit; + + quit = 0; lines = NUM_LINES_PER_PAGE; tstate.cur = (ktr_idx - 1) & (KTR_ENTRIES - 1); tstate.first = -1; @@ -277,28 +277,16 @@ db_ktr_verbose = 1; else db_ktr_verbose = 0; - if (strcmp(modif, "a") == 0) - all = 1; - while (db_mach_vtrace()) - if (all) { - if (cncheckc() != -1) - return; - } else if (--lines == 0) { - db_printf("--More--"); - c = cngetc(); - db_printf("\r"); - switch (c) { - case '\n': /* one more line */ - lines = 1; + if (strcmp(modif, "a") == 0) { + while (cncheckc() != -1) + if (db_mach_vtrace() == 0) break; - case ' ': /* one more page */ - lines = NUM_LINES_PER_PAGE; + } else { + db_setup_paging(db_simple_pager, &quit, DB_LINES_PER_PAGE); + while (!quit) + if (db_mach_vtrace() == 0) break; - default: - db_printf("\n"); - return; - } - } + } } static int From owner-p4-projects@FreeBSD.ORG Wed Jul 9 12:12:54 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C203037B404; Wed, 9 Jul 2003 12:12:53 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 785BC37B401 for ; Wed, 9 Jul 2003 12:12:53 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1F18D43F75 for ; Wed, 9 Jul 2003 12:12:53 -0700 (PDT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h69JCq0U045489 for ; Wed, 9 Jul 2003 12:12:52 -0700 (PDT) (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h69JCq4e045483 for perforce@freebsd.org; Wed, 9 Jul 2003 12:12:52 -0700 (PDT) Date: Wed, 9 Jul 2003 12:12:52 -0700 (PDT) Message-Id: <200307091912.h69JCq4e045483@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 34259 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 19:12:54 -0000 http://perforce.freebsd.org/chv.cgi?CH=34259 Change 34259 by jhb@jhb_laptop on 2003/07/09 12:12:04 Port 'show pciregs' to the simple pager. Affected files ... .. //depot/projects/smpng/sys/dev/pci/pci.c#29 edit Differences ... ==== //depot/projects/smpng/sys/dev/pci/pci.c#29 (text+ko) ==== @@ -1274,19 +1274,19 @@ struct devlist *devlist_head; struct pci_conf *p; const char *name; - int i, error, none_count, nl; + int i, error, none_count, quit; none_count = 0; - nl = 0; /* get the head of the device queue */ devlist_head = &pci_devq; /* * Go through the list of devices and print out devices */ - for (error = 0, i = 0, + db_setup_paging(db_simple_pager, &quit, DB_LINES_PER_PAGE); + for (error = 0, i = 0, quit = 0, dinfo = STAILQ_FIRST(devlist_head); - (dinfo != NULL) && (error == 0) && (i < pci_numdevs); + (dinfo != NULL) && (error == 0) && (i < pci_numdevs) && !quit; dinfo = STAILQ_NEXT(dinfo, pci_links), i++) { /* Populate pd_name and pd_unit */ @@ -1295,31 +1295,6 @@ name = device_get_name(dinfo->cfg.dev); p = &dinfo->conf; - /* - * XXX just take 20 for now... - */ - if (nl++ == 20) { - int c; - - db_printf("--More--"); - c = cngetc(); - db_printf("\r"); - /* - * A whole screenfull or just one line? - */ - switch (c) { - case '\n': /* just one line */ - nl = 20; - break; - case ' ': - nl = 0; /* another screenfull */ - break; - default: /* exit */ - db_printf("\n"); - return; - } - } - db_printf("%s%d@pci%d:%d:%d:\tclass=0x%06x card=0x%08x " "chip=0x%08x rev=0x%02x hdr=0x%02x\n", (name && *name) ? name : "none", From owner-p4-projects@FreeBSD.ORG Wed Jul 9 12:13:56 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D803D37B404; Wed, 9 Jul 2003 12:13:55 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 72B0737B401 for ; Wed, 9 Jul 2003 12:13:55 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0A0B443F85 for ; Wed, 9 Jul 2003 12:13:55 -0700 (PDT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h69JDs0U046232 for ; Wed, 9 Jul 2003 12:13:54 -0700 (PDT) (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h69JDsU9046226 for perforce@freebsd.org; Wed, 9 Jul 2003 12:13:54 -0700 (PDT) Date: Wed, 9 Jul 2003 12:13:54 -0700 (PDT) Message-Id: <200307091913.h69JDsU9046226@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 34260 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 19:13:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=34260 Change 34260 by jhb@jhb_laptop on 2003/07/09 12:13:32 Compile. Affected files ... .. //depot/projects/smpng/sys/ddb/db_output.c#6 edit Differences ... ==== //depot/projects/smpng/sys/ddb/db_output.c#6 (text+ko) ==== @@ -195,9 +195,9 @@ db_printf("\n"); return; } +#if 0 /* FALLTHROUGH */ default: -#if 0 cnputc('\007'); #endif } From owner-p4-projects@FreeBSD.ORG Wed Jul 9 12:39:34 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EAFFF37B404; Wed, 9 Jul 2003 12:39:33 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8175E37B401 for ; Wed, 9 Jul 2003 12:39:33 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3298043FA3 for ; Wed, 9 Jul 2003 12:39:31 -0700 (PDT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h69JdV0U052738 for ; Wed, 9 Jul 2003 12:39:31 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h69JdSxA052735 for perforce@freebsd.org; Wed, 9 Jul 2003 12:39:28 -0700 (PDT) Date: Wed, 9 Jul 2003 12:39:28 -0700 (PDT) Message-Id: <200307091939.h69JdSxA052735@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Subject: PERFORCE change 34264 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 19:39:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=34264 Change 34264 by peter@peter_daintree on 2003/07/09 12:38:41 IFC @34262 Affected files ... .. //depot/projects/hammer/MAINTAINERS#10 integrate .. //depot/projects/hammer/Makefile#10 integrate .. //depot/projects/hammer/Makefile.inc1#23 integrate .. //depot/projects/hammer/bin/rmail/Makefile#2 integrate .. //depot/projects/hammer/bin/sh/alias.c#2 integrate .. //depot/projects/hammer/bin/sh/cd.c#2 integrate .. //depot/projects/hammer/bin/sh/exec.c#3 integrate .. //depot/projects/hammer/bin/sh/exec.h#2 integrate .. //depot/projects/hammer/bin/sh/expand.c#7 integrate .. //depot/projects/hammer/bin/sh/input.c#2 integrate .. //depot/projects/hammer/bin/sh/jobs.c#7 integrate .. //depot/projects/hammer/bin/sh/memalloc.c#3 integrate .. //depot/projects/hammer/bin/sh/nodes.c.pat#3 integrate .. //depot/projects/hammer/bin/sh/output.c#3 integrate .. //depot/projects/hammer/bin/sh/parser.c#5 integrate .. //depot/projects/hammer/bin/sh/redir.c#3 integrate .. //depot/projects/hammer/bin/sh/var.c#4 integrate .. //depot/projects/hammer/contrib/cvs/src/main.c#4 integrate .. //depot/projects/hammer/contrib/groff/tmac/doc.tmac#6 integrate .. //depot/projects/hammer/etc/Makefile#14 integrate .. //depot/projects/hammer/etc/mail/Makefile#3 integrate .. //depot/projects/hammer/etc/mtree/BSD.local.dist#8 integrate .. //depot/projects/hammer/etc/mtree/BSD.usr.dist#8 integrate .. //depot/projects/hammer/etc/rc.d/ypbind#5 integrate .. //depot/projects/hammer/etc/rc.d/yppasswdd#4 integrate .. //depot/projects/hammer/etc/rc.d/ypserv#5 integrate .. //depot/projects/hammer/etc/rc.d/ypset#5 integrate .. //depot/projects/hammer/etc/rc.d/ypupdated#4 integrate .. //depot/projects/hammer/etc/rc.d/ypxfrd#5 integrate .. //depot/projects/hammer/etc/rc.shutdown#3 integrate .. //depot/projects/hammer/etc/sendmail/Makefile#2 integrate .. //depot/projects/hammer/gnu/usr.bin/cvs/lib/config.h.proto#2 integrate .. //depot/projects/hammer/include/Makefile#14 integrate .. //depot/projects/hammer/lib/libc/locale/setlocale.c#5 integrate .. //depot/projects/hammer/lib/libc/locale/setlocale.h#3 integrate .. //depot/projects/hammer/lib/libc/locale/setrunelocale.c#5 integrate .. //depot/projects/hammer/lib/libc/stdio/vfwscanf.c#4 integrate .. //depot/projects/hammer/lib/libc/stdio/wprintf.3#3 integrate .. //depot/projects/hammer/lib/libc/stdio/wscanf.3#3 integrate .. //depot/projects/hammer/lib/libmilter/Makefile#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_attr_get_np.c#3 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_cancel.c#9 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_getschedparam.c#3 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_info.c#4 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_join.c#6 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_kern.c#16 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_mutex_prioceiling.c#3 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_sig.c#13 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_sigaction.c#5 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_sigmask.c#5 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_sigpending.c#5 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_sigsuspend.c#7 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_sigwait.c#7 integrate .. //depot/projects/hammer/lib/libsm/Makefile#2 integrate .. //depot/projects/hammer/lib/libsmdb/Makefile#2 integrate .. //depot/projects/hammer/lib/libsmutil/Makefile#2 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_cancel.c#6 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_detach.c#5 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_exit.c#7 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_gc.c#6 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_init.c#7 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_join.c#6 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_kern.c#7 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_mutex.c#12 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_private.h#8 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_spinlock.c#5 integrate .. //depot/projects/hammer/libexec/ftpd/ftpcmd.y#6 integrate .. //depot/projects/hammer/libexec/ftpd/ftpd.c#7 integrate .. //depot/projects/hammer/libexec/mail.local/Makefile#2 integrate .. //depot/projects/hammer/libexec/rtld-elf/sparc64/rtld_machdep.h#5 integrate .. //depot/projects/hammer/libexec/rtld-elf/sparc64/rtld_start.S#4 integrate .. //depot/projects/hammer/libexec/smrsh/Makefile#2 integrate .. //depot/projects/hammer/release/Makefile#32 integrate .. //depot/projects/hammer/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#33 integrate .. //depot/projects/hammer/release/doc/ja_JP.eucJP/hardware/common/dev.sgml#9 integrate .. //depot/projects/hammer/release/doc/ja_JP.eucJP/relnotes/common/new.sgml#9 integrate .. //depot/projects/hammer/sbin/devd/devd.cc#5 integrate .. //depot/projects/hammer/sbin/ipfw/ipfw.8#9 integrate .. //depot/projects/hammer/sbin/ipfw/ipfw2.c#11 integrate .. //depot/projects/hammer/share/colldef/Makefile#6 integrate .. //depot/projects/hammer/share/colldef/hy_AM.ARMSCII-8.src#1 branch .. //depot/projects/hammer/share/colldef/map.ARMSCII-8#1 branch .. //depot/projects/hammer/share/doc/psd/21.ipc/3.t#3 integrate .. //depot/projects/hammer/share/doc/psd/21.ipc/4.t#2 integrate .. //depot/projects/hammer/share/doc/smm/08.sendmailop/Makefile#3 integrate .. //depot/projects/hammer/share/examples/etc/make.conf#12 integrate .. //depot/projects/hammer/share/man/man4/divert.4#3 integrate .. //depot/projects/hammer/share/man/man4/wi.4#10 integrate .. //depot/projects/hammer/share/man/man5/Makefile#4 integrate .. //depot/projects/hammer/share/man/man5/config.5#1 branch .. //depot/projects/hammer/share/man/man5/make.conf.5#11 integrate .. //depot/projects/hammer/share/man/man5/utmp.5#3 integrate .. //depot/projects/hammer/share/man/man7/build.7#2 integrate .. //depot/projects/hammer/share/man/man7/security.7#4 integrate .. //depot/projects/hammer/share/misc/pci_vendors#7 integrate .. //depot/projects/hammer/share/mklocale/Makefile#6 integrate .. //depot/projects/hammer/share/mklocale/hy_AM.ARMSCII-8.src#1 branch .. //depot/projects/hammer/share/monetdef/Makefile#5 integrate .. //depot/projects/hammer/share/monetdef/hy_AM.ARMSCII-8.src#1 branch .. //depot/projects/hammer/share/msgdef/Makefile#5 integrate .. //depot/projects/hammer/share/msgdef/hy_AM.ARMSCII-8.src#1 branch .. //depot/projects/hammer/share/numericdef/Makefile#5 integrate .. //depot/projects/hammer/share/numericdef/hy_AM.ARMSCII-8.src#1 branch .. //depot/projects/hammer/share/sendmail/Makefile#3 integrate .. //depot/projects/hammer/share/syscons/fonts/INDEX.fonts#3 integrate .. //depot/projects/hammer/share/syscons/fonts/Makefile#2 integrate .. //depot/projects/hammer/share/syscons/fonts/armscii8-8x14.fnt#1 branch .. //depot/projects/hammer/share/syscons/fonts/armscii8-8x16.fnt#1 branch .. //depot/projects/hammer/share/syscons/fonts/armscii8-8x8.fnt#1 branch .. //depot/projects/hammer/share/syscons/fonts/haik8-8x14.fnt#1 branch .. //depot/projects/hammer/share/syscons/fonts/haik8-8x16.fnt#1 branch .. //depot/projects/hammer/share/syscons/fonts/haik8-8x8.fnt#1 branch .. //depot/projects/hammer/share/syscons/keymaps/INDEX.keymaps#5 integrate .. //depot/projects/hammer/share/syscons/keymaps/Makefile#6 integrate .. //depot/projects/hammer/share/syscons/keymaps/hy.armscii-8.kbd#1 branch .. //depot/projects/hammer/share/syscons/keymaps/norwegian.iso.kbd#2 integrate .. //depot/projects/hammer/share/syscons/scrnmaps/Makefile#2 integrate .. //depot/projects/hammer/share/syscons/scrnmaps/armscii8-2haik8#1 branch .. //depot/projects/hammer/share/timedef/Makefile#5 integrate .. //depot/projects/hammer/share/timedef/hy_AM.ARMSCII-8.src#1 branch .. //depot/projects/hammer/sys/alpha/alpha/pmap.c#14 integrate .. //depot/projects/hammer/sys/amd64/amd64/pmap.c#25 integrate .. //depot/projects/hammer/sys/conf/NOTES#21 integrate .. //depot/projects/hammer/sys/conf/files#22 integrate .. //depot/projects/hammer/sys/contrib/dev/ath/freebsd/i386-elf.hal.o.uu#2 integrate .. //depot/projects/hammer/sys/dev/aac/aac.c#11 integrate .. //depot/projects/hammer/sys/dev/aac/aac_pci.c#7 integrate .. //depot/projects/hammer/sys/dev/aac/aacvar.h#5 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_isab.c#1 branch .. //depot/projects/hammer/sys/dev/em/if_em.h#11 integrate .. //depot/projects/hammer/sys/dev/en/midway.c#13 integrate .. //depot/projects/hammer/sys/dev/firewire/firewire.c#15 integrate .. //depot/projects/hammer/sys/dev/firewire/fwdma.c#3 integrate .. //depot/projects/hammer/sys/dev/firewire/fwohci.c#12 integrate .. //depot/projects/hammer/sys/dev/firewire/fwohci_pci.c#12 integrate .. //depot/projects/hammer/sys/dev/firewire/sbp.c#17 integrate .. //depot/projects/hammer/sys/dev/pci/isa_pci.c#3 integrate .. //depot/projects/hammer/sys/dev/sound/pci/ich.c#7 integrate .. //depot/projects/hammer/sys/dev/sound/pcm/feeder.c#3 integrate .. //depot/projects/hammer/sys/dev/sound/pcm/feeder.h#2 integrate .. //depot/projects/hammer/sys/dev/usb/ehci_pci.c#3 integrate .. //depot/projects/hammer/sys/dev/usb/hid.c#3 integrate .. //depot/projects/hammer/sys/dev/usb/hid.h#2 integrate .. //depot/projects/hammer/sys/dev/usb/if_axe.c#3 integrate .. //depot/projects/hammer/sys/dev/usb/if_cue.c#7 integrate .. //depot/projects/hammer/sys/dev/usb/ohci.c#5 integrate .. //depot/projects/hammer/sys/dev/usb/ohcireg.h#2 integrate .. //depot/projects/hammer/sys/dev/usb/ucom.c#4 integrate .. //depot/projects/hammer/sys/dev/usb/udbp.c#4 integrate .. //depot/projects/hammer/sys/dev/usb/udbp.h#2 integrate .. //depot/projects/hammer/sys/dev/usb/ufm.c#4 integrate .. //depot/projects/hammer/sys/dev/usb/uftdi.c#4 integrate .. //depot/projects/hammer/sys/dev/usb/ugen.c#6 integrate .. //depot/projects/hammer/sys/dev/usb/uhci.c#4 integrate .. //depot/projects/hammer/sys/dev/usb/uhcireg.h#2 integrate .. //depot/projects/hammer/sys/dev/usb/uhcivar.h#3 integrate .. //depot/projects/hammer/sys/dev/usb/uhid.c#5 integrate .. //depot/projects/hammer/sys/dev/usb/uhub.c#2 integrate .. //depot/projects/hammer/sys/dev/usb/ukbd.c#4 integrate .. //depot/projects/hammer/sys/dev/usb/umass.c#10 integrate .. //depot/projects/hammer/sys/dev/usb/umct.c#2 integrate .. //depot/projects/hammer/sys/dev/usb/ums.c#3 integrate .. //depot/projects/hammer/sys/dev/usb/uplcom.c#4 integrate .. //depot/projects/hammer/sys/dev/usb/urio.c#3 integrate .. //depot/projects/hammer/sys/dev/usb/usb_mem.h#2 integrate .. //depot/projects/hammer/sys/dev/usb/usb_port.h#4 integrate .. //depot/projects/hammer/sys/dev/usb/usb_subr.c#3 integrate .. //depot/projects/hammer/sys/dev/usb/usbdevs#14 integrate .. //depot/projects/hammer/sys/dev/usb/usbdi.c#2 integrate .. //depot/projects/hammer/sys/dev/usb/usbdi.h#2 integrate .. //depot/projects/hammer/sys/dev/usb/usbdi_util.c#4 integrate .. //depot/projects/hammer/sys/dev/usb/usbdi_util.h#3 integrate .. //depot/projects/hammer/sys/dev/usb/usbdivar.h#2 integrate .. //depot/projects/hammer/sys/dev/usb/uscanner.c#5 integrate .. //depot/projects/hammer/sys/dev/usb/uvisor.c#5 integrate .. //depot/projects/hammer/sys/dev/usb/uvscom.c#4 integrate .. //depot/projects/hammer/sys/dev/wi/if_wi_pccard.c#11 integrate .. //depot/projects/hammer/sys/dev/zs/zs.c#2 integrate .. //depot/projects/hammer/sys/geom/geom_dump.c#14 integrate .. //depot/projects/hammer/sys/i386/i386/pmap.c#13 integrate .. //depot/projects/hammer/sys/i386/i386/sys_machdep.c#9 integrate .. //depot/projects/hammer/sys/i386/i386/vm_machdep.c#12 integrate .. //depot/projects/hammer/sys/ia64/ia64/db_trace.c#6 integrate .. //depot/projects/hammer/sys/ia64/ia64/unwind.c#5 integrate .. //depot/projects/hammer/sys/ia64/include/unwind.h#4 integrate .. //depot/projects/hammer/sys/isa/isa_common.c#10 integrate .. //depot/projects/hammer/sys/isa/isavar.h#3 integrate .. //depot/projects/hammer/sys/isa/psm.c#9 integrate .. //depot/projects/hammer/sys/kern/kern_descrip.c#13 integrate .. //depot/projects/hammer/sys/kern/kern_prot.c#6 integrate .. //depot/projects/hammer/sys/kern/kern_sig.c#19 integrate .. //depot/projects/hammer/sys/kern/kern_thr.c#11 integrate .. //depot/projects/hammer/sys/kern/kern_thread.c#32 integrate .. //depot/projects/hammer/sys/kern/kern_umtx.c#5 integrate .. //depot/projects/hammer/sys/kern/sched_ule.c#9 integrate .. //depot/projects/hammer/sys/kern/subr_param.c#4 integrate .. //depot/projects/hammer/sys/kern/sys_pipe.c#8 integrate .. //depot/projects/hammer/sys/kern/vfs_syscalls.c#15 integrate .. //depot/projects/hammer/sys/modules/acpi/Makefile#5 integrate .. //depot/projects/hammer/sys/modules/geom/geom_mbr/Makefile#2 integrate .. //depot/projects/hammer/sys/net/if_vlan.c#6 integrate .. //depot/projects/hammer/sys/net/if_vlan_var.h#4 integrate .. //depot/projects/hammer/sys/netinet/ip_fw.h#6 integrate .. //depot/projects/hammer/sys/netinet/ip_fw2.c#12 integrate .. //depot/projects/hammer/sys/pci/if_dc.c#15 integrate .. //depot/projects/hammer/sys/pci/if_dcreg.h#8 integrate .. //depot/projects/hammer/sys/pci/if_xl.c#16 integrate .. //depot/projects/hammer/sys/security/mac_bsdextended/mac_bsdextended.c#7 integrate .. //depot/projects/hammer/sys/security/mac_ifoff/mac_ifoff.c#6 integrate .. //depot/projects/hammer/sys/security/mac_lomac/mac_lomac.c#7 integrate .. //depot/projects/hammer/sys/security/mac_test/mac_test.c#10 integrate .. //depot/projects/hammer/sys/sparc64/conf/GENERIC#14 integrate .. //depot/projects/hammer/sys/sparc64/sparc64/pmap.c#16 integrate .. //depot/projects/hammer/sys/sys/pipe.h#3 integrate .. //depot/projects/hammer/sys/ufs/ufs/ufs_vnops.c#11 integrate .. //depot/projects/hammer/sys/vm/vm_contig.c#8 integrate .. //depot/projects/hammer/sys/vm/vm_mmap.c#8 integrate .. //depot/projects/hammer/sys/vm/vm_pageout.c#19 integrate .. //depot/projects/hammer/tools/regression/usr.bin/make/Makefile#4 integrate .. //depot/projects/hammer/usr.bin/calendar/calendars/calendar.freebsd#9 integrate .. //depot/projects/hammer/usr.bin/login/login.1#3 integrate .. //depot/projects/hammer/usr.bin/make/cond.c#6 integrate .. //depot/projects/hammer/usr.bin/talk/display.c#3 integrate .. //depot/projects/hammer/usr.bin/talk/get_iface.c#2 integrate .. //depot/projects/hammer/usr.bin/vacation/Makefile#2 integrate .. //depot/projects/hammer/usr.sbin/config/config.y#3 integrate .. //depot/projects/hammer/usr.sbin/daemon/daemon.c#2 integrate .. //depot/projects/hammer/usr.sbin/editmap/Makefile#2 integrate .. //depot/projects/hammer/usr.sbin/fdcontrol/fdcontrol.8#3 integrate .. //depot/projects/hammer/usr.sbin/jail/jail.c#5 integrate .. //depot/projects/hammer/usr.sbin/jexec/jexec.c#2 integrate .. //depot/projects/hammer/usr.sbin/lpr/lpd/lpd.c#2 integrate .. //depot/projects/hammer/usr.sbin/mailstats/Makefile#2 integrate .. //depot/projects/hammer/usr.sbin/mailwrapper/mailwrapper.c#2 integrate .. //depot/projects/hammer/usr.sbin/makemap/Makefile#2 integrate .. //depot/projects/hammer/usr.sbin/mtest/mtest.c#2 integrate .. //depot/projects/hammer/usr.sbin/pppctl/pppctl.c#2 integrate .. //depot/projects/hammer/usr.sbin/praliases/Makefile#2 integrate .. //depot/projects/hammer/usr.sbin/repquota/repquota.8#3 integrate .. //depot/projects/hammer/usr.sbin/repquota/repquota.c#3 integrate .. //depot/projects/hammer/usr.sbin/rtprio/rtprio.c#2 integrate .. //depot/projects/hammer/usr.sbin/rwhod/rwhod.8#2 integrate .. //depot/projects/hammer/usr.sbin/rwhod/rwhod.c#2 integrate .. //depot/projects/hammer/usr.sbin/sendmail/Makefile#6 integrate .. //depot/projects/hammer/usr.sbin/timed/timed/timed.c#2 integrate .. //depot/projects/hammer/usr.sbin/timed/timedc/cmds.c#3 integrate Differences ... ==== //depot/projects/hammer/MAINTAINERS#10 (text+ko) ==== @@ -1,4 +1,4 @@ -$FreeBSD: src/MAINTAINERS,v 1.72 2003/06/16 16:12:05 obrien Exp $ +$FreeBSD: src/MAINTAINERS,v 1.73 2003/07/07 03:54:02 gshapiro Exp $ subsystem login notes ----------------------------- @@ -86,7 +86,6 @@ stating your preferences here instead. bin/dd/Makefile:MAINTAINER= green@FreeBSD.org -bin/rmail/Makefile:MAINTAINER= gshapiro@FreeBSD.org contrib/cvs/FREEBSD-upgrade:MAINTAINER= peter@FreeBSD.org games/fortune/datfiles/Makefile:MAINTAINER= jkh@FreeBSD.org gnu/usr.bin/cvs/Makefile:MAINTAINER= peter@FreeBSD.org @@ -98,14 +97,8 @@ gnu/usr.bin/cvs/libdiff/Makefile:MAINTAINER= peter@FreeBSD.org gnu/usr.bin/man/apropos/Makefile:MAINTAINER= wosch@FreeBSD.org lib/libc/posix1e/Makefile.inc:MAINTAINER= rwatson@FreeBSD.org -lib/libmilter/Makefile:MAINTAINER= gshapiro@FreeBSD.org -lib/libsm/Makefile:MAINTAINER= gshapiro@FreeBSD.org -lib/libsmdb/Makefile:MAINTAINER= gshapiro@FreeBSD.org -lib/libsmutil/Makefile:MAINTAINER= gshapiro@FreeBSD.org lib/libusbhid/Makefile:MAINTAINER= n_hibma@FreeBSD.ORG lib/libz/Makefile:MAINTAINER= peter@FreeBSD.org -libexec/mail.local/Makefile:MAINTAINER= gshapiro@FreeBSD.org -libexec/smrsh/Makefile:MAINTAINER= gshapiro@FreeBSD.org sbin/dhclient/Makefile.inc:MAINTAINER= murray@FreeBSD.org sbin/ffsinfo/Makefile:MAINTAINER= tomsoft@FreeBSD.ORG, chm@FreeBSD.ORG sbin/growfs/Makefile:MAINTAINER= tomsoft@FreeBSD.ORG, chm@FreeBSD.ORG @@ -114,8 +107,6 @@ sbin/ipfstat/Makefile:MAINTAINER= darrenr@freebsd.org sbin/ipmon/Makefile:MAINTAINER= darrenr@freebsd.org sbin/ipnat/Makefile:MAINTAINER= darrenr@freebsd.org -share/doc/smm/08.sendmailop/Makefile:MAINTAINER= gshapiro@FreeBSD.org -share/sendmail/Makefile:MAINTAINER= gshapiro@FreeBSD.org sys/boot/i386/cdboot/Makefile:MAINTAINER= jhb@FreeBSD.org sys/boot/i386/pxeldr/Makefile:MAINTAINER= jhb@FreeBSD.org sys/compat/svr4/Makefile:MAINTAINER= newton@freebsd.org @@ -146,18 +137,12 @@ sys/modules/uscanner/Makefile:MAINTAINER= n_hibma@freebsd.org usr.bin/chat/Makefile:MAINTAINER= peter@freebsd.org usr.bin/locate/Makefile:MAINTAINER= wosch@FreeBSD.org -usr.bin/vacation/Makefile:MAINTAINER= gshapiro@FreeBSD.org -usr.sbin/editmap/Makefile:MAINTAINER= gshapiro@FreeBSD.org usr.sbin/inetd/Makefile:MAINTAINER= dwmalone@FreeBSD.org usr.sbin/ipftest/Makefile:MAINTAINER= darrenr@freebsd.org usr.sbin/ipresend/Makefile:MAINTAINER= darrenr@freebsd.org usr.sbin/ipsend/Makefile:MAINTAINER= darrenr@freebsd.org usr.sbin/iptest/Makefile:MAINTAINER= darrenr@freebsd.org -usr.sbin/mailstats/Makefile:MAINTAINER= gshapiro@FreeBSD.org -usr.sbin/makemap/Makefile:MAINTAINER= gshapiro@FreeBSD.org usr.sbin/ntp/doc/Makefile:MAINTAINER= sheldonh@FreeBSD.org usr.sbin/pppd/Makefile:MAINTAINER= peter@freebsd.org usr.sbin/pppstats/Makefile:MAINTAINER= peter@freebsd.org -usr.sbin/praliases/Makefile:MAINTAINER= gshapiro@FreeBSD.org -usr.sbin/sendmail/Makefile:MAINTAINER= gshapiro@FreeBSD.org usr.sbin/zic/Makefile:MAINTAINER= wollman@FreeBSD.org ==== //depot/projects/hammer/Makefile#10 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/Makefile,v 1.282 2003/06/22 21:56:22 ru Exp $ +# $FreeBSD: src/Makefile,v 1.284 2003/07/04 17:35:26 ru Exp $ # # The user-driven targets are: # @@ -83,9 +83,10 @@ PATH= /sbin:/bin:/usr/sbin:/usr/bin MAKEOBJDIRPREFIX?= /usr/obj MAKEPATH= ${MAKEOBJDIRPREFIX}${.CURDIR}/make.${MACHINE} -_MAKE= PATH=${PATH} \ +BINMAKE= \ `if [ -x ${MAKEPATH}/make ]; then echo ${MAKEPATH}/make; else echo ${MAKE}; fi` \ - -m ${.CURDIR}/share/mk -f Makefile.inc1 + -m ${.CURDIR}/share/mk +_MAKE= PATH=${PATH} ${BINMAKE} -f Makefile.inc1 # # Handle the user-driven targets, using the source relative mk files. ==== //depot/projects/hammer/Makefile.inc1#23 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/Makefile.inc1,v 1.374 2003/07/02 19:26:19 gordon Exp $ +# $FreeBSD: src/Makefile.inc1,v 1.377 2003/07/08 01:24:21 obrien Exp $ # # Make command line options: # -DNO_KERBEROS Do not build Heimdal (Kerberos 5) @@ -373,11 +373,11 @@ # installcheck: .if !defined(NO_SENDMAIL) - @if ! `grep -q '^smmsp:' /etc/passwd`; then \ + @if ! `id -u smmsp > /dev/null`; then \ echo "ERROR: Required smmsp user is missing, see /usr/src/UPDATING."; \ false; \ fi - @if ! `grep -q '^smmsp:' /etc/group`; then \ + @if ! `id -g smmsp > /dev/null`; then \ echo "ERROR: Required smmsp group is missing, see /usr/src/UPDATING."; \ false; \ fi @@ -652,22 +652,22 @@ .endif .endif -.if ( ${BOOTSTRAPPING} < 450005 || \ - ( ${BOOTSTRAPPING} >= 500000 && ${BOOTSTRAPPING} < 500034 )) +.if ${BOOTSTRAPPING} < 450005 || \ + ${BOOTSTRAPPING} >= 500000 && ${BOOTSTRAPPING} < 500034 _uudecode= usr.bin/uudecode .endif -.if ( ${BOOTSTRAPPING} < 430002 || \ - ( ${BOOTSTRAPPING} >= 500000 && ${BOOTSTRAPPING} < 500019 )) +.if ${BOOTSTRAPPING} < 430002 || \ + ${BOOTSTRAPPING} >= 500000 && ${BOOTSTRAPPING} < 500019 _xargs= usr.bin/xargs .endif -.if ( ${BOOTSTRAPPING} < 430002 || \ - ( ${BOOTSTRAPPING} >= 500000 && ${BOOTSTRAPPING} < 500018 )) +.if ${BOOTSTRAPPING} < 430002 || \ + ${BOOTSTRAPPING} >= 500000 && ${BOOTSTRAPPING} < 500018 _yacc= usr.bin/yacc .endif -.if exists(${.CURDIR}/rescue) && defined(RESCUE) && \ +.if defined(RESCUE) && \ ${BOOTSTRAPPING} < 501100 _crunchgen= usr.sbin/crunch/crunchgen .endif @@ -752,9 +752,9 @@ _btxld= usr.sbin/btxld .endif -.if (exists(${.CURDIR}/rescue) && defined(RESCUE) || \ +.if (defined(RESCUE) || \ defined(RELEASEDIR)) && \ - ( ${TARGET_ARCH} != ${MACHINE_ARCH} || ${BOOTSTRAPPING} < 501101 ) + (${TARGET_ARCH} != ${MACHINE_ARCH} || ${BOOTSTRAPPING} < 501101) _crunchide= usr.sbin/crunch/crunchide .endif ==== //depot/projects/hammer/bin/rmail/Makefile#2 (text+ko) ==== @@ -1,7 +1,5 @@ # @(#)Makefile 8.1 (Berkeley) 5/31/93 -# $FreeBSD: src/bin/rmail/Makefile,v 1.17 2002/02/17 22:05:05 gshapiro Exp $ - -MAINTAINER= gshapiro@FreeBSD.org +# $FreeBSD: src/bin/rmail/Makefile,v 1.18 2003/07/07 03:54:02 gshapiro Exp $ SENDMAIL_DIR=${.CURDIR}/../../contrib/sendmail .PATH: ${SENDMAIL_DIR}/rmail ==== //depot/projects/hammer/bin/sh/alias.c#2 (text+ko) ==== @@ -40,7 +40,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/sh/alias.c,v 1.16 2002/06/30 05:15:03 obrien Exp $"); +__FBSDID("$FreeBSD: src/bin/sh/alias.c,v 1.17 2003/07/05 15:18:44 dds Exp $"); #include #include "shell.h" @@ -54,7 +54,7 @@ #define ATABSIZE 39 -struct alias *atab[ATABSIZE]; +STATIC struct alias *atab[ATABSIZE]; STATIC void setalias(char *, char *); STATIC int unalias(char *); ==== //depot/projects/hammer/bin/sh/cd.c#2 (text+ko) ==== @@ -40,7 +40,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/sh/cd.c,v 1.32 2002/07/25 10:57:39 tjr Exp $"); +__FBSDID("$FreeBSD: src/bin/sh/cd.c,v 1.33 2003/07/05 15:18:44 dds Exp $"); #include #include @@ -74,8 +74,8 @@ STATIC char *getcomponent(void); STATIC int updatepwd(char *); -char *curdir = NULL; /* current working directory */ -char *prevdir; /* previous working directory */ +STATIC char *curdir = NULL; /* current working directory */ +STATIC char *prevdir; /* previous working directory */ STATIC char *cdcomppath; int ==== //depot/projects/hammer/bin/sh/exec.c#3 (text+ko) ==== @@ -40,7 +40,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/sh/exec.c,v 1.22 2002/10/01 11:48:18 tjr Exp $"); +__FBSDID("$FreeBSD: src/bin/sh/exec.c,v 1.23 2003/07/05 15:18:44 dds Exp $"); #include #include @@ -599,7 +599,7 @@ * entry. */ -struct tblentry **lastcmdentry; +STATIC struct tblentry **lastcmdentry; STATIC struct tblentry * ==== //depot/projects/hammer/bin/sh/exec.h#2 (text+ko) ==== @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * @(#)exec.h 8.3 (Berkeley) 6/8/95 - * $FreeBSD: src/bin/sh/exec.h,v 1.10 2002/02/02 06:50:46 imp Exp $ + * $FreeBSD: src/bin/sh/exec.h,v 1.11 2003/07/05 15:18:44 dds Exp $ */ /* values of cmdtype */ @@ -64,7 +64,6 @@ void hashcd(void); void changepath(const char *); void deletefuncs(void); -void getcmdentry(char *, struct cmdentry *); void addcmdentry(char *, struct cmdentry *); void defun(char *, union node *); int unsetfunc(char *); ==== //depot/projects/hammer/bin/sh/expand.c#7 (text+ko) ==== @@ -40,7 +40,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/sh/expand.c,v 1.43 2003/05/31 06:27:57 fenner Exp $"); +__FBSDID("$FreeBSD: src/bin/sh/expand.c,v 1.44 2003/07/05 15:18:44 dds Exp $"); #include #include @@ -90,11 +90,11 @@ }; -char *expdest; /* output of current string */ -struct nodelist *argbackq; /* list of back quote expressions */ -struct ifsregion ifsfirst; /* first struct in list of ifs regions */ -struct ifsregion *ifslastp; /* last struct in list */ -struct arglist exparg; /* holds expanded arg list */ +STATIC char *expdest; /* output of current string */ +STATIC struct nodelist *argbackq; /* list of back quote expressions */ +STATIC struct ifsregion ifsfirst; /* first struct in list of ifs regions */ +STATIC struct ifsregion *ifslastp; /* last struct in list */ +STATIC struct arglist exparg; /* holds expanded arg list */ STATIC void argstr(char *, int); STATIC char *exptilde(char *, int); @@ -1055,7 +1055,7 @@ * should be escapes. The results are stored in the list exparg. */ -char *expdir; +STATIC char *expdir; STATIC void ==== //depot/projects/hammer/bin/sh/input.c#2 (text+ko) ==== @@ -40,7 +40,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/sh/input.c,v 1.19 2002/07/24 02:06:07 tjr Exp $"); +__FBSDID("$FreeBSD: src/bin/sh/input.c,v 1.20 2003/07/05 15:18:44 dds Exp $"); #include /* defines BUFSIZ */ #include @@ -102,7 +102,7 @@ char *parsenextc; /* copy of parsefile->nextc */ MKINIT struct parsefile basepf; /* top level input file */ char basebuf[BUFSIZ]; /* buffer for top level input file */ -struct parsefile *parsefile = &basepf; /* current input file */ +STATIC struct parsefile *parsefile = &basepf; /* current input file */ int init_editline = 0; /* editline library initialized? */ int whichprompt; /* 1 == PS1, 2 == PS2 */ ==== //depot/projects/hammer/bin/sh/jobs.c#7 (text+ko) ==== @@ -40,7 +40,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/sh/jobs.c,v 1.63 2003/03/17 11:28:56 tjr Exp $"); +__FBSDID("$FreeBSD: src/bin/sh/jobs.c,v 1.64 2003/07/05 15:18:44 dds Exp $"); #include #include @@ -76,12 +76,12 @@ #include "mystring.h" -struct job *jobtab; /* array of jobs */ -int njobs; /* size of array */ +STATIC struct job *jobtab; /* array of jobs */ +STATIC int njobs; /* size of array */ MKINIT pid_t backgndpid = -1; /* pid of last background process */ #if JOBS -struct job *jobmru; /* most recently used job list */ -pid_t initialpgrp; /* pgrp of shell on invocation */ +STATIC struct job *jobmru; /* most recently used job list */ +STATIC pid_t initialpgrp; /* pgrp of shell on invocation */ #endif int in_waitcmd = 0; /* are we in waitcmd()? */ int in_dowait = 0; /* are we in dowait()? */ ==== //depot/projects/hammer/bin/sh/memalloc.c#3 (text+ko) ==== @@ -40,7 +40,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/sh/memalloc.c,v 1.24 2003/02/24 08:07:05 marcel Exp $"); +__FBSDID("$FreeBSD: src/bin/sh/memalloc.c,v 1.25 2003/07/05 15:18:44 dds Exp $"); #include #include "shell.h" @@ -113,8 +113,8 @@ }; #define SPACE(sp) ((char*)(sp) + ALIGN(sizeof(struct stack_block))) -struct stack_block *stackp; -struct stackmark *markp; +STATIC struct stack_block *stackp; +STATIC struct stackmark *markp; char *stacknxt; int stacknleft; int sstrnleft; ==== //depot/projects/hammer/bin/sh/nodes.c.pat#3 (text+ko) ==== @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * @(#)nodes.c.pat 8.2 (Berkeley) 5/4/95 - * $FreeBSD: src/bin/sh/nodes.c.pat,v 1.13 2003/02/24 08:07:05 marcel Exp $ + * $FreeBSD: src/bin/sh/nodes.c.pat,v 1.14 2003/07/05 15:18:44 dds Exp $ */ #include @@ -49,10 +49,10 @@ #include "mystring.h" -int funcblocksize; /* size of structures in function */ -int funcstringsize; /* size of strings in node */ -pointer funcblock; /* block to allocate function from */ -char *funcstring; /* block to allocate strings from */ +STATIC int funcblocksize; /* size of structures in function */ +STATIC int funcstringsize; /* size of strings in node */ +STATIC pointer funcblock; /* block to allocate function from */ +STATIC char *funcstring; /* block to allocate strings from */ %SIZES ==== //depot/projects/hammer/bin/sh/output.c#3 (text+ko) ==== @@ -40,7 +40,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/sh/output.c,v 1.17 2002/10/01 13:41:13 tjr Exp $"); +__FBSDID("$FreeBSD: src/bin/sh/output.c,v 1.18 2003/07/05 15:18:44 dds Exp $"); /* * Shell output routines. We use our own output routines because: @@ -161,7 +161,7 @@ out1c('\''); } -char out_junk[16]; +STATIC char out_junk[16]; void emptyoutbuf(struct output *dest) ==== //depot/projects/hammer/bin/sh/parser.c#5 (text+ko) ==== @@ -40,7 +40,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/sh/parser.c,v 1.48 2002/10/06 06:35:51 tjr Exp $"); +__FBSDID("$FreeBSD: src/bin/sh/parser.c,v 1.49 2003/07/05 15:18:44 dds Exp $"); #include @@ -84,19 +84,19 @@ -struct heredoc *heredoclist; /* list of here documents to read */ -int parsebackquote; /* nonzero if we are inside backquotes */ -int doprompt; /* if set, prompt the user */ -int needprompt; /* true if interactive and at start of line */ -int lasttoken; /* last token read */ +STATIC struct heredoc *heredoclist; /* list of here documents to read */ +STATIC int parsebackquote; /* nonzero if we are inside backquotes */ +STATIC int doprompt; /* if set, prompt the user */ +STATIC int needprompt; /* true if interactive and at start of line */ +STATIC int lasttoken; /* last token read */ MKINIT int tokpushback; /* last token pushed back */ -char *wordtext; /* text of last word returned by readtoken */ +STATIC char *wordtext; /* text of last word returned by readtoken */ MKINIT int checkkwd; /* 1 == check for kwds, 2 == also eat newlines */ -struct nodelist *backquotelist; -union node *redirnode; -struct heredoc *heredoc; -int quoteflag; /* set if (part of) last token was quoted */ -int startlinno; /* line # where last token started */ +STATIC struct nodelist *backquotelist; +STATIC union node *redirnode; +STATIC struct heredoc *heredoc; +STATIC int quoteflag; /* set if (part of) last token was quoted */ +STATIC int startlinno; /* line # where last token started */ /* XXX When 'noaliases' is set to one, no alias expansion takes place. */ static int noaliases = 0; ==== //depot/projects/hammer/bin/sh/redir.c#3 (text+ko) ==== @@ -40,7 +40,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/sh/redir.c,v 1.23 2002/09/29 12:38:25 tjr Exp $"); +__FBSDID("$FreeBSD: src/bin/sh/redir.c,v 1.24 2003/07/05 15:18:44 dds Exp $"); #include #include @@ -84,7 +84,7 @@ * background commands, where we want to redirect fd0 to /dev/null only * if it hasn't already been redirected. */ -int fd0_redirected = 0; +STATIC int fd0_redirected = 0; STATIC void openredirect(union node *, char[10 ]); STATIC int openhere(union node *); ==== //depot/projects/hammer/bin/sh/var.c#4 (text+ko) ==== @@ -40,7 +40,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/sh/var.c,v 1.24 2003/05/05 22:49:22 obrien Exp $"); +__FBSDID("$FreeBSD: src/bin/sh/var.c,v 1.25 2003/07/05 15:18:44 dds Exp $"); #include #include @@ -93,9 +93,9 @@ struct var vps1; struct var vps2; struct var vvers; -struct var voptind; +STATIC struct var voptind; -const struct varinit varinit[] = { +STATIC const struct varinit varinit[] = { #ifndef NO_HISTORY { &vhistsize, VSTRFIXED|VTEXTFIXED|VUNSET, "HISTSIZE=", sethistsize }, @@ -121,7 +121,7 @@ NULL } }; -struct var *vartab[VTABSIZE]; +STATIC struct var *vartab[VTABSIZE]; STATIC struct var **hashvar(char *); STATIC int varequal(char *, char *); ==== //depot/projects/hammer/contrib/cvs/src/main.c#4 (text+ko) ==== @@ -10,7 +10,7 @@ * Credit to Dick Grune, Vrije Universiteit, Amsterdam, for writing * the shell-script CVS system that this is based on. * - * $FreeBSD: src/contrib/cvs/src/main.c,v 1.22 2002/12/02 03:17:48 peter Exp $ + * $FreeBSD: src/contrib/cvs/src/main.c,v 1.23 2003/07/07 19:15:36 obrien Exp $ */ #include @@ -110,7 +110,7 @@ { { "add", "ad", "new", add, CVS_CMD_MODIFIES_REPOSITORY | CVS_CMD_USES_WORK_DIR }, { "admin", "adm", "rcs", admin, CVS_CMD_MODIFIES_REPOSITORY | CVS_CMD_USES_WORK_DIR }, - { "annotate", "ann", NULL, annotate, CVS_CMD_USES_WORK_DIR }, + { "annotate", "ann", "blame", annotate, CVS_CMD_USES_WORK_DIR }, { "checkout", "co", "get", checkout, 0 }, { "commit", "ci", "com", commit, CVS_CMD_MODIFIES_REPOSITORY | CVS_CMD_USES_WORK_DIR }, { "diff", "di", "dif", diff, CVS_CMD_USES_WORK_DIR }, ==== //depot/projects/hammer/contrib/groff/tmac/doc.tmac#6 (text+ko) ==== @@ -2696,10 +2696,8 @@ . nr doc-display-ft-stack\n[doc-display-depth] \n[.f] . nr doc-display-ps-stack\n[doc-display-depth] \n[.ps] . -. ie t \{\ -. nop \*[doc-Li-font]\c +. ie t \ . ta T 9n -. \} . el \ . ta T 8n . nf @@ -2747,6 +2745,10 @@ . if !\n[doc-is-compact] \ . sp \n[doc-display-vertical]u . +. if "\*[doc-display-type-stack\n[doc-display-depth]]"literal" \ +. if t \ +. nop \*[doc-Li-font]\c +. . if !\n[cR] \ . ne 2v . ==== //depot/projects/hammer/etc/Makefile#14 (text+ko) ==== @@ -1,5 +1,5 @@ # from: @(#)Makefile 5.11 (Berkeley) 5/21/91 -# $FreeBSD: src/etc/Makefile,v 1.314 2003/06/10 01:22:30 ache Exp $ +# $FreeBSD: src/etc/Makefile,v 1.315 2003/07/06 19:23:31 gshapiro Exp $ .if !defined(NO_SENDMAIL) SUBDIR= sendmail @@ -45,8 +45,12 @@ PPPCNF= ppp.conf +.if defined(NO_SENDMAIL) +ETCMAIL=mailer.conf aliases +.else ETCMAIL=Makefile README mailer.conf access.sample virtusertable.sample \ mailertable.sample aliases +.endif # Special top level files for FreeBSD FREEBSD=COPYRIGHT ==== //depot/projects/hammer/etc/mail/Makefile#3 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/etc/mail/Makefile,v 1.33 2003/02/08 21:55:31 gshapiro Exp $ +# $FreeBSD: src/etc/mail/Makefile,v 1.35 2003/07/06 19:17:04 gshapiro Exp $ # # This Makefile provides an easy way to generate the configuration # file and database maps for the sendmail(8) daemon. @@ -44,16 +44,19 @@ # This Makefile uses `.mc' as the default MTA .mc file. This # can be changed by defining SENDMAIL_MC in /etc/make.conf, e.g.: # -# SENDMAIL_MC=/etc/mail/myconfig.mc +# SENDMAIL_MC=/etc/mail/myconfig.mc # # If '.mc' does not exist, it is created using 'freebsd.mc' # as a template. # -# It also uses 'freebsd.submit.mc' as the default mail submission .mc file. -# This can be changed by defining SENDMAIL_SUBMIT_MC in /etc/make.conf, -# e.g.: +# It also uses '.submit.mc' as the default mail submission .mc +# file. This can be changed by defining SENDMAIL_SUBMIT_MC in +# /etc/make.conf, e.g.: +# +# SENDMAIL_SUBMIT_MC=/etc/mail/mysubmit.mc # -# SENDMAIL_SUBMIT_MC=/etc/mail/mysubmit.mc +# If '.submit.mc' does not exist, it is created using +# 'freebsd.submit.mc' as a template. # ------------------------------------------------------------------------ # # The Makefile knows about the following maps: @@ -69,7 +72,13 @@ cp freebsd.mc ${SENDMAIL_MC} .endif -SENDMAIL_SUBMIT_MC?= freebsd.submit.mc +.ifndef SENDMAIL_SUBMIT_MC +SENDMAIL_SUBMIT_MC!= hostname +SENDMAIL_SUBMIT_MC:= ${SENDMAIL_SUBMIT_MC}.submit.mc + +${SENDMAIL_SUBMIT_MC}: + cp freebsd.submit.mc ${SENDMAIL_SUBMIT_MC} +.endif INSTALL_CF= ${SENDMAIL_MC:R}.cf @@ -105,7 +114,7 @@ SENDMAIL_MAP_PERMS?= 0640 # Set a reasonable default -.MAIN: all +.MAIN: all # # ------------------------------------------------------------------------ @@ -131,16 +140,16 @@ # .for _f in ${SENDMAIL_MAP_SRC} .if (exists(${_f}.sample) && !exists(${_f})) -${_f}: ${_f}.sample +${_f}: ${_f}.sample sed -e 's/^/#/' < ${.OODATE} > ${.TARGET} .endif -${_f}.db: ${_f} +${_f}.db: ${_f} ${MAKEMAP} ${SENDMAIL_MAP_TYPE} ${.TARGET} < ${.OODATE} chmod ${SENDMAIL_MAP_PERMS} ${.TARGET} .endfor -userdb.db: userdb +userdb.db: userdb ${MAKEMAP} btree ${.TARGET} < ${.OODATE} chmod ${SENDMAIL_MAP_PERMS} ${.TARGET} @@ -153,18 +162,18 @@ # # M4(1) is used to generate the .cf file from the .mc file. # -.SUFFIXES: .cf .mc +.SUFFIXES: .cf .mc -.mc.cf: ${M4FILES} +.mc.cf: ${M4FILES} ${M4} -D_CF_DIR_=${SENDMAIL_CF_DIR}/ ${SENDMAIL_M4_FLAGS} \ - ${SENDMAIL_CF_DIR}/m4/cf.m4 ${@:R}.mc > ${.TARGET} + ${SENDMAIL_CF_DIR}/m4/cf.m4 ${@:R}.mc > ${.TARGET} # # Aliases are handled separately since they normally reside in /etc # and can be rebuild without the help of makemap. # .for _f in ${SENDMAIL_ALIASES} -${_f}.db: ${_f} +${_f}.db: ${_f} ${SENDMAIL} -bi -OAliasFile=${.ALLSRC} chmod ${SENDMAIL_MAP_PERMS} ${.TARGET} .endfor @@ -173,13 +182,13 @@ # ------------------------------------------------------------------------ # -all: cf maps aliases +all: cf maps aliases clean: depend: -cf: ${INSTALL_CF} ${INSTALL_SUBMIT_CF} +cf: ${INSTALL_CF} ${INSTALL_SUBMIT_CF} .ifdef SENDMAIL_SET_USER_ID install: install-cf @@ -187,13 +196,13 @@ install: install-cf install-submit-cf .endif -install-cf: ${INSTALL_CF} +install-cf: ${INSTALL_CF} .if ${INSTALL_CF} != /etc/mail/sendmail.cf ${INSTALL} -m ${SHAREMODE} ${INSTALL_CF} /etc/mail/sendmail.cf .endif -install-submit-cf: ${INSTALL_SUBMIT_CF} +install-submit-cf: ${INSTALL_SUBMIT_CF} .ifdef SENDMAIL_SET_USER_ID @echo ">>> ERROR: You should not create a submit.cf file if you are using a" @echo " set-user-ID sendmail binary (SENDMAIL_SET_USER_ID is set" @@ -205,9 +214,9 @@ .endif .endif -aliases: ${SENDMAIL_ALIASES:%=%.db} +aliases: ${SENDMAIL_ALIASES:%=%.db} -maps: ${SENDMAIL_MAP_OBJ} +maps: ${SENDMAIL_MAP_OBJ} start start-mta start-mspq: @if [ -r ${SENDMAIL_START_SCRIPT} ]; then \ ==== //depot/projects/hammer/etc/mtree/BSD.local.dist#8 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/etc/mtree/BSD.local.dist,v 1.97 2003/06/06 22:34:43 ache Exp $ +# $FreeBSD: src/etc/mtree/BSD.local.dist,v 1.98 2003/07/05 11:41:10 ache Exp $ # # Please see the file src/etc/mtree/README before making changes to this file. # @@ -363,6 +363,8 @@ .. hu_HU.ISO8859-2 .. + hy_AM.ARMSCII-8 + .. is_IS.ISO8859-1 .. is_IS.ISO8859-15 ==== //depot/projects/hammer/etc/mtree/BSD.usr.dist#8 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/etc/mtree/BSD.usr.dist,v 1.275 2003/06/06 22:34:43 ache Exp $ +# $FreeBSD: src/etc/mtree/BSD.usr.dist,v 1.276 2003/07/05 11:41:10 ache Exp $ # # Please see the file src/etc/mtree/README before making changes to this file. # @@ -425,6 +425,8 @@ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Jul 9 15:50:33 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D55B437B404; Wed, 9 Jul 2003 15:50:32 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6622A37B401 for ; Wed, 9 Jul 2003 15:50:32 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 70AA343F3F for ; Wed, 9 Jul 2003 15:50:31 -0700 (PDT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h69MoV0U017159 for ; Wed, 9 Jul 2003 15:50:31 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h69MoUOU017153 for perforce@freebsd.org; Wed, 9 Jul 2003 15:50:30 -0700 (PDT) Date: Wed, 9 Jul 2003 15:50:30 -0700 (PDT) Message-Id: <200307092250.h69MoUOU017153@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Subject: PERFORCE change 34277 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 22:50:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=34277 Change 34277 by peter@peter_hammer on 2003/07/09 15:49:35 Fix bugs that stopped >512G of user VM working. I neglected to mask off to the correct size for a few intra-directory page offsets in _pmap_allocpte, and in unwire_pte_hold, I did the exact opposite and masked off too much. Affected files ... .. //depot/projects/hammer/sys/amd64/amd64/pmap.c#26 edit Differences ... ==== //depot/projects/hammer/sys/amd64/amd64/pmap.c#26 (text+ko) ==== @@ -890,6 +890,7 @@ if (m->hold_count == 0) { vm_offset_t pteva; + /* * unmap the page table page */ @@ -914,9 +915,11 @@ } --pmap->pm_stats.resident_count; if (m->pindex < NUPDE) { - /* Unhold the PD page */ + /* We just released a PT, unhold the matching PD */ vm_page_t pdpg; - pdpg = vm_page_lookup(pmap->pm_pteobj, NUPDE + pmap_pdpe_index(va)); + + pdpg = vm_page_lookup(pmap->pm_pteobj, NUPDE + + ((va >> PDPSHIFT) & (NUPDPE - 1))); while (vm_page_sleep_if_busy(pdpg, FALSE, "pulook")) vm_page_lock_queues(); vm_page_unhold(pdpg); @@ -924,9 +927,11 @@ _pmap_unwire_pte_hold(pmap, va, pdpg); } if (m->pindex >= NUPDE && m->pindex < (NUPDE + NUPDPE)) { - /* Unhold the PDP page */ + /* We just released a PD, unhold the matching PDP */ vm_page_t pdppg; - pdppg = vm_page_lookup(pmap->pm_pteobj, NUPDE + NUPDPE + pmap_pml4e_index(va)); + + pdppg = vm_page_lookup(pmap->pm_pteobj, NUPDE + NUPDPE + + ((va >> PML4SHIFT) & (NUPML4E - 1))); while (vm_page_sleep_if_busy(pdppg, FALSE, "pulooK")) vm_page_lock_queues(); vm_page_unhold(pdppg); @@ -1124,7 +1129,8 @@ _pmap_allocpte(pmap, NUPDE + NUPDPE + pml4index); } else { /* Add reference to pdp page */ - pdppg = pmap_page_lookup(pmap->pm_pteobj, NUPDE + NUPDPE + pml4index); + pdppg = pmap_page_lookup(pmap->pm_pteobj, + NUPDE + NUPDPE + pml4index); pdppg->hold_count++; } pdp = (pdp_entry_t *)PHYS_TO_DMAP(*pml4 & PG_FRAME); @@ -1150,16 +1156,17 @@ /* Have to allocate a new pd, recurse */ _pmap_allocpte(pmap, NUPDE + pdpindex); pdp = (pdp_entry_t *)PHYS_TO_DMAP(*pml4 & PG_FRAME); - pdp = &pdp[pdpindex]; + pdp = &pdp[pdpindex & ((1ul << NPDPEPGSHIFT) - 1)]; } else { pdp = (pdp_entry_t *)PHYS_TO_DMAP(*pml4 & PG_FRAME); - pdp = &pdp[pdpindex]; + pdp = &pdp[pdpindex & ((1ul << NPDPEPGSHIFT) - 1)]; if ((*pdp & PG_V) == 0) { /* Have to allocate a new pd, recurse */ _pmap_allocpte(pmap, NUPDE + pdpindex); } else { /* Add reference to the pd page */ - pdpg = pmap_page_lookup(pmap->pm_pteobj, NUPDE + pdpindex); + pdpg = pmap_page_lookup(pmap->pm_pteobj, + NUPDE + pdpindex); pdpg->hold_count++; } } @@ -1239,7 +1246,7 @@ /*************************************************** -* Pmap allocation/deallocation routines. + * Pmap allocation/deallocation routines. ***************************************************/ /* From owner-p4-projects@FreeBSD.ORG Wed Jul 9 15:50:34 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 359F237B41B; Wed, 9 Jul 2003 15:50:33 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id ADA5B37B405 for ; Wed, 9 Jul 2003 15:50:32 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 38D3543FAF for ; Wed, 9 Jul 2003 15:50:32 -0700 (PDT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h69MoW0U017171 for ; Wed, 9 Jul 2003 15:50:32 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h69MoVcq017162 for perforce@freebsd.org; Wed, 9 Jul 2003 15:50:31 -0700 (PDT) Date: Wed, 9 Jul 2003 15:50:31 -0700 (PDT) Message-Id: <200307092250.h69MoVcq017162@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Subject: PERFORCE change 34278 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 22:50:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=34278 Change 34278 by peter@peter_hammer on 2003/07/09 15:50:04 Go from 1/2TB of user VM to 128TB of user VM (the current architectural limit on amd64). Affected files ... .. //depot/projects/hammer/sys/amd64/include/pmap.h#16 edit .. //depot/projects/hammer/sys/amd64/include/vmparam.h#11 edit Differences ... ==== //depot/projects/hammer/sys/amd64/include/pmap.h#16 (text+ko) ==== @@ -86,14 +86,18 @@ * Pte related macros. This is complicated by having to deal with * the sign extension of the 48th bit. */ -#define VADDR_SIGN(l4) \ - ((l4) >= NPML4EPG/2 ? ((unsigned long)-1 << 47) : 0ul) -#define VADDR(l4, l3, l2, l1) ( \ - ((unsigned long)(l4) << PML4SHIFT) | VADDR_SIGN(l4) | \ +#define KVADDR(l4, l3, l2, l1) ( \ + ((unsigned long)-1 << 47) | \ + ((unsigned long)(l4) << PML4SHIFT) | \ ((unsigned long)(l3) << PDPSHIFT) | \ ((unsigned long)(l2) << PDRSHIFT) | \ ((unsigned long)(l1) << PAGE_SHIFT)) +#define UVADDR(l4, l3, l2, l1) ( \ + ((unsigned long)(l4) << PML4SHIFT) | \ + ((unsigned long)(l3) << PDPSHIFT) | \ + ((unsigned long)(l2) << PDRSHIFT) | \ + ((unsigned long)(l1) << PAGE_SHIFT)) #ifndef NKPT #define NKPT 120 /* initial number of kernel page tables */ @@ -103,7 +107,7 @@ #define NKPDPE 1 /* number of kernel PDP slots */ #define NKPDE (NKPDPE*NPDEPG) /* number of kernel PD slots */ -#define NUPML4E 1 /* number of userland PML4 pages */ +#define NUPML4E (NPML4EPG/2) /* number of userland PML4 pages */ #define NUPDPE (NUPML4E*NPDPEPG)/* number of userland PDP pages */ #define NUPDE (NUPDPE*NPDEPG) /* number of userland PD entries */ @@ -149,10 +153,10 @@ * in the page tables and the evil overlapping. */ #ifdef _KERNEL -#define addr_PTmap (VADDR(PML4PML4I, 0, 0, 0)) -#define addr_PDmap (VADDR(PML4PML4I, PML4PML4I, 0, 0)) -#define addr_PDPmap (VADDR(PML4PML4I, PML4PML4I, PML4PML4I, 0)) -#define addr_PML4map (VADDR(PML4PML4I, PML4PML4I, PML4PML4I, PML4PML4I)) +#define addr_PTmap (KVADDR(PML4PML4I, 0, 0, 0)) +#define addr_PDmap (KVADDR(PML4PML4I, PML4PML4I, 0, 0)) +#define addr_PDPmap (KVADDR(PML4PML4I, PML4PML4I, PML4PML4I, 0)) +#define addr_PML4map (KVADDR(PML4PML4I, PML4PML4I, PML4PML4I, PML4PML4I)) #define addr_PML4pml4e (addr_PML4map + (PML4PML4I * sizeof(pml4_entry_t))) #define PTmap ((pt_entry_t *)(addr_PTmap)) #define PDmap ((pd_entry_t *)(addr_PDmap)) ==== //depot/projects/hammer/sys/amd64/include/vmparam.h#11 (text+ko) ==== @@ -92,18 +92,18 @@ * messy at times, but hey, we'll do anything to save a page :-) */ -#define VM_MAX_KERNEL_ADDRESS VADDR(KPML4I, NPDPEPG-1, NKPDE-1, NPTEPG-1) -#define VM_MIN_KERNEL_ADDRESS VADDR(KPML4I, KPDPI, 0, 0) +#define VM_MAX_KERNEL_ADDRESS KVADDR(KPML4I, NPDPEPG-1, NKPDE-1, NPTEPG-1) +#define VM_MIN_KERNEL_ADDRESS KVADDR(KPML4I, KPDPI, 0, 0) -#define DMAP_MIN_ADDRESS VADDR(DMPML4I, 0, 0, 0) -#define DMAP_MAX_ADDRESS VADDR(DMPML4I+1, 0, 0, 0) +#define DMAP_MIN_ADDRESS KVADDR(DMPML4I, 0, 0, 0) +#define DMAP_MAX_ADDRESS KVADDR(DMPML4I+1, 0, 0, 0) -#define KERNBASE VADDR(KPML4I, KPDPI, 0, 0) +#define KERNBASE KVADDR(KPML4I, KPDPI, 0, 0) -#define UPT_MAX_ADDRESS VADDR(PML4PML4I, PML4PML4I, PML4PML4I, PML4PML4I) -#define UPT_MIN_ADDRESS VADDR(PML4PML4I, 0, 0, 0) +#define UPT_MAX_ADDRESS KVADDR(PML4PML4I, PML4PML4I, PML4PML4I, PML4PML4I) +#define UPT_MIN_ADDRESS KVADDR(PML4PML4I, 0, 0, 0) -#define VM_MAXUSER_ADDRESS VADDR(NUPML4E, 0, 0, 0) +#define VM_MAXUSER_ADDRESS UVADDR(NUPML4E, 0, 0, 0) #define USRSTACK VM_MAXUSER_ADDRESS From owner-p4-projects@FreeBSD.ORG Wed Jul 9 16:07:58 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A630737B404; Wed, 9 Jul 2003 16:07:57 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4010037B401 for ; Wed, 9 Jul 2003 16:07:57 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 901C143F75 for ; Wed, 9 Jul 2003 16:07:56 -0700 (PDT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h69N7u0U024001 for ; Wed, 9 Jul 2003 16:07:56 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h69N7uha023998 for perforce@freebsd.org; Wed, 9 Jul 2003 16:07:56 -0700 (PDT) Date: Wed, 9 Jul 2003 16:07:56 -0700 (PDT) Message-Id: <200307092307.h69N7uha023998@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Subject: PERFORCE change 34282 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 23:07:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=34282 Change 34282 by peter@peter_daintree on 2003/07/09 16:07:00 IFC @34281 Affected files ... .. //depot/projects/hammer/etc/pam.d/su#6 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_sig.c#14 integrate .. //depot/projects/hammer/sys/amd64/amd64/pmap.c#27 integrate .. //depot/projects/hammer/sys/amd64/include/pmap.h#17 integrate .. //depot/projects/hammer/sys/amd64/include/vmparam.h#12 integrate .. //depot/projects/hammer/sys/dev/aac/aac.c#12 integrate .. //depot/projects/hammer/sys/dev/aac/aacvar.h#6 integrate .. //depot/projects/hammer/sys/kern/sys_pipe.c#9 integrate .. //depot/projects/hammer/sys/sys/vnode.h#14 integrate Differences ... ==== //depot/projects/hammer/etc/pam.d/su#6 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/etc/pam.d/su,v 1.15 2003/06/14 12:35:05 des Exp $ +# $FreeBSD: src/etc/pam.d/su,v 1.16 2003/07/09 18:40:49 des Exp $ # # PAM configuration for the "su" service # @@ -14,4 +14,4 @@ account include system # session -session include system +session required pam_permit.so ==== //depot/projects/hammer/lib/libpthread/thread/thr_sig.c#14 (text+ko) ==== @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libpthread/thread/thr_sig.c,v 1.60 2003/07/09 14:30:51 davidxu Exp $ + * $FreeBSD: src/lib/libpthread/thread/thr_sig.c,v 1.61 2003/07/09 22:30:55 davidxu Exp $ */ #include #include @@ -770,10 +770,12 @@ } else { /* Increment the pending signal count. */ SIGADDSET(pthread->sigpend, sig); - pthread->check_pending = 1; - pthread->interrupted = 1; - pthread->sigmask = pthread->oldsigmask; - _thr_setrunnable_unlocked(pthread); + if (!SIGISMEMBER(pthread->oldsigmask, sig)) { + pthread->check_pending = 1; + pthread->interrupted = 1; + pthread->sigmask = pthread->oldsigmask; + _thr_setrunnable_unlocked(pthread); + } } return; @@ -836,10 +838,12 @@ } else { /* Increment the pending signal count. */ SIGADDSET(pthread->sigpend, sig); - pthread->check_pending = 1; - pthread->interrupted = 1; - pthread->sigmask = pthread->oldsigmask; - _thr_setrunnable_unlocked(pthread); + if (!SIGISMEMBER(pthread->oldsigmask, sig)) { + pthread->check_pending = 1; + pthread->interrupted = 1; + pthread->sigmask = pthread->oldsigmask; + _thr_setrunnable_unlocked(pthread); + } } break; ==== //depot/projects/hammer/sys/amd64/amd64/pmap.c#27 (text+ko) ==== @@ -39,7 +39,7 @@ * SUCH DAMAGE. * * from: @(#)pmap.c 7.7 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.420 2003/07/08 19:40:34 alc Exp $ + * $FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.423 2003/07/09 22:59:45 peter Exp $ */ /*- * Copyright (c) 2003 Networks Associates Technology, Inc. ==== //depot/projects/hammer/sys/amd64/include/pmap.h#17 (text+ko) ==== @@ -42,7 +42,7 @@ * * from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90 * from: @(#)pmap.h 7.4 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.104 2003/06/22 13:02:45 simokawa Exp $ + * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.105 2003/07/09 23:04:23 peter Exp $ */ #ifndef _MACHINE_PMAP_H_ ==== //depot/projects/hammer/sys/amd64/include/vmparam.h#12 (text+ko) ==== @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * from: @(#)vmparam.h 5.9 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.38 2003/05/23 06:36:46 peter Exp $ + * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.39 2003/07/09 23:04:23 peter Exp $ */ ==== //depot/projects/hammer/sys/dev/aac/aac.c#12 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/aac/aac.c,v 1.72 2003/07/09 19:30:30 scottl Exp $ + * $FreeBSD: src/sys/dev/aac/aac.c,v 1.73 2003/07/09 21:16:23 scottl Exp $ */ /* @@ -67,7 +67,7 @@ /* Command Processing */ static void aac_timeout(struct aac_softc *sc); -static int aac_start(struct aac_command *cm); +static int aac_map_command(struct aac_command *cm); static void aac_complete(void *context, int pending); static int aac_bio_command(struct aac_softc *sc, struct aac_command **cmp); static void aac_bio_complete(struct aac_command *cm); @@ -75,11 +75,12 @@ static void aac_command_thread(struct aac_softc *sc); /* Command Buffer Management */ +static void aac_map_command_sg(void *arg, bus_dma_segment_t *segs, + int nseg, int error); static void aac_map_command_helper(void *arg, bus_dma_segment_t *segs, int nseg, int error); static int aac_alloc_commands(struct aac_softc *sc); static void aac_free_commands(struct aac_softc *sc); -static void aac_map_command(struct aac_command *cm); static void aac_unmap_command(struct aac_command *cm); /* Hardware Interface */ @@ -667,6 +668,9 @@ debug_called(2); + if (sc->flags & AAC_QUEUE_FRZN) + return; + for (;;) { /* * Try to get a command that's been put off for lack of @@ -686,7 +690,7 @@ break; /* try to give the command to the controller */ - if (aac_start(cm) == EBUSY) { + if (aac_map_command(cm) == EBUSY) { /* put it on the ready queue for later */ aac_requeue_ready(cm); break; @@ -699,7 +703,7 @@ * last moment when possible. */ static int -aac_start(struct aac_command *cm) +aac_map_command(struct aac_command *cm) { struct aac_softc *sc; int error; @@ -707,22 +711,23 @@ debug_called(2); sc = cm->cm_sc; + error = 0; - /* get the command mapped */ - aac_map_command(cm); + /* don't map more than once */ + if (cm->cm_flags & AAC_CMD_MAPPED) + return (0); - /* Fix up the address values in the FIB. Use the command array index - * instead of a pointer since these fields are only 32 bits. Shift - * the SenderFibAddress over to make room for the fast response bit. - */ - cm->cm_fib->Header.SenderFibAddress = (cm->cm_index << 1); - cm->cm_fib->Header.ReceiverFibAddress = cm->cm_fibphys; - - /* save a pointer to the command for speedy reverse-lookup */ - cm->cm_fib->Header.SenderData = cm->cm_index; - /* put the FIB on the outbound queue */ - error = aac_enqueue_fib(sc, cm->cm_queue, cm); - return(error); + if (cm->cm_datalen != 0) { + error = bus_dmamap_load(sc->aac_buffer_dmat, cm->cm_datamap, + cm->cm_data, cm->cm_datalen, + aac_map_command_sg, cm, 0); + if (error == EINPROGRESS) { + debug(1, "freezing queue\n"); + sc->flags |= AAC_QUEUE_FRZN; + error = 0; + } + } + return (error); } /* @@ -859,6 +864,7 @@ } /* see if we can start some more I/O */ + sc->flags &= ~AAC_QUEUE_FRZN; aac_startio(sc); AAC_LOCK_RELEASE(&sc->aac_io_lock); @@ -1158,9 +1164,10 @@ return (ENOMEM); } - bus_dmamap_load(sc->aac_fib_dmat, fm->aac_fibmap, fm->aac_fibs, - AAC_FIB_COUNT * sizeof(struct aac_fib), - aac_map_command_helper, &fibphys, 0); + /* Ignore errors since this doesn't bounce */ + (void)bus_dmamap_load(sc->aac_fib_dmat, fm->aac_fibmap, fm->aac_fibs, + AAC_FIB_COUNT * sizeof(struct aac_fib), + aac_map_command_helper, &fibphys, 0); /* initialise constant fields in the command structure */ bzero(fm->aac_fibs, AAC_FIB_COUNT * sizeof(struct aac_fib)); @@ -1227,6 +1234,7 @@ static void aac_map_command_sg(void *arg, bus_dma_segment_t *segs, int nseg, int error) { + struct aac_softc *sc; struct aac_command *cm; struct aac_fib *fib; int i; @@ -1234,6 +1242,7 @@ debug_called(3); cm = (struct aac_command *)arg; + sc = cm->cm_sc; fib = cm->cm_fib; /* copy into the FIB */ @@ -1260,37 +1269,30 @@ fib->Header.Size += nseg*sizeof(struct aac_sg_entry64); } } -} -/* - * Map a command into controller-visible space. - */ -static void -aac_map_command(struct aac_command *cm) -{ - struct aac_softc *sc; + /* Fix up the address values in the FIB. Use the command array index + * instead of a pointer since these fields are only 32 bits. Shift + * the SenderFibAddress over to make room for the fast response bit. + */ + cm->cm_fib->Header.SenderFibAddress = (cm->cm_index << 1); + cm->cm_fib->Header.ReceiverFibAddress = cm->cm_fibphys; - debug_called(2); + /* save a pointer to the command for speedy reverse-lookup */ + cm->cm_fib->Header.SenderData = cm->cm_index; - sc = cm->cm_sc; + if (cm->cm_flags & AAC_CMD_DATAIN) + bus_dmamap_sync(sc->aac_buffer_dmat, cm->cm_datamap, + BUS_DMASYNC_PREREAD); + if (cm->cm_flags & AAC_CMD_DATAOUT) + bus_dmamap_sync(sc->aac_buffer_dmat, cm->cm_datamap, + BUS_DMASYNC_PREWRITE); + cm->cm_flags |= AAC_CMD_MAPPED; - /* don't map more than once */ - if (cm->cm_flags & AAC_CMD_MAPPED) - return; + /* put the FIB on the outbound queue */ + if (aac_enqueue_fib(sc, cm->cm_queue, cm) == EBUSY) + aac_requeue_ready(cm); - if (cm->cm_datalen != 0) { - bus_dmamap_load(sc->aac_buffer_dmat, cm->cm_datamap, - cm->cm_data, cm->cm_datalen, - aac_map_command_sg, cm, 0); - - if (cm->cm_flags & AAC_CMD_DATAIN) - bus_dmamap_sync(sc->aac_buffer_dmat, cm->cm_datamap, - BUS_DMASYNC_PREREAD); - if (cm->cm_flags & AAC_CMD_DATAOUT) - bus_dmamap_sync(sc->aac_buffer_dmat, cm->cm_datamap, - BUS_DMASYNC_PREWRITE); - } - cm->cm_flags |= AAC_CMD_MAPPED; + return; } /* @@ -1386,7 +1388,8 @@ sc->flags |= AAC_FLAGS_4GB_WINDOW; if (options & AAC_SUPPORTED_NONDASD) sc->flags |= AAC_FLAGS_ENABLE_CAM; - if ((options & AAC_SUPPORTED_SGMAP_HOST64) != 0 && (sizeof(bus_addr_t) > 4)) { + if ((options & AAC_SUPPORTED_SGMAP_HOST64) != 0 + && (sizeof(bus_addr_t) > 4)) { device_printf(sc->aac_dev, "Enabling 64-bit address support\n"); sc->flags |= AAC_FLAGS_SG_64BIT; } @@ -1510,7 +1513,7 @@ * XXX If the padding is not needed, can it be put to use instead * of ignored? */ - bus_dmamap_load(sc->aac_common_dmat, sc->aac_common_dmamap, + (void)bus_dmamap_load(sc->aac_common_dmat, sc->aac_common_dmamap, sc->aac_common, 8192 + sizeof(*sc->aac_common), aac_common_map, sc, 0); ==== //depot/projects/hammer/sys/dev/aac/aacvar.h#6 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/aac/aacvar.h,v 1.34 2003/07/09 19:19:16 scottl Exp $ + * $FreeBSD: src/sys/dev/aac/aacvar.h,v 1.35 2003/07/09 21:16:23 scottl Exp $ */ #include @@ -167,6 +167,8 @@ #define AAC_ON_AACQ_BUSY (1<<7) #define AAC_ON_AACQ_COMPLETE (1<<8) #define AAC_ON_AACQ_MASK ((1<<5)|(1<<6)|(1<<7)|(1<<8)) +#define AAC_QUEUE_FRZN (1<<9) /* Freeze the processing of + * commands on the queue. */ void (* cm_complete)(struct aac_command *cm); void *cm_private; ==== //depot/projects/hammer/sys/kern/sys_pipe.c#9 (text+ko) ==== @@ -70,7 +70,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/sys_pipe.c,v 1.138 2003/07/08 04:02:31 silby Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/sys_pipe.c,v 1.139 2003/07/09 21:59:48 silby Exp $"); #include "opt_mac.h" @@ -183,13 +183,15 @@ SYSCTL_DECL(_kern_ipc); SYSCTL_INT(_kern_ipc, OID_AUTO, maxpipes, CTLFLAG_RW, - &maxpipes, 0, ""); + &maxpipes, 0, "Max # of pipes"); SYSCTL_INT(_kern_ipc, OID_AUTO, maxpipekva, CTLFLAG_RW, &maxpipekva, 0, "Pipe KVA limit"); SYSCTL_INT(_kern_ipc, OID_AUTO, maxpipekvawired, CTLFLAG_RW, &maxpipekvawired, 0, "Pipe KVA wired limit"); SYSCTL_INT(_kern_ipc, OID_AUTO, pipes, CTLFLAG_RD, - &amountpipes, 0, ""); + &amountpipes, 0, "Current # of pipes"); +SYSCTL_INT(_kern_ipc, OID_AUTO, bigpipes, CTLFLAG_RD, + &nbigpipe, 0, "Current # of big pipes"); SYSCTL_INT(_kern_ipc, OID_AUTO, pipekva, CTLFLAG_RD, &amountpipekva, 0, "Pipe KVA usage"); SYSCTL_INT(_kern_ipc, OID_AUTO, pipekvawired, CTLFLAG_RD, @@ -962,7 +964,7 @@ if ((error = pipelock(wpipe, 1)) == 0) { PIPE_GET_GIANT(wpipe); if (pipespace(wpipe, BIG_PIPE_SIZE) == 0) - nbigpipe++; + atomic_add_int(&nbigpipe, 1); PIPE_DROP_GIANT(wpipe); pipeunlock(wpipe); } @@ -1000,8 +1002,7 @@ */ if ((uio->uio_iov->iov_len >= PIPE_MINDIRECT) && (fp->f_flag & FNONBLOCK) == 0 && - amountpipekvawired < maxpipekvawired && - (uio->uio_iov->iov_len >= PIPE_MINDIRECT)) { + amountpipekvawired < maxpipekvawired) { error = pipe_direct_write(wpipe, uio); if (error) break; @@ -1405,7 +1406,7 @@ if (cpipe->pipe_buffer.buffer != NULL) { if (cpipe->pipe_buffer.size > PIPE_SIZE) - --nbigpipe; + atomic_subtract_int(&nbigpipe, 1); atomic_subtract_int(&amountpipekva, cpipe->pipe_buffer.size); atomic_subtract_int(&amountpipes, 1); kmem_free(kernel_map, ==== //depot/projects/hammer/sys/sys/vnode.h#14 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)vnode.h 8.7 (Berkeley) 2/4/94 - * $FreeBSD: src/sys/sys/vnode.h,v 1.224 2003/05/31 16:42:44 phk Exp $ + * $FreeBSD: src/sys/sys/vnode.h,v 1.225 2003/07/09 22:23:10 hsu Exp $ */ #ifndef _SYS_VNODE_H_ @@ -460,20 +460,9 @@ */ extern struct mtx mntvnode_mtx; -/* - * This macro is very helpful in defining those offsets in the vdesc struct. - * - * This is stolen from X11R4. I ignored all the fancy stuff for - * Crays, so if you decide to port this to such a serious machine, - * you might want to consult Intrinsic.h's XtOffset{,Of,To}. - */ -#define VOPARG_OFFSET(p_type,field) \ - ((int) (((char *) (&(((p_type)NULL)->field))) - ((char *) NULL))) -#define VOPARG_OFFSETOF(s_type,field) \ - VOPARG_OFFSET(s_type*,field) -#define VOPARG_OFFSETTO(S_TYPE,S_OFFSET,STRUCT_P) \ - ((S_TYPE)(((char*)(STRUCT_P))+(S_OFFSET))) - +#define VOPARG_OFFSETOF(s_type, field) __offsetof(s_type, field) +#define VOPARG_OFFSETTO(s_type, s_offset, struct_p) \ + ((s_type)(((char*)(struct_p)) + (s_offset))) /* * This structure is used to configure the new vnodeops vector. From owner-p4-projects@FreeBSD.ORG Wed Jul 9 16:10:01 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 74A0237B404; Wed, 9 Jul 2003 16:10:00 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1382537B401 for ; Wed, 9 Jul 2003 16:10:00 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A91F543FDD for ; Wed, 9 Jul 2003 16:09:59 -0700 (PDT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h69N9x0U024038 for ; Wed, 9 Jul 2003 16:09:59 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h69N9x2m024035 for perforce@freebsd.org; Wed, 9 Jul 2003 16:09:59 -0700 (PDT) Date: Wed, 9 Jul 2003 16:09:59 -0700 (PDT) Message-Id: <200307092309.h69N9x2m024035@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Subject: PERFORCE change 34283 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 23:10:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=34283 Change 34283 by peter@peter_daintree on 2003/07/09 16:09:12 Move the 2MB page, 128TB, binutils.diff stuff to the done section Affected files ... .. //depot/projects/hammer/TODO.txt#5 edit Differences ... ==== //depot/projects/hammer/TODO.txt#5 (text+ko) ==== @@ -1,4 +1,4 @@ -$P4: //depot/projects/hammer/TODO.txt#4 $ +$P4: //depot/projects/hammer/TODO.txt#5 $ reread the logs etc and check out the "XXX worry about this later" stuff @@ -35,13 +35,6 @@ see if openssl can use the assembler x86-64 routines. (easy) -128TB of user process VM space (the support is there, but there is -a bug somewhere as it crosses the 512G mark into a new pml4e) - -full 2MB pmap page support in pmap (ifdef'ed out, some stuff uses vtopte() -where it shouldn't, and the direct pte map interface needs to be made -aware of it) - SSE/SSE2 support in libc (the fpget/set*() functions need to adjust the SSE MXCSR register as well as the x87 control word - netbsd have already done this, we can look at theirs) @@ -55,9 +48,6 @@ revert ppp(8) compiler bug workaround after gcc-3.3 is imported. -do something about config changes for binutils to enable i386 output -(in p4, not cvs) http://people.freebsd.org/~peter/binutils.diff - ======= DONE ======= ppp(8) (compiler bug, hack in http://people.freebsd.org/~peter/hammer.diff, but gcc-3.3 would be much better) @@ -74,3 +64,13 @@ libstdc++.so (build bug, tries to link libgcc.a (non-pic) into the .so, but the libstdc++.a works). +do something about config changes for binutils to enable i386 output +XXX david committed part of it, and fixed the other half better. + +128TB of user process VM space (the support is there, but there is +a bug somewhere as it crosses the 512G mark into a new pml4e) + +full 2MB pmap page support in pmap (ifdef'ed out, some stuff uses vtopte() +where it shouldn't, and the direct pte map interface needs to be made +aware of it) + From owner-p4-projects@FreeBSD.ORG Wed Jul 9 21:38:40 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0E68437B404; Wed, 9 Jul 2003 21:38:40 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B1A5037B401 for ; Wed, 9 Jul 2003 21:38:39 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5566443FA3 for ; Wed, 9 Jul 2003 21:38:39 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h6A4cd0U083978 for ; Wed, 9 Jul 2003 21:38:39 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h6A4ccBQ083975 for perforce@freebsd.org; Wed, 9 Jul 2003 21:38:38 -0700 (PDT) Date: Wed, 9 Jul 2003 21:38:38 -0700 (PDT) Message-Id: <200307100438.h6A4ccBQ083975@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 34287 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 04:38:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=34287 Change 34287 by marcel@marcel_nfs on 2003/07/09 21:38:25 Implement the attach() and ipend() methods. Affected files ... .. //depot/projects/uart/dev/uart/uart_dev_ns8250.c#6 edit Differences ... ==== //depot/projects/uart/dev/uart/uart_dev_ns8250.c#6 (text+ko) ==== @@ -297,6 +297,7 @@ struct ns8250_softc { struct uart_softc base; uint8_t fcr; + uint8_t lcr; uint8_t mcr; }; @@ -332,7 +333,18 @@ static int ns8250_bus_attach(struct uart_softc *sc) { + struct ns8250_softc *ns8250 = (struct ns8250_softc*)sc; + struct uart_bas *bas; + + bas = &sc->sc_bas; + ns8250->mcr = uart_getreg(bas, REG_MCR); + ns8250->lcr = uart_getreg(bas, REG_LCR); + ns8250->fcr = FCR_ENABLE | FCR_RX_MEDL; + uart_setreg(bas, REG_FCR, ns8250->fcr); + uart_setreg(bas, REG_IER, + IER_ERXRDY | IER_ETXRDY | IER_ERLS | IER_EMSC); + uart_barrier(bas); return (0); } @@ -360,8 +372,29 @@ static int ns8250_bus_ipend(struct uart_softc *sc) { + struct uart_bas *bas; + int ipend; + uint8_t iir, lsr; - return (0); + bas = &sc->sc_bas; + ipend = 0; + iir = uart_getreg(bas, REG_IIR); + if (iir == IIR_RLS) { + lsr = uart_getreg(bas, REG_LSR); + if (lsr & LSR_OE) + ipend |= UART_IPEND_OVERRUN; + if (lsr & LSR_BI) + ipend |= UART_IPEND_BREAK; + uart_barrier(bas); + iir = uart_getreg(bas, REG_IIR); + } + if (iir == IIR_RXRDY || iir == IIR_RXTOUT) + ipend |= UART_IPEND_RXREADY; + if (iir == IIR_TXRDY) + ipend |= UART_IPEND_TXIDLE; + if (iir == IIR_MLSC) + ipend |= UART_IPEND_SIGCHG; + return (ipend); } static int From owner-p4-projects@FreeBSD.ORG Wed Jul 9 22:06:15 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 10E5837B404; Wed, 9 Jul 2003 22:06:15 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 963CA37B401 for ; Wed, 9 Jul 2003 22:06:14 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 746C043F93 for ; Wed, 9 Jul 2003 22:06:13 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h6A56D0U085987 for ; Wed, 9 Jul 2003 22:06:13 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h6A56CVe085984 for perforce@freebsd.org; Wed, 9 Jul 2003 22:06:12 -0700 (PDT) Date: Wed, 9 Jul 2003 22:06:12 -0700 (PDT) Message-Id: <200307100506.h6A56CVe085984@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 34288 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 05:06:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=34288 Change 34288 by marcel@marcel_nfs on 2003/07/09 22:05:26 IFC @34286 Affected files ... .. //depot/projects/ia64/etc/pam.d/su#11 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_sig.c#16 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_sigwait.c#9 integrate .. //depot/projects/ia64/libexec/ftpd/ftpcmd.y#17 integrate .. //depot/projects/ia64/libexec/ftpd/ftpd.c#21 integrate .. //depot/projects/ia64/release/doc/ja_JP.eucJP/relnotes/common/new.sgml#26 integrate .. //depot/projects/ia64/share/man/man4/amr.4#3 integrate .. //depot/projects/ia64/sys/amd64/amd64/pmap.c#11 integrate .. //depot/projects/ia64/sys/amd64/include/pmap.h#5 integrate .. //depot/projects/ia64/sys/amd64/include/vmparam.h#3 integrate .. //depot/projects/ia64/sys/conf/files#86 integrate .. //depot/projects/ia64/sys/conf/options.i386#19 integrate .. //depot/projects/ia64/sys/conf/options.pc98#20 integrate .. //depot/projects/ia64/sys/dev/aac/aac.c#27 integrate .. //depot/projects/ia64/sys/dev/aac/aac_pci.c#20 integrate .. //depot/projects/ia64/sys/dev/aac/aacvar.h#17 integrate .. //depot/projects/ia64/sys/dev/acpica/acpi_isab.c#2 integrate .. //depot/projects/ia64/sys/dev/firewire/firewire.c#33 integrate .. //depot/projects/ia64/sys/dev/usb/uscanner.c#11 integrate .. //depot/projects/ia64/sys/i386/i386/mp_machdep.c#24 integrate .. //depot/projects/ia64/sys/i386/i386/pmap.c#50 integrate .. //depot/projects/ia64/sys/i386/i386/swtch.s#11 integrate .. //depot/projects/ia64/sys/i386/isa/apic_vector.s#9 integrate .. //depot/projects/ia64/sys/kern/kern_synch.c#41 integrate .. //depot/projects/ia64/sys/kern/subr_witness.c#36 integrate .. //depot/projects/ia64/sys/kern/sys_pipe.c#34 integrate .. //depot/projects/ia64/sys/pci/if_dc.c#40 integrate .. //depot/projects/ia64/sys/pci/if_dcreg.h#14 integrate .. //depot/projects/ia64/sys/sparc64/conf/GENERIC#37 integrate .. //depot/projects/ia64/sys/sys/vnode.h#31 integrate Differences ... ==== //depot/projects/ia64/etc/pam.d/su#11 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/etc/pam.d/su,v 1.15 2003/06/14 12:35:05 des Exp $ +# $FreeBSD: src/etc/pam.d/su,v 1.16 2003/07/09 18:40:49 des Exp $ # # PAM configuration for the "su" service # @@ -14,4 +14,4 @@ account include system # session -session include system +session required pam_permit.so ==== //depot/projects/ia64/lib/libpthread/thread/thr_sig.c#16 (text+ko) ==== @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libpthread/thread/thr_sig.c,v 1.59 2003/07/09 01:39:24 davidxu Exp $ + * $FreeBSD: src/lib/libpthread/thread/thr_sig.c,v 1.61 2003/07/09 22:30:55 davidxu Exp $ */ #include #include @@ -217,7 +217,10 @@ THR_IS_EXITING(thread) || THR_IS_SUSPENDED(thread)) { KSE_SCHED_UNLOCK(curkse, thread->kseg); _thr_ref_delete(NULL, thread); - } else if (SIGISMEMBER(thread->sigmask, sig)) { + } else if ((thread->state == PS_SIGWAIT && + SIGISMEMBER(thread->oldsigmask, sig)) || + (thread->state != PS_SIGWAIT && + SIGISMEMBER(thread->sigmask, sig))) { KSE_SCHED_UNLOCK(curkse, thread->kseg); _thr_ref_delete(NULL, thread); } else { @@ -415,10 +418,10 @@ if ((pthread->state == PS_DEAD) || (pthread->state == PS_DEADLOCK) || THR_IS_EXITING(pthread) || - THR_IS_SUSPENDED(pthread) || - SIGISMEMBER(pthread->sigmask, sig)) { + THR_IS_SUSPENDED(pthread)) { ; /* Skip this thread. */ - } else if (pthread->state == PS_SIGWAIT) { + } else if (pthread->state == PS_SIGWAIT && + !SIGISMEMBER(pthread->sigmask, sig)) { /* * retrieve signal from kernel, if it is job control * signal, and sigaction is SIG_DFL, then we will @@ -447,7 +450,9 @@ */ KSE_LOCK_RELEASE(curkse, &_thread_list_lock); return (NULL); - } else { + } else if (!SIGISMEMBER(pthread->sigmask, sig) || + (!SIGISMEMBER(pthread->oldsigmask, sig) && + pthread->state == PS_SIGWAIT)) { if (pthread->state == PS_SIGSUSPEND) { if (suspended_thread == NULL) { suspended_thread = pthread; @@ -490,6 +495,8 @@ _thr_sig_rundown(struct pthread *curthread, ucontext_t *ucp, struct pthread_sigframe *psf) { + int interrupted = curthread->interrupted; + int timeout = curthread->timeout; siginfo_t siginfo; int i; kse_critical_t crit; @@ -563,6 +570,9 @@ KSE_SCHED_UNLOCK(curkse, curkse->k_kseg); _kse_critical_leave(&curthread->tmbx); + curthread->interrupted = interrupted; + curthread->timeout = timeout; + DBG_MSG("<<< thr_sig_rundown %p\n", curthread); } @@ -659,7 +669,8 @@ #endif if (pthread->curframe == NULL || - SIGISMEMBER(pthread->sigmask, sig) || + (pthread->state != PS_SIGWAIT && + SIGISMEMBER(pthread->sigmask, sig)) || THR_IN_CRITICAL(pthread)) { /* thread is running or signal was being masked */ if (!fromproc) { @@ -759,7 +770,12 @@ } else { /* Increment the pending signal count. */ SIGADDSET(pthread->sigpend, sig); - pthread->check_pending = 1; + if (!SIGISMEMBER(pthread->oldsigmask, sig)) { + pthread->check_pending = 1; + pthread->interrupted = 1; + pthread->sigmask = pthread->oldsigmask; + _thr_setrunnable_unlocked(pthread); + } } return; @@ -822,7 +838,12 @@ } else { /* Increment the pending signal count. */ SIGADDSET(pthread->sigpend, sig); - pthread->check_pending = 1; + if (!SIGISMEMBER(pthread->oldsigmask, sig)) { + pthread->check_pending = 1; + pthread->interrupted = 1; + pthread->sigmask = pthread->oldsigmask; + _thr_setrunnable_unlocked(pthread); + } } break; ==== //depot/projects/ia64/lib/libpthread/thread/thr_sigwait.c#9 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libpthread/thread/thr_sigwait.c,v 1.29 2003/07/04 08:51:37 davidxu Exp $ + * $FreeBSD: src/lib/libpthread/thread/thr_sigwait.c,v 1.30 2003/07/09 14:30:51 davidxu Exp $ */ #include #include @@ -123,6 +123,7 @@ } } curthread->timeout = 0; + curthread->interrupted = 0; _thr_set_timeout(timeout); /* Wait for a signal: */ curthread->oldsigmask = curthread->sigmask; @@ -134,18 +135,18 @@ _thr_sched_switch_unlocked(curthread); /* * Return the signal number to the caller: - * XXX Here is race, how about a signal come in before - * we reach here? so we might got an incorrect timeout - * status. */ if (siginfo.si_signo > 0) { ret = siginfo.si_signo; } else { - if (curthread->timeout) + if (curthread->interrupted) + errno = EINTR; + else if (curthread->timeout) errno = EAGAIN; ret = -1; } - + curthread->timeout = 0; + curthread->interrupted = 0; /* * Probably unnecessary, but since it's in a union struct * we don't know how it could be used in the future. ==== //depot/projects/ia64/libexec/ftpd/ftpcmd.y#17 (text+ko) ==== @@ -45,7 +45,7 @@ static char sccsid[] = "@(#)ftpcmd.y 8.3 (Berkeley) 4/6/94"; #endif static const char rcsid[] = - "$FreeBSD: src/libexec/ftpd/ftpcmd.y,v 1.52 2003/06/21 10:45:38 yar Exp $"; + "$FreeBSD: src/libexec/ftpd/ftpcmd.y,v 1.54 2003/07/09 13:54:33 yar Exp $"; #endif /* not lint */ #include @@ -1169,6 +1169,7 @@ { int c; register char *cs; + sigset_t sset, osset; cs = s; /* tmpline may contain saved command from urgent mode interruption */ @@ -1184,21 +1185,28 @@ if (c == 0) tmpline[0] = '\0'; } + /* SIGURG would interrupt stdio if not blocked during the read loop */ + sigemptyset(&sset); + sigaddset(&sset, SIGURG); + sigprocmask(SIG_BLOCK, &sset, &osset); while ((c = getc(iop)) != EOF) { c &= 0377; if (c == IAC) { - if ((c = getc(iop)) != EOF) { + if ((c = getc(iop)) == EOF) + goto got_eof; c &= 0377; switch (c) { case WILL: case WONT: - c = getc(iop); + if ((c = getc(iop)) == EOF) + goto got_eof; printf("%c%c%c", IAC, DONT, 0377&c); (void) fflush(stdout); continue; case DO: case DONT: - c = getc(iop); + if ((c = getc(iop)) == EOF) + goto got_eof; printf("%c%c%c", IAC, WONT, 0377&c); (void) fflush(stdout); continue; @@ -1207,12 +1215,13 @@ default: continue; /* ignore command */ } - } } *cs++ = c; if (--n <= 0 || c == '\n') break; } +got_eof: + sigprocmask(SIG_SETMASK, &osset, NULL); if (c == EOF && cs == s) return (NULL); *cs++ = '\0'; ==== //depot/projects/ia64/libexec/ftpd/ftpd.c#21 (text+ko) ==== @@ -44,7 +44,7 @@ static char sccsid[] = "@(#)ftpd.c 8.4 (Berkeley) 4/16/94"; #endif static const char rcsid[] = - "$FreeBSD: src/libexec/ftpd/ftpd.c,v 1.144 2003/02/11 14:10:48 yar Exp $"; + "$FreeBSD: src/libexec/ftpd/ftpd.c,v 1.145 2003/07/09 12:46:24 yar Exp $"; #endif /* not lint */ /* @@ -1494,9 +1494,11 @@ * c) expand it to the absolute pathname if necessary. */ if (dochroot && residue && - (chrootdir = strtok(residue, " \t")) != NULL && - chrootdir[0] != '/') { - asprintf(&chrootdir, "%s/%s", pw->pw_dir, chrootdir); + (chrootdir = strtok(residue, " \t")) != NULL) { + if (chrootdir[0] != '/') + asprintf(&chrootdir, "%s/%s", pw->pw_dir, chrootdir); + else + chrootdir = strdup(chrootdir); /* so it can be freed */ if (chrootdir == NULL) fatalerror("Ran out of memory."); } ==== //depot/projects/ia64/release/doc/ja_JP.eucJP/relnotes/common/new.sgml#26 (text+ko) ==== @@ -1,9 +1,9 @@ @@ -11,7 +11,7 @@ FreeBSD ¥×¥í¥¸¥§¥¯¥È - $FreeBSD: src/release/doc/ja_JP.eucJP/relnotes/common/new.sgml,v 1.89 2003/07/04 15:39:29 hrs Exp $ + $FreeBSD: src/release/doc/ja_JP.eucJP/relnotes/common/new.sgml,v 1.90 2003/07/09 08:58:08 hrs Exp $ 2000 @@ -227,7 +227,8 @@ &man.chroot.8; ¤¬¡¢chroot ´Ä¶­¤Ç»È¤¦¥æ¡¼¥¶¤È¥×¥é¥¤¥Þ¥ê¥°¥ë¡¼¥×¡¢ ¥°¥ë¡¼¥×¥ê¥¹¥È¤ÎÀßÄê¤ËÂбþ¤·¤Þ¤·¤¿¡£ ÀßÄê¤Ë¤Ï¤½¤ì¤¾¤ì¡¢, , - ¥ª¥×¥·¥ç¥ó¤ò»È¤¤¤Þ¤¹¡£ + ¥ª¥×¥·¥ç¥ó¤ò»È¤¤¤Þ¤¹¡£ + &merged; devfs ¤¬É¬¿Ü¤È¤Ê¤Ã¤¿¤¿¤á¡¢dev_db ¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ïºï½ü¤µ¤ì¤Þ¤·¤¿¡£ ==== //depot/projects/ia64/share/man/man4/amr.4#3 (text+ko) ==== @@ -21,7 +21,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/amr.4,v 1.16 2003/03/26 01:34:23 keramida Exp $ +.\" $FreeBSD: src/share/man/man4/amr.4,v 1.17 2003/07/10 00:25:51 obrien Exp $ .\" .Dd January 23, 2000 .Dt AMR 4 @@ -61,6 +61,8 @@ .It MegaRAID Elite 1600 (Series 493) .It +MegaRAID Elite 1650 (Series 4xx) +.It MegaRAID Express 100 (Series 466WS) .It MegaRAID Express 200 (Series 466) @@ -75,9 +77,11 @@ .It Dell PERC 2/DC .It +Dell PERC 3/QC +.It HP NetRAID-1/Si .It -HP NetRAID-3/Si +HP NetRAID-3/Si (D4943A) .It HP Embedded NetRAID .El ==== //depot/projects/ia64/sys/amd64/amd64/pmap.c#11 (text+ko) ==== @@ -39,7 +39,7 @@ * SUCH DAMAGE. * * from: @(#)pmap.c 7.7 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.420 2003/07/08 19:40:34 alc Exp $ + * $FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.423 2003/07/09 22:59:45 peter Exp $ */ /*- * Copyright (c) 2003 Networks Associates Technology, Inc. @@ -330,6 +330,8 @@ pde = pmap_pde(pmap, va); if (pde == NULL || (*pde & PG_V) == 0) return NULL; + if ((*pde & PG_PS) != 0) /* compat with i386 pmap_pte() */ + return ((pt_entry_t *)pde); pte = (pt_entry_t *)PHYS_TO_DMAP(*pde & PG_FRAME); return (&pte[pmap_pte_index(va)]); } @@ -386,14 +388,12 @@ ((pd_entry_t *)KPDphys)[i] |= PG_RW | PG_V; } -#if 0 /* Map from zero to end of allocations under 2M pages */ /* This replaces some of the KPTphys entries above */ for (i = 0; (i << PDRSHIFT) < avail_start; i++) { ((pd_entry_t *)KPDphys)[i] = i << PDRSHIFT; ((pd_entry_t *)KPDphys)[i] |= PG_RW | PG_V | PG_PS; } -#endif /* And connect up the PD to the PDP */ for (i = 0; i < NKPDPE; i++) { @@ -890,6 +890,7 @@ if (m->hold_count == 0) { vm_offset_t pteva; + /* * unmap the page table page */ @@ -914,9 +915,11 @@ } --pmap->pm_stats.resident_count; if (m->pindex < NUPDE) { - /* Unhold the PD page */ + /* We just released a PT, unhold the matching PD */ vm_page_t pdpg; - pdpg = vm_page_lookup(pmap->pm_pteobj, NUPDE + pmap_pdpe_index(va)); + + pdpg = vm_page_lookup(pmap->pm_pteobj, NUPDE + + ((va >> PDPSHIFT) & (NUPDPE - 1))); while (vm_page_sleep_if_busy(pdpg, FALSE, "pulook")) vm_page_lock_queues(); vm_page_unhold(pdpg); @@ -924,9 +927,11 @@ _pmap_unwire_pte_hold(pmap, va, pdpg); } if (m->pindex >= NUPDE && m->pindex < (NUPDE + NUPDPE)) { - /* Unhold the PDP page */ + /* We just released a PD, unhold the matching PDP */ vm_page_t pdppg; - pdppg = vm_page_lookup(pmap->pm_pteobj, NUPDE + NUPDPE + pmap_pml4e_index(va)); + + pdppg = vm_page_lookup(pmap->pm_pteobj, NUPDE + NUPDPE + + ((va >> PML4SHIFT) & (NUPML4E - 1))); while (vm_page_sleep_if_busy(pdppg, FALSE, "pulooK")) vm_page_lock_queues(); vm_page_unhold(pdppg); @@ -1124,7 +1129,8 @@ _pmap_allocpte(pmap, NUPDE + NUPDPE + pml4index); } else { /* Add reference to pdp page */ - pdppg = pmap_page_lookup(pmap->pm_pteobj, NUPDE + NUPDPE + pml4index); + pdppg = pmap_page_lookup(pmap->pm_pteobj, + NUPDE + NUPDPE + pml4index); pdppg->hold_count++; } pdp = (pdp_entry_t *)PHYS_TO_DMAP(*pml4 & PG_FRAME); @@ -1150,16 +1156,17 @@ /* Have to allocate a new pd, recurse */ _pmap_allocpte(pmap, NUPDE + pdpindex); pdp = (pdp_entry_t *)PHYS_TO_DMAP(*pml4 & PG_FRAME); - pdp = &pdp[pdpindex]; + pdp = &pdp[pdpindex & ((1ul << NPDPEPGSHIFT) - 1)]; } else { pdp = (pdp_entry_t *)PHYS_TO_DMAP(*pml4 & PG_FRAME); - pdp = &pdp[pdpindex]; + pdp = &pdp[pdpindex & ((1ul << NPDPEPGSHIFT) - 1)]; if ((*pdp & PG_V) == 0) { /* Have to allocate a new pd, recurse */ _pmap_allocpte(pmap, NUPDE + pdpindex); } else { /* Add reference to the pd page */ - pdpg = pmap_page_lookup(pmap->pm_pteobj, NUPDE + pdpindex); + pdpg = pmap_page_lookup(pmap->pm_pteobj, + NUPDE + pdpindex); pdpg->hold_count++; } } @@ -1239,7 +1246,7 @@ /*************************************************** -* Pmap allocation/deallocation routines. + * Pmap allocation/deallocation routines. ***************************************************/ /* ==== //depot/projects/ia64/sys/amd64/include/pmap.h#5 (text+ko) ==== @@ -42,7 +42,7 @@ * * from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90 * from: @(#)pmap.h 7.4 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.104 2003/06/22 13:02:45 simokawa Exp $ + * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.105 2003/07/09 23:04:23 peter Exp $ */ #ifndef _MACHINE_PMAP_H_ @@ -86,14 +86,18 @@ * Pte related macros. This is complicated by having to deal with * the sign extension of the 48th bit. */ -#define VADDR_SIGN(l4) \ - ((l4) >= NPML4EPG/2 ? ((unsigned long)-1 << 47) : 0ul) -#define VADDR(l4, l3, l2, l1) ( \ - ((unsigned long)(l4) << PML4SHIFT) | VADDR_SIGN(l4) | \ +#define KVADDR(l4, l3, l2, l1) ( \ + ((unsigned long)-1 << 47) | \ + ((unsigned long)(l4) << PML4SHIFT) | \ ((unsigned long)(l3) << PDPSHIFT) | \ ((unsigned long)(l2) << PDRSHIFT) | \ ((unsigned long)(l1) << PAGE_SHIFT)) +#define UVADDR(l4, l3, l2, l1) ( \ + ((unsigned long)(l4) << PML4SHIFT) | \ + ((unsigned long)(l3) << PDPSHIFT) | \ + ((unsigned long)(l2) << PDRSHIFT) | \ + ((unsigned long)(l1) << PAGE_SHIFT)) #ifndef NKPT #define NKPT 120 /* initial number of kernel page tables */ @@ -103,7 +107,7 @@ #define NKPDPE 1 /* number of kernel PDP slots */ #define NKPDE (NKPDPE*NPDEPG) /* number of kernel PD slots */ -#define NUPML4E 1 /* number of userland PML4 pages */ +#define NUPML4E (NPML4EPG/2) /* number of userland PML4 pages */ #define NUPDPE (NUPML4E*NPDPEPG)/* number of userland PDP pages */ #define NUPDE (NUPDPE*NPDEPG) /* number of userland PD entries */ @@ -149,10 +153,10 @@ * in the page tables and the evil overlapping. */ #ifdef _KERNEL -#define addr_PTmap (VADDR(PML4PML4I, 0, 0, 0)) -#define addr_PDmap (VADDR(PML4PML4I, PML4PML4I, 0, 0)) -#define addr_PDPmap (VADDR(PML4PML4I, PML4PML4I, PML4PML4I, 0)) -#define addr_PML4map (VADDR(PML4PML4I, PML4PML4I, PML4PML4I, PML4PML4I)) +#define addr_PTmap (KVADDR(PML4PML4I, 0, 0, 0)) +#define addr_PDmap (KVADDR(PML4PML4I, PML4PML4I, 0, 0)) +#define addr_PDPmap (KVADDR(PML4PML4I, PML4PML4I, PML4PML4I, 0)) +#define addr_PML4map (KVADDR(PML4PML4I, PML4PML4I, PML4PML4I, PML4PML4I)) #define addr_PML4pml4e (addr_PML4map + (PML4PML4I * sizeof(pml4_entry_t))) #define PTmap ((pt_entry_t *)(addr_PTmap)) #define PDmap ((pd_entry_t *)(addr_PDmap)) ==== //depot/projects/ia64/sys/amd64/include/vmparam.h#3 (text+ko) ==== @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * from: @(#)vmparam.h 5.9 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.38 2003/05/23 06:36:46 peter Exp $ + * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.39 2003/07/09 23:04:23 peter Exp $ */ @@ -92,18 +92,18 @@ * messy at times, but hey, we'll do anything to save a page :-) */ -#define VM_MAX_KERNEL_ADDRESS VADDR(KPML4I, NPDPEPG-1, NKPDE-1, NPTEPG-1) -#define VM_MIN_KERNEL_ADDRESS VADDR(KPML4I, KPDPI, 0, 0) +#define VM_MAX_KERNEL_ADDRESS KVADDR(KPML4I, NPDPEPG-1, NKPDE-1, NPTEPG-1) +#define VM_MIN_KERNEL_ADDRESS KVADDR(KPML4I, KPDPI, 0, 0) -#define DMAP_MIN_ADDRESS VADDR(DMPML4I, 0, 0, 0) -#define DMAP_MAX_ADDRESS VADDR(DMPML4I+1, 0, 0, 0) +#define DMAP_MIN_ADDRESS KVADDR(DMPML4I, 0, 0, 0) +#define DMAP_MAX_ADDRESS KVADDR(DMPML4I+1, 0, 0, 0) -#define KERNBASE VADDR(KPML4I, KPDPI, 0, 0) +#define KERNBASE KVADDR(KPML4I, KPDPI, 0, 0) -#define UPT_MAX_ADDRESS VADDR(PML4PML4I, PML4PML4I, PML4PML4I, PML4PML4I) -#define UPT_MIN_ADDRESS VADDR(PML4PML4I, 0, 0, 0) +#define UPT_MAX_ADDRESS KVADDR(PML4PML4I, PML4PML4I, PML4PML4I, PML4PML4I) +#define UPT_MIN_ADDRESS KVADDR(PML4PML4I, 0, 0, 0) -#define VM_MAXUSER_ADDRESS VADDR(NUPML4E, 0, 0, 0) +#define VM_MAXUSER_ADDRESS UVADDR(NUPML4E, 0, 0, 0) #define USRSTACK VM_MAXUSER_ADDRESS ==== //depot/projects/ia64/sys/conf/files#86 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.802 2003/07/08 18:59:32 jhb Exp $ +# $FreeBSD: src/sys/conf/files,v 1.803 2003/07/09 16:14:10 jhb Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -241,7 +241,7 @@ dev/acpica/acpi_cmbat.c optional acpi dev/acpica/acpi_cpu.c optional acpi dev/acpica/acpi_ec.c optional acpi -dev/acpica/acpi_isab.c optional acpi +dev/acpica/acpi_isab.c optional acpi isa dev/acpica/acpi_lid.c optional acpi dev/acpica/acpi_pci.c optional acpi pci dev/acpica/acpi_pci_link.c optional acpi pci @@ -544,10 +544,10 @@ dev/pccard/pccard_cis_quirks.c optional pccard dev/pccard/power_if.m standard dev/pccbb/pccbb.c optional cbb -dev/pci/eisa_pci.c optional pci +dev/pci/eisa_pci.c optional pci eisa dev/pci/fixup_pci.c optional pci dev/pci/ignore_pci.c optional pci -dev/pci/isa_pci.c optional pci +dev/pci/isa_pci.c optional pci isa dev/pci/pci.c optional pci dev/pci/pci_if.m standard dev/pci/pci_pci.c optional pci ==== //depot/projects/ia64/sys/conf/options.i386#19 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options.i386,v 1.193 2003/06/27 22:39:13 peter Exp $ +# $FreeBSD: src/sys/conf/options.i386,v 1.194 2003/07/10 01:02:58 peter Exp $ # Options specific to the i386 platform kernels MATH_EMULATE opt_math_emulate.h @@ -6,7 +6,6 @@ DISABLE_PSE opt_pmap.h PMAP_SHPGPERPROC opt_pmap.h DISABLE_PG_G opt_pmap.h -LAZY_SWITCH opt_swtch.h PPC_PROBE_CHIPSET opt_ppc.h PPC_DEBUG opt_ppc.h MAXMEM ==== //depot/projects/ia64/sys/conf/options.pc98#20 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options.pc98,v 1.165 2003/06/27 22:39:13 peter Exp $ +# $FreeBSD: src/sys/conf/options.pc98,v 1.166 2003/07/10 01:02:58 peter Exp $ # Options specific to the pc98 platform kernels MATH_EMULATE opt_math_emulate.h @@ -6,7 +6,6 @@ DISABLE_PSE opt_pmap.h PMAP_SHPGPERPROC opt_pmap.h DISABLE_PG_G opt_pmap.h -LAZY_SWITCH opt_swtch.h PPC_PROBE_CHIPSET opt_ppc.h PPC_DEBUG opt_ppc.h MAXMEM ==== //depot/projects/ia64/sys/dev/aac/aac.c#27 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/aac/aac.c,v 1.70 2003/07/01 15:51:51 scottl Exp $ + * $FreeBSD: src/sys/dev/aac/aac.c,v 1.73 2003/07/09 21:16:23 scottl Exp $ */ /* @@ -67,7 +67,7 @@ /* Command Processing */ static void aac_timeout(struct aac_softc *sc); -static int aac_start(struct aac_command *cm); +static int aac_map_command(struct aac_command *cm); static void aac_complete(void *context, int pending); static int aac_bio_command(struct aac_softc *sc, struct aac_command **cmp); static void aac_bio_complete(struct aac_command *cm); @@ -75,11 +75,12 @@ static void aac_command_thread(struct aac_softc *sc); /* Command Buffer Management */ +static void aac_map_command_sg(void *arg, bus_dma_segment_t *segs, + int nseg, int error); static void aac_map_command_helper(void *arg, bus_dma_segment_t *segs, int nseg, int error); static int aac_alloc_commands(struct aac_softc *sc); static void aac_free_commands(struct aac_softc *sc); -static void aac_map_command(struct aac_command *cm); static void aac_unmap_command(struct aac_command *cm); /* Hardware Interface */ @@ -667,6 +668,9 @@ debug_called(2); + if (sc->flags & AAC_QUEUE_FRZN) + return; + for (;;) { /* * Try to get a command that's been put off for lack of @@ -686,7 +690,7 @@ break; /* try to give the command to the controller */ - if (aac_start(cm) == EBUSY) { + if (aac_map_command(cm) == EBUSY) { /* put it on the ready queue for later */ aac_requeue_ready(cm); break; @@ -699,7 +703,7 @@ * last moment when possible. */ static int -aac_start(struct aac_command *cm) +aac_map_command(struct aac_command *cm) { struct aac_softc *sc; int error; @@ -707,22 +711,23 @@ debug_called(2); sc = cm->cm_sc; + error = 0; - /* get the command mapped */ - aac_map_command(cm); + /* don't map more than once */ + if (cm->cm_flags & AAC_CMD_MAPPED) + return (0); - /* Fix up the address values in the FIB. Use the command array index - * instead of a pointer since these fields are only 32 bits. Shift - * the SenderFibAddress over to make room for the fast response bit. - */ - cm->cm_fib->Header.SenderFibAddress = (cm->cm_index << 1); - cm->cm_fib->Header.ReceiverFibAddress = cm->cm_fibphys; - - /* save a pointer to the command for speedy reverse-lookup */ - cm->cm_fib->Header.SenderData = cm->cm_index; - /* put the FIB on the outbound queue */ - error = aac_enqueue_fib(sc, cm->cm_queue, cm); - return(error); + if (cm->cm_datalen != 0) { + error = bus_dmamap_load(sc->aac_buffer_dmat, cm->cm_datamap, + cm->cm_data, cm->cm_datalen, + aac_map_command_sg, cm, 0); + if (error == EINPROGRESS) { + debug(1, "freezing queue\n"); + sc->flags |= AAC_QUEUE_FRZN; + error = 0; + } + } + return (error); } /* @@ -859,6 +864,7 @@ } /* see if we can start some more I/O */ + sc->flags &= ~AAC_QUEUE_FRZN; aac_startio(sc); AAC_LOCK_RELEASE(&sc->aac_io_lock); @@ -1158,9 +1164,10 @@ return (ENOMEM); } - bus_dmamap_load(sc->aac_fib_dmat, fm->aac_fibmap, fm->aac_fibs, - AAC_FIB_COUNT * sizeof(struct aac_fib), - aac_map_command_helper, &fibphys, 0); + /* Ignore errors since this doesn't bounce */ + (void)bus_dmamap_load(sc->aac_fib_dmat, fm->aac_fibmap, fm->aac_fibs, + AAC_FIB_COUNT * sizeof(struct aac_fib), + aac_map_command_helper, &fibphys, 0); /* initialise constant fields in the command structure */ bzero(fm->aac_fibs, AAC_FIB_COUNT * sizeof(struct aac_fib)); @@ -1227,6 +1234,7 @@ static void aac_map_command_sg(void *arg, bus_dma_segment_t *segs, int nseg, int error) { + struct aac_softc *sc; struct aac_command *cm; struct aac_fib *fib; int i; @@ -1234,6 +1242,7 @@ debug_called(3); cm = (struct aac_command *)arg; + sc = cm->cm_sc; fib = cm->cm_fib; /* copy into the FIB */ @@ -1260,37 +1269,30 @@ fib->Header.Size += nseg*sizeof(struct aac_sg_entry64); } } -} -/* - * Map a command into controller-visible space. - */ -static void -aac_map_command(struct aac_command *cm) -{ - struct aac_softc *sc; + /* Fix up the address values in the FIB. Use the command array index + * instead of a pointer since these fields are only 32 bits. Shift + * the SenderFibAddress over to make room for the fast response bit. + */ + cm->cm_fib->Header.SenderFibAddress = (cm->cm_index << 1); + cm->cm_fib->Header.ReceiverFibAddress = cm->cm_fibphys; - debug_called(2); + /* save a pointer to the command for speedy reverse-lookup */ + cm->cm_fib->Header.SenderData = cm->cm_index; - sc = cm->cm_sc; + if (cm->cm_flags & AAC_CMD_DATAIN) + bus_dmamap_sync(sc->aac_buffer_dmat, cm->cm_datamap, + BUS_DMASYNC_PREREAD); + if (cm->cm_flags & AAC_CMD_DATAOUT) + bus_dmamap_sync(sc->aac_buffer_dmat, cm->cm_datamap, + BUS_DMASYNC_PREWRITE); + cm->cm_flags |= AAC_CMD_MAPPED; - /* don't map more than once */ - if (cm->cm_flags & AAC_CMD_MAPPED) - return; + /* put the FIB on the outbound queue */ + if (aac_enqueue_fib(sc, cm->cm_queue, cm) == EBUSY) + aac_requeue_ready(cm); - if (cm->cm_datalen != 0) { - bus_dmamap_load(sc->aac_buffer_dmat, cm->cm_datamap, - cm->cm_data, cm->cm_datalen, - aac_map_command_sg, cm, 0); - - if (cm->cm_flags & AAC_CMD_DATAIN) - bus_dmamap_sync(sc->aac_buffer_dmat, cm->cm_datamap, - BUS_DMASYNC_PREREAD); - if (cm->cm_flags & AAC_CMD_DATAOUT) - bus_dmamap_sync(sc->aac_buffer_dmat, cm->cm_datamap, - BUS_DMASYNC_PREWRITE); - } - cm->cm_flags |= AAC_CMD_MAPPED; + return; } /* @@ -1386,7 +1388,8 @@ sc->flags |= AAC_FLAGS_4GB_WINDOW; if (options & AAC_SUPPORTED_NONDASD) sc->flags |= AAC_FLAGS_ENABLE_CAM; - if ((options & AAC_SUPPORTED_SGMAP_HOST64) != 0 && (sizeof(bus_addr_t) > 4)) { + if ((options & AAC_SUPPORTED_SGMAP_HOST64) != 0 + && (sizeof(bus_addr_t) > 4)) { device_printf(sc->aac_dev, "Enabling 64-bit address support\n"); sc->flags |= AAC_FLAGS_SG_64BIT; } @@ -1510,7 +1513,7 @@ * XXX If the padding is not needed, can it be put to use instead * of ignored? */ - bus_dmamap_load(sc->aac_common_dmat, sc->aac_common_dmamap, + (void)bus_dmamap_load(sc->aac_common_dmat, sc->aac_common_dmamap, sc->aac_common, 8192 + sizeof(*sc->aac_common), aac_common_map, sc, 0); @@ -1549,8 +1552,17 @@ offsetof(struct aac_common, ac_printf); ip->PrintfBufferSize = AAC_PRINTF_BUFSIZE; - /* The adapter assumes that pages are 4K in size */ + /* + * The adapter assumes that pages are 4K in size, except on some + * broken firmware versions that do the page->byte conversion twice, + * therefore 'assuming' that this value is in 16MB units (2^24). + * Round up since the granularity is so high. + */ ip->HostPhysMemPages = ctob(physmem) / AAC_PAGE_SIZE; + if (sc->flags & AAC_FLAGS_BROKEN_MEMMAP) { + ip->HostPhysMemPages = + (ip->HostPhysMemPages + AAC_PAGE_SIZE) / AAC_PAGE_SIZE; + } ip->HostElapsedSeconds = time_second; /* reset later if invalid */ /* ==== //depot/projects/ia64/sys/dev/aac/aac_pci.c#20 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/aac/aac_pci.c,v 1.35 2003/07/01 15:51:51 scottl Exp $ + * $FreeBSD: src/sys/dev/aac/aac_pci.c,v 1.36 2003/07/09 19:19:16 scottl Exp $ */ /* @@ -114,8 +114,8 @@ "Dell PERC 3/Di"}, {0x1011, 0x0046, 0x9005, 0x0364, AAC_HWIF_STRONGARM, 0, "Adaptec AAC-364"}, - {0x1011, 0x0046, 0x9005, 0x0365, AAC_HWIF_STRONGARM, 0, - "Adaptec SCSI RAID 5400S"}, + {0x1011, 0x0046, 0x9005, 0x0365, AAC_HWIF_STRONGARM, + AAC_FLAGS_BROKEN_MEMMAP, "Adaptec SCSI RAID 5400S"}, {0x1011, 0x0046, 0x9005, 0x1364, AAC_HWIF_STRONGARM, AAC_FLAGS_PERC2QC, "Dell PERC 2/QC"}, {0x1011, 0x0046, 0x103c, 0x10c2, AAC_HWIF_STRONGARM, 0, ==== //depot/projects/ia64/sys/dev/aac/aacvar.h#17 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/aac/aacvar.h,v 1.33 2003/04/01 15:06:22 phk Exp $ + * $FreeBSD: src/sys/dev/aac/aacvar.h,v 1.35 2003/07/09 21:16:23 scottl Exp $ */ #include @@ -167,6 +167,8 @@ #define AAC_ON_AACQ_BUSY (1<<7) #define AAC_ON_AACQ_COMPLETE (1<<8) #define AAC_ON_AACQ_MASK ((1<<5)|(1<<6)|(1<<7)|(1<<8)) +#define AAC_QUEUE_FRZN (1<<9) /* Freeze the processing of + * commands on the queue. */ void (* cm_complete)(struct aac_command *cm); void *cm_private; @@ -369,6 +371,7 @@ * 2GB-4GB range */ #define AAC_FLAGS_NO4GB (1 << 6) /* Can't access host mem >2GB */ #define AAC_FLAGS_256FIBS (1 << 7) /* Can only do 256 commands */ +#define AAC_FLAGS_BROKEN_MEMMAP (1 << 8) /* Broken HostPhysMemPages */ u_int32_t supported_options; int aac_max_fibs; ==== //depot/projects/ia64/sys/dev/acpica/acpi_isab.c#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/acpica/acpi_isab.c,v 1.1 2003/07/08 18:59:32 jhb Exp $ + * $FreeBSD: src/sys/dev/acpica/acpi_isab.c,v 1.2 2003/07/09 18:28:53 jhb Exp $ */ /* @@ -93,7 +93,8 @@ { if ((acpi_get_type(dev) == ACPI_TYPE_DEVICE) && - !acpi_disabled("isa ") && + !acpi_disabled("isa") && + devclass_get_device(isab_devclass, 0) == NULL && (acpi_MatchHid(dev, "PNP0A05") || acpi_MatchHid(dev, "PNP0A06"))) { device_set_desc(dev, "ACPI Generic ISA bridge"); return(0); ==== //depot/projects/ia64/sys/dev/firewire/firewire.c#33 (text+ko) ==== @@ -31,7 +31,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/firewire/firewire.c,v 1.55 2003/06/30 06:33:18 simokawa Exp $ + * $FreeBSD: src/sys/dev/firewire/firewire.c,v 1.56 2003/07/09 13:07:35 simokawa Exp $ * */ @@ -596,7 +596,7 @@ src->businfo.cyc_clk_acc = 100; src->businfo.max_rec = fc->maxrec; src->businfo.max_rom = MAXROM_4; - src->businfo.generation = 0; + src->businfo.generation = 1; src->businfo.link_spd = fc->speed; src->businfo.eui64.hi = fc->eui.hi; @@ -622,7 +622,6 @@ src = fc->crom_src; root = fc->crom_root; - src->businfo.generation ++; STAILQ_INIT(&src->chunk_list); bzero(root, sizeof(struct crom_chunk)); @@ -642,7 +641,9 @@ fw_busreset(struct firewire_comm *fc) { struct firewire_dev_comm *fdc; + struct crom_src *src; device_t *devlistp; + void *newrom; int i, devcnt; switch(fc->status){ @@ -666,7 +667,19 @@ free(devlistp, M_TEMP); } - crom_load(&fc->crom_src_buf->src, fc->config_rom, CROMSIZE); + newrom = malloc(CROMSIZE, M_FW, M_NOWAIT | M_ZERO); + src = &fc->crom_src_buf->src; + crom_load(src, (u_int32_t *)newrom, CROMSIZE); + if (bcmp(newrom, fc->config_rom, CROMSIZE) != 0) { + /* bump generation and reload */ + src->businfo.generation ++; + /* generation must be between 0x2 and 0xF */ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Jul 9 22:08:18 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2AD6937B404; Wed, 9 Jul 2003 22:08:18 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CECFA37B401 for ; Wed, 9 Jul 2003 22:08:17 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B05DF43FA3 for ; Wed, 9 Jul 2003 22:08:16 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h6A58G0U086032 for ; Wed, 9 Jul 2003 22:08:16 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h6A58GUG086029 for perforce@freebsd.org; Wed, 9 Jul 2003 22:08:16 -0700 (PDT) Date: Wed, 9 Jul 2003 22:08:16 -0700 (PDT) Message-Id: <200307100508.h6A58GUG086029@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 34289 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 05:08:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=34289 Change 34289 by marcel@marcel_nfs on 2003/07/09 22:07:17 IFC @34286 Affected files ... .. //depot/projects/uart/amd64/amd64/pmap.c#5 integrate .. //depot/projects/uart/amd64/include/pmap.h#2 integrate .. //depot/projects/uart/amd64/include/vmparam.h#2 integrate .. //depot/projects/uart/conf/files#5 integrate .. //depot/projects/uart/conf/options.i386#2 integrate .. //depot/projects/uart/conf/options.pc98#2 integrate .. //depot/projects/uart/dev/aac/aac.c#3 integrate .. //depot/projects/uart/dev/aac/aac_pci.c#3 integrate .. //depot/projects/uart/dev/aac/aacvar.h#2 integrate .. //depot/projects/uart/dev/acpica/acpi_isab.c#2 integrate .. //depot/projects/uart/dev/firewire/firewire.c#3 integrate .. //depot/projects/uart/dev/usb/uscanner.c#3 integrate .. //depot/projects/uart/i386/i386/mp_machdep.c#2 integrate .. //depot/projects/uart/i386/i386/pmap.c#5 integrate .. //depot/projects/uart/i386/i386/swtch.s#2 integrate .. //depot/projects/uart/i386/isa/apic_vector.s#2 integrate .. //depot/projects/uart/kern/kern_synch.c#2 integrate .. //depot/projects/uart/kern/subr_witness.c#2 integrate .. //depot/projects/uart/kern/sys_pipe.c#3 integrate .. //depot/projects/uart/pci/if_dc.c#4 integrate .. //depot/projects/uart/pci/if_dcreg.h#3 integrate .. //depot/projects/uart/sparc64/conf/GENERIC#3 integrate .. //depot/projects/uart/sys/vnode.h#2 integrate Differences ... ==== //depot/projects/uart/amd64/amd64/pmap.c#5 (text+ko) ==== @@ -39,7 +39,7 @@ * SUCH DAMAGE. * * from: @(#)pmap.c 7.7 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.420 2003/07/08 19:40:34 alc Exp $ + * $FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.423 2003/07/09 22:59:45 peter Exp $ */ /*- * Copyright (c) 2003 Networks Associates Technology, Inc. @@ -330,6 +330,8 @@ pde = pmap_pde(pmap, va); if (pde == NULL || (*pde & PG_V) == 0) return NULL; + if ((*pde & PG_PS) != 0) /* compat with i386 pmap_pte() */ + return ((pt_entry_t *)pde); pte = (pt_entry_t *)PHYS_TO_DMAP(*pde & PG_FRAME); return (&pte[pmap_pte_index(va)]); } @@ -386,14 +388,12 @@ ((pd_entry_t *)KPDphys)[i] |= PG_RW | PG_V; } -#if 0 /* Map from zero to end of allocations under 2M pages */ /* This replaces some of the KPTphys entries above */ for (i = 0; (i << PDRSHIFT) < avail_start; i++) { ((pd_entry_t *)KPDphys)[i] = i << PDRSHIFT; ((pd_entry_t *)KPDphys)[i] |= PG_RW | PG_V | PG_PS; } -#endif /* And connect up the PD to the PDP */ for (i = 0; i < NKPDPE; i++) { @@ -890,6 +890,7 @@ if (m->hold_count == 0) { vm_offset_t pteva; + /* * unmap the page table page */ @@ -914,9 +915,11 @@ } --pmap->pm_stats.resident_count; if (m->pindex < NUPDE) { - /* Unhold the PD page */ + /* We just released a PT, unhold the matching PD */ vm_page_t pdpg; - pdpg = vm_page_lookup(pmap->pm_pteobj, NUPDE + pmap_pdpe_index(va)); + + pdpg = vm_page_lookup(pmap->pm_pteobj, NUPDE + + ((va >> PDPSHIFT) & (NUPDPE - 1))); while (vm_page_sleep_if_busy(pdpg, FALSE, "pulook")) vm_page_lock_queues(); vm_page_unhold(pdpg); @@ -924,9 +927,11 @@ _pmap_unwire_pte_hold(pmap, va, pdpg); } if (m->pindex >= NUPDE && m->pindex < (NUPDE + NUPDPE)) { - /* Unhold the PDP page */ + /* We just released a PD, unhold the matching PDP */ vm_page_t pdppg; - pdppg = vm_page_lookup(pmap->pm_pteobj, NUPDE + NUPDPE + pmap_pml4e_index(va)); + + pdppg = vm_page_lookup(pmap->pm_pteobj, NUPDE + NUPDPE + + ((va >> PML4SHIFT) & (NUPML4E - 1))); while (vm_page_sleep_if_busy(pdppg, FALSE, "pulooK")) vm_page_lock_queues(); vm_page_unhold(pdppg); @@ -1124,7 +1129,8 @@ _pmap_allocpte(pmap, NUPDE + NUPDPE + pml4index); } else { /* Add reference to pdp page */ - pdppg = pmap_page_lookup(pmap->pm_pteobj, NUPDE + NUPDPE + pml4index); + pdppg = pmap_page_lookup(pmap->pm_pteobj, + NUPDE + NUPDPE + pml4index); pdppg->hold_count++; } pdp = (pdp_entry_t *)PHYS_TO_DMAP(*pml4 & PG_FRAME); @@ -1150,16 +1156,17 @@ /* Have to allocate a new pd, recurse */ _pmap_allocpte(pmap, NUPDE + pdpindex); pdp = (pdp_entry_t *)PHYS_TO_DMAP(*pml4 & PG_FRAME); - pdp = &pdp[pdpindex]; + pdp = &pdp[pdpindex & ((1ul << NPDPEPGSHIFT) - 1)]; } else { pdp = (pdp_entry_t *)PHYS_TO_DMAP(*pml4 & PG_FRAME); - pdp = &pdp[pdpindex]; + pdp = &pdp[pdpindex & ((1ul << NPDPEPGSHIFT) - 1)]; if ((*pdp & PG_V) == 0) { /* Have to allocate a new pd, recurse */ _pmap_allocpte(pmap, NUPDE + pdpindex); } else { /* Add reference to the pd page */ - pdpg = pmap_page_lookup(pmap->pm_pteobj, NUPDE + pdpindex); + pdpg = pmap_page_lookup(pmap->pm_pteobj, + NUPDE + pdpindex); pdpg->hold_count++; } } @@ -1239,7 +1246,7 @@ /*************************************************** -* Pmap allocation/deallocation routines. + * Pmap allocation/deallocation routines. ***************************************************/ /* ==== //depot/projects/uart/amd64/include/pmap.h#2 (text+ko) ==== @@ -42,7 +42,7 @@ * * from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90 * from: @(#)pmap.h 7.4 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.104 2003/06/22 13:02:45 simokawa Exp $ + * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.105 2003/07/09 23:04:23 peter Exp $ */ #ifndef _MACHINE_PMAP_H_ @@ -86,14 +86,18 @@ * Pte related macros. This is complicated by having to deal with * the sign extension of the 48th bit. */ -#define VADDR_SIGN(l4) \ - ((l4) >= NPML4EPG/2 ? ((unsigned long)-1 << 47) : 0ul) -#define VADDR(l4, l3, l2, l1) ( \ - ((unsigned long)(l4) << PML4SHIFT) | VADDR_SIGN(l4) | \ +#define KVADDR(l4, l3, l2, l1) ( \ + ((unsigned long)-1 << 47) | \ + ((unsigned long)(l4) << PML4SHIFT) | \ ((unsigned long)(l3) << PDPSHIFT) | \ ((unsigned long)(l2) << PDRSHIFT) | \ ((unsigned long)(l1) << PAGE_SHIFT)) +#define UVADDR(l4, l3, l2, l1) ( \ + ((unsigned long)(l4) << PML4SHIFT) | \ + ((unsigned long)(l3) << PDPSHIFT) | \ + ((unsigned long)(l2) << PDRSHIFT) | \ + ((unsigned long)(l1) << PAGE_SHIFT)) #ifndef NKPT #define NKPT 120 /* initial number of kernel page tables */ @@ -103,7 +107,7 @@ #define NKPDPE 1 /* number of kernel PDP slots */ #define NKPDE (NKPDPE*NPDEPG) /* number of kernel PD slots */ -#define NUPML4E 1 /* number of userland PML4 pages */ +#define NUPML4E (NPML4EPG/2) /* number of userland PML4 pages */ #define NUPDPE (NUPML4E*NPDPEPG)/* number of userland PDP pages */ #define NUPDE (NUPDPE*NPDEPG) /* number of userland PD entries */ @@ -149,10 +153,10 @@ * in the page tables and the evil overlapping. */ #ifdef _KERNEL -#define addr_PTmap (VADDR(PML4PML4I, 0, 0, 0)) -#define addr_PDmap (VADDR(PML4PML4I, PML4PML4I, 0, 0)) -#define addr_PDPmap (VADDR(PML4PML4I, PML4PML4I, PML4PML4I, 0)) -#define addr_PML4map (VADDR(PML4PML4I, PML4PML4I, PML4PML4I, PML4PML4I)) +#define addr_PTmap (KVADDR(PML4PML4I, 0, 0, 0)) +#define addr_PDmap (KVADDR(PML4PML4I, PML4PML4I, 0, 0)) +#define addr_PDPmap (KVADDR(PML4PML4I, PML4PML4I, PML4PML4I, 0)) +#define addr_PML4map (KVADDR(PML4PML4I, PML4PML4I, PML4PML4I, PML4PML4I)) #define addr_PML4pml4e (addr_PML4map + (PML4PML4I * sizeof(pml4_entry_t))) #define PTmap ((pt_entry_t *)(addr_PTmap)) #define PDmap ((pd_entry_t *)(addr_PDmap)) ==== //depot/projects/uart/amd64/include/vmparam.h#2 (text+ko) ==== @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * from: @(#)vmparam.h 5.9 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.38 2003/05/23 06:36:46 peter Exp $ + * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.39 2003/07/09 23:04:23 peter Exp $ */ @@ -92,18 +92,18 @@ * messy at times, but hey, we'll do anything to save a page :-) */ -#define VM_MAX_KERNEL_ADDRESS VADDR(KPML4I, NPDPEPG-1, NKPDE-1, NPTEPG-1) -#define VM_MIN_KERNEL_ADDRESS VADDR(KPML4I, KPDPI, 0, 0) +#define VM_MAX_KERNEL_ADDRESS KVADDR(KPML4I, NPDPEPG-1, NKPDE-1, NPTEPG-1) +#define VM_MIN_KERNEL_ADDRESS KVADDR(KPML4I, KPDPI, 0, 0) -#define DMAP_MIN_ADDRESS VADDR(DMPML4I, 0, 0, 0) -#define DMAP_MAX_ADDRESS VADDR(DMPML4I+1, 0, 0, 0) +#define DMAP_MIN_ADDRESS KVADDR(DMPML4I, 0, 0, 0) +#define DMAP_MAX_ADDRESS KVADDR(DMPML4I+1, 0, 0, 0) -#define KERNBASE VADDR(KPML4I, KPDPI, 0, 0) +#define KERNBASE KVADDR(KPML4I, KPDPI, 0, 0) -#define UPT_MAX_ADDRESS VADDR(PML4PML4I, PML4PML4I, PML4PML4I, PML4PML4I) -#define UPT_MIN_ADDRESS VADDR(PML4PML4I, 0, 0, 0) +#define UPT_MAX_ADDRESS KVADDR(PML4PML4I, PML4PML4I, PML4PML4I, PML4PML4I) +#define UPT_MIN_ADDRESS KVADDR(PML4PML4I, 0, 0, 0) -#define VM_MAXUSER_ADDRESS VADDR(NUPML4E, 0, 0, 0) +#define VM_MAXUSER_ADDRESS UVADDR(NUPML4E, 0, 0, 0) #define USRSTACK VM_MAXUSER_ADDRESS ==== //depot/projects/uart/conf/files#5 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.802 2003/07/08 18:59:32 jhb Exp $ +# $FreeBSD: src/sys/conf/files,v 1.803 2003/07/09 16:14:10 jhb Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -241,7 +241,7 @@ dev/acpica/acpi_cmbat.c optional acpi dev/acpica/acpi_cpu.c optional acpi dev/acpica/acpi_ec.c optional acpi -dev/acpica/acpi_isab.c optional acpi +dev/acpica/acpi_isab.c optional acpi isa dev/acpica/acpi_lid.c optional acpi dev/acpica/acpi_pci.c optional acpi pci dev/acpica/acpi_pci_link.c optional acpi pci @@ -544,10 +544,10 @@ dev/pccard/pccard_cis_quirks.c optional pccard dev/pccard/power_if.m standard dev/pccbb/pccbb.c optional cbb -dev/pci/eisa_pci.c optional pci +dev/pci/eisa_pci.c optional pci eisa dev/pci/fixup_pci.c optional pci dev/pci/ignore_pci.c optional pci -dev/pci/isa_pci.c optional pci +dev/pci/isa_pci.c optional pci isa dev/pci/pci.c optional pci dev/pci/pci_if.m standard dev/pci/pci_pci.c optional pci ==== //depot/projects/uart/conf/options.i386#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options.i386,v 1.193 2003/06/27 22:39:13 peter Exp $ +# $FreeBSD: src/sys/conf/options.i386,v 1.194 2003/07/10 01:02:58 peter Exp $ # Options specific to the i386 platform kernels MATH_EMULATE opt_math_emulate.h @@ -6,7 +6,6 @@ DISABLE_PSE opt_pmap.h PMAP_SHPGPERPROC opt_pmap.h DISABLE_PG_G opt_pmap.h -LAZY_SWITCH opt_swtch.h PPC_PROBE_CHIPSET opt_ppc.h PPC_DEBUG opt_ppc.h MAXMEM ==== //depot/projects/uart/conf/options.pc98#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options.pc98,v 1.165 2003/06/27 22:39:13 peter Exp $ +# $FreeBSD: src/sys/conf/options.pc98,v 1.166 2003/07/10 01:02:58 peter Exp $ # Options specific to the pc98 platform kernels MATH_EMULATE opt_math_emulate.h @@ -6,7 +6,6 @@ DISABLE_PSE opt_pmap.h PMAP_SHPGPERPROC opt_pmap.h DISABLE_PG_G opt_pmap.h -LAZY_SWITCH opt_swtch.h PPC_PROBE_CHIPSET opt_ppc.h PPC_DEBUG opt_ppc.h MAXMEM ==== //depot/projects/uart/dev/aac/aac.c#3 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/aac/aac.c,v 1.70 2003/07/01 15:51:51 scottl Exp $ + * $FreeBSD: src/sys/dev/aac/aac.c,v 1.73 2003/07/09 21:16:23 scottl Exp $ */ /* @@ -67,7 +67,7 @@ /* Command Processing */ static void aac_timeout(struct aac_softc *sc); -static int aac_start(struct aac_command *cm); +static int aac_map_command(struct aac_command *cm); static void aac_complete(void *context, int pending); static int aac_bio_command(struct aac_softc *sc, struct aac_command **cmp); static void aac_bio_complete(struct aac_command *cm); @@ -75,11 +75,12 @@ static void aac_command_thread(struct aac_softc *sc); /* Command Buffer Management */ +static void aac_map_command_sg(void *arg, bus_dma_segment_t *segs, + int nseg, int error); static void aac_map_command_helper(void *arg, bus_dma_segment_t *segs, int nseg, int error); static int aac_alloc_commands(struct aac_softc *sc); static void aac_free_commands(struct aac_softc *sc); -static void aac_map_command(struct aac_command *cm); static void aac_unmap_command(struct aac_command *cm); /* Hardware Interface */ @@ -667,6 +668,9 @@ debug_called(2); + if (sc->flags & AAC_QUEUE_FRZN) + return; + for (;;) { /* * Try to get a command that's been put off for lack of @@ -686,7 +690,7 @@ break; /* try to give the command to the controller */ - if (aac_start(cm) == EBUSY) { + if (aac_map_command(cm) == EBUSY) { /* put it on the ready queue for later */ aac_requeue_ready(cm); break; @@ -699,7 +703,7 @@ * last moment when possible. */ static int -aac_start(struct aac_command *cm) +aac_map_command(struct aac_command *cm) { struct aac_softc *sc; int error; @@ -707,22 +711,23 @@ debug_called(2); sc = cm->cm_sc; + error = 0; - /* get the command mapped */ - aac_map_command(cm); + /* don't map more than once */ + if (cm->cm_flags & AAC_CMD_MAPPED) + return (0); - /* Fix up the address values in the FIB. Use the command array index - * instead of a pointer since these fields are only 32 bits. Shift - * the SenderFibAddress over to make room for the fast response bit. - */ - cm->cm_fib->Header.SenderFibAddress = (cm->cm_index << 1); - cm->cm_fib->Header.ReceiverFibAddress = cm->cm_fibphys; - - /* save a pointer to the command for speedy reverse-lookup */ - cm->cm_fib->Header.SenderData = cm->cm_index; - /* put the FIB on the outbound queue */ - error = aac_enqueue_fib(sc, cm->cm_queue, cm); - return(error); + if (cm->cm_datalen != 0) { + error = bus_dmamap_load(sc->aac_buffer_dmat, cm->cm_datamap, + cm->cm_data, cm->cm_datalen, + aac_map_command_sg, cm, 0); + if (error == EINPROGRESS) { + debug(1, "freezing queue\n"); + sc->flags |= AAC_QUEUE_FRZN; + error = 0; + } + } + return (error); } /* @@ -859,6 +864,7 @@ } /* see if we can start some more I/O */ + sc->flags &= ~AAC_QUEUE_FRZN; aac_startio(sc); AAC_LOCK_RELEASE(&sc->aac_io_lock); @@ -1158,9 +1164,10 @@ return (ENOMEM); } - bus_dmamap_load(sc->aac_fib_dmat, fm->aac_fibmap, fm->aac_fibs, - AAC_FIB_COUNT * sizeof(struct aac_fib), - aac_map_command_helper, &fibphys, 0); + /* Ignore errors since this doesn't bounce */ + (void)bus_dmamap_load(sc->aac_fib_dmat, fm->aac_fibmap, fm->aac_fibs, + AAC_FIB_COUNT * sizeof(struct aac_fib), + aac_map_command_helper, &fibphys, 0); /* initialise constant fields in the command structure */ bzero(fm->aac_fibs, AAC_FIB_COUNT * sizeof(struct aac_fib)); @@ -1227,6 +1234,7 @@ static void aac_map_command_sg(void *arg, bus_dma_segment_t *segs, int nseg, int error) { + struct aac_softc *sc; struct aac_command *cm; struct aac_fib *fib; int i; @@ -1234,6 +1242,7 @@ debug_called(3); cm = (struct aac_command *)arg; + sc = cm->cm_sc; fib = cm->cm_fib; /* copy into the FIB */ @@ -1260,37 +1269,30 @@ fib->Header.Size += nseg*sizeof(struct aac_sg_entry64); } } -} -/* - * Map a command into controller-visible space. - */ -static void -aac_map_command(struct aac_command *cm) -{ - struct aac_softc *sc; + /* Fix up the address values in the FIB. Use the command array index + * instead of a pointer since these fields are only 32 bits. Shift + * the SenderFibAddress over to make room for the fast response bit. + */ + cm->cm_fib->Header.SenderFibAddress = (cm->cm_index << 1); + cm->cm_fib->Header.ReceiverFibAddress = cm->cm_fibphys; - debug_called(2); + /* save a pointer to the command for speedy reverse-lookup */ + cm->cm_fib->Header.SenderData = cm->cm_index; - sc = cm->cm_sc; + if (cm->cm_flags & AAC_CMD_DATAIN) + bus_dmamap_sync(sc->aac_buffer_dmat, cm->cm_datamap, + BUS_DMASYNC_PREREAD); + if (cm->cm_flags & AAC_CMD_DATAOUT) + bus_dmamap_sync(sc->aac_buffer_dmat, cm->cm_datamap, + BUS_DMASYNC_PREWRITE); + cm->cm_flags |= AAC_CMD_MAPPED; - /* don't map more than once */ - if (cm->cm_flags & AAC_CMD_MAPPED) - return; + /* put the FIB on the outbound queue */ + if (aac_enqueue_fib(sc, cm->cm_queue, cm) == EBUSY) + aac_requeue_ready(cm); - if (cm->cm_datalen != 0) { - bus_dmamap_load(sc->aac_buffer_dmat, cm->cm_datamap, - cm->cm_data, cm->cm_datalen, - aac_map_command_sg, cm, 0); - - if (cm->cm_flags & AAC_CMD_DATAIN) - bus_dmamap_sync(sc->aac_buffer_dmat, cm->cm_datamap, - BUS_DMASYNC_PREREAD); - if (cm->cm_flags & AAC_CMD_DATAOUT) - bus_dmamap_sync(sc->aac_buffer_dmat, cm->cm_datamap, - BUS_DMASYNC_PREWRITE); - } - cm->cm_flags |= AAC_CMD_MAPPED; + return; } /* @@ -1386,7 +1388,8 @@ sc->flags |= AAC_FLAGS_4GB_WINDOW; if (options & AAC_SUPPORTED_NONDASD) sc->flags |= AAC_FLAGS_ENABLE_CAM; - if ((options & AAC_SUPPORTED_SGMAP_HOST64) != 0 && (sizeof(bus_addr_t) > 4)) { + if ((options & AAC_SUPPORTED_SGMAP_HOST64) != 0 + && (sizeof(bus_addr_t) > 4)) { device_printf(sc->aac_dev, "Enabling 64-bit address support\n"); sc->flags |= AAC_FLAGS_SG_64BIT; } @@ -1510,7 +1513,7 @@ * XXX If the padding is not needed, can it be put to use instead * of ignored? */ - bus_dmamap_load(sc->aac_common_dmat, sc->aac_common_dmamap, + (void)bus_dmamap_load(sc->aac_common_dmat, sc->aac_common_dmamap, sc->aac_common, 8192 + sizeof(*sc->aac_common), aac_common_map, sc, 0); @@ -1549,8 +1552,17 @@ offsetof(struct aac_common, ac_printf); ip->PrintfBufferSize = AAC_PRINTF_BUFSIZE; - /* The adapter assumes that pages are 4K in size */ + /* + * The adapter assumes that pages are 4K in size, except on some + * broken firmware versions that do the page->byte conversion twice, + * therefore 'assuming' that this value is in 16MB units (2^24). + * Round up since the granularity is so high. + */ ip->HostPhysMemPages = ctob(physmem) / AAC_PAGE_SIZE; + if (sc->flags & AAC_FLAGS_BROKEN_MEMMAP) { + ip->HostPhysMemPages = + (ip->HostPhysMemPages + AAC_PAGE_SIZE) / AAC_PAGE_SIZE; + } ip->HostElapsedSeconds = time_second; /* reset later if invalid */ /* ==== //depot/projects/uart/dev/aac/aac_pci.c#3 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/aac/aac_pci.c,v 1.35 2003/07/01 15:51:51 scottl Exp $ + * $FreeBSD: src/sys/dev/aac/aac_pci.c,v 1.36 2003/07/09 19:19:16 scottl Exp $ */ /* @@ -114,8 +114,8 @@ "Dell PERC 3/Di"}, {0x1011, 0x0046, 0x9005, 0x0364, AAC_HWIF_STRONGARM, 0, "Adaptec AAC-364"}, - {0x1011, 0x0046, 0x9005, 0x0365, AAC_HWIF_STRONGARM, 0, - "Adaptec SCSI RAID 5400S"}, + {0x1011, 0x0046, 0x9005, 0x0365, AAC_HWIF_STRONGARM, + AAC_FLAGS_BROKEN_MEMMAP, "Adaptec SCSI RAID 5400S"}, {0x1011, 0x0046, 0x9005, 0x1364, AAC_HWIF_STRONGARM, AAC_FLAGS_PERC2QC, "Dell PERC 2/QC"}, {0x1011, 0x0046, 0x103c, 0x10c2, AAC_HWIF_STRONGARM, 0, ==== //depot/projects/uart/dev/aac/aacvar.h#2 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/aac/aacvar.h,v 1.33 2003/04/01 15:06:22 phk Exp $ + * $FreeBSD: src/sys/dev/aac/aacvar.h,v 1.35 2003/07/09 21:16:23 scottl Exp $ */ #include @@ -167,6 +167,8 @@ #define AAC_ON_AACQ_BUSY (1<<7) #define AAC_ON_AACQ_COMPLETE (1<<8) #define AAC_ON_AACQ_MASK ((1<<5)|(1<<6)|(1<<7)|(1<<8)) +#define AAC_QUEUE_FRZN (1<<9) /* Freeze the processing of + * commands on the queue. */ void (* cm_complete)(struct aac_command *cm); void *cm_private; @@ -369,6 +371,7 @@ * 2GB-4GB range */ #define AAC_FLAGS_NO4GB (1 << 6) /* Can't access host mem >2GB */ #define AAC_FLAGS_256FIBS (1 << 7) /* Can only do 256 commands */ +#define AAC_FLAGS_BROKEN_MEMMAP (1 << 8) /* Broken HostPhysMemPages */ u_int32_t supported_options; int aac_max_fibs; ==== //depot/projects/uart/dev/acpica/acpi_isab.c#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/acpica/acpi_isab.c,v 1.1 2003/07/08 18:59:32 jhb Exp $ + * $FreeBSD: src/sys/dev/acpica/acpi_isab.c,v 1.2 2003/07/09 18:28:53 jhb Exp $ */ /* @@ -93,7 +93,8 @@ { if ((acpi_get_type(dev) == ACPI_TYPE_DEVICE) && - !acpi_disabled("isa ") && + !acpi_disabled("isa") && + devclass_get_device(isab_devclass, 0) == NULL && (acpi_MatchHid(dev, "PNP0A05") || acpi_MatchHid(dev, "PNP0A06"))) { device_set_desc(dev, "ACPI Generic ISA bridge"); return(0); ==== //depot/projects/uart/dev/firewire/firewire.c#3 (text+ko) ==== @@ -31,7 +31,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/firewire/firewire.c,v 1.55 2003/06/30 06:33:18 simokawa Exp $ + * $FreeBSD: src/sys/dev/firewire/firewire.c,v 1.56 2003/07/09 13:07:35 simokawa Exp $ * */ @@ -596,7 +596,7 @@ src->businfo.cyc_clk_acc = 100; src->businfo.max_rec = fc->maxrec; src->businfo.max_rom = MAXROM_4; - src->businfo.generation = 0; + src->businfo.generation = 1; src->businfo.link_spd = fc->speed; src->businfo.eui64.hi = fc->eui.hi; @@ -622,7 +622,6 @@ src = fc->crom_src; root = fc->crom_root; - src->businfo.generation ++; STAILQ_INIT(&src->chunk_list); bzero(root, sizeof(struct crom_chunk)); @@ -642,7 +641,9 @@ fw_busreset(struct firewire_comm *fc) { struct firewire_dev_comm *fdc; + struct crom_src *src; device_t *devlistp; + void *newrom; int i, devcnt; switch(fc->status){ @@ -666,7 +667,19 @@ free(devlistp, M_TEMP); } - crom_load(&fc->crom_src_buf->src, fc->config_rom, CROMSIZE); + newrom = malloc(CROMSIZE, M_FW, M_NOWAIT | M_ZERO); + src = &fc->crom_src_buf->src; + crom_load(src, (u_int32_t *)newrom, CROMSIZE); + if (bcmp(newrom, fc->config_rom, CROMSIZE) != 0) { + /* bump generation and reload */ + src->businfo.generation ++; + /* generation must be between 0x2 and 0xF */ + if (src->businfo.generation < 2) + src->businfo.generation ++; + crom_load(src, (u_int32_t *)newrom, CROMSIZE); + bcopy(newrom, (void *)fc->config_rom, CROMSIZE); + } + free(newrom, M_FW); } /* Call once after reboot */ @@ -1307,12 +1320,11 @@ break; if(fwdev != NULL){ fwdev->dst = fc->ongonode; - fwdev->status = FWDEVATTACHED; - fc->ongonode++; + fwdev->status = FWDEVINIT; + fc->ongodev = fwdev; fc->ongoaddr = CSRROMOFF; - fc->ongodev = NULL; - fc->ongoeui.hi = 0xffffffff; fc->ongoeui.lo = 0xffffffff; - goto loop; + addr = 0xf0000000 | fc->ongoaddr; + goto dorequest; } fwdev = malloc(sizeof(struct fw_device), M_FW, M_NOWAIT | M_ZERO); @@ -1348,6 +1360,7 @@ }else{ addr = 0xf0000000 | fc->ongoaddr; } +dorequest: #if 0 xfer = asyreqq(fc, FWSPD_S100, 0, 0, ((FWLOCALBUS | fc->ongonode) << 16) | 0xffff , addr, @@ -1512,6 +1525,11 @@ fc->ongoaddr = CSRROMOFF; } }else{ + if (fc->ongoaddr == CSRROMOFF && + fc->ongodev->csrrom[0] == ntohl(rfp->mode.rresq.data)) { + fc->ongodev->status = FWDEVATTACHED; + goto nextnode; + } fc->ongodev->csrrom[(fc->ongoaddr - CSRROMOFF)/4] = ntohl(rfp->mode.rresq.data); if(fc->ongoaddr > fc->ongodev->rommax){ fc->ongodev->rommax = fc->ongoaddr; ==== //depot/projects/uart/dev/usb/uscanner.c#3 (text+ko) ==== @@ -1,5 +1,5 @@ /* $NetBSD: uscanner.c,v 1.30 2002/07/11 21:14:36 augustss Exp$ */ -/* $FreeBSD: src/sys/dev/usb/uscanner.c,v 1.40 2003/07/01 12:16:46 joe Exp $ */ +/* $FreeBSD: src/sys/dev/usb/uscanner.c,v 1.41 2003/07/09 17:05:59 ache Exp $ */ /* * Copyright (c) 2000 The NetBSD Foundation, Inc. @@ -192,6 +192,7 @@ {{ USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA1220U }, 0 }, {{ USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA1236U }, 0 }, {{ USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA2000U }, 0 }, + {{ USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA2100U }, 0 }, {{ USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA2200U }, 0 }, {{ USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA3400 }, 0 }, ==== //depot/projects/uart/i386/i386/mp_machdep.c#2 (text+ko) ==== @@ -25,11 +25,10 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/i386/mp_machdep.c,v 1.210 2003/06/28 22:07:42 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/mp_machdep.c,v 1.211 2003/07/10 01:02:59 peter Exp $"); #include "opt_cpu.h" #include "opt_kstack_pages.h" -#include "opt_swtch.h" #ifdef SMP #include @@ -644,11 +643,9 @@ setidt(XSTATCLOCK_OFFSET, Xstatclock, SDT_SYS386IGT, SEL_KPL, GSEL(GCODE_SEL, SEL_KPL)); -#ifdef LAZY_SWITCH /* install an inter-CPU IPI for lazy pmap release */ setidt(XLAZYPMAP_OFFSET, Xlazypmap, SDT_SYS386IGT, SEL_KPL, GSEL(GCODE_SEL, SEL_KPL)); -#endif /* install an inter-CPU IPI for all-CPU rendezvous */ setidt(XRENDEZVOUS_OFFSET, Xrendezvous, ==== //depot/projects/uart/i386/i386/pmap.c#5 (text+ko) ==== @@ -42,7 +42,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.417 2003/07/08 19:40:35 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.418 2003/07/10 01:02:59 peter Exp $"); /*- * Copyright (c) 2003 Networks Associates Technology, Inc. * All rights reserved. @@ -104,7 +104,6 @@ #include "opt_pmap.h" #include "opt_msgbuf.h" #include "opt_kstack_pages.h" -#include "opt_swtch.h" #include #include @@ -187,7 +186,7 @@ LIST_HEAD(pmaplist, pmap); static struct pmaplist allpmaps; static struct mtx allpmaps_lock; -#if defined(SMP) && defined(LAZY_SWITCH) +#ifdef SMP static struct mtx lazypmap_lock; #endif @@ -340,7 +339,7 @@ kernel_pmap->pm_active = -1; /* don't allow deactivation */ TAILQ_INIT(&kernel_pmap->pm_pvlist); LIST_INIT(&allpmaps); -#if defined(SMP) && defined(LAZY_SWITCH) +#ifdef SMP mtx_init(&lazypmap_lock, "lazypmap", NULL, MTX_SPIN); #endif mtx_init(&allpmaps_lock, "allpmaps", NULL, MTX_SPIN); @@ -1285,7 +1284,6 @@ * Pmap allocation/deallocation routines. ***************************************************/ -#ifdef LAZY_SWITCH #ifdef SMP /* * Deal with a SMP shootdown of other users of the pmap that we are @@ -1374,7 +1372,6 @@ } } #endif /* SMP */ -#endif /* LAZY_SWITCH */ /* * Release any resources held by the given physical map. @@ -1397,9 +1394,7 @@ ("pmap_release: pmap resident count %ld != 0", pmap->pm_stats.resident_count)); -#ifdef LAZY_SWITCH pmap_lazyfix(pmap); -#endif mtx_lock_spin(&allpmaps_lock); LIST_REMOVE(pmap, pm_list); mtx_unlock_spin(&allpmaps_lock); ==== //depot/projects/uart/i386/i386/swtch.s#2 (text+ko) ==== @@ -33,11 +33,10 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/i386/i386/swtch.s,v 1.141 2003/06/27 22:39:13 peter Exp $ + * $FreeBSD: src/sys/i386/i386/swtch.s,v 1.142 2003/07/10 01:02:59 peter Exp $ */ #include "opt_npx.h" -#include "opt_swtch.h" #include @@ -162,14 +161,12 @@ /* switch address space */ movl PCB_CR3(%edx),%eax -#ifdef LAZY_SWITCH #ifdef PAE cmpl %eax,IdlePDPT /* Kernel address space? */ #else cmpl %eax,IdlePTD /* Kernel address space? */ #endif je sw1 -#endif movl %cr3,%ebx /* The same address space? */ cmpl %ebx,%eax je sw1 ==== //depot/projects/uart/i386/isa/apic_vector.s#2 (text+ko) ==== @@ -1,10 +1,8 @@ /* * from: vector.s, 386BSD 0.1 unknown origin - * $FreeBSD: src/sys/i386/isa/apic_vector.s,v 1.88 2003/06/06 17:45:25 jhb Exp $ + * $FreeBSD: src/sys/i386/isa/apic_vector.s,v 1.89 2003/07/10 01:02:59 peter Exp $ */ -#include "opt_swtch.h" - #include #include @@ -643,7 +641,6 @@ POP_FRAME iret -#ifdef LAZY_SWITCH /* * Clean up when we lose out on the lazy context switch optimization. * ie: when we are about to release a PTD but a cpu is still borrowing it. @@ -662,7 +659,6 @@ movl $0, lapic+LA_EOI /* End Of Interrupt to APIC */ POP_FRAME iret -#endif #endif /* SMP */ .data ==== //depot/projects/uart/kern/kern_synch.c#2 (text+ko) ==== @@ -39,13 +39,10 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_synch.c,v 1.228 2003/06/28 08:29:04 davidxu Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_synch.c,v 1.229 2003/07/10 01:02:59 peter Exp $"); #include "opt_ddb.h" #include "opt_ktrace.h" -#ifdef __i386__ -#include "opt_swtch.h" -#endif #include #include ==== //depot/projects/uart/kern/subr_witness.c#2 (text+ko) ==== @@ -82,13 +82,10 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/subr_witness.c,v 1.155 2003/06/11 00:56:57 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/subr_witness.c,v 1.156 2003/07/10 01:02:59 peter Exp $"); #include "opt_ddb.h" #include "opt_witness.h" -#ifdef __i386__ -#include "opt_swtch.h" -#endif #include #include @@ -301,7 +298,7 @@ #if defined(__i386__) && defined(APIC_IO) { "tlb", &lock_class_mtx_spin }, #endif -#if defined(__i386__) && defined(LAZY_SWITCH) +#ifdef __i386__ { "lazypmap", &lock_class_mtx_spin }, #endif #ifdef __sparc64__ ==== //depot/projects/uart/kern/sys_pipe.c#3 (text+ko) ==== @@ -70,7 +70,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/sys_pipe.c,v 1.138 2003/07/08 04:02:31 silby Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/sys_pipe.c,v 1.139 2003/07/09 21:59:48 silby Exp $"); #include "opt_mac.h" @@ -183,13 +183,15 @@ SYSCTL_DECL(_kern_ipc); SYSCTL_INT(_kern_ipc, OID_AUTO, maxpipes, CTLFLAG_RW, - &maxpipes, 0, ""); + &maxpipes, 0, "Max # of pipes"); SYSCTL_INT(_kern_ipc, OID_AUTO, maxpipekva, CTLFLAG_RW, &maxpipekva, 0, "Pipe KVA limit"); SYSCTL_INT(_kern_ipc, OID_AUTO, maxpipekvawired, CTLFLAG_RW, &maxpipekvawired, 0, "Pipe KVA wired limit"); SYSCTL_INT(_kern_ipc, OID_AUTO, pipes, CTLFLAG_RD, - &amountpipes, 0, ""); + &amountpipes, 0, "Current # of pipes"); +SYSCTL_INT(_kern_ipc, OID_AUTO, bigpipes, CTLFLAG_RD, + &nbigpipe, 0, "Current # of big pipes"); SYSCTL_INT(_kern_ipc, OID_AUTO, pipekva, CTLFLAG_RD, &amountpipekva, 0, "Pipe KVA usage"); SYSCTL_INT(_kern_ipc, OID_AUTO, pipekvawired, CTLFLAG_RD, @@ -962,7 +964,7 @@ if ((error = pipelock(wpipe, 1)) == 0) { PIPE_GET_GIANT(wpipe); if (pipespace(wpipe, BIG_PIPE_SIZE) == 0) - nbigpipe++; + atomic_add_int(&nbigpipe, 1); PIPE_DROP_GIANT(wpipe); pipeunlock(wpipe); } @@ -1000,8 +1002,7 @@ */ if ((uio->uio_iov->iov_len >= PIPE_MINDIRECT) && (fp->f_flag & FNONBLOCK) == 0 && - amountpipekvawired < maxpipekvawired && - (uio->uio_iov->iov_len >= PIPE_MINDIRECT)) { + amountpipekvawired < maxpipekvawired) { error = pipe_direct_write(wpipe, uio); if (error) break; @@ -1405,7 +1406,7 @@ if (cpipe->pipe_buffer.buffer != NULL) { if (cpipe->pipe_buffer.size > PIPE_SIZE) - --nbigpipe; + atomic_subtract_int(&nbigpipe, 1); atomic_subtract_int(&amountpipekva, cpipe->pipe_buffer.size); atomic_subtract_int(&amountpipes, 1); kmem_free(kernel_map, ==== //depot/projects/uart/pci/if_dc.c#4 (text+ko) ==== @@ -89,9 +89,10 @@ */ #include -__FBSDID("$FreeBSD: src/sys/pci/if_dc.c,v 1.115 2003/07/06 21:45:31 mux Exp $"); +__FBSDID("$FreeBSD: src/sys/pci/if_dc.c,v 1.116 2003/07/09 15:03:10 mux Exp $"); #include +#include #include #include >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Jul 10 18:11:08 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9446037B404; Thu, 10 Jul 2003 18:11:07 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E224B37B401 for ; Thu, 10 Jul 2003 18:11:06 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id C443643F3F for ; Thu, 10 Jul 2003 18:11:05 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h6B1B50U073527 for ; Thu, 10 Jul 2003 18:11:05 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h6B1B5pE073524 for perforce@freebsd.org; Thu, 10 Jul 2003 18:11:05 -0700 (PDT) Date: Thu, 10 Jul 2003 18:11:05 -0700 (PDT) Message-Id: <200307110111.h6B1B5pE073524@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 34326 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 01:11:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=34326 Change 34326 by marcel@marcel_nfs on 2003/07/10 18:10:27 IFC @34325 Affected files ... .. //depot/projects/ia64/Makefile.inc1#73 integrate .. //depot/projects/ia64/bin/ls/ls.1#17 integrate .. //depot/projects/ia64/etc/sendmail/Makefile#11 integrate .. //depot/projects/ia64/share/man/man4/dc.4#5 integrate .. //depot/projects/ia64/share/man/man4/rl.4#6 integrate .. //depot/projects/ia64/sys/contrib/ia64/libuwx/src/Makefile#2 integrate .. //depot/projects/ia64/sys/contrib/ia64/libuwx/src/uwx_trace.c#2 integrate .. //depot/projects/ia64/sys/contrib/ia64/libuwx/src/uwx_trace.h#2 integrate .. //depot/projects/ia64/sys/dev/acpica/acpi_ec.c#10 integrate .. //depot/projects/ia64/sys/dev/hatm/if_hatm.c#3 integrate .. //depot/projects/ia64/sys/dev/hatm/if_hatm_intr.c#2 integrate .. //depot/projects/ia64/sys/dev/hatm/if_hatm_ioctl.c#2 integrate .. //depot/projects/ia64/sys/dev/hatm/if_hatm_rx.c#2 integrate .. //depot/projects/ia64/sys/dev/hatm/if_hatm_tx.c#2 integrate .. //depot/projects/ia64/sys/dev/usb/if_aue.c#20 integrate .. //depot/projects/ia64/sys/dev/usb/usbdevs#41 integrate .. //depot/projects/ia64/sys/dev/usb/usbdevs.h#39 integrate .. //depot/projects/ia64/sys/dev/usb/usbdevs_data.h#39 integrate .. //depot/projects/ia64/sys/i386/i386/mp_machdep.c#25 integrate .. //depot/projects/ia64/sys/kern/kern_malloc.c#24 integrate .. //depot/projects/ia64/sys/kern/subr_param.c#10 integrate .. //depot/projects/ia64/sys/modules/mii/Makefile#6 integrate .. //depot/projects/ia64/sys/pci/if_dc.c#41 integrate .. //depot/projects/ia64/sys/pci/if_dcreg.h#15 integrate .. //depot/projects/ia64/sys/pci/if_rl.c#36 integrate .. //depot/projects/ia64/sys/pci/if_rlreg.h#10 integrate .. //depot/projects/ia64/sys/pci/if_xl.c#36 integrate .. //depot/projects/ia64/sys/pci/if_xlreg.h#11 integrate .. //depot/projects/ia64/sys/sparc64/include/bus.h#19 integrate .. //depot/projects/ia64/sys/sparc64/include/bus_private.h#5 integrate .. //depot/projects/ia64/sys/sparc64/include/iommuvar.h#13 integrate .. //depot/projects/ia64/sys/sparc64/sparc64/bus_machdep.c#20 integrate .. //depot/projects/ia64/sys/sparc64/sparc64/iommu.c#21 integrate .. //depot/projects/ia64/sys/sys/systm.h#27 integrate Differences ... ==== //depot/projects/ia64/Makefile.inc1#73 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/Makefile.inc1,v 1.377 2003/07/08 01:24:21 obrien Exp $ +# $FreeBSD: src/Makefile.inc1,v 1.378 2003/07/10 05:29:56 kris Exp $ # # Make command line options: # -DNO_KERBEROS Do not build Heimdal (Kerberos 5) @@ -754,7 +754,7 @@ .if (defined(RESCUE) || \ defined(RELEASEDIR)) && \ - (${TARGET_ARCH} != ${MACHINE_ARCH} || ${BOOTSTRAPPING} < 501101) + ( ${TARGET_ARCH} != ${MACHINE_ARCH} || ${BOOTSTRAPPING} < 501101 ) _crunchide= usr.sbin/crunch/crunchide .endif ==== //depot/projects/ia64/bin/ls/ls.1#17 (text+ko) ==== @@ -33,7 +33,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)ls.1 8.7 (Berkeley) 7/29/94 -.\" $FreeBSD: src/bin/ls/ls.1,v 1.74 2003/05/06 21:54:46 trhodes Exp $ +.\" $FreeBSD: src/bin/ls/ls.1,v 1.75 2003/07/10 20:53:56 brueffer Exp $ .\" .Dd May 19, 2002 .Dt LS 1 @@ -334,7 +334,7 @@ The file mode printed under the .Fl l option consists of the -entry type, owner permissions, and group permissions. +entry type and the permissions. The entry type character describes the type of file, as follows: .Pp ==== //depot/projects/ia64/etc/sendmail/Makefile#11 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.19 (Berkeley) 1/14/97 -# $FreeBSD: src/etc/sendmail/Makefile,v 1.25 2003/07/07 03:19:46 gshapiro Exp $ +# $FreeBSD: src/etc/sendmail/Makefile,v 1.26 2003/07/10 04:53:32 gshapiro Exp $ M4= m4 CHMOD= chmod @@ -25,6 +25,7 @@ DEST_SUBMIT_CF= ${DESTDIR}/etc/mail/submit.cf ALL= freebsd.cf +CLEANFILES= freebsd.cf # Local SENDMAIL_MC or SENDMAIL_CF may be set in /etc/make.conf. # Warning! If set, this causes 'make install' to always copy it @@ -33,14 +34,17 @@ .if defined(SENDMAIL_MC) INSTALL_CF= ${SENDMAIL_MC:T:R}.cf ALL+= ${INSTALL_CF} +CLEANFILES+= ${SENDMAIL_MC:T:R}.cf ${INSTALL_CF}: ${SENDMAIL_MC} .elif defined(SENDMAIL_CF) +ALL+= ${SENDMAIL_CF} INSTALL_CF= ${SENDMAIL_CF} .endif .if !defined(SENDMAIL_SET_USER_ID) && defined(SENDMAIL_SUBMIT_MC) INSTALL_SUBMIT_CF= ${SENDMAIL_SUBMIT_MC:T:R}.cf ALL+= ${INSTALL_SUBMIT_CF} +CLEANFILES+= ${INSTALL_SUBMIT_CF} ${INSTALL_SUBMIT_CF}: ${SENDMAIL_SUBMIT_MC} .endif @@ -48,13 +52,12 @@ .if defined(SENDMAIL_ADDITIONAL_MC) SENDMAIL_ADDITIONAL_CF= ${SENDMAIL_ADDITIONAL_MC:T:S/.mc$/.cf/} ALL+= ${SENDMAIL_ADDITIONAL_CF} +CLEANFILES+= ${SENDMAIL_ADDITIONAL_CF} .for mc in ${SENDMAIL_ADDITIONAL_MC} ${mc:T:R}.cf: ${mc} .endfor .endif -CLEANFILES= ${ALL} - all: ${ALL} install distribution: ${ALL} ==== //depot/projects/ia64/share/man/man4/dc.4#5 (text+ko) ==== @@ -28,7 +28,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF .\" THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/dc.4,v 1.20 2003/05/12 19:50:21 mbr Exp $ +.\" $FreeBSD: src/share/man/man4/dc.4,v 1.21 2003/07/10 18:43:17 wpaul Exp $ .\" .Dd November 20, 1999 .Dt DC 4 @@ -145,6 +145,10 @@ LinkSys LNE100TX v4.0/4.1 (ADMtek AN985 Centaur-P) .It 3Com OfficeConnect 10/100B (ADMtek AN985 Centaur-P) +.It +Microsoft MN-120 10/100 CardBus (ADMTek Centaur-C) +.It +Microsoft MN-130 10/100 PCI (ADMTek Centaur-P) .El .Pp The ==== //depot/projects/ia64/share/man/man4/rl.4#6 (text+ko) ==== @@ -28,14 +28,14 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF .\" THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/rl.4,v 1.26 2003/02/15 17:12:53 trhodes Exp $ +.\" $FreeBSD: src/share/man/man4/rl.4,v 1.27 2003/07/10 18:43:17 wpaul Exp $ .\" .Dd November 4, 1998 .Dt RL 4 .Os .Sh NAME .Nm rl -.Nd RealTek 8129/8139 fast ethernet device driver +.Nd RealTek 8129/8139/8139C+ fast ethernet device driver .Sh SYNOPSIS .Cd "device miibus" .Cd "device rl" @@ -44,17 +44,64 @@ .Nm driver provides support for PCI ethernet adapters and embedded controllers based on the RealTek 8129 and 8139 fast ethernet controller -chips. -This includes the Allied Telesyn AT2550, Farallon NetLINE 10/100 PCI, +chips, including the following: +.Pp +.Bl -bullet -compact -offset indent +.It +Allied Telesyn AT2550 +.It +Farallon NetLINE 10/100 PCI +.It Genius GF100TXR, -NDC Communications NE100TX-E, OvisLink LEF-8129TX, OvisLink LEF-8139TX, -Netronix Inc. EA-1210 NetEther 10/100, KTX-9130TX 10/100 Fast Ethernet, -Encore ENL832-TX 10/100 M PCI, Longshine LCS-8038TX-R, the -SMC EZ Card 10/100 PCI 1211-TX, and various other cheap adapters. -It also supports the Accton EN1207D which has a -chip labeled MPX5030 (or MPX5038) which appears to be a RealTek workalike. +.It +NDC Communications NE100TX-E +.It +OvisLink LEF-8129TX +.It +OvisLink LEF-8139TX, +.It +Netronix Inc. EA-1210 NetEther 10/100 +.It +KTX-9130TX 10/100 Fast Ethernet, +.It +Encore ENL832-TX 10/100 M PCI, +.It +Longshine LCS-8038TX-R +.It +SMC EZ Card 10/100 PCI 1211-TX +.It +Compaq HNE-300 +.It +LevelOne FPC-0106TX +.It +Edimax EP-4103DL CardBus +.It +Nortel Networks 10/100BaseTX +.It +D-Link DFE-690TXD +.It +D-Link DFE-530TX+ +.It +D-Link DFE-538TX (same as 530+?) +.It +Corega FEther CB-TXD +.It +Corega FEtherII CB-TXD +.It +Peppercon AG ROL-F +.It +Planex FNW-3800-TX +.It +Accton EN1207D +.It +GigaFast Ethernet EE100-AXP +.It +CompUSA no-name 10/100 PCI ethernet NIC +.It +Belkin F5D5000 +.El .Pp -The RealTek controllers use bus master DMA but do not use a +The RealTek 8129/8139 series controllers use bus master DMA but do not use a descriptor-based data transfer mechanism. The receiver uses a single fixed size ring buffer from which packets must be copied @@ -73,6 +120,21 @@ The 8129 can support the same speeds and modes given an appropriate PHY chip. .Pp +Support is also provided for the special C+ mode of the 8139C+ chip. +By default, the 8139C+ is back backwards compatible with the 8139, but +in C+ mode it supports advanced features such as descriptor-based DMA, +64-bit addressing, TCP/IP checksum offload on both receive and transmit, +hardware VLAN tag insertion and extraction, and TCP large send. +When used with an 8139C+ chip, the +.Nm +driver makes use of all of these features, except for TCP large send, +since there is currently no OS support for it. Transmit interrupt +moderation is also used to improve performance at high frame rates. +The receive and transmit checksum offload capabilities are on by default +but can be toggled off using the +.Xr ifconfig 8 +command. +.Pp The .Nm driver supports the following media types: @@ -167,8 +229,8 @@ .Xr ng_ether 4 , .Xr ifconfig 8 .Rs -.%B The RealTek 8129 and 8139 datasheets -.%O ftp.realtek.com.tw:/lancard/data sheet +.%B The RealTek 8129, 8139 and 8139C+ datasheets +.%O http://www.realtek.com.tw .Re .Sh HISTORY The ==== //depot/projects/ia64/sys/contrib/ia64/libuwx/src/Makefile#2 (text+ko) ==== @@ -8,7 +8,7 @@ AR = ar RANLIB = : -# OTHERCFLAGS = -DDISABLE_TRACE # Disables trace output +# OTHERCFLAGS = -DUWX_TRACE_ENABLE # Enables trace output # OTHERCFLAGS = +DD64 # Builds 64-bit library OTHERCFLAGS = ==== //depot/projects/ia64/sys/contrib/ia64/libuwx/src/uwx_trace.c#2 (text+ko) ==== @@ -25,6 +25,8 @@ #include "uwx_scoreboard.h" #include "uwx_trace.h" +#ifdef UWX_TRACE_ENABLE + void uwx_trace_init(struct uwx_env *env) { char *tstr; @@ -136,3 +138,4 @@ uwx_dump_rstate(i, scoreboard->rstate[i]); } +#endif /* UWX_TRACE_ENABLE */ ==== //depot/projects/ia64/sys/contrib/ia64/libuwx/src/uwx_trace.h#2 (text+ko) ==== @@ -29,7 +29,7 @@ #define UWX_TRACE_COPYIN 64 /* UWX_TRACE=C: copyin callback */ #define UWX_TRACE_LOOKUPIP 128 /* UWX_TRACE=L: lookupip callback */ -#ifdef DISABLE_TRACE +#ifndef UWX_TRACE_ENABLE #define TRACE_INIT #define TRACE_B_REUSE(id) @@ -76,7 +76,7 @@ #define TRACE_SELF_LOOKUP(ip) #define TRACE_SELF_LOOKUP_DESC(text_base, unwind_base) -#else /* not TRACE_DISABLED */ +#else /* !UWX_TRACE_ENABLE */ extern void uwx_trace_init(struct uwx_env *env); @@ -344,5 +344,5 @@ (unsigned int) ((text_base)+(unwind_base)[2])); \ } -#endif /* TRACE_DISABLED */ +#endif /* !UWX_TRACE_ENABLE */ ==== //depot/projects/ia64/sys/dev/acpica/acpi_ec.c#10 (text+ko) ==== @@ -1,4 +1,5 @@ /*- + * Copyright (c) 2003 Nate Lawson * Copyright (c) 2000 Michael Smith * Copyright (c) 2000 BSDi * All rights reserved. @@ -24,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/acpica/acpi_ec.c,v 1.30 2003/06/27 21:57:42 njl Exp $ + * $FreeBSD: src/sys/dev/acpica/acpi_ec.c,v 1.31 2003/07/10 17:22:46 njl Exp $ */ /****************************************************************************** * @@ -238,26 +239,42 @@ bus_space_tag_t ec_csr_tag; bus_space_handle_t ec_csr_handle; - int ec_locked; - int ec_lockhandle; - int ec_pendquery; - int ec_csrvalue; + int ec_glk; + int ec_glkhandle; + struct mtx ec_mtx; + UINT32 ec_polldelay; }; -static int acpi_ec_event_driven = 0; -TUNABLE_INT("hw.acpi.ec.event_driven", &acpi_ec_event_driven); +/* + * XXX + * I couldn't find it in the spec but other implementations also use a + * value of 1 ms for the time to acquire global lock. + */ +#define EC_LOCK_TIMEOUT 1000 + +/* + * Start with an interval of 1 us for status poll loop. This delay + * will be dynamically adjusted based on the actual time waited. + */ +#define EC_POLL_DELAY 1 -#define EC_LOCK_TIMEOUT 1000 /* 1ms */ +/* Total time in ms spent in the poll loop waiting for a response. */ +#define EC_POLL_TIMEOUT 50 static __inline ACPI_STATUS EcLock(struct acpi_ec_softc *sc) { - ACPI_STATUS status; + ACPI_STATUS status = AE_OK; + + /* Always acquire this EC's mutex. */ + mtx_lock(&sc->ec_mtx); - /* XXX ACPI_WAIT_FOREVER is probably a bad idea, what is a better time? */ - status = AcpiAcquireGlobalLock(ACPI_WAIT_FOREVER, &sc->ec_lockhandle); - if (ACPI_SUCCESS(status)) - sc->ec_locked = 1; + /* If _GLK is non-zero, also acquire the global lock. */ + if (sc->ec_glk) { + status = AcpiAcquireGlobalLock(EC_LOCK_TIMEOUT, &sc->ec_glkhandle); + if (ACPI_FAILURE(status)) + mtx_unlock(&sc->ec_mtx); + } return (status); } @@ -265,23 +282,11 @@ static __inline void EcUnlock(struct acpi_ec_softc *sc) { - sc->ec_locked = 0; - AcpiReleaseGlobalLock(sc->ec_lockhandle); -} - -static __inline int -EcIsLocked(struct acpi_ec_softc *sc) -{ - return (sc->ec_locked != 0); + if (sc->ec_glk) + AcpiReleaseGlobalLock(sc->ec_glkhandle); + mtx_unlock(&sc->ec_mtx); } -typedef struct -{ - EC_COMMAND Command; - UINT8 Address; - UINT8 Data; -} EC_REQUEST; - static void EcGpeHandler(void *Context); static ACPI_STATUS EcSpaceSetup(ACPI_HANDLE Region, UINT32 Function, void *Context, void **return_Context); @@ -291,8 +296,7 @@ void *Context, void *RegionContext); static ACPI_STATUS EcWaitEvent(struct acpi_ec_softc *sc, EC_EVENT Event); static ACPI_STATUS EcQuery(struct acpi_ec_softc *sc, UINT8 *Data); -static ACPI_STATUS EcTransaction(struct acpi_ec_softc *sc, - EC_REQUEST *EcRequest); +static ACPI_STATUS EcCommand(struct acpi_ec_softc *sc, EC_COMMAND cmd); static ACPI_STATUS EcRead(struct acpi_ec_softc *sc, UINT8 Address, UINT8 *Data); static ACPI_STATUS EcWrite(struct acpi_ec_softc *sc, UINT8 Address, @@ -341,6 +345,7 @@ static int acpi_ec_probe(device_t dev) { + int ret = ENXIO; if (acpi_get_type(dev) == ACPI_TYPE_DEVICE && !acpi_disabled("ec") && acpi_MatchHid(dev, "PNP0C09")) { @@ -349,9 +354,10 @@ * Set device description */ device_set_desc(dev, "embedded controller"); - return (0); + ret = 0; } - return (ENXIO); + + return (ret); } static int @@ -363,17 +369,14 @@ ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); - /* - * Fetch/initialise softc - */ + /* Fetch/initialize softc (assumes softc is pre-zeroed). */ sc = device_get_softc(dev); - bzero(sc, sizeof(*sc)); sc->ec_dev = dev; sc->ec_handle = acpi_get_handle(dev); + sc->ec_polldelay = EC_POLL_DELAY; + mtx_init(&sc->ec_mtx, "ACPI embedded controller", NULL, MTX_DEF); - /* - * Attach bus resources - */ + /* Attach bus resources for data and command/status ports. */ sc->ec_data_rid = 0; sc->ec_data_res = bus_alloc_resource(sc->ec_dev, SYS_RES_IOPORT, &sc->ec_data_rid, 0, ~0, 1, RF_ACTIVE); @@ -396,13 +399,15 @@ sc->ec_csr_tag = rman_get_bustag(sc->ec_csr_res); sc->ec_csr_handle = rman_get_bushandle(sc->ec_csr_res); + /* Check if global lock should be used. If not, leave flag as 0. */ + acpi_EvaluateInteger(sc->ec_handle, "_GLK", &sc->ec_glk); + /* - * Install GPE handler - * * Evaluate the _GPE method to find the GPE bit used by the EC to signal - * status (SCI). + * status (SCI). Note that we don't handle the case where it can + * return a package instead of an int. */ - ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES, "attaching GPE\n")); + ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES, "querying GPE\n")); Status = acpi_EvaluateInteger(sc->ec_handle, "_GPE", &sc->ec_gpebit); if (ACPI_FAILURE(Status)) { device_printf(dev, "can't evaluate _GPE - %s\n", @@ -412,16 +417,12 @@ } /* - * Install a handler for this EC's GPE bit. Note that EC SCIs are - * treated as both edge- and level-triggered interrupts; in other words - * we clear the status bit immediately after getting an EC-SCI, then - * again after we're done processing the event. This guarantees that - * events we cause while performing a transaction (e.g. IBE/OBF) get - * cleared before re-enabling the GPE. + * Install a handler for this EC's GPE bit. We want edge-triggered + * behavior. */ - Status = AcpiInstallGpeHandler(sc->ec_gpebit, - ACPI_EVENT_LEVEL_TRIGGERED | ACPI_EVENT_EDGE_TRIGGERED, - EcGpeHandler, sc); + ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES, "attaching GPE handler\n")); + Status = AcpiInstallGpeHandler(sc->ec_gpebit, ACPI_EVENT_EDGE_TRIGGERED, + &EcGpeHandler, sc); if (ACPI_FAILURE(Status)) { device_printf(dev, "can't install GPE handler for %s - %s\n", acpi_name(sc->ec_handle), AcpiFormatException(Status)); @@ -434,117 +435,138 @@ */ ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES, "attaching address space handler\n")); Status = AcpiInstallAddressSpaceHandler(sc->ec_handle, ACPI_ADR_SPACE_EC, - EcSpaceHandler, EcSpaceSetup, sc); + &EcSpaceHandler, &EcSpaceSetup, sc); if (ACPI_FAILURE(Status)) { device_printf(dev, "can't install address space handler for %s - %s\n", acpi_name(sc->ec_handle), AcpiFormatException(Status)); - panic("very suck"); + Status = AcpiRemoveGpeHandler(sc->ec_gpebit, &EcGpeHandler); + if (ACPI_FAILURE(Status)) + panic("Added GPE handler but can't remove it"); errval = ENXIO; goto out; } - ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES, "attach complete\n")); - return_VALUE (0); + + ACPI_VPRINT(sc->ec_dev, acpi_device_get_parent_softc(sc->ec_dev), + "GPE bit is %#x, %susing global lock\n", sc->ec_gpebit, + sc->ec_glk == 0 ? "not " : ""); + + ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES, "acpi_ec_attach complete\n")); + return (0); out: if (sc->ec_csr_res) bus_release_resource(sc->ec_dev, SYS_RES_IOPORT, sc->ec_csr_rid, sc->ec_csr_res); if (sc->ec_data_res) - bus_release_resource(sc->ec_dev, SYS_RES_IOPORT, sc->ec_data_rid, + bus_release_resource(sc->ec_dev, SYS_RES_IOPORT, sc->ec_data_rid, sc->ec_data_res); - return_VALUE (errval); + return (errval); } +static ACPI_STATUS +EcQuery(struct acpi_ec_softc *sc, UINT8 *Data) +{ + ACPI_STATUS Status; + + Status = EcLock(sc); + if (ACPI_FAILURE(Status)) + return (Status); + + /* + * Send a query command to the EC to find out which _Qxx call it + * wants to make. This command clears the SCI bit and also the + * interrupt source since we are edge-triggered. + */ + Status = EcCommand(sc, EC_COMMAND_QUERY); + if (ACPI_SUCCESS(Status)) + *Data = EC_GET_DATA(sc); + + EcUnlock(sc); + + return (Status); +} + static void EcGpeQueryHandler(void *Context) { struct acpi_ec_softc *sc = (struct acpi_ec_softc *)Context; UINT8 Data; ACPI_STATUS Status; + EC_STATUS EcStatus; char qxx[5]; ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); + KASSERT(Context != NULL, ("EcGpeQueryHandler called with NULL")); - for (;;) { + /* + * Check status for EC_SCI. + * + * Bail out if the EC_SCI bit of the status register is not set. + * Note that this function should only be called when + * this bit is set (polling is used to detect IBE/OBF events). + * + * We don't acquire the global lock here but do protect against other + * running commands (read/write/query) by grabbing ec_mtx. + */ + mtx_lock(&sc->ec_mtx); + EcStatus = EC_GET_CSR(sc); + mtx_unlock(&sc->ec_mtx); + if ((EcStatus & EC_EVENT_SCI) == 0) + goto re_enable; - /* - * Check EC_SCI. - * - * Bail out if the EC_SCI bit of the status register is not set. - * Note that this function should only be called when - * this bit is set (polling is used to detect IBE/OBF events). - * - * It is safe to do this without locking the controller, as it's - * OK to call EcQuery when there's no data ready; in the worst - * case we should just find nothing waiting for us and bail. - */ - if ((EC_GET_CSR(sc) & EC_EVENT_SCI) == 0) - break; + /* Find out why the EC is signaling us. */ + Status = EcQuery(sc, &Data); + if (ACPI_FAILURE(Status)) { + ACPI_VPRINT(sc->ec_dev, acpi_device_get_parent_softc(sc->ec_dev), + "GPE query failed - %s\n", AcpiFormatException(Status)); + goto re_enable; + } - /* - * Find out why the EC is signalling us - */ - Status = EcQuery(sc, &Data); - - /* - * If we failed to get anything from the EC, give up - */ - if (ACPI_FAILURE(Status)) { - ACPI_VPRINT(sc->ec_dev, acpi_device_get_parent_softc(sc->ec_dev), - "GPE query failed - %s\n", AcpiFormatException(Status)); - break; - } + /* Ignore the value for "no outstanding event". (13.3.5) */ + if (Data == 0) + goto re_enable; - /* - * Evaluate _Qxx to respond to the controller. - */ - sprintf(qxx, "_Q%02x", Data); - strupr(qxx); - Status = AcpiEvaluateObject(sc->ec_handle, qxx, NULL, NULL); - /* - * Ignore spurious query requests. - */ - if (ACPI_FAILURE(Status) && (Data != 0 || Status != AE_NOT_FOUND)) { - ACPI_VPRINT(sc->ec_dev, acpi_device_get_parent_softc(sc->ec_dev), - "evaluation of GPE query method %s failed - %s\n", - qxx, AcpiFormatException(Status)); - } + /* Evaluate _Qxx to respond to the controller. */ + sprintf(qxx, "_Q%02x", Data); + strupr(qxx); + Status = AcpiEvaluateObject(sc->ec_handle, qxx, NULL, NULL); + if (ACPI_FAILURE(Status) && Status != AE_NOT_FOUND) { + ACPI_VPRINT(sc->ec_dev, acpi_device_get_parent_softc(sc->ec_dev), + "evaluation of GPE query method %s failed - %s\n", + qxx, AcpiFormatException(Status)); } - /* I know I request Level trigger cleanup */ - if (ACPI_FAILURE(AcpiClearEvent(sc->ec_gpebit, ACPI_EVENT_GPE))) - printf("EcGpeQueryHandler:ClearEvent Failed\n"); - if (ACPI_FAILURE(AcpiEnableEvent(sc->ec_gpebit, ACPI_EVENT_GPE, 0))) - printf("EcGpeQueryHandler:EnableEvent Failed\n"); + +re_enable: + /* Re-enable the GPE event so we'll get future requests. */ + Status = AcpiEnableEvent(sc->ec_gpebit, ACPI_EVENT_GPE, 0); + if (ACPI_FAILURE(Status)) + printf("EcGpeQueryHandler: AcpiEnableEvent failed\n"); } /* - * Handle a GPE sent to us. + * Handle a GPE. Currently we only handle SCI events as others must + * be handled by polling in EcWaitEvent(). This is because some ECs + * treat events as level when they should be edge-triggered. */ static void EcGpeHandler(void *Context) { struct acpi_ec_softc *sc = Context; - int csrvalue; + ACPI_STATUS Status; + + KASSERT(Context != NULL, ("EcGpeHandler called with NULL")); + + /* Disable further GPEs while we handle this one. */ + AcpiDisableEvent(sc->ec_gpebit, ACPI_EVENT_GPE, 0); - /* - * If EC is locked, the intr must process EcRead/Write wait only. - * Query request must be pending. - */ - if (EcIsLocked(sc)) { - csrvalue = EC_GET_CSR(sc); - if (csrvalue & EC_EVENT_SCI) - sc->ec_pendquery = 1; - if ((csrvalue & EC_FLAG_OUTPUT_BUFFER) != 0 || - (csrvalue & EC_FLAG_INPUT_BUFFER) == 0) { - sc->ec_csrvalue = csrvalue; - wakeup(&sc->ec_csrvalue); - } - } else { - /* Queue GpeQuery Handler */ - if (ACPI_FAILURE(AcpiOsQueueForExecution(OSD_PRIORITY_HIGH, - EcGpeQueryHandler,Context))) { - printf("QueryHandler Queuing Failed\n"); - } + /* Schedule the GPE query handler. */ + Status = AcpiOsQueueForExecution(OSD_PRIORITY_GPE, EcGpeQueryHandler, + Context); + if (ACPI_FAILURE(Status)) { + printf("Queuing GPE query handler failed.\n"); + Status = AcpiEnableEvent(sc->ec_gpebit, ACPI_EVENT_GPE, 0); + if (ACPI_FAILURE(Status)) + printf("EcGpeHandler: AcpiEnableEvent failed\n"); } } @@ -569,249 +591,177 @@ { struct acpi_ec_softc *sc = (struct acpi_ec_softc *)Context; ACPI_STATUS Status = AE_OK; - EC_REQUEST EcRequest; + UINT8 EcAddr, EcData; int i; ACPI_FUNCTION_TRACE_U32((char *)(uintptr_t)__func__, (UINT32)Address); if (Address > 0xFF || width % 8 != 0 || Value == NULL || Context == NULL) - return_ACPI_STATUS (AE_BAD_PARAMETER); - - switch (Function) { - case ACPI_READ: - EcRequest.Command = EC_COMMAND_READ; - EcRequest.Address = Address; - (*Value) = 0; - break; - case ACPI_WRITE: - EcRequest.Command = EC_COMMAND_WRITE; - EcRequest.Address = Address; - break; - default: - device_printf(sc->ec_dev, "invalid Address Space function %d\n", - Function); - return_ACPI_STATUS (AE_BAD_PARAMETER); - } + return_ACPI_STATUS (AE_BAD_PARAMETER); /* * Perform the transaction. */ + EcAddr = Address; for (i = 0; i < width; i += 8) { - if (Function == ACPI_READ) - EcRequest.Data = 0; - else - EcRequest.Data = (UINT8)((*Value) >> i); - Status = EcTransaction(sc, &EcRequest); + Status = EcLock(sc); if (ACPI_FAILURE(Status)) + return (Status); + + switch (Function) { + case ACPI_READ: + EcData = 0; + Status = EcRead(sc, EcAddr, &EcData); + break; + case ACPI_WRITE: + EcData = (UINT8)((*Value) >> i); + Status = EcWrite(sc, EcAddr, &EcData); break; - *Value |= (ACPI_INTEGER)EcRequest.Data << i; - if (++EcRequest.Address == 0) - return_ACPI_STATUS (AE_BAD_PARAMETER); - } - return_ACPI_STATUS (Status); -} + default: + device_printf(sc->ec_dev, "invalid EcSpaceHandler function %d\n", + Function); + Status = AE_BAD_PARAMETER; + break; + } -/* - * Wait for an event interrupt for a specific condition. - */ -static ACPI_STATUS -EcWaitEventIntr(struct acpi_ec_softc *sc, EC_EVENT Event) -{ - EC_STATUS EcStatus; - int i; + EcUnlock(sc); + if (ACPI_FAILURE(Status)) + return (Status); - ACPI_FUNCTION_TRACE_U32((char *)(uintptr_t)__func__, (UINT32)Event); - - /* XXX this should test whether interrupts are available some other way */ - if (cold || acpi_ec_event_driven) - return_ACPI_STATUS (EcWaitEvent(sc, Event)); - - if (!EcIsLocked(sc)) { - ACPI_VPRINT(sc->ec_dev, acpi_device_get_parent_softc(sc->ec_dev), - "EcWaitEventIntr called without EC lock!\n"); + *Value |= (ACPI_INTEGER)EcData << i; + if (++EcAddr == 0) + return_ACPI_STATUS (AE_BAD_PARAMETER); } - - EcStatus = EC_GET_CSR(sc); - - /* XXX waiting too long? */ - for (i = 0; i < 10; i++) { - /* - * Check EC status against the desired event. - */ - if ((Event == EC_EVENT_OUTPUT_BUFFER_FULL) && - (EcStatus & EC_FLAG_OUTPUT_BUFFER) != 0) - return_ACPI_STATUS (AE_OK); - - if ((Event == EC_EVENT_INPUT_BUFFER_EMPTY) && - (EcStatus & EC_FLAG_INPUT_BUFFER) == 0) - return_ACPI_STATUS (AE_OK); - - sc->ec_csrvalue = 0; - /* XXX sleeping with Acpi Global Lock held */ - if (tsleep(&sc->ec_csrvalue, PZERO, "EcWait", 1) != EWOULDBLOCK) { - EcStatus = sc->ec_csrvalue; - } else { - EcStatus = EC_GET_CSR(sc); - } - } - return_ACPI_STATUS (AE_ERROR); + return_ACPI_STATUS (Status); } static ACPI_STATUS EcWaitEvent(struct acpi_ec_softc *sc, EC_EVENT Event) { EC_STATUS EcStatus; - UINT32 i = 0; + ACPI_STATUS Status; + UINT32 i, period; - if (!EcIsLocked(sc)) { - ACPI_VPRINT(sc->ec_dev, acpi_device_get_parent_softc(sc->ec_dev), - "EcWaitEvent called without EC lock!\n"); - } + mtx_assert(&sc->ec_mtx, MA_OWNED); + Status = AE_NO_HARDWARE_RESPONSE; - /* - * Stall 1us: - * ---------- - * Stall for 1 microsecond before reading the status register - * for the first time. This allows the EC to set the IBF/OBF - * bit to its proper state. - * - * XXX it is not clear why we read the CSR twice. + /* + * Wait for 1 us before checking the CSR. Testing shows about + * 50% of requests complete in 1 us and 90% of them complete + * in 5 us or less. */ AcpiOsStall(1); - EcStatus = EC_GET_CSR(sc); /* - * Wait For Event: - * --------------- * Poll the EC status register to detect completion of the last - * command. Wait up to 10ms (in 10us chunks) for this to occur. + * command. Wait up to 50 ms (in chunks of sc->ec_polldelay + * microseconds for the first 1 ms, in 1 ms chunks for the remainder + * of the period) for this to occur. */ - for (i = 0; i < 1000; i++) { + for (i = 0; i < (1000 / sc->ec_polldelay) + EC_POLL_TIMEOUT; i++) { EcStatus = EC_GET_CSR(sc); - if (Event == EC_EVENT_OUTPUT_BUFFER_FULL && - (EcStatus & EC_FLAG_OUTPUT_BUFFER) != 0) - return (AE_OK); + /* Check if the user's event occurred. */ + if ((Event == EC_EVENT_OUTPUT_BUFFER_FULL && + (EcStatus & EC_FLAG_OUTPUT_BUFFER) != 0) || + (Event == EC_EVENT_INPUT_BUFFER_EMPTY && + (EcStatus & EC_FLAG_INPUT_BUFFER) == 0)) { + Status = AE_OK; + break; + } - if (Event == EC_EVENT_INPUT_BUFFER_EMPTY && - (EcStatus & EC_FLAG_INPUT_BUFFER) == 0) - return(AE_OK); - - AcpiOsStall(10); + /* For the first 1 ms, DELAY, after that, msleep. */ + if (i < 1000) + AcpiOsStall(sc->ec_polldelay); + else + msleep(&sc->ec_polldelay, &sc->ec_mtx, PZERO, "ecpoll", 1/*ms*/); } - return (AE_ERROR); -} - -static ACPI_STATUS -EcQuery(struct acpi_ec_softc *sc, UINT8 *Data) -{ - ACPI_STATUS Status; - - Status = EcLock(sc); - if (ACPI_FAILURE(Status)) - return (Status); - - EC_SET_CSR(sc, EC_COMMAND_QUERY); - Status = EcWaitEvent(sc, EC_EVENT_OUTPUT_BUFFER_FULL); - if (ACPI_SUCCESS(Status)) - *Data = EC_GET_DATA(sc); - - EcUnlock(sc); + /* Scale poll delay by the amount of time actually waited. */ + if (Status == AE_OK) { + period = i * sc->ec_polldelay; + if (period <= 5) + sc->ec_polldelay = 1; + else if (period <= 20) + sc->ec_polldelay = 5; + else if (period <= 100) + sc->ec_polldelay = 10; + else + sc->ec_polldelay = 100; + } - if (ACPI_FAILURE(Status)) { - ACPI_VPRINT(sc->ec_dev, acpi_device_get_parent_softc(sc->ec_dev), - "timeout waiting for EC to respond to EC_COMMAND_QUERY\n"); - } return (Status); } static ACPI_STATUS -EcTransaction(struct acpi_ec_softc *sc, EC_REQUEST *EcRequest) +EcCommand(struct acpi_ec_softc *sc, EC_COMMAND cmd) { ACPI_STATUS Status; + EC_EVENT Event; - Status = EcLock(sc); - if (ACPI_FAILURE(Status)) - return (Status); + mtx_assert(&sc->ec_mtx, MA_OWNED); - /* - * Perform the transaction. - */ - switch (EcRequest->Command) { + /* Decide what to wait for based on command type. */ + switch (cmd) { case EC_COMMAND_READ: - Status = EcRead(sc, EcRequest->Address, &EcRequest->Data); + case EC_COMMAND_WRITE: + case EC_COMMAND_BURST_DISABLE: + Event = EC_EVENT_INPUT_BUFFER_EMPTY; break; - case EC_COMMAND_WRITE: - Status = EcWrite(sc, EcRequest->Address, &EcRequest->Data); + case EC_COMMAND_QUERY: + case EC_COMMAND_BURST_ENABLE: >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Jul 11 02:06:17 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4A26E37B404; Fri, 11 Jul 2003 02:06:16 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E8DAA37B401 for ; Fri, 11 Jul 2003 02:06:15 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id DEF1343F85 for ; Fri, 11 Jul 2003 02:06:13 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h6B96D0U013468 for ; Fri, 11 Jul 2003 02:06:13 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h6B95SI2013434 for perforce@freebsd.org; Fri, 11 Jul 2003 02:05:28 -0700 (PDT) Date: Fri, 11 Jul 2003 02:05:28 -0700 (PDT) Message-Id: <200307110905.h6B95SI2013434@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 34341 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 09:06:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=34341 Change 34341 by marcel@marcel_nfs on 2003/07/11 02:05:13 IFC @34337 WARNING: local gcc diffs have been preserved only partially. The changes will either be reapplied or fully reverted, depending on the complexity of reapplying them. Affected files ... .. //depot/projects/ia64/bin/csh/Makefile#10 integrate .. //depot/projects/ia64/contrib/cpio/copypass.c#2 integrate .. //depot/projects/ia64/contrib/gcc/ChangeLog#10 integrate .. //depot/projects/ia64/contrib/gcc/ChangeLog.0#2 integrate .. //depot/projects/ia64/contrib/gcc/ChangeLog.1#2 integrate .. //depot/projects/ia64/contrib/gcc/ChangeLog.2#2 integrate .. //depot/projects/ia64/contrib/gcc/ChangeLog.3#2 integrate .. //depot/projects/ia64/contrib/gcc/ChangeLog.4#2 integrate .. //depot/projects/ia64/contrib/gcc/ChangeLog.5#2 integrate .. //depot/projects/ia64/contrib/gcc/ChangeLog.6#2 integrate .. //depot/projects/ia64/contrib/gcc/ChangeLog.7#1 branch .. //depot/projects/ia64/contrib/gcc/FSFChangeLog.10#2 integrate .. //depot/projects/ia64/contrib/gcc/FSFChangeLog.11#2 integrate .. //depot/projects/ia64/contrib/gcc/LANGUAGES#3 integrate .. //depot/projects/ia64/contrib/gcc/Makefile.in#10 integrate .. //depot/projects/ia64/contrib/gcc/ONEWS#3 integrate .. //depot/projects/ia64/contrib/gcc/README.Portability#2 integrate .. //depot/projects/ia64/contrib/gcc/aclocal.m4#3 integrate .. //depot/projects/ia64/contrib/gcc/alias.c#8 integrate .. //depot/projects/ia64/contrib/gcc/ansidecl.h#4 integrate .. //depot/projects/ia64/contrib/gcc/attribs.c#4 integrate .. //depot/projects/ia64/contrib/gcc/basic-block.h#5 integrate .. //depot/projects/ia64/contrib/gcc/bb-reorder.c#4 integrate .. //depot/projects/ia64/contrib/gcc/bitmap.c#4 integrate .. //depot/projects/ia64/contrib/gcc/bitmap.h#3 integrate .. //depot/projects/ia64/contrib/gcc/builtin-attrs.def#2 integrate .. //depot/projects/ia64/contrib/gcc/builtin-types.def#3 integrate .. //depot/projects/ia64/contrib/gcc/builtins.c#7 integrate .. //depot/projects/ia64/contrib/gcc/builtins.def#2 integrate .. //depot/projects/ia64/contrib/gcc/c-aux-info.c#3 integrate .. //depot/projects/ia64/contrib/gcc/c-common.c#8 integrate .. //depot/projects/ia64/contrib/gcc/c-common.def#3 integrate .. //depot/projects/ia64/contrib/gcc/c-common.h#6 integrate .. //depot/projects/ia64/contrib/gcc/c-config-lang.in#1 branch .. //depot/projects/ia64/contrib/gcc/c-convert.c#3 integrate .. //depot/projects/ia64/contrib/gcc/c-decl.c#11 integrate .. //depot/projects/ia64/contrib/gcc/c-dump.c#1 branch .. //depot/projects/ia64/contrib/gcc/c-errors.c#2 integrate .. //depot/projects/ia64/contrib/gcc/c-format.c#8 integrate .. //depot/projects/ia64/contrib/gcc/c-lang.c#5 integrate .. //depot/projects/ia64/contrib/gcc/c-lex.c#6 integrate .. //depot/projects/ia64/contrib/gcc/c-objc-common.c#5 integrate .. //depot/projects/ia64/contrib/gcc/c-opts.c#1 branch .. //depot/projects/ia64/contrib/gcc/c-parse.in#7 integrate .. //depot/projects/ia64/contrib/gcc/c-pragma.c#5 integrate .. //depot/projects/ia64/contrib/gcc/c-pragma.h#4 integrate .. //depot/projects/ia64/contrib/gcc/c-pretty-print.c#1 branch .. //depot/projects/ia64/contrib/gcc/c-pretty-print.h#1 branch .. //depot/projects/ia64/contrib/gcc/c-semantics.c#4 integrate .. //depot/projects/ia64/contrib/gcc/c-tree.h#7 integrate .. //depot/projects/ia64/contrib/gcc/c-typeck.c#8 integrate .. //depot/projects/ia64/contrib/gcc/caller-save.c#3 integrate .. //depot/projects/ia64/contrib/gcc/calls.c#9 integrate .. //depot/projects/ia64/contrib/gcc/cfg.c#3 integrate .. //depot/projects/ia64/contrib/gcc/cfganal.c#5 integrate .. //depot/projects/ia64/contrib/gcc/cfgbuild.c#3 integrate .. //depot/projects/ia64/contrib/gcc/cfgcleanup.c#6 integrate .. //depot/projects/ia64/contrib/gcc/cfglayout.c#2 integrate .. //depot/projects/ia64/contrib/gcc/cfglayout.h#2 integrate .. //depot/projects/ia64/contrib/gcc/cfgloop.c#2 integrate .. //depot/projects/ia64/contrib/gcc/cfgrtl.c#5 integrate .. //depot/projects/ia64/contrib/gcc/collect2.c#6 integrate .. //depot/projects/ia64/contrib/gcc/collect2.h#3 integrate .. //depot/projects/ia64/contrib/gcc/combine.c#7 integrate .. //depot/projects/ia64/contrib/gcc/config.gcc#6 integrate .. //depot/projects/ia64/contrib/gcc/config.in#5 integrate .. //depot/projects/ia64/contrib/gcc/config/alpha/alpha-interix.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/alpha/alpha-protos.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/alpha/alpha.c#7 integrate .. //depot/projects/ia64/contrib/gcc/config/alpha/alpha.h#5 integrate .. //depot/projects/ia64/contrib/gcc/config/alpha/alpha.md#5 integrate .. //depot/projects/ia64/contrib/gcc/config/alpha/elf.h#6 integrate .. //depot/projects/ia64/contrib/gcc/config/alpha/ev4.md#1 branch .. //depot/projects/ia64/contrib/gcc/config/alpha/ev5.md#1 branch .. //depot/projects/ia64/contrib/gcc/config/alpha/ev6.md#1 branch .. //depot/projects/ia64/contrib/gcc/config/alpha/freebsd.h#6 integrate .. //depot/projects/ia64/contrib/gcc/config/alpha/gnu.h#1 branch .. //depot/projects/ia64/contrib/gcc/config/alpha/linux-elf.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/alpha/linux.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/alpha/netbsd.h#5 integrate .. //depot/projects/ia64/contrib/gcc/config/alpha/openbsd.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/alpha/osf.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/alpha/osf5.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/alpha/t-crtfm#2 integrate .. //depot/projects/ia64/contrib/gcc/config/alpha/unicosmk.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/alpha/vms-cc.c#2 integrate .. //depot/projects/ia64/contrib/gcc/config/alpha/vms-crt0-64.c#2 integrate .. //depot/projects/ia64/contrib/gcc/config/alpha/vms-crt0.c#2 integrate .. //depot/projects/ia64/contrib/gcc/config/alpha/vms-ld.c#2 integrate .. //depot/projects/ia64/contrib/gcc/config/alpha/vms-psxcrt0-64.c#2 integrate .. //depot/projects/ia64/contrib/gcc/config/alpha/vms-psxcrt0.c#2 integrate .. //depot/projects/ia64/contrib/gcc/config/alpha/vms.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/alpha/vxworks.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/arm/README-interworking#2 integrate .. //depot/projects/ia64/contrib/gcc/config/arm/aof.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/arm/aout.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/arm/arm-modes.def#1 branch .. //depot/projects/ia64/contrib/gcc/config/arm/arm-protos.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/arm/arm.c#5 integrate .. //depot/projects/ia64/contrib/gcc/config/arm/arm.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/arm/arm.md#5 integrate .. //depot/projects/ia64/contrib/gcc/config/arm/coff.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/arm/conix-elf.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/arm/crti.asm#2 integrate .. //depot/projects/ia64/contrib/gcc/config/arm/crtn.asm#2 integrate .. //depot/projects/ia64/contrib/gcc/config/arm/elf.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/arm/freebsd.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/arm/linux-elf.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/arm/linux-gas.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/arm/netbsd-elf.h#1 branch .. //depot/projects/ia64/contrib/gcc/config/arm/netbsd.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/arm/pe.c#2 integrate .. //depot/projects/ia64/contrib/gcc/config/arm/pe.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/arm/rtems-elf.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/arm/semi.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/arm/semiaof.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/arm/t-arm-elf#2 integrate .. //depot/projects/ia64/contrib/gcc/config/arm/t-pe#2 integrate .. //depot/projects/ia64/contrib/gcc/config/arm/unknown-elf-oabi.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/arm/unknown-elf.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/arm/vxarm.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/arm/xscale-coff.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/arm/xscale-elf.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/darwin-c.c#2 integrate .. //depot/projects/ia64/contrib/gcc/config/darwin-crt2.c#1 branch .. //depot/projects/ia64/contrib/gcc/config/darwin-protos.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/darwin.c#2 integrate .. //depot/projects/ia64/contrib/gcc/config/darwin.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/dbx.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/dbxcoff.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/dbxelf.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/elfos.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/fp-bit.c#3 integrate .. //depot/projects/ia64/contrib/gcc/config/fp-bit.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/freebsd-spec.h#7 integrate .. //depot/projects/ia64/contrib/gcc/config/freebsd.h#5 integrate .. //depot/projects/ia64/contrib/gcc/config/frv/cmovd.c#1 branch .. //depot/projects/ia64/contrib/gcc/config/frv/cmovh.c#1 branch .. //depot/projects/ia64/contrib/gcc/config/frv/cmovw.c#1 branch .. //depot/projects/ia64/contrib/gcc/config/frv/frv-abi.h#1 branch .. //depot/projects/ia64/contrib/gcc/config/frv/frv-asm.h#1 branch .. //depot/projects/ia64/contrib/gcc/config/frv/frv-modes.def#1 branch .. //depot/projects/ia64/contrib/gcc/config/frv/frv-protos.h#1 branch .. //depot/projects/ia64/contrib/gcc/config/frv/frv.c#1 branch .. //depot/projects/ia64/contrib/gcc/config/frv/frv.h#1 branch .. //depot/projects/ia64/contrib/gcc/config/frv/frv.md#1 branch .. //depot/projects/ia64/contrib/gcc/config/frv/frvbegin.c#1 branch .. //depot/projects/ia64/contrib/gcc/config/frv/frvend.c#1 branch .. //depot/projects/ia64/contrib/gcc/config/frv/lib1funcs.asm#1 branch .. //depot/projects/ia64/contrib/gcc/config/frv/modi.c#1 branch .. //depot/projects/ia64/contrib/gcc/config/frv/t-frv#1 branch .. //depot/projects/ia64/contrib/gcc/config/frv/uitod.c#1 branch .. //depot/projects/ia64/contrib/gcc/config/frv/uitof.c#1 branch .. //depot/projects/ia64/contrib/gcc/config/frv/ulltod.c#1 branch .. //depot/projects/ia64/contrib/gcc/config/frv/ulltof.c#1 branch .. //depot/projects/ia64/contrib/gcc/config/frv/umodi.c#1 branch .. //depot/projects/ia64/contrib/gcc/config/gnu.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/gofast.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/athlon.md#1 branch .. //depot/projects/ia64/contrib/gcc/config/i386/att.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/beos-elf.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/biarch64.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/bsd.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/crtdll.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/cygwin.h#5 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/darwin.h#1 branch .. //depot/projects/ia64/contrib/gcc/config/i386/djgpp.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/freebsd-aout.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/freebsd.h#17 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/freebsd64.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/gas.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/gnu.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/gstabs.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/gthr-win32.c#1 branch .. //depot/projects/ia64/contrib/gcc/config/i386/i386-aout.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/i386-coff.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/i386-interix.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/i386-interix3.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/i386-modes.def#1 branch .. //depot/projects/ia64/contrib/gcc/config/i386/i386-protos.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/i386.c#10 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/i386.h#11 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/i386.md#7 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/i386elf.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/k6.md#1 branch .. //depot/projects/ia64/contrib/gcc/config/i386/linux-aout.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/linux.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/linux64.h#6 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/lynx-ng.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/lynx.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/mach.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/mingw32.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/mmintrin.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/moss.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/netbsd-elf.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/netbsd.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/netbsd64.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/openbsd.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/pentium.md#1 branch .. //depot/projects/ia64/contrib/gcc/config/i386/ppro.md#1 branch .. //depot/projects/ia64/contrib/gcc/config/i386/ptx4-i.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/rtemself.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/sco5.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/sol2.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/svr3dbx.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/svr3gas.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/sysv3.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/sysv4-cpp.h#1 branch .. //depot/projects/ia64/contrib/gcc/config/i386/sysv4.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/sysv5.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/t-cygwin#3 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/t-interix#4 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/t-linux64#3 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/t-mingw32#2 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/t-sco5gas#3 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/unix.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/uwin.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/vsta.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/vxi386.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/win32.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/winnt.c#4 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/x86-64.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/xm-vsta.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/i386/xmmintrin.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/ia64/aix.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/ia64/crtbegin.asm#2 integrate .. //depot/projects/ia64/contrib/gcc/config/ia64/crtend.asm#2 integrate .. //depot/projects/ia64/contrib/gcc/config/ia64/elf.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/ia64/freebsd.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/ia64/hpux.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/ia64/hpux_longdouble.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/ia64/ia64-c.c#1 branch .. //depot/projects/ia64/contrib/gcc/config/ia64/ia64-modes.def#1 branch .. //depot/projects/ia64/contrib/gcc/config/ia64/ia64-protos.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/ia64/ia64.c#3 integrate .. //depot/projects/ia64/contrib/gcc/config/ia64/ia64.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/ia64/ia64.md#3 integrate .. //depot/projects/ia64/contrib/gcc/config/ia64/linux.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/ia64/quadlib.c#2 integrate .. //depot/projects/ia64/contrib/gcc/config/ia64/sysv4.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/ia64/t-aix#2 integrate .. //depot/projects/ia64/contrib/gcc/config/ia64/t-hpux#2 integrate .. //depot/projects/ia64/contrib/gcc/config/ia64/t-ia64#2 integrate .. //depot/projects/ia64/contrib/gcc/config/ia64/unwind-ia64.c#3 integrate .. //depot/projects/ia64/contrib/gcc/config/interix.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/libgloss.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/linux-aout.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/linux.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/lynx-ng.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/lynx.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/netbsd-aout.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/netbsd-elf.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/netbsd.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/openbsd-oldgas.h#1 branch .. //depot/projects/ia64/contrib/gcc/config/openbsd.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/psos.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/ptx4.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/aix.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/aix31.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/aix41.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/aix43.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/aix51.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/aix52.h#1 branch .. //depot/projects/ia64/contrib/gcc/config/rs6000/altivec.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/altivec.md#1 branch .. //depot/projects/ia64/contrib/gcc/config/rs6000/beos.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/darwin-tramp.asm#2 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/darwin.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/eabi.asm#3 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/eabi.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/eabiaix.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/eabisim.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/eabispe.h#1 branch .. //depot/projects/ia64/contrib/gcc/config/rs6000/freebsd.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/gnu.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/linux.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/linux64.h#5 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/lynx.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/mach.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/netbsd.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/ppc-asm.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/ppc64-fp.c#1 branch .. //depot/projects/ia64/contrib/gcc/config/rs6000/rs6000-c.c#1 branch .. //depot/projects/ia64/contrib/gcc/config/rs6000/rs6000-modes.def#1 branch .. //depot/projects/ia64/contrib/gcc/config/rs6000/rs6000-protos.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/rs6000.c#7 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/rs6000.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/rs6000.md#7 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/rtems.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/spe.h#1 branch .. //depot/projects/ia64/contrib/gcc/config/rs6000/spe.md#1 branch .. //depot/projects/ia64/contrib/gcc/config/rs6000/sysv4.h#8 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/sysv4le.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/t-aix43#4 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/t-aix52#1 branch .. //depot/projects/ia64/contrib/gcc/config/rs6000/t-darwin#2 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/t-linux64#2 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/t-netbsd#1 branch .. //depot/projects/ia64/contrib/gcc/config/rs6000/t-ppccomm#3 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/t-ppcendian#1 branch .. //depot/projects/ia64/contrib/gcc/config/rs6000/t-rs6000-c-rule#1 branch .. //depot/projects/ia64/contrib/gcc/config/rs6000/vxppc.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/rs6000/windiss.h#1 branch .. //depot/projects/ia64/contrib/gcc/config/rs6000/xcoff.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/s390/fixdfdi.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/s390/libgcc-glibc.ver#2 integrate .. //depot/projects/ia64/contrib/gcc/config/s390/linux.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/s390/s390-modes.def#1 branch .. //depot/projects/ia64/contrib/gcc/config/s390/s390-protos.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/s390/s390.c#2 integrate .. //depot/projects/ia64/contrib/gcc/config/s390/s390.h#2 integrate .. //depot/projects/ia64/contrib/gcc/config/s390/s390.md#2 integrate .. //depot/projects/ia64/contrib/gcc/config/s390/t-crtstuff#1 branch .. //depot/projects/ia64/contrib/gcc/config/s390/t-linux64#2 integrate .. //depot/projects/ia64/contrib/gcc/config/sol2.h#1 branch .. //depot/projects/ia64/contrib/gcc/config/sparc/aout.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/sparc/cypress.md#1 branch .. //depot/projects/ia64/contrib/gcc/config/sparc/freebsd.h#7 integrate .. //depot/projects/ia64/contrib/gcc/config/sparc/gmon-sol2.c#4 integrate .. //depot/projects/ia64/contrib/gcc/config/sparc/hypersparc.md#1 branch .. //depot/projects/ia64/contrib/gcc/config/sparc/lb1spc.asm#3 integrate .. //depot/projects/ia64/contrib/gcc/config/sparc/lb1spl.asm#3 integrate .. //depot/projects/ia64/contrib/gcc/config/sparc/linux-aout.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/sparc/linux.h#5 integrate .. //depot/projects/ia64/contrib/gcc/config/sparc/linux64.h#6 integrate .. //depot/projects/ia64/contrib/gcc/config/sparc/litecoff.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/sparc/liteelf.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/sparc/lynx.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/sparc/netbsd-elf.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/sparc/netbsd.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/sparc/openbsd.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/sparc/pbd.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/sparc/sol2-bi.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/sparc/sol2.h#5 integrate .. //depot/projects/ia64/contrib/gcc/config/sparc/sol26-sld.h#1 branch .. //depot/projects/ia64/contrib/gcc/config/sparc/sp64-elf.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/sparc/sp86x-elf.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/sparc/sparc-modes.def#1 branch .. //depot/projects/ia64/contrib/gcc/config/sparc/sparc-protos.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/sparc/sparc.c#7 integrate .. //depot/projects/ia64/contrib/gcc/config/sparc/sparc.h#5 integrate .. //depot/projects/ia64/contrib/gcc/config/sparc/sparc.md#6 integrate .. //depot/projects/ia64/contrib/gcc/config/sparc/sparclet.md#1 branch .. //depot/projects/ia64/contrib/gcc/config/sparc/sunos4.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/sparc/supersparc.md#1 branch .. //depot/projects/ia64/contrib/gcc/config/sparc/sysv4.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/sparc/ultra1_2.md#1 branch .. //depot/projects/ia64/contrib/gcc/config/sparc/ultra3.md#1 branch .. //depot/projects/ia64/contrib/gcc/config/sparc/vxsim.h#4 integrate .. //depot/projects/ia64/contrib/gcc/config/sparc/vxsparc64.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/svr3.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/svr4.h#3 integrate .. //depot/projects/ia64/contrib/gcc/config/t-darwin#1 branch .. //depot/projects/ia64/contrib/gcc/config/t-libc-ok#3 integrate .. //depot/projects/ia64/contrib/gcc/config/t-linux#2 integrate .. //depot/projects/ia64/contrib/gcc/config/t-linux-gnulibc1#2 integrate .. //depot/projects/ia64/contrib/gcc/config/t-netbsd#3 integrate .. //depot/projects/ia64/contrib/gcc/configure#9 integrate .. //depot/projects/ia64/contrib/gcc/configure.in#9 integrate .. //depot/projects/ia64/contrib/gcc/conflict.c#2 integrate .. //depot/projects/ia64/contrib/gcc/convert.c#4 integrate .. //depot/projects/ia64/contrib/gcc/cp-demangle.c#3 integrate .. //depot/projects/ia64/contrib/gcc/cp/ChangeLog#10 integrate .. //depot/projects/ia64/contrib/gcc/cp/ChangeLog.1#2 integrate .. //depot/projects/ia64/contrib/gcc/cp/ChangeLog.2#2 integrate .. //depot/projects/ia64/contrib/gcc/cp/Make-lang.in#6 integrate .. //depot/projects/ia64/contrib/gcc/cp/NEWS#5 integrate .. //depot/projects/ia64/contrib/gcc/cp/call.c#5 integrate .. //depot/projects/ia64/contrib/gcc/cp/cfns.gperf#2 integrate .. //depot/projects/ia64/contrib/gcc/cp/class.c#6 integrate .. //depot/projects/ia64/contrib/gcc/cp/config-lang.in#3 integrate .. //depot/projects/ia64/contrib/gcc/cp/cp-lang.c#5 integrate .. //depot/projects/ia64/contrib/gcc/cp/cp-tree.def#4 integrate .. //depot/projects/ia64/contrib/gcc/cp/cp-tree.h#8 integrate .. //depot/projects/ia64/contrib/gcc/cp/cvt.c#7 integrate .. //depot/projects/ia64/contrib/gcc/cp/decl.c#10 integrate .. //depot/projects/ia64/contrib/gcc/cp/decl.h#3 integrate .. //depot/projects/ia64/contrib/gcc/cp/decl2.c#11 integrate .. //depot/projects/ia64/contrib/gcc/cp/dump.c#3 integrate .. //depot/projects/ia64/contrib/gcc/cp/error.c#6 integrate .. //depot/projects/ia64/contrib/gcc/cp/except.c#5 integrate .. //depot/projects/ia64/contrib/gcc/cp/expr.c#3 integrate .. //depot/projects/ia64/contrib/gcc/cp/friend.c#4 integrate .. //depot/projects/ia64/contrib/gcc/cp/g++spec.c#4 integrate .. //depot/projects/ia64/contrib/gcc/cp/init.c#9 integrate .. //depot/projects/ia64/contrib/gcc/cp/lang-options.h#3 integrate .. //depot/projects/ia64/contrib/gcc/cp/lang-specs.h#6 integrate .. //depot/projects/ia64/contrib/gcc/cp/lex.c#6 integrate .. //depot/projects/ia64/contrib/gcc/cp/lex.h#3 integrate .. //depot/projects/ia64/contrib/gcc/cp/mangle.c#5 integrate .. //depot/projects/ia64/contrib/gcc/cp/method.c#6 integrate .. //depot/projects/ia64/contrib/gcc/cp/operators.def#4 integrate .. //depot/projects/ia64/contrib/gcc/cp/optimize.c#2 integrate .. //depot/projects/ia64/contrib/gcc/cp/parse.y#7 integrate .. //depot/projects/ia64/contrib/gcc/cp/pt.c#8 integrate .. //depot/projects/ia64/contrib/gcc/cp/ptree.c#3 integrate .. //depot/projects/ia64/contrib/gcc/cp/repo.c#3 integrate .. //depot/projects/ia64/contrib/gcc/cp/rtti.c#6 integrate .. //depot/projects/ia64/contrib/gcc/cp/search.c#6 integrate .. //depot/projects/ia64/contrib/gcc/cp/semantics.c#6 integrate .. //depot/projects/ia64/contrib/gcc/cp/spew.c#5 integrate .. //depot/projects/ia64/contrib/gcc/cp/tree.c#7 integrate .. //depot/projects/ia64/contrib/gcc/cp/typeck.c#7 integrate .. //depot/projects/ia64/contrib/gcc/cp/typeck2.c#6 integrate .. //depot/projects/ia64/contrib/gcc/cplus-dem.c#4 integrate .. //depot/projects/ia64/contrib/gcc/cppdefault.h#2 integrate .. //depot/projects/ia64/contrib/gcc/cpperror.c#3 integrate .. //depot/projects/ia64/contrib/gcc/cppexp.c#4 integrate .. //depot/projects/ia64/contrib/gcc/cppfiles.c#4 integrate .. //depot/projects/ia64/contrib/gcc/cpphash.c#4 integrate .. //depot/projects/ia64/contrib/gcc/cpphash.h#4 integrate .. //depot/projects/ia64/contrib/gcc/cppinit.c#8 integrate .. //depot/projects/ia64/contrib/gcc/cpplex.c#3 integrate .. //depot/projects/ia64/contrib/gcc/cpplib.c#7 integrate .. //depot/projects/ia64/contrib/gcc/cpplib.h#5 integrate .. //depot/projects/ia64/contrib/gcc/cppmacro.c#5 integrate .. //depot/projects/ia64/contrib/gcc/cppmain.c#4 integrate .. //depot/projects/ia64/contrib/gcc/cppspec.c#3 integrate .. //depot/projects/ia64/contrib/gcc/cpptrad.c#1 branch .. //depot/projects/ia64/contrib/gcc/crtstuff.c#4 integrate .. //depot/projects/ia64/contrib/gcc/cse.c#6 integrate .. //depot/projects/ia64/contrib/gcc/cselib.c#4 integrate .. //depot/projects/ia64/contrib/gcc/cselib.h#2 integrate .. //depot/projects/ia64/contrib/gcc/dbxout.c#7 integrate .. //depot/projects/ia64/contrib/gcc/debug.c#2 integrate .. //depot/projects/ia64/contrib/gcc/debug.h#2 integrate .. //depot/projects/ia64/contrib/gcc/defaults.h#5 integrate .. //depot/projects/ia64/contrib/gcc/demangle.h#4 integrate .. //depot/projects/ia64/contrib/gcc/df.c#3 integrate .. //depot/projects/ia64/contrib/gcc/df.h#2 integrate .. //depot/projects/ia64/contrib/gcc/diagnostic.c#2 integrate .. //depot/projects/ia64/contrib/gcc/diagnostic.def#2 integrate .. //depot/projects/ia64/contrib/gcc/diagnostic.h#2 integrate .. //depot/projects/ia64/contrib/gcc/doc/bugreport.texi#2 integrate .. //depot/projects/ia64/contrib/gcc/doc/c-tree.texi#4 integrate .. //depot/projects/ia64/contrib/gcc/doc/collect2.texi#2 integrate .. //depot/projects/ia64/contrib/gcc/doc/compat.texi#3 integrate .. //depot/projects/ia64/contrib/gcc/doc/contrib.texi#5 integrate .. //depot/projects/ia64/contrib/gcc/doc/cpp.texi#5 integrate .. //depot/projects/ia64/contrib/gcc/doc/cppenv.texi#3 integrate .. //depot/projects/ia64/contrib/gcc/doc/cppopts.texi#3 integrate .. //depot/projects/ia64/contrib/gcc/doc/extend.texi#5 integrate .. //depot/projects/ia64/contrib/gcc/doc/frontends.texi#3 integrate .. //depot/projects/ia64/contrib/gcc/doc/gcc.texi#5 integrate .. //depot/projects/ia64/contrib/gcc/doc/gccint.texi#2 integrate .. //depot/projects/ia64/contrib/gcc/doc/gcov.texi#3 integrate .. //depot/projects/ia64/contrib/gcc/doc/gty.texi#1 branch .. //depot/projects/ia64/contrib/gcc/doc/headerdirs.texi#2 integrate .. //depot/projects/ia64/contrib/gcc/doc/include/fdl.texi#2 integrate .. //depot/projects/ia64/contrib/gcc/doc/include/gcc-common.texi#4 integrate .. //depot/projects/ia64/contrib/gcc/doc/include/gpl.texi#2 integrate .. //depot/projects/ia64/contrib/gcc/doc/include/texinfo.tex#2 integrate .. //depot/projects/ia64/contrib/gcc/doc/interface.texi#2 integrate .. //depot/projects/ia64/contrib/gcc/doc/invoke.texi#8 integrate .. //depot/projects/ia64/contrib/gcc/doc/makefile.texi#3 integrate .. //depot/projects/ia64/contrib/gcc/doc/md.texi#4 integrate .. //depot/projects/ia64/contrib/gcc/doc/objc.texi#2 integrate .. //depot/projects/ia64/contrib/gcc/doc/passes.texi#4 integrate .. //depot/projects/ia64/contrib/gcc/doc/rtl.texi#4 integrate .. //depot/projects/ia64/contrib/gcc/doc/service.texi#2 integrate .. //depot/projects/ia64/contrib/gcc/doc/sourcebuild.texi#4 integrate .. //depot/projects/ia64/contrib/gcc/doc/standards.texi#4 integrate .. //depot/projects/ia64/contrib/gcc/doc/tm.texi#6 integrate .. //depot/projects/ia64/contrib/gcc/doc/trouble.texi#3 integrate .. //depot/projects/ia64/contrib/gcc/doloop.c#4 integrate .. //depot/projects/ia64/contrib/gcc/dominance.c#2 integrate .. //depot/projects/ia64/contrib/gcc/doschk.c#2 integrate .. //depot/projects/ia64/contrib/gcc/dummy-conditions.c#1 branch .. //depot/projects/ia64/contrib/gcc/dwarf2.h#5 integrate .. //depot/projects/ia64/contrib/gcc/dwarf2asm.c#2 integrate .. //depot/projects/ia64/contrib/gcc/dwarf2asm.h#2 integrate .. //depot/projects/ia64/contrib/gcc/dwarf2out.c#6 integrate .. //depot/projects/ia64/contrib/gcc/dwarf2out.h#3 integrate .. //depot/projects/ia64/contrib/gcc/dwarfout.c#5 integrate .. //depot/projects/ia64/contrib/gcc/emit-rtl.c#10 integrate .. //depot/projects/ia64/contrib/gcc/errors.h#2 integrate .. //depot/projects/ia64/contrib/gcc/et-forest.c#1 branch .. //depot/projects/ia64/contrib/gcc/et-forest.h#1 branch .. //depot/projects/ia64/contrib/gcc/except.c#5 integrate .. //depot/projects/ia64/contrib/gcc/except.h#4 integrate .. //depot/projects/ia64/contrib/gcc/explow.c#5 integrate .. //depot/projects/ia64/contrib/gcc/expmed.c#7 integrate .. //depot/projects/ia64/contrib/gcc/expr.c#9 integrate .. //depot/projects/ia64/contrib/gcc/expr.h#8 integrate .. //depot/projects/ia64/contrib/gcc/f/ChangeLog#9 integrate .. //depot/projects/ia64/contrib/gcc/f/ChangeLog.0#2 integrate .. //depot/projects/ia64/contrib/gcc/f/Make-lang.in#5 integrate .. //depot/projects/ia64/contrib/gcc/f/bad.c#3 integrate .. //depot/projects/ia64/contrib/gcc/f/bit.c#3 integrate .. //depot/projects/ia64/contrib/gcc/f/bld.c#3 integrate .. //depot/projects/ia64/contrib/gcc/f/bugs.texi#5 integrate .. //depot/projects/ia64/contrib/gcc/f/com.c#5 integrate .. //depot/projects/ia64/contrib/gcc/f/com.h#3 integrate .. //depot/projects/ia64/contrib/gcc/f/config-lang.in#3 integrate .. //depot/projects/ia64/contrib/gcc/f/data.c#3 integrate .. //depot/projects/ia64/contrib/gcc/f/expr.c#4 integrate .. //depot/projects/ia64/contrib/gcc/f/ffe.texi#4 integrate .. //depot/projects/ia64/contrib/gcc/f/g77.texi#4 integrate .. //depot/projects/ia64/contrib/gcc/f/g77spec.c#4 integrate .. //depot/projects/ia64/contrib/gcc/f/intdoc.in#3 integrate .. //depot/projects/ia64/contrib/gcc/f/intdoc.texi#4 integrate .. //depot/projects/ia64/contrib/gcc/f/invoke.texi#4 integrate .. //depot/projects/ia64/contrib/gcc/f/lang-specs.h#5 integrate .. //depot/projects/ia64/contrib/gcc/f/lex.c#4 integrate .. //depot/projects/ia64/contrib/gcc/f/news.texi#6 integrate .. //depot/projects/ia64/contrib/gcc/f/parse.c#3 integrate .. //depot/projects/ia64/contrib/gcc/f/root.texi#6 integrate .. //depot/projects/ia64/contrib/gcc/f/stc.c#3 integrate .. //depot/projects/ia64/contrib/gcc/f/std.c#3 integrate .. //depot/projects/ia64/contrib/gcc/f/ste.c#4 integrate .. //depot/projects/ia64/contrib/gcc/f/target.c#5 integrate .. //depot/projects/ia64/contrib/gcc/f/target.h#5 integrate .. //depot/projects/ia64/contrib/gcc/f/top.c#3 integrate .. //depot/projects/ia64/contrib/gcc/f/where.c#3 integrate .. //depot/projects/ia64/contrib/gcc/f/where.h#3 integrate .. //depot/projects/ia64/contrib/gcc/fibheap.c#2 integrate .. //depot/projects/ia64/contrib/gcc/fibheap.h#2 integrate .. //depot/projects/ia64/contrib/gcc/final.c#7 integrate .. //depot/projects/ia64/contrib/gcc/fix-header.c#3 integrate .. //depot/projects/ia64/contrib/gcc/fixproto#3 integrate .. //depot/projects/ia64/contrib/gcc/flags.h#6 integrate .. //depot/projects/ia64/contrib/gcc/flow.c#7 integrate .. //depot/projects/ia64/contrib/gcc/fold-const.c#8 integrate .. //depot/projects/ia64/contrib/gcc/function.c#9 integrate .. //depot/projects/ia64/contrib/gcc/function.h#4 integrate .. //depot/projects/ia64/contrib/gcc/gbl-ctors.h#3 integrate .. //depot/projects/ia64/contrib/gcc/gcc.c#14 integrate .. //depot/projects/ia64/contrib/gcc/gcc.h#2 integrate .. //depot/projects/ia64/contrib/gcc/gccbug.in#2 integrate .. //depot/projects/ia64/contrib/gcc/gccspec.c#3 integrate .. //depot/projects/ia64/contrib/gcc/gcov-io.h#3 integrate .. //depot/projects/ia64/contrib/gcc/gcov.c#3 integrate .. //depot/projects/ia64/contrib/gcc/gcse.c#4 integrate .. //depot/projects/ia64/contrib/gcc/gdbinit.in#2 integrate .. //depot/projects/ia64/contrib/gcc/genattr.c#3 integrate .. //depot/projects/ia64/contrib/gcc/genattrtab.c#4 integrate .. //depot/projects/ia64/contrib/gcc/genattrtab.h#1 branch .. //depot/projects/ia64/contrib/gcc/genautomata.c#1 branch .. //depot/projects/ia64/contrib/gcc/gencodes.c#3 integrate .. //depot/projects/ia64/contrib/gcc/genconditions.c#1 branch .. //depot/projects/ia64/contrib/gcc/genconfig.c#3 integrate .. //depot/projects/ia64/contrib/gcc/genemit.c#4 integrate .. //depot/projects/ia64/contrib/gcc/genflags.c#4 integrate .. //depot/projects/ia64/contrib/gcc/gengenrtl.c#3 integrate .. //depot/projects/ia64/contrib/gcc/gengtype-lex.l#1 branch .. //depot/projects/ia64/contrib/gcc/gengtype-yacc.y#1 branch .. //depot/projects/ia64/contrib/gcc/gengtype.c#1 branch .. //depot/projects/ia64/contrib/gcc/gengtype.h#1 branch .. //depot/projects/ia64/contrib/gcc/genopinit.c#3 integrate .. //depot/projects/ia64/contrib/gcc/genpreds.c#2 integrate .. //depot/projects/ia64/contrib/gcc/genrecog.c#4 integrate .. //depot/projects/ia64/contrib/gcc/gensupport.c#2 integrate .. //depot/projects/ia64/contrib/gcc/gensupport.h#2 integrate .. //depot/projects/ia64/contrib/gcc/getopt.c#4 integrate .. //depot/projects/ia64/contrib/gcc/getopt.h#5 integrate .. //depot/projects/ia64/contrib/gcc/getruntime.c#1 branch .. //depot/projects/ia64/contrib/gcc/ggc-common.c#3 integrate .. //depot/projects/ia64/contrib/gcc/ggc-none.c#2 integrate .. //depot/projects/ia64/contrib/gcc/ggc-page.c#2 integrate .. //depot/projects/ia64/contrib/gcc/ggc-simple.c#2 integrate .. //depot/projects/ia64/contrib/gcc/ggc.h#2 integrate .. //depot/projects/ia64/contrib/gcc/ginclude/float.h#1 branch .. //depot/projects/ia64/contrib/gcc/ginclude/stdarg.h#4 integrate .. //depot/projects/ia64/contrib/gcc/ginclude/varargs.h#4 integrate .. //depot/projects/ia64/contrib/gcc/glimits.h#3 integrate .. //depot/projects/ia64/contrib/gcc/global.c#4 integrate .. //depot/projects/ia64/contrib/gcc/graph.c#3 integrate .. //depot/projects/ia64/contrib/gcc/graph.h#2 integrate .. //depot/projects/ia64/contrib/gcc/gthr-dce.h#4 integrate .. //depot/projects/ia64/contrib/gcc/gthr-posix.h#4 integrate .. //depot/projects/ia64/contrib/gcc/gthr-rtems.h#4 integrate .. //depot/projects/ia64/contrib/gcc/gthr-single.h#3 integrate .. //depot/projects/ia64/contrib/gcc/gthr-solaris.h#4 integrate .. //depot/projects/ia64/contrib/gcc/gthr-vxworks.h#3 integrate .. //depot/projects/ia64/contrib/gcc/gthr-win32.h#2 integrate .. //depot/projects/ia64/contrib/gcc/gthr.h#3 integrate .. //depot/projects/ia64/contrib/gcc/haifa-sched.c#5 integrate .. //depot/projects/ia64/contrib/gcc/hard-reg-set.h#3 integrate .. //depot/projects/ia64/contrib/gcc/hashtab.c#3 integrate .. //depot/projects/ia64/contrib/gcc/hashtab.h#2 integrate .. //depot/projects/ia64/contrib/gcc/hashtable.c#2 integrate .. //depot/projects/ia64/contrib/gcc/hashtable.h#2 integrate .. //depot/projects/ia64/contrib/gcc/hex.c#2 integrate .. //depot/projects/ia64/contrib/gcc/hooks.c#4 integrate .. //depot/projects/ia64/contrib/gcc/hooks.h#4 integrate .. //depot/projects/ia64/contrib/gcc/hwint.h#4 integrate .. //depot/projects/ia64/contrib/gcc/ifcvt.c#6 integrate .. //depot/projects/ia64/contrib/gcc/input.h#3 integrate .. //depot/projects/ia64/contrib/gcc/insn-addr.h#2 integrate .. //depot/projects/ia64/contrib/gcc/integrate.c#5 integrate .. //depot/projects/ia64/contrib/gcc/integrate.h#3 integrate .. //depot/projects/ia64/contrib/gcc/jump.c#7 integrate .. //depot/projects/ia64/contrib/gcc/langhooks-def.h#5 integrate .. //depot/projects/ia64/contrib/gcc/langhooks.c#4 integrate .. //depot/projects/ia64/contrib/gcc/langhooks.h#5 integrate .. //depot/projects/ia64/contrib/gcc/lbasename.c#2 integrate .. //depot/projects/ia64/contrib/gcc/lcm.c#3 integrate .. //depot/projects/ia64/contrib/gcc/libfuncs.h#3 integrate .. //depot/projects/ia64/contrib/gcc/libgcc-std.ver#2 integrate .. //depot/projects/ia64/contrib/gcc/libgcc2.c#6 integrate .. //depot/projects/ia64/contrib/gcc/libgcc2.h#2 integrate .. //depot/projects/ia64/contrib/gcc/libiberty.h#4 integrate .. //depot/projects/ia64/contrib/gcc/line-map.h#2 integrate .. //depot/projects/ia64/contrib/gcc/lists.c#2 integrate .. //depot/projects/ia64/contrib/gcc/local-alloc.c#5 integrate .. //depot/projects/ia64/contrib/gcc/location.h#1 branch .. //depot/projects/ia64/contrib/gcc/longlong.h#4 integrate .. //depot/projects/ia64/contrib/gcc/loop.c#10 integrate .. //depot/projects/ia64/contrib/gcc/loop.h#5 integrate .. //depot/projects/ia64/contrib/gcc/machmode.def#4 integrate .. //depot/projects/ia64/contrib/gcc/machmode.h#4 integrate .. //depot/projects/ia64/contrib/gcc/mbchar.c#3 integrate .. //depot/projects/ia64/contrib/gcc/md5.c#2 integrate .. //depot/projects/ia64/contrib/gcc/mkconfig.sh#3 integrate .. //depot/projects/ia64/contrib/gcc/mkheaders.in#1 branch .. //depot/projects/ia64/contrib/gcc/mklibgcc.in#5 integrate .. //depot/projects/ia64/contrib/gcc/mkmap-symver.awk#3 integrate .. //depot/projects/ia64/contrib/gcc/objc/Make-lang.in#4 integrate .. //depot/projects/ia64/contrib/gcc/objc/config-lang.in#3 integrate .. //depot/projects/ia64/contrib/gcc/objc/lang-specs.h#5 integrate .. //depot/projects/ia64/contrib/gcc/objc/objc-act.c#4 integrate .. //depot/projects/ia64/contrib/gcc/objc/objc-act.h#3 integrate .. //depot/projects/ia64/contrib/gcc/objc/objc-lang.c#4 integrate .. //depot/projects/ia64/contrib/gcc/optabs.c#8 integrate .. //depot/projects/ia64/contrib/gcc/optabs.h#2 integrate .. //depot/projects/ia64/contrib/gcc/output.h#4 integrate .. //depot/projects/ia64/contrib/gcc/params.c#2 integrate .. //depot/projects/ia64/contrib/gcc/params.def#2 integrate .. //depot/projects/ia64/contrib/gcc/params.h#2 integrate .. //depot/projects/ia64/contrib/gcc/partition.h#2 integrate .. //depot/projects/ia64/contrib/gcc/physmem.c#1 branch .. //depot/projects/ia64/contrib/gcc/predict.c#3 integrate .. //depot/projects/ia64/contrib/gcc/predict.def#2 integrate .. //depot/projects/ia64/contrib/gcc/predict.h#2 integrate .. //depot/projects/ia64/contrib/gcc/prefix.c#3 integrate .. //depot/projects/ia64/contrib/gcc/pretty-print.h#1 branch .. //depot/projects/ia64/contrib/gcc/print-rtl.c#5 integrate .. //depot/projects/ia64/contrib/gcc/print-tree.c#5 integrate .. //depot/projects/ia64/contrib/gcc/profile.c#3 integrate .. //depot/projects/ia64/contrib/gcc/profile.h#1 branch .. //depot/projects/ia64/contrib/gcc/protoize.c#4 integrate .. //depot/projects/ia64/contrib/gcc/ra-build.c#1 branch .. //depot/projects/ia64/contrib/gcc/ra-colorize.c#1 branch .. //depot/projects/ia64/contrib/gcc/ra-debug.c#1 branch .. //depot/projects/ia64/contrib/gcc/ra-rewrite.c#1 branch .. //depot/projects/ia64/contrib/gcc/ra.c#1 branch .. //depot/projects/ia64/contrib/gcc/ra.h#1 branch .. //depot/projects/ia64/contrib/gcc/read-rtl.c#2 integrate .. //depot/projects/ia64/contrib/gcc/real.c#3 integrate .. //depot/projects/ia64/contrib/gcc/real.h#3 integrate .. //depot/projects/ia64/contrib/gcc/recog.c#7 integrate .. //depot/projects/ia64/contrib/gcc/recog.h#3 integrate .. //depot/projects/ia64/contrib/gcc/reg-stack.c#5 integrate .. //depot/projects/ia64/contrib/gcc/regclass.c#5 integrate .. //depot/projects/ia64/contrib/gcc/regmove.c#5 integrate .. //depot/projects/ia64/contrib/gcc/regrename.c#3 integrate .. //depot/projects/ia64/contrib/gcc/regs.h#3 integrate .. //depot/projects/ia64/contrib/gcc/reload.c#9 integrate .. //depot/projects/ia64/contrib/gcc/reload.h#4 integrate .. //depot/projects/ia64/contrib/gcc/reload1.c#8 integrate .. //depot/projects/ia64/contrib/gcc/reorg.c#4 integrate .. //depot/projects/ia64/contrib/gcc/resource.c#4 integrate .. //depot/projects/ia64/contrib/gcc/rtl-error.c#2 integrate .. //depot/projects/ia64/contrib/gcc/rtl.c#4 integrate .. //depot/projects/ia64/contrib/gcc/rtl.def#4 integrate .. //depot/projects/ia64/contrib/gcc/rtl.h#8 integrate .. //depot/projects/ia64/contrib/gcc/rtlanal.c#6 integrate .. //depot/projects/ia64/contrib/gcc/sbitmap.c#3 integrate .. //depot/projects/ia64/contrib/gcc/sbitmap.h#3 integrate .. //depot/projects/ia64/contrib/gcc/scan-decls.c#3 integrate .. //depot/projects/ia64/contrib/gcc/scan.c#3 integrate .. //depot/projects/ia64/contrib/gcc/sched-deps.c#6 integrate .. //depot/projects/ia64/contrib/gcc/sched-ebb.c#2 integrate .. //depot/projects/ia64/contrib/gcc/sched-int.h#4 integrate .. //depot/projects/ia64/contrib/gcc/sched-rgn.c#3 integrate .. //depot/projects/ia64/contrib/gcc/sched-vis.c#2 integrate .. //depot/projects/ia64/contrib/gcc/sdbout.c#3 integrate .. //depot/projects/ia64/contrib/gcc/sibcall.c#4 integrate .. //depot/projects/ia64/contrib/gcc/simplify-rtx.c#3 integrate .. //depot/projects/ia64/contrib/gcc/splay-tree.c#4 integrate .. //depot/projects/ia64/contrib/gcc/splay-tree.h#4 integrate .. //depot/projects/ia64/contrib/gcc/ssa-ccp.c#3 integrate .. //depot/projects/ia64/contrib/gcc/ssa-dce.c#2 integrate .. //depot/projects/ia64/contrib/gcc/ssa.c#2 integrate .. //depot/projects/ia64/contrib/gcc/ssa.h#2 integrate .. //depot/projects/ia64/contrib/gcc/stab.def#2 integrate .. //depot/projects/ia64/contrib/gcc/stmt.c#7 integrate .. //depot/projects/ia64/contrib/gcc/stor-layout.c#5 integrate .. //depot/projects/ia64/contrib/gcc/stringpool.c#2 integrate .. //depot/projects/ia64/contrib/gcc/system.h#6 integrate .. //depot/projects/ia64/contrib/gcc/target-def.h#3 integrate .. //depot/projects/ia64/contrib/gcc/target.h#3 integrate .. //depot/projects/ia64/contrib/gcc/timevar.c#2 integrate .. //depot/projects/ia64/contrib/gcc/timevar.def#2 integrate .. //depot/projects/ia64/contrib/gcc/timevar.h#2 integrate .. //depot/projects/ia64/contrib/gcc/tlink.c#3 integrate .. //depot/projects/ia64/contrib/gcc/toplev.c#10 integrate .. //depot/projects/ia64/contrib/gcc/toplev.h#3 integrate .. //depot/projects/ia64/contrib/gcc/tracer.c#1 branch .. //depot/projects/ia64/contrib/gcc/tree-dump.c#3 integrate .. //depot/projects/ia64/contrib/gcc/tree-dump.h#2 integrate .. //depot/projects/ia64/contrib/gcc/tree-inline.c#5 integrate .. //depot/projects/ia64/contrib/gcc/tree-inline.h#2 integrate .. //depot/projects/ia64/contrib/gcc/tree.c#7 integrate .. //depot/projects/ia64/contrib/gcc/tree.def#5 integrate .. //depot/projects/ia64/contrib/gcc/tree.h#8 integrate .. //depot/projects/ia64/contrib/gcc/tsystem.h#2 integrate .. //depot/projects/ia64/contrib/gcc/unroll.c#8 integrate .. //depot/projects/ia64/contrib/gcc/unwind-c.c#1 branch .. //depot/projects/ia64/contrib/gcc/unwind-dw2-fde-darwin.c#1 branch .. //depot/projects/ia64/contrib/gcc/unwind-dw2-fde-glibc.c#3 integrate .. //depot/projects/ia64/contrib/gcc/unwind-dw2-fde.c#2 integrate .. //depot/projects/ia64/contrib/gcc/unwind-dw2-fde.h#2 integrate .. //depot/projects/ia64/contrib/gcc/unwind-dw2.c#3 integrate .. //depot/projects/ia64/contrib/gcc/unwind-pe.h#2 integrate .. //depot/projects/ia64/contrib/gcc/unwind-sjlj.c#2 integrate .. //depot/projects/ia64/contrib/gcc/unwind.h#2 integrate .. //depot/projects/ia64/contrib/gcc/unwind.inc#2 integrate .. //depot/projects/ia64/contrib/gcc/varasm.c#8 integrate .. //depot/projects/ia64/contrib/gcc/varray.c#3 integrate .. //depot/projects/ia64/contrib/gcc/varray.h#3 integrate .. //depot/projects/ia64/contrib/gcc/version.c#11 integrate .. //depot/projects/ia64/contrib/gcc/version.h#2 integrate .. //depot/projects/ia64/contrib/gcc/vmsdbg.h#2 integrate .. //depot/projects/ia64/contrib/gcc/vmsdbgout.c#3 integrate .. //depot/projects/ia64/contrib/gcc/xcoffout.c#3 integrate .. //depot/projects/ia64/contrib/gcc/xcoffout.h#3 integrate .. //depot/projects/ia64/contrib/gcc/xmemdup.c#1 branch .. //depot/projects/ia64/contrib/libf2c/ChangeLog#8 integrate .. //depot/projects/ia64/contrib/libf2c/Makefile.in#5 integrate .. //depot/projects/ia64/contrib/libf2c/aclocal.m4#4 integrate .. //depot/projects/ia64/contrib/libf2c/configure#6 integrate .. //depot/projects/ia64/contrib/libf2c/configure.in#5 integrate .. //depot/projects/ia64/contrib/libf2c/f2cext.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/g2c.hin#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/F77_aloc.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/Makefile.in#3 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/Version.c#9 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/abort_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/c_abs.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/c_cos.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/c_div.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/c_exp.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/c_log.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/c_sin.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/c_sqrt.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/cabs.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/configure#4 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/configure.in#4 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/d_abs.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/d_acos.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/d_asin.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/d_atan.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/d_atn2.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/d_cnjg.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/d_cos.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/d_cosh.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/d_dim.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/d_exp.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/d_imag.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/d_int.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/d_lg10.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/d_log.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/d_mod.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/d_nint.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/d_prod.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/d_sign.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/d_sin.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/d_sinh.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/d_sqrt.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/d_tan.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/d_tanh.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/derf_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/derfc_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/dtime_.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/ef1asc_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/ef1cmc_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/erf_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/erfc_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/etime_.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/exit_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/f2ch.add#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/getarg_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/getenv_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/h_abs.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/h_dim.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/h_dnnt.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/h_indx.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/h_len.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/h_mod.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/h_nint.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/h_sign.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/hl_ge.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/hl_gt.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/hl_le.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/hl_lt.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/i_abs.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/i_dim.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/i_dnnt.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/i_indx.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/i_len.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/i_mod.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/i_nint.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/i_sign.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/iargc_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/l_ge.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/l_gt.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/l_le.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/l_lt.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/lbitbits.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/lbitshft.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/main.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/pow_ci.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/pow_dd.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/pow_di.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/pow_hh.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/pow_ii.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/pow_qq.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/pow_ri.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/pow_zi.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/pow_zz.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/qbitbits.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/qbitshft.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/r_abs.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/r_acos.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/r_asin.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/r_atan.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/r_atn2.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/r_cnjg.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/r_cos.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/r_cosh.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/r_dim.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/r_exp.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/r_imag.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/r_int.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/r_lg10.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/r_log.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/r_mod.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/r_nint.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/r_sign.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/r_sin.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/r_sinh.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/r_sqrt.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/r_tan.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/r_tanh.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/s_cat.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/s_cmp.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/s_copy.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/s_paus.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/s_rnge.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/s_stop.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/setarg.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/setsig.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/sig_die.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/signal1.h0#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/signal_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/system_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/z_abs.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/z_cos.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/z_div.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/z_exp.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/z_log.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/z_sin.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libF77/z_sqrt.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/Makefile.in#4 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/Version.c#9 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/backspace.c#4 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/close.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/configure#4 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/configure.in#4 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/dfe.c#4 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/dolio.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/due.c#4 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/endfile.c#4 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/err.c#4 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/f2ch.add#2 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/fio.h#3 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/fmt.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/fmt.h#2 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/fmtlib.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/fp.h#2 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/ftell_.c#4 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/iio.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/ilnw.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/inquire.c#4 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/lio.h#2 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/lread.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/lwrite.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/open.c#4 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/rdfmt.c#4 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/rewind.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/rsfe.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/rsli.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/rsne.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/sfe.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/sue.c#4 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/typesize.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/uio.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/util.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/wref.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/wrtfmt.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/wsfe.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/wsle.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/wsne.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libI77/xwsne.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/Makefile.in#4 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/Version.c#9 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/access_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/alarm_.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/bes.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/chdir_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/chmod_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/config.hin#3 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/configure#4 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/configure.in#4 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/ctime_.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/date_.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/datetime_.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/dbes.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/dtime_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/etime_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/fdate_.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/fgetc_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/flush1_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/fnum_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/fputc_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/fstat_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/gerror_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/getcwd_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/getgid_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/getlog_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/getpid_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/getuid_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/gmtime_.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/hostnm_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/idate_.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/ierrno_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/irand_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/isatty_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/itime_.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/kill_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/link_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/lnblnk_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/lstat_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/ltime_.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/mclock_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/perror_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/rand_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/rename_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/secnds_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/second_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/sleep_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/srand_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/stat_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/symlnk_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/sys_clock_.c#3 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/time_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/ttynam_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/umask_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/unlink_.c#2 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/vxtidate_.c#4 integrate .. //depot/projects/ia64/contrib/libf2c/libU77/vxttime_.c#3 integrate .. //depot/projects/ia64/contrib/libobjc/ChangeLog#9 integrate .. //depot/projects/ia64/contrib/libobjc/Makefile.in#7 integrate .. //depot/projects/ia64/contrib/libobjc/Object.m#5 integrate .. //depot/projects/ia64/contrib/libobjc/Protocol.m#2 integrate .. //depot/projects/ia64/contrib/libobjc/aclocal.m4#4 integrate .. //depot/projects/ia64/contrib/libobjc/archive.c#2 integrate .. //depot/projects/ia64/contrib/libobjc/class.c#3 integrate .. //depot/projects/ia64/contrib/libobjc/configure#6 integrate .. //depot/projects/ia64/contrib/libobjc/configure.in#5 integrate .. //depot/projects/ia64/contrib/libobjc/encoding.c#5 integrate .. //depot/projects/ia64/contrib/libobjc/gc.c#3 integrate .. //depot/projects/ia64/contrib/libobjc/hash.c#2 integrate .. //depot/projects/ia64/contrib/libobjc/init.c#4 integrate .. //depot/projects/ia64/contrib/libobjc/misc.c#2 integrate .. //depot/projects/ia64/contrib/libobjc/nil_method.c#2 integrate .. //depot/projects/ia64/contrib/libobjc/objc/encoding.h#2 integrate .. //depot/projects/ia64/contrib/libobjc/objc/hash.h#4 integrate .. //depot/projects/ia64/contrib/libobjc/objc/objc.h#2 integrate .. //depot/projects/ia64/contrib/libobjc/objc/runtime.h#2 integrate .. //depot/projects/ia64/contrib/libobjc/objc/thr.h#4 integrate .. //depot/projects/ia64/contrib/libobjc/objects.c#2 integrate .. //depot/projects/ia64/contrib/libobjc/sarray.c#5 integrate .. //depot/projects/ia64/contrib/libobjc/selector.c#2 integrate .. //depot/projects/ia64/contrib/libobjc/sendmsg.c#5 integrate .. //depot/projects/ia64/contrib/libobjc/thr-mach.c#2 integrate .. //depot/projects/ia64/contrib/libobjc/thr.c#4 integrate .. //depot/projects/ia64/contrib/libstdc++/ChangeLog#10 integrate .. //depot/projects/ia64/contrib/libstdc++/Makefile.am#6 integrate >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Jul 11 02:27:42 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C229D37B404; Fri, 11 Jul 2003 02:27:41 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7A12C37B401 for ; Fri, 11 Jul 2003 02:27:41 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 026A343FAF for ; Fri, 11 Jul 2003 02:27:41 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h6B9Re0U014549 for ; Fri, 11 Jul 2003 02:27:40 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h6B9ReV2014546 for perforce@freebsd.org; Fri, 11 Jul 2003 02:27:40 -0700 (PDT) Date: Fri, 11 Jul 2003 02:27:40 -0700 (PDT) Message-Id: <200307110927.h6B9ReV2014546@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 34343 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 09:27:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=34343 Change 34343 by marcel@marcel_nfs on 2003/07/11 02:27:21 Add declaration for mesg_bad_pointer_cast. This previously resided in c-tree.h. Affected files ... .. //depot/projects/ia64/contrib/gcc/c-common.h#7 edit Differences ... ==== //depot/projects/ia64/contrib/gcc/c-common.h#7 (text+ko) ==== @@ -508,6 +508,10 @@ /* C/ObjC language option variables. */ +/* Warn about bad pointer casts. 1 = warning, 2 = error. */ + +extern int mesg_bad_pointer_cast; + /* Nonzero means message about use of implicit function declarations; 1 means warning; 2 means error. */ From owner-p4-projects@FreeBSD.ORG Fri Jul 11 02:30:47 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CE3A237B404; Fri, 11 Jul 2003 02:30:46 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 676E437B405 for ; Fri, 11 Jul 2003 02:30:46 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 75FAE43FBD for ; Fri, 11 Jul 2003 02:30:45 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h6B9Uj0U014745 for ; Fri, 11 Jul 2003 02:30:45 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h6B9UiX4014742 for perforce@freebsd.org; Fri, 11 Jul 2003 02:30:44 -0700 (PDT) Date: Fri, 11 Jul 2003 02:30:44 -0700 (PDT) Message-Id: <200307110930.h6B9UiX4014742@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 34344 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 09:30:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=34344 Change 34344 by marcel@marcel_nfs on 2003/07/11 02:30:10 Add definition of mesg_bad_pointer_cast. This previously resided in c-decl.c. Affected files ... .. //depot/projects/ia64/contrib/gcc/c-common.c#9 edit Differences ... ==== //depot/projects/ia64/contrib/gcc/c-common.c#9 (text+ko) ==== @@ -341,6 +341,11 @@ /* C/ObjC language option variables. */ +/* Nonzero means message about casts with integer/pointer size mismatches; + 1 means warning; 2 means error. */ + +int mesg_bad_pointer_cast = 1; + /* Nonzero means message about use of implicit function declarations; 1 means warning; 2 means error. */ From owner-p4-projects@FreeBSD.ORG Fri Jul 11 02:47:07 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5E92137B404; Fri, 11 Jul 2003 02:47:07 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EF9BB37B401 for ; Fri, 11 Jul 2003 02:47:06 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 92C5443F93 for ; Fri, 11 Jul 2003 02:47:06 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h6B9l60U015262 for ; Fri, 11 Jul 2003 02:47:06 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h6B9l6uW015259 for perforce@freebsd.org; Fri, 11 Jul 2003 02:47:06 -0700 (PDT) Date: Fri, 11 Jul 2003 02:47:06 -0700 (PDT) Message-Id: <200307110947.h6B9l6uW015259@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 34346 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 09:47:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=34346 Change 34346 by marcel@marcel_nfs on 2003/07/11 02:46:09 Add -W[no-]bad-pointer-cast and -Werror-bad-pointer-cast to the mix of options. This used to be in c-decl.c, but the whole option handling has been changed. At 2:45am, one does not test anymore. Just so you know... Affected files ... .. //depot/projects/ia64/contrib/gcc/c-opts.c#2 edit Differences ... ==== //depot/projects/ia64/contrib/gcc/c-opts.c#2 (text+ko) ==== @@ -127,6 +127,7 @@ OPT("Wabi", CL_CXX, OPT_Wabi) \ OPT("Wall", CL_ALL, OPT_Wall) \ OPT("Wbad-function-cast", CL_C, OPT_Wbad_function_cast) \ + OPT("Wbad-pointer-cast", CL_C, OPT_Wbad_pointer_cast) \ OPT("Wcast-qual", CL_ALL, OPT_Wcast_qual) \ OPT("Wchar-subscripts", CL_ALL, OPT_Wchar_subscripts) \ OPT("Wcomment", CL_ALL, OPT_Wcomment) \ @@ -138,6 +139,7 @@ OPT("Weffc++", CL_CXX, OPT_Weffcxx) \ OPT("Wendif-labels", CL_ALL, OPT_Wendif_labels) \ OPT("Werror", CL_ALL, OPT_Werror) \ + OPT("Werror-bad-pointer-cast",CL_C, OPT_Werror_bad_pointer_cast) \ OPT("Werror-implicit-function-declaration", \ CL_C, OPT_Werror_implicit_function_decl) \ OPT("Wfloat-equal", CL_ALL, OPT_Wfloat_equal) \ @@ -737,6 +739,10 @@ warn_bad_function_cast = on; break; + case OPT_Wbad_pointer_cast: + mesg_bad_pointer_cast = on; + break; + case OPT_Wcast_qual: warn_cast_qual = on; break; @@ -778,6 +784,13 @@ cpp_opts->warnings_are_errors = on; break; + case OPT_Werror_bad_pointer_cast: + if (!on) + result = 0; + else + mesg_bad_pointer_cast = 2; + break; + case OPT_Werror_implicit_function_decl: if (!on) result = 0; From owner-p4-projects@FreeBSD.ORG Fri Jul 11 14:54:06 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2FE2C37B401; Fri, 11 Jul 2003 14:54:05 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C832637B404 for ; Fri, 11 Jul 2003 14:54:04 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4F2BF43F85 for ; Fri, 11 Jul 2003 14:54:03 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h6BLs20U070180 for ; Fri, 11 Jul 2003 14:54:03 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h6BLs21e070177 for perforce@freebsd.org; Fri, 11 Jul 2003 14:54:02 -0700 (PDT) Date: Fri, 11 Jul 2003 14:54:02 -0700 (PDT) Message-Id: <200307112154.h6BLs21e070177@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 34376 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 21:54:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=34376 Change 34376 by marcel@marcel_nfs on 2003/07/11 14:53:23 IFC @34375 Affected files ... .. //depot/projects/ia64/Makefile.inc1#74 integrate .. //depot/projects/ia64/gnu/usr.bin/cc/cc_tools/auto-host.h#12 integrate .. //depot/projects/ia64/rescue/rescue/Makefile#4 integrate .. //depot/projects/ia64/share/man/man4/wi.4#24 integrate .. //depot/projects/ia64/sys/boot/sparc64/loader/main.c#14 integrate .. //depot/projects/ia64/sys/conf/options#56 integrate .. //depot/projects/ia64/sys/conf/options.ia64#15 integrate .. //depot/projects/ia64/sys/dev/bge/if_bge.c#33 integrate .. //depot/projects/ia64/sys/dev/fxp/if_fxp.c#38 integrate .. //depot/projects/ia64/sys/dev/pccard/pccarddevs#28 integrate .. //depot/projects/ia64/sys/dev/pccard/pccarddevs.h#28 integrate .. //depot/projects/ia64/sys/dev/usb/usbdevs#42 integrate .. //depot/projects/ia64/sys/dev/usb/usbdevs.h#40 integrate .. //depot/projects/ia64/sys/dev/usb/usbdevs_data.h#40 integrate .. //depot/projects/ia64/sys/dev/wi/if_wi_pccard.c#23 integrate .. //depot/projects/ia64/sys/i386/i386/locore.s#12 integrate .. //depot/projects/ia64/sys/ia64/ia64/exception.S#2 integrate .. //depot/projects/ia64/sys/ia64/ia64/syscall.S#2 integrate .. //depot/projects/ia64/sys/kern/kern_sig.c#58 integrate .. //depot/projects/ia64/usr.bin/xinstall/xinstall.c#15 integrate .. //depot/projects/ia64/usr.sbin/rarpd/Makefile#2 integrate .. //depot/projects/ia64/usr.sbin/rarpd/rarpd.c#7 integrate Differences ... ==== //depot/projects/ia64/Makefile.inc1#74 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/Makefile.inc1,v 1.378 2003/07/10 05:29:56 kris Exp $ +# $FreeBSD: src/Makefile.inc1,v 1.380 2003/07/11 17:01:58 gordon Exp $ # # Make command line options: # -DNO_KERBEROS Do not build Heimdal (Kerberos 5) @@ -8,6 +8,7 @@ # -DNOCRYPT will prevent building of crypt versions # -DNOMAN do not build the manual pages # -DNOPROFILE do not build profiled libraries +# -DNORESCUE do not build rescue binaries # -DNOGAMES do not go into games subdir # -DNOSHARE do not go into share subdir # -DNOINFO do not make or install info files @@ -66,7 +67,7 @@ .if exists(${.CURDIR}/libexec) SUBDIR+= libexec .endif -.if exists(${.CURDIR}/rescue) && defined(RESCUE) +.if exists(${.CURDIR}/rescue) && !defined(NORESCUE) SUBDIR+= rescue .endif .if exists(${.CURDIR}/sbin) @@ -667,7 +668,7 @@ _yacc= usr.bin/yacc .endif -.if defined(RESCUE) && \ +.if !defined(NORESCUE) && \ ${BOOTSTRAPPING} < 501100 _crunchgen= usr.sbin/crunch/crunchgen .endif @@ -721,10 +722,15 @@ kerberos5/lib/libasn1 kerberos5/lib/libhdb kerberos5/lib/libsl .endif +.if exists(${.CURDIR}/rescue) && !defined(NORESCUE) +_rescue= rescue/rescue +.endif + build-tools: .for _tool in \ bin/csh \ bin/sh \ + ${_rescue} \ gnu/usr.bin/cc/cc_tools \ ${_fortran} \ ${_libkrb5} \ @@ -752,7 +758,7 @@ _btxld= usr.sbin/btxld .endif -.if (defined(RESCUE) || \ +.if (!defined(NORESCUE) || \ defined(RELEASEDIR)) && \ ( ${TARGET_ARCH} != ${MACHINE_ARCH} || ${BOOTSTRAPPING} < 501101 ) _crunchide= usr.sbin/crunch/crunchide ==== //depot/projects/ia64/gnu/usr.bin/cc/cc_tools/auto-host.h#12 (text+ko) ==== @@ -1,6 +1,6 @@ -/* $FreeBSD: src/gnu/usr.bin/cc/cc_tools/auto-host.h,v 1.14 2003/07/11 05:33:24 kan Exp $ */ +/* $FreeBSD: src/gnu/usr.bin/cc/cc_tools/auto-host.h,v 1.15 2003/07/11 18:55:58 kan Exp $ */ -#include +#include /* auto-host.h. Generated automatically by configure. */ /* config.in. Generated automatically from configure.in by autoheader. */ ==== //depot/projects/ia64/rescue/rescue/Makefile#4 (text+ko) ==== @@ -1,4 +1,4 @@ -#$FreeBSD: src/rescue/rescue/Makefile,v 1.5 2003/06/30 21:13:56 gordon Exp $ +#$FreeBSD: src/rescue/rescue/Makefile,v 1.6 2003/07/11 16:57:43 gordon Exp $ # @(#)Makefile 8.1 (Berkeley) 6/2/93 PROG= rescue @@ -47,6 +47,8 @@ # Define compile-time RESCUE symbol when compiling components CRUNCH_BUILDOPTS+= CRUNCH_CFLAGS=-DRESCUE +# An experiment that failed: try overriding bsd.lib.mk and bsd.prog.mk +# rather than incorporating rescue-specific logic into standard files. #MAKEFLAGS= -m ${.CURDIR} ${.MAKEFLAGS} # Hackery: 'librescue' exists merely as a tool for appropriately @@ -244,14 +246,20 @@ $(OUTPUTS): $(CONF) MAKEOBJDIRPREFIX=${CRUNCHOBJS} crunchgen -q -m $(OUTMK) -c $(OUTC) $(CONF) -# -m here forces make to treat the bsd.prog.mk and bsd.lib.mk in -# this directory as overrides for the standard shared ones. $(PROG): $(OUTPUTS) MAKEOBJDIRPREFIX=${CRUNCHOBJS} make -f $(OUTMK) objs: MAKEOBJDIRPREFIX=${CRUNCHOBJS} make -f $(OUTMK) objs +# Someone should replace the bin/csh and bin/sh build-tools with +# shell scripts so we can remove this nonsense. +build-tools: +.for _tool in bin/csh bin/sh + cd ${.CURDIR}/../../${_tool}; \ + MAKEOBJDIRPREFIX=${CRUNCHOBJS} make DIRPRFX=rescue/${_tool} build-tools +.endfor + # Use a separate build tree to hold files compiled for this crunchgen binary # Yes, this does seem to partly duplicate bsd.subdir.mk, but I can't # get that to cooperate with bsd.prog.mk. Besides, many of the standard ==== //depot/projects/ia64/share/man/man4/wi.4#24 (text+ko) ==== @@ -28,7 +28,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF .\" THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/wi.4,v 1.46 2003/07/05 00:31:51 imp Exp $ +.\" $FreeBSD: src/share/man/man4/wi.4,v 1.47 2003/07/11 09:25:18 imp Exp $ .\" $OpenBSD: wi.4tbl,v 1.14 2002/04/29 19:53:50 jsyn Exp $ .\" .Dd February 17, 2003 @@ -146,6 +146,7 @@ Agere Orinoco Hermes PCMCIA Allied Telesis WR211PCM Prism-II PCMCIA ArTem OnAir Prism? PCMCIA +Asus WL100 Prism-2.5 PCMCIA Avaya Wireless Prism-II PCMCIA Bay eMobility 11B Prism-2.5? PCMCIA Blue Concentric Circle WL-379F Prism-II CF ==== //depot/projects/ia64/sys/boot/sparc64/loader/main.c#14 (text+ko) ==== @@ -6,7 +6,7 @@ * As long as the above copyright statement and this notice remain * unchanged, you can do what ever you want with this file. * - * $FreeBSD: src/sys/boot/sparc64/loader/main.c,v 1.20 2003/06/15 19:16:43 jake Exp $ + * $FreeBSD: src/sys/boot/sparc64/loader/main.c,v 1.21 2003/07/11 16:12:50 tmm Exp $ */ /* * FreeBSD/sparc64 kernel loader - machine dependent part @@ -115,7 +115,7 @@ #ifdef LOADER_BZIP2_SUPPORT &bzipfs_fsops, #endif -#ifdef LOADER_NET_SUPPORT +#ifdef LOADER_NFS_SUPPORT &nfs_fsops, #endif #ifdef LOADER_TFTP_SUPPORT ==== //depot/projects/ia64/sys/conf/options#56 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options,v 1.400 2003/06/26 09:50:51 smkelly Exp $ +# $FreeBSD: src/sys/conf/options,v 1.401 2003/07/11 17:04:37 imp Exp $ # # On the handling of kernel options # @@ -457,7 +457,7 @@ # These cause changes all over the kernel BLKDEV_IOSIZE opt_global.h -BURN_BRIDGES opt_gloabl.h +BURN_BRIDGES opt_global.h DEBUG opt_global.h DEBUG_LOCKS opt_global.h DEBUG_VFS_LOCKS opt_global.h ==== //depot/projects/ia64/sys/conf/options.ia64#15 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options.ia64,v 1.19 2003/06/18 15:25:01 jake Exp $ +# $FreeBSD: src/sys/conf/options.ia64,v 1.20 2003/07/11 08:47:15 marcel Exp $ # Options specific to the ia64 platform kernels ITANIUM opt_global.h @@ -10,6 +10,8 @@ PAGE_SIZE_8K opt_global.h PAGE_SIZE_16K opt_global.h +UWX_TRACE_ENABLE opt_global.h + PPC_PROBE_CHIPSET opt_ppc.h PPC_DEBUG opt_ppc.h ==== //depot/projects/ia64/sys/dev/bge/if_bge.c#33 (text+ko) ==== @@ -64,7 +64,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/bge/if_bge.c,v 1.42 2003/05/31 20:42:24 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/bge/if_bge.c,v 1.43 2003/07/11 08:19:52 wpaul Exp $"); #include #include @@ -2045,6 +2045,7 @@ struct bge_softc *sc; struct ifnet *ifp; u_int32_t statusword; + u_int32_t status; sc = xsc; ifp = &sc->arpcom.ac_if; @@ -2073,7 +2074,6 @@ */ if (sc->bge_asicrev == BGE_ASICREV_BCM5700) { - u_int32_t status; status = CSR_READ_4(sc, BGE_MAC_STS); if (status & BGE_MACSTAT_MI_INTERRUPT) { @@ -2089,9 +2089,24 @@ } } else { if (statusword & BGE_STATFLAG_LINKSTATE_CHANGED) { - sc->bge_link = 0; - untimeout(bge_tick, sc, sc->bge_stat_ch); - bge_tick(sc); + /* + * Sometimes PCS encoding errors are detected in + * TBI mode (on fiber NICs), and for some reason + * the chip will signal them as link changes. + * If we get a link change event, but the 'PCS + * encoding error' bit in the MAC status register + * is set, don't bother doing a link check. + * This avoids spurious "gigabit link up" messages + * that sometimes appear on fiber NICs during + * periods of heavy traffic. (There should be no + * effect on copper NICs.) + */ + status = CSR_READ_4(sc, BGE_MAC_STS); + if (!(status & BGE_MACSTAT_PORT_DECODE_ERROR)) { + sc->bge_link = 0; + untimeout(bge_tick, sc, sc->bge_stat_ch); + bge_tick(sc); + } /* Clear the interrupt */ CSR_WRITE_4(sc, BGE_MAC_STS, BGE_MACSTAT_SYNC_CHANGED| BGE_MACSTAT_CFG_CHANGED); ==== //depot/projects/ia64/sys/dev/fxp/if_fxp.c#38 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/fxp/if_fxp.c,v 1.186 2003/07/03 14:00:56 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/fxp/if_fxp.c,v 1.187 2003/07/11 20:49:36 jhb Exp $"); #include #include @@ -1550,8 +1550,8 @@ if (ether_poll_register(fxp_poll, ifp)) { /* disable interrupts */ CSR_WRITE_1(sc, FXP_CSR_SCB_INTRCNTL, FXP_SCB_INTR_DISABLE); + FXP_UNLOCK(sc); fxp_poll(ifp, 0, 1); - FXP_UNLOCK(sc); return; } #endif ==== //depot/projects/ia64/sys/dev/pccard/pccarddevs#28 (text+ko) ==== @@ -1,4 +1,4 @@ -$FreeBSD: src/sys/dev/pccard/pccarddevs,v 1.53 2003/06/17 12:29:20 imp Exp $ +$FreeBSD: src/sys/dev/pccard/pccarddevs,v 1.56 2003/07/11 13:50:31 simokawa Exp $ /* $NetBSD: pcmciadevs,v 1.182 2003/04/09 02:09:55 christos Exp $ */ /* $OpenBSD: pcmciadevs,v 1.93 2002/06/21 08:31:10 henning Exp $ */ @@ -93,6 +93,7 @@ vendor BUFFALO 0x026f BUFFALO (Melco Corporation) vendor LINKSYS2 0x0274 The Linksys Group vendor IODATA2 0x028a I-O DATA +vendor ASUS 0x02aa ASUS vendor NWN 0x0602 No Wires Needed vendor BREEZECOM 0x0a02 BreezeCOM vendor NEWMEDIA2 0x10cd NewMedia @@ -158,6 +159,9 @@ /* ARtem */ product ARTEM ONAIR 0x0001 ARtem OnAir +/* ASUS WL-100 */ +product ASUS WL100 0x0002 ASUS SpaceLink WL-100 Wireless LAN + /* Bay Networks */ product BAY STACK_650 0x0804 BayStack 650 Wireless LAN product BAY SURFER_PRO 0x0806 AirSurfer Pro Wireless LAN ==== //depot/projects/ia64/sys/dev/pccard/pccarddevs.h#28 (text+ko) ==== @@ -1,10 +1,10 @@ -/* $FreeBSD: src/sys/dev/pccard/pccarddevs.h,v 1.53 2003/06/17 12:29:49 imp Exp $ */ +/* $FreeBSD: src/sys/dev/pccard/pccarddevs.h,v 1.56 2003/07/11 13:50:31 simokawa Exp $ */ /* * THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * FreeBSD: src/sys/dev/pccard/pccarddevs,v 1.53 2003/06/17 12:29:20 imp Exp + * FreeBSD: src/sys/dev/pccard/pccarddevs,v 1.55 2003/07/11 09:16:40 imp Exp */ /* $NetBSD: pcmciadevs,v 1.182 2003/04/09 02:09:55 christos Exp $ */ /* $OpenBSD: pcmciadevs,v 1.93 2002/06/21 08:31:10 henning Exp $ */ @@ -100,6 +100,7 @@ #define PCMCIA_VENDOR_BUFFALO 0x026f /* BUFFALO (Melco Corporation) */ #define PCMCIA_VENDOR_LINKSYS2 0x0274 /* The Linksys Group */ #define PCMCIA_VENDOR_IODATA2 0x028a /* I-O DATA */ +#define PCMCIA_VENDOR_ASUS 0x02aa /* ASUS */ #define PCMCIA_VENDOR_NWN 0x0602 /* No Wires Needed */ #define PCMCIA_VENDOR_BREEZECOM 0x0a02 /* BreezeCOM */ #define PCMCIA_VENDOR_NEWMEDIA2 0x10cd /* NewMedia */ @@ -205,6 +206,11 @@ #define PCMCIA_PRODUCT_ARTEM_ONAIR 0x0001 #define PCMCIA_STR_ARTEM_ONAIR "ARtem OnAir" +/* ASUS WL-100 */ +#define PCMCIA_CIS_ASUS_WL100 { NULL, NULL, NULL, NULL } +#define PCMCIA_PRODUCT_ASUS_WL100 0x0002 +#define PCMCIA_STR_ASUS_WL100 "ASUS SpaceLink WL-100 Wireless LAN" + /* Bay Networks */ #define PCMCIA_CIS_BAY_STACK_650 { NULL, NULL, NULL, NULL } #define PCMCIA_PRODUCT_BAY_STACK_650 0x0804 ==== //depot/projects/ia64/sys/dev/usb/usbdevs#42 (text+ko) ==== @@ -1,4 +1,4 @@ -$FreeBSD: src/sys/dev/usb/usbdevs,v 1.131 2003/07/10 18:43:16 wpaul Exp $ +$FreeBSD: src/sys/dev/usb/usbdevs,v 1.132 2003/07/11 21:17:29 joe Exp $ /* * Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc. @@ -147,6 +147,7 @@ vendor IIYAMA 0x04e1 Iiyama vendor SHUTTLE 0x04e6 Shuttle Technology vendor ANNABOOKS 0x04ed Annabooks +vendor JVC 0x04f1 JVC vendor CHICONY 0x04f2 Chicony Electronics vendor BROTHER 0x04f9 Brother Industries vendor DALLAS 0x04fa Dallas Semiconductor @@ -308,6 +309,7 @@ vendor ALATION 0x0910 Alation Systems vendor GOHUBS 0x0921 GoHubs vendor BIOMETRIC 0x0929 American Biometric Company +vendor TOSHIBA 0x0930 Toshiba Corporation vendor YANO 0x094f Yano vendor KINGSTON 0x0951 Kingston Technology vendor BLUEWATER 0x0956 BlueWater Systems @@ -733,6 +735,9 @@ product IOMEGA ZIP100 0x0001 Zip 100 product IOMEGA ZIP250 0x0030 Zip 250 +/* JVC products */ +product JVC GR_DX95 0x000a GR-DX95 + /* JRC products */ product JRC AH_J3001V_J3002V 0x0001 AirH\" PHONE AH-J3001V/J3002V @@ -1134,6 +1139,9 @@ /* Thrustmaster products */ product THRUST FUSION_PAD 0xa0a3 Fusion Digital Gamepad +/* Toshiba Corporation products */ +product TOSHIBA POCKETPC_E740 0x0706 PocketPC e740 + /* Trek Technology products */ product TREK THUMBDRIVE 0x1111 ThumbDrive product TREK THUMBDRIVE_8MB 0x9988 ThumbDrive_8MB ==== //depot/projects/ia64/sys/dev/usb/usbdevs.h#40 (text+ko) ==== @@ -1,10 +1,10 @@ -/* $FreeBSD: src/sys/dev/usb/usbdevs.h,v 1.139 2003/07/10 18:43:39 wpaul Exp $ */ +/* $FreeBSD: src/sys/dev/usb/usbdevs.h,v 1.140 2003/07/11 21:17:53 joe Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * FreeBSD: src/sys/dev/usb/usbdevs,v 1.131 2003/07/10 18:43:16 wpaul Exp + * FreeBSD: src/sys/dev/usb/usbdevs,v 1.132 2003/07/11 21:17:29 joe Exp */ /* @@ -154,6 +154,7 @@ #define USB_VENDOR_IIYAMA 0x04e1 /* Iiyama */ #define USB_VENDOR_SHUTTLE 0x04e6 /* Shuttle Technology */ #define USB_VENDOR_ANNABOOKS 0x04ed /* Annabooks */ +#define USB_VENDOR_JVC 0x04f1 /* JVC */ #define USB_VENDOR_CHICONY 0x04f2 /* Chicony Electronics */ #define USB_VENDOR_BROTHER 0x04f9 /* Brother Industries */ #define USB_VENDOR_DALLAS 0x04fa /* Dallas Semiconductor */ @@ -315,6 +316,7 @@ #define USB_VENDOR_ALATION 0x0910 /* Alation Systems */ #define USB_VENDOR_GOHUBS 0x0921 /* GoHubs */ #define USB_VENDOR_BIOMETRIC 0x0929 /* American Biometric Company */ +#define USB_VENDOR_TOSHIBA 0x0930 /* Toshiba Corporation */ #define USB_VENDOR_YANO 0x094f /* Yano */ #define USB_VENDOR_KINGSTON 0x0951 /* Kingston Technology */ #define USB_VENDOR_BLUEWATER 0x0956 /* BlueWater Systems */ @@ -740,6 +742,9 @@ #define USB_PRODUCT_IOMEGA_ZIP100 0x0001 /* Zip 100 */ #define USB_PRODUCT_IOMEGA_ZIP250 0x0030 /* Zip 250 */ +/* JVC products */ +#define USB_PRODUCT_JVC_GR_DX95 0x000a /* GR-DX95 */ + /* JRC products */ #define USB_PRODUCT_JRC_AH_J3001V_J3002V 0x0001 /* AirH\" PHONE AH-J3001V/J3002V */ @@ -1141,6 +1146,9 @@ /* Thrustmaster products */ #define USB_PRODUCT_THRUST_FUSION_PAD 0xa0a3 /* Fusion Digital Gamepad */ +/* Toshiba Corporation products */ +#define USB_PRODUCT_TOSHIBA_POCKETPC_E740 0x0706 /* PocketPC e740 */ + /* Trek Technology products */ #define USB_PRODUCT_TREK_THUMBDRIVE 0x1111 /* ThumbDrive */ #define USB_PRODUCT_TREK_THUMBDRIVE_8MB 0x9988 /* ThumbDrive_8MB */ ==== //depot/projects/ia64/sys/dev/usb/usbdevs_data.h#40 (text+ko) ==== @@ -1,10 +1,10 @@ -/* $FreeBSD: src/sys/dev/usb/usbdevs_data.h,v 1.139 2003/07/10 18:43:39 wpaul Exp $ */ +/* $FreeBSD: src/sys/dev/usb/usbdevs_data.h,v 1.140 2003/07/11 21:17:53 joe Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * FreeBSD: src/sys/dev/usb/usbdevs,v 1.131 2003/07/10 18:43:16 wpaul Exp + * FreeBSD: src/sys/dev/usb/usbdevs,v 1.132 2003/07/11 21:17:29 joe Exp */ /* @@ -1372,6 +1372,12 @@ "Zip 250", }, { + USB_VENDOR_JVC, USB_PRODUCT_JVC_GR_DX95, + 0, + "JVC", + "GR-DX95", + }, + { USB_VENDOR_JRC, USB_PRODUCT_JRC_AH_J3001V_J3002V, 0, "Japan Radio Company", @@ -2800,6 +2806,12 @@ "Fusion Digital Gamepad", }, { + USB_VENDOR_TOSHIBA, USB_PRODUCT_TOSHIBA_POCKETPC_E740, + 0, + "Toshiba Corporation", + "PocketPC e740", + }, + { USB_VENDOR_TREK, USB_PRODUCT_TREK_THUMBDRIVE, 0, "Trek Technology", @@ -3448,6 +3460,12 @@ NULL, }, { + USB_VENDOR_JVC, 0, + USB_KNOWNDEV_NOPROD, + "JVC", + NULL, + }, + { USB_VENDOR_CHICONY, 0, USB_KNOWNDEV_NOPROD, "Chicony Electronics", @@ -4414,6 +4432,12 @@ NULL, }, { + USB_VENDOR_TOSHIBA, 0, + USB_KNOWNDEV_NOPROD, + "Toshiba Corporation", + NULL, + }, + { USB_VENDOR_YANO, 0, USB_KNOWNDEV_NOPROD, "Yano", ==== //depot/projects/ia64/sys/dev/wi/if_wi_pccard.c#23 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/wi/if_wi_pccard.c,v 1.29 2003/07/07 07:57:35 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/wi/if_wi_pccard.c,v 1.30 2003/07/11 09:19:04 imp Exp $"); #include "opt_wi.h" @@ -129,6 +129,7 @@ PCMCIA_CARD(ADDTRON, AWP100, 0), PCMCIA_CARD(ALLIEDTELESIS, WR211PCM, 0), PCMCIA_CARD(ARTEM, ONAIR, 0), + PCMCIA_CARD(ASUS, WL100, 0), PCMCIA_CARD(BAY, EMOBILITY_11B, 0), PCMCIA_CARD(BUFFALO, WLI_PCM_S11, 0), PCMCIA_CARD(BUFFALO, WLI_CF_S11G, 0), ==== //depot/projects/ia64/sys/i386/i386/locore.s#12 (text+ko) ==== @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * from: @(#)locore.s 7.3 (Berkeley) 5/13/91 - * $FreeBSD: src/sys/i386/i386/locore.s,v 1.171 2003/04/03 23:44:34 jake Exp $ + * $FreeBSD: src/sys/i386/i386/locore.s,v 1.172 2003/07/11 21:39:25 peter Exp $ * * originally from: locore.s, by William F. Jolitz * @@ -275,29 +275,13 @@ call identify_cpu -/* clear bss */ /* - * XXX this should be done a little earlier. - * - * XXX we don't check that there is memory for our bss and page tables - * before using it. - * - * XXX the boot program somewhat bogusly clears the bss. We still have - * to do it in case we were unzipped by kzipboot. Then the boot program - * only clears kzipboot's bss. - * - * XXX the gdt and idt are still somewhere in the boot program. We - * depend on the convention that the boot program is below 1MB and we - * are above 1MB to keep the gdt and idt away from the bss and page - * tables. + * We used to clear BSS here, but it isn't needed anymore and actually + * causes harm. gcc now optimizes 'int foo = 0' to be uninitialized in + * the bss. All the supported loaders already zero the bss. The a.out + * kgzip case does not, but we do not generate a.out kernels anymore. + * This is trivial to fix anyway, is a bug in kgzip. */ - movl $R(end),%ecx - movl $R(edata),%edi - subl %edi,%ecx - xorl %eax,%eax - cld - rep - stosb call create_pagetables ==== //depot/projects/ia64/sys/ia64/ia64/exception.S#2 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/ia64/ia64/exception.S,v 1.47 2003/07/02 12:57:07 ru Exp $ + * $FreeBSD: src/sys/ia64/ia64/exception.S,v 1.48 2003/07/11 08:49:26 marcel Exp $ */ #include @@ -608,8 +608,7 @@ ivt_##name: #define IVT_END(name) \ - .endp ivt_##name; \ - .align 0x100 + .endp ivt_##name /* * The IA64 Interrupt Vector Table (IVT) contains 20 slots with 64 ==== //depot/projects/ia64/sys/ia64/ia64/syscall.S#2 (text+ko) ==== @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/ia64/ia64/syscall.S,v 1.4 2003/07/02 12:57:07 ru Exp $ + * $FreeBSD: src/sys/ia64/ia64/syscall.S,v 1.5 2003/07/11 08:52:48 marcel Exp $ */ #include @@ -249,6 +249,7 @@ .prologue .unwabi @svr4, 'E' .save rp, r0 + .body { .mmi mov r16=ar.rsc mov ar.rsc=0 ==== //depot/projects/ia64/sys/kern/kern_sig.c#58 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_sig.c,v 1.249 2003/07/05 08:37:40 mtm Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_sig.c,v 1.250 2003/07/11 13:42:23 davidxu Exp $"); #include "opt_compat.h" #include "opt_ktrace.h" @@ -1553,10 +1553,11 @@ /* * If we know the signal is bound for a specific thread then we * assume that we are in that threads context. This is the case - * for SIGXCPU, SIGILL, etc. Otherwise someone did a kill() from - * userland and the real thread doesn't actually matter. + * for SIGXCPU, SIGILL, etc. Otherwise someone did a kill() from + * userland, if current thread can handle the signal, it should + * get the signal. */ - if ((prop & SA_PROC) != 0 && curthread->td_proc == p) + if (curthread->td_proc == p && !SIGISMEMBER(curthread->td_sigmask, sig)) return (curthread); /* ==== //depot/projects/ia64/usr.bin/xinstall/xinstall.c#15 (text+ko) ==== @@ -44,7 +44,7 @@ #endif #include -__FBSDID("$FreeBSD: src/usr.bin/xinstall/xinstall.c,v 1.61 2002/11/30 23:12:59 fenner Exp $"); +__FBSDID("$FreeBSD: src/usr.bin/xinstall/xinstall.c,v 1.62 2003/07/11 20:51:16 phk Exp $"); #include #include @@ -97,7 +97,7 @@ u_long numeric_id(const char *, const char *); void strip(const char *); int trymmap(int); -void usage(void); +void usage(int); int main(int argc, char *argv[]) @@ -165,18 +165,18 @@ break; case '?': default: - usage(); + usage(__LINE__); } argc -= optind; argv += optind; /* some options make no sense when creating directories */ if (dostrip && dodir) - usage(); + usage(__LINE__); /* must have at least two arguments, except when creating directories */ if (argc < 2 && !dodir) - usage(); + usage(__LINE__); /* need to make a temp copy so we can compare stripped version */ if (docompare && dostrip) @@ -216,7 +216,7 @@ /* can't do file1 file2 directory/file */ if (argc != 2) - usage(); + usage(__LINE__); if (!no_target) { if (stat(*argv, &from_sb)) @@ -757,14 +757,15 @@ * print a usage message and die */ void -usage(void) +usage(int line) { - (void)fprintf(stderr, "\ -usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]\n\ - [-o owner] file1 file2\n\ - install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]\n\ - [-o owner] file1 ... fileN directory\n\ - install -d [-v] [-g group] [-m mode] [-o owner] directory ...\n"); + (void)fprintf(stderr, "line %d\n" +"usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]\n" +" [-o owner] file1 file2\n" +" install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]\n" +" [-o owner] file1 ... fileN directory\n" +" install -d [-v] [-g group] [-m mode] [-o owner] directory ...\n", + line); exit(EX_USAGE); /* NOTREACHED */ } ==== //depot/projects/ia64/usr.sbin/rarpd/Makefile#2 (text+ko) ==== @@ -1,12 +1,11 @@ # from: @(#)Makefile 5.8 (Berkeley) 7/28/90 -# $FreeBSD: src/usr.sbin/rarpd/Makefile,v 1.12 2001/07/20 06:20:16 obrien Exp $ +# $FreeBSD: src/usr.sbin/rarpd/Makefile,v 1.14 2003/07/11 17:15:19 mux Exp $ PROG= rarpd MAN= rarpd.8 -WARNS?= 2 +WARNS?= 3 # This breaks with format strings returned by expand_syslog_m().. argh! #FORMAT_AUDIT?= 1 -CFLAGS+= -DTFTP_DIR=\"/tftpboot\" .include ==== //depot/projects/ia64/usr.sbin/rarpd/rarpd.c#7 (text+ko) ==== @@ -27,7 +27,7 @@ #endif /* not lint */ #endif #include -__FBSDID("$FreeBSD: src/usr.sbin/rarpd/rarpd.c,v 1.35 2003/06/15 03:00:22 jmg Exp $"); +__FBSDID("$FreeBSD: src/usr.sbin/rarpd/rarpd.c,v 1.37 2003/07/11 14:20:50 mux Exp $"); /* * rarpd - Reverse ARP Daemon @@ -56,7 +56,9 @@ #include +#include #include +#include #include #include #include @@ -65,16 +67,6 @@ #include #include -#if defined(SUNOS4) || defined(__FreeBSD__) /* XXX */ -#define HAVE_DIRENT_H -#endif - -#ifdef HAVE_DIRENT_H -#include -#else -#include -#endif - /* Cast a struct sockaddr to a structaddr_in */ #define SATOSIN(sa) ((struct sockaddr_in *)(sa)) @@ -82,42 +74,20 @@ #define TFTP_DIR "/tftpboot" #endif -#if BSD >= 199200 #define ARPSECS (20 * 60) /* as per code in netinet/if_ether.c */ #define REVARP_REQUEST ARPOP_REVREQUEST #define REVARP_REPLY ARPOP_REVREPLY -#endif - -#ifndef ETHERTYPE_REVARP -#define ETHERTYPE_REVARP 0x8035 -#define REVARP_REQUEST 3 -#define REVARP_REPLY 4 -#endif - -/* - * Map field names in ether_arp struct. What a pain in the neck. - */ -#ifdef SUNOS3 -#undef arp_sha -#undef arp_spa -#undef arp_tha -#undef arp_tpa -#define arp_sha arp_xsha -#define arp_spa arp_xspa -#define arp_tha arp_xtha -#define arp_tpa arp_xtpa -#endif /* * The structure for each interface. */ struct if_info { - struct if_info *ii_next; - int ii_fd; /* BPF file descriptor */ - in_addr_t ii_ipaddr; /* IP address of this interface */ - in_addr_t ii_netmask; /* subnet or net mask */ - u_char ii_eaddr[6]; /* Ethernet address of this interface */ - char ii_ifname[sizeof(((struct ifreq *)0)->ifr_name) + 1]; + struct if_info *ii_next; + int ii_fd; /* BPF file descriptor */ + in_addr_t ii_ipaddr; /* IP address */ + in_addr_t ii_netmask; /* subnet or net mask */ + u_char ii_eaddr[ETHER_ADDR_LEN]; /* ethernet address */ + char ii_ifname[IF_NAMESIZE]; }; /* @@ -127,7 +97,6 @@ struct if_info *iflist; int verbose; /* verbose messages */ -int s; /* inet datagram socket */ const char *tftp_dir = TFTP_DIR; /* tftp directory */ int dflag; /* messages to stdout/stderr, not syslog(3) */ @@ -140,7 +109,7 @@ static char *eatoa(u_char *); static int expand_syslog_m(const char *fmt, char **newfmt); static void init(char *); -static void init_one(struct ifreq *, char *); +static void init_one(struct ifaddrs *, char *); static char *intoa(in_addr_t); static in_addr_t ipaddrtonetmask(in_addr_t); static void logmsg(int, const char *, ...) __printflike(2, 3); @@ -230,48 +199,32 @@ /* * Add to the interface list. */ -void -init_one(struct ifreq *ifrp, char *target) +static void +init_one(struct ifaddrs *ifa, char *target) { struct if_info *ii; struct sockaddr_dl *ll; int family; - struct ifreq ifr; - family = ifrp->ifr_addr.sa_family; + family = ifa->ifa_addr->sa_family; switch (family) { - case AF_INET: -#if BSD >= 199100 case AF_LINK: -#endif - (void)strncpy(ifr.ifr_name, ifrp->ifr_name, - sizeof(ifrp->ifr_name)); - if (ioctl(s, SIOCGIFFLAGS, (char *)&ifr) == -1) { - logmsg(LOG_ERR, - "SIOCGIFFLAGS: %.*s: %m", - (int)sizeof(ifrp->ifr_name), ifrp->ifr_name); - exit(1); - } - if ((ifr.ifr_flags & IFF_UP) == 0 || - (ifr.ifr_flags & (IFF_LOOPBACK | IFF_POINTOPOINT)) != 0) + if (!(ifa->ifa_flags & IFF_UP) || + (ifa->ifa_flags & (IFF_LOOPBACK | IFF_POINTOPOINT))) return; break; - - default: return; } /* Don't bother going any further if not the target interface */ - if (target != NULL && - strncmp(ifrp->ifr_name, target, sizeof(ifrp->ifr_name)) != 0) + if (target != NULL && strcmp(ifa->ifa_name, target) != 0) return; /* Look for interface in list */ for (ii = iflist; ii != NULL; ii = ii->ii_next) - if (strncmp(ifrp->ifr_name, ii->ii_ifname, - sizeof(ifrp->ifr_name)) == 0) + if (strcmp(ifa->ifa_name, ii->ii_ifname) == 0) break; /* Allocate a new one if not found */ @@ -283,92 +236,49 @@ } bzero(ii, sizeof(*ii)); ii->ii_fd = -1; - (void)strncpy(ii->ii_ifname, ifrp->ifr_name, - sizeof(ifrp->ifr_name)); - ii->ii_ifname[sizeof(ii->ii_ifname) - 1] = '\0'; + strlcpy(ii->ii_ifname, ifa->ifa_name, sizeof(ii->ii_ifname)); ii->ii_next = iflist; iflist = ii; } switch (family) { - case AF_INET: - if (ioctl(s, SIOCGIFADDR, (char *)&ifr) == -1) { - logmsg(LOG_ERR, "ipaddr SIOCGIFADDR: %s: %m", - ii->ii_ifname); - exit(1); - } - ii->ii_ipaddr = SATOSIN(&ifr.ifr_addr)->sin_addr.s_addr; - if (ioctl(s, SIOCGIFNETMASK, (char *)&ifr) == -1) { - logmsg(LOG_ERR, "SIOCGIFNETMASK: %m"); - exit(1); - } - ii->ii_netmask = SATOSIN(&ifr.ifr_addr)->sin_addr.s_addr; + ii->ii_ipaddr = SATOSIN(ifa->ifa_addr)->sin_addr.s_addr; + ii->ii_netmask = SATOSIN(ifa->ifa_netmask)->sin_addr.s_addr; if (ii->ii_netmask == 0) ii->ii_netmask = ipaddrtonetmask(ii->ii_ipaddr); - if (ii->ii_fd < 0) { + if (ii->ii_fd < 0) ii->ii_fd = rarp_open(ii->ii_ifname); -#if BSD < 199100 - /* Use BPF descriptor to get ethernet address. */ - if (ioctl(ii->ii_fd, SIOCGIFADDR, (char *)&ifr) == -1) { - logmsg(LOG_ERR, "eaddr SIOCGIFADDR: %s: %m", - ii->ii_ifname); - exit(1); - } - bcopy(&ifr.ifr_addr.sa_data[0], ii->ii_eaddr, 6); -#endif - } break; -#if BSD >= 199100 - case AF_LINK: - ll = (struct sockaddr_dl *)&ifrp->ifr_addr; - if (ll->sdl_type == IFT_ETHER) - bcopy(LLADDR(ll), ii->ii_eaddr, 6); - break; -#endif - } + case AF_LINK: + ll = (struct sockaddr_dl *)ifa->ifa_addr; + if (ll->sdl_type == IFT_ETHER) + bcopy(LLADDR(ll), ii->ii_eaddr, 6); + break; + } } /* * Initialize all "candidate" interfaces that are in the system * configuration list. A "candidate" is up, not loopback and not * point to point. */ -void +static void init(char *target) { - u_int n; - struct ifreq *ifrp, *ifend; struct if_info *ii, *nii, *lii; - struct ifconf ifc; - struct ifreq ibuf[16]; + struct ifaddrs *ifhead, *ifa; + int error; - if ((s = socket(AF_INET, SOCK_DGRAM, 0)) == -1) { - logmsg(LOG_ERR, "socket: %m"); + error = getifaddrs(&ifhead); + if (error) { + logmsg(LOG_ERR, "getifaddrs: %m"); exit(1); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Jul 11 20:07:03 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 84A8637B404; Fri, 11 Jul 2003 20:07:02 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0CB0A37B401 for ; Fri, 11 Jul 2003 20:07:02 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id EBC8243F93 for ; Fri, 11 Jul 2003 20:06:59 -0700 (PDT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h6C36x0U095313 for ; Fri, 11 Jul 2003 20:06:59 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h6C36SAU095308 for perforce@freebsd.org; Fri, 11 Jul 2003 20:06:28 -0700 (PDT) Date: Fri, 11 Jul 2003 20:06:28 -0700 (PDT) Message-Id: <200307120306.h6C36SAU095308@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Subject: PERFORCE change 34389 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jul 2003 03:07:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=34389 Change 34389 by peter@peter_daintree on 2003/07/11 20:05:48 IFC @34387 Affected files ... .. //depot/projects/hammer/Makefile.inc1#24 integrate .. //depot/projects/hammer/UPDATING#13 integrate .. //depot/projects/hammer/bin/csh/Makefile#5 integrate .. //depot/projects/hammer/bin/ls/ls.1#7 integrate .. //depot/projects/hammer/contrib/cpio/copypass.c#2 integrate .. //depot/projects/hammer/contrib/gcc/ChangeLog#6 integrate .. //depot/projects/hammer/contrib/gcc/ChangeLog.0#2 integrate .. //depot/projects/hammer/contrib/gcc/ChangeLog.1#2 integrate .. //depot/projects/hammer/contrib/gcc/ChangeLog.2#2 integrate .. //depot/projects/hammer/contrib/gcc/ChangeLog.3#2 integrate .. //depot/projects/hammer/contrib/gcc/ChangeLog.4#2 integrate .. //depot/projects/hammer/contrib/gcc/ChangeLog.5#2 integrate .. //depot/projects/hammer/contrib/gcc/ChangeLog.6#2 integrate .. //depot/projects/hammer/contrib/gcc/ChangeLog.7#1 branch .. //depot/projects/hammer/contrib/gcc/FSFChangeLog.10#2 integrate .. //depot/projects/hammer/contrib/gcc/FSFChangeLog.11#2 integrate .. //depot/projects/hammer/contrib/gcc/LANGUAGES#2 integrate .. //depot/projects/hammer/contrib/gcc/Makefile.in#6 integrate .. //depot/projects/hammer/contrib/gcc/ONEWS#2 integrate .. //depot/projects/hammer/contrib/gcc/README.Portability#2 integrate .. //depot/projects/hammer/contrib/gcc/aclocal.m4#2 integrate .. //depot/projects/hammer/contrib/gcc/alias.c#4 integrate .. //depot/projects/hammer/contrib/gcc/ansidecl.h#2 integrate .. //depot/projects/hammer/contrib/gcc/attribs.c#3 integrate .. //depot/projects/hammer/contrib/gcc/basic-block.h#3 integrate .. //depot/projects/hammer/contrib/gcc/bb-reorder.c#3 integrate .. //depot/projects/hammer/contrib/gcc/bitmap.c#3 integrate .. //depot/projects/hammer/contrib/gcc/bitmap.h#2 integrate .. //depot/projects/hammer/contrib/gcc/builtin-attrs.def#2 integrate .. //depot/projects/hammer/contrib/gcc/builtin-types.def#3 integrate .. //depot/projects/hammer/contrib/gcc/builtins.c#4 integrate .. //depot/projects/hammer/contrib/gcc/builtins.def#2 integrate .. //depot/projects/hammer/contrib/gcc/c-aux-info.c#2 integrate .. //depot/projects/hammer/contrib/gcc/c-common.c#4 integrate .. //depot/projects/hammer/contrib/gcc/c-common.def#2 integrate .. //depot/projects/hammer/contrib/gcc/c-common.h#4 integrate .. //depot/projects/hammer/contrib/gcc/c-config-lang.in#1 branch .. //depot/projects/hammer/contrib/gcc/c-convert.c#2 integrate .. //depot/projects/hammer/contrib/gcc/c-decl.c#5 integrate .. //depot/projects/hammer/contrib/gcc/c-dump.c#1 branch .. //depot/projects/hammer/contrib/gcc/c-errors.c#2 integrate .. //depot/projects/hammer/contrib/gcc/c-format.c#4 integrate .. //depot/projects/hammer/contrib/gcc/c-lang.c#3 integrate .. //depot/projects/hammer/contrib/gcc/c-lex.c#3 integrate .. //depot/projects/hammer/contrib/gcc/c-objc-common.c#4 integrate .. //depot/projects/hammer/contrib/gcc/c-opts.c#1 branch .. //depot/projects/hammer/contrib/gcc/c-parse.in#4 integrate .. //depot/projects/hammer/contrib/gcc/c-pragma.c#3 integrate .. //depot/projects/hammer/contrib/gcc/c-pragma.h#2 integrate .. //depot/projects/hammer/contrib/gcc/c-pretty-print.c#1 branch .. //depot/projects/hammer/contrib/gcc/c-pretty-print.h#1 branch .. //depot/projects/hammer/contrib/gcc/c-semantics.c#3 integrate .. //depot/projects/hammer/contrib/gcc/c-tree.h#4 integrate .. //depot/projects/hammer/contrib/gcc/c-typeck.c#4 integrate .. //depot/projects/hammer/contrib/gcc/caller-save.c#2 integrate .. //depot/projects/hammer/contrib/gcc/calls.c#5 integrate .. //depot/projects/hammer/contrib/gcc/cfg.c#2 integrate .. //depot/projects/hammer/contrib/gcc/cfganal.c#3 integrate .. //depot/projects/hammer/contrib/gcc/cfgbuild.c#3 integrate .. //depot/projects/hammer/contrib/gcc/cfgcleanup.c#4 integrate .. //depot/projects/hammer/contrib/gcc/cfglayout.c#2 integrate .. //depot/projects/hammer/contrib/gcc/cfglayout.h#2 integrate .. //depot/projects/hammer/contrib/gcc/cfgloop.c#2 integrate .. //depot/projects/hammer/contrib/gcc/cfgrtl.c#4 integrate .. //depot/projects/hammer/contrib/gcc/collect2.c#3 integrate .. //depot/projects/hammer/contrib/gcc/collect2.h#2 integrate .. //depot/projects/hammer/contrib/gcc/combine.c#4 integrate .. //depot/projects/hammer/contrib/gcc/config.gcc#4 integrate .. //depot/projects/hammer/contrib/gcc/config.in#3 integrate .. //depot/projects/hammer/contrib/gcc/config/alpha/alpha-interix.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/alpha/alpha-protos.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/alpha/alpha.c#4 integrate .. //depot/projects/hammer/contrib/gcc/config/alpha/alpha.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/alpha/alpha.md#3 integrate .. //depot/projects/hammer/contrib/gcc/config/alpha/elf.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/alpha/ev4.md#1 branch .. //depot/projects/hammer/contrib/gcc/config/alpha/ev5.md#1 branch .. //depot/projects/hammer/contrib/gcc/config/alpha/ev6.md#1 branch .. //depot/projects/hammer/contrib/gcc/config/alpha/freebsd.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/alpha/gnu.h#1 branch .. //depot/projects/hammer/contrib/gcc/config/alpha/linux-elf.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/alpha/linux.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/alpha/netbsd.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/alpha/openbsd.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/alpha/osf.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/alpha/osf5.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/alpha/t-crtfm#2 integrate .. //depot/projects/hammer/contrib/gcc/config/alpha/unicosmk.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/alpha/vms-cc.c#2 integrate .. //depot/projects/hammer/contrib/gcc/config/alpha/vms-crt0-64.c#2 integrate .. //depot/projects/hammer/contrib/gcc/config/alpha/vms-crt0.c#2 integrate .. //depot/projects/hammer/contrib/gcc/config/alpha/vms-ld.c#2 integrate .. //depot/projects/hammer/contrib/gcc/config/alpha/vms-psxcrt0-64.c#2 integrate .. //depot/projects/hammer/contrib/gcc/config/alpha/vms-psxcrt0.c#2 integrate .. //depot/projects/hammer/contrib/gcc/config/alpha/vms.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/alpha/vxworks.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/arm/README-interworking#2 integrate .. //depot/projects/hammer/contrib/gcc/config/arm/aof.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/arm/aout.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/arm/arm-modes.def#1 branch .. //depot/projects/hammer/contrib/gcc/config/arm/arm-protos.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/arm/arm.c#4 integrate .. //depot/projects/hammer/contrib/gcc/config/arm/arm.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/arm/arm.md#4 integrate .. //depot/projects/hammer/contrib/gcc/config/arm/coff.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/arm/conix-elf.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/arm/crti.asm#2 integrate .. //depot/projects/hammer/contrib/gcc/config/arm/crtn.asm#2 integrate .. //depot/projects/hammer/contrib/gcc/config/arm/elf.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/arm/freebsd.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/arm/linux-elf.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/arm/linux-gas.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/arm/netbsd-elf.h#1 branch .. //depot/projects/hammer/contrib/gcc/config/arm/netbsd.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/arm/pe.c#2 integrate .. //depot/projects/hammer/contrib/gcc/config/arm/pe.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/arm/rtems-elf.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/arm/semi.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/arm/semiaof.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/arm/t-arm-elf#2 integrate .. //depot/projects/hammer/contrib/gcc/config/arm/t-pe#2 integrate .. //depot/projects/hammer/contrib/gcc/config/arm/unknown-elf-oabi.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/arm/unknown-elf.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/arm/vxarm.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/arm/xscale-coff.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/arm/xscale-elf.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/darwin-c.c#2 integrate .. //depot/projects/hammer/contrib/gcc/config/darwin-crt2.c#1 branch .. //depot/projects/hammer/contrib/gcc/config/darwin-protos.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/darwin.c#2 integrate .. //depot/projects/hammer/contrib/gcc/config/darwin.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/dbx.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/dbxcoff.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/dbxelf.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/elfos.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/fp-bit.c#2 integrate .. //depot/projects/hammer/contrib/gcc/config/fp-bit.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/freebsd-spec.h#5 integrate .. //depot/projects/hammer/contrib/gcc/config/freebsd.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/frv/cmovd.c#1 branch .. //depot/projects/hammer/contrib/gcc/config/frv/cmovh.c#1 branch .. //depot/projects/hammer/contrib/gcc/config/frv/cmovw.c#1 branch .. //depot/projects/hammer/contrib/gcc/config/frv/frv-abi.h#1 branch .. //depot/projects/hammer/contrib/gcc/config/frv/frv-asm.h#1 branch .. //depot/projects/hammer/contrib/gcc/config/frv/frv-modes.def#1 branch .. //depot/projects/hammer/contrib/gcc/config/frv/frv-protos.h#1 branch .. //depot/projects/hammer/contrib/gcc/config/frv/frv.c#1 branch .. //depot/projects/hammer/contrib/gcc/config/frv/frv.h#1 branch .. //depot/projects/hammer/contrib/gcc/config/frv/frv.md#1 branch .. //depot/projects/hammer/contrib/gcc/config/frv/frvbegin.c#1 branch .. //depot/projects/hammer/contrib/gcc/config/frv/frvend.c#1 branch .. //depot/projects/hammer/contrib/gcc/config/frv/lib1funcs.asm#1 branch .. //depot/projects/hammer/contrib/gcc/config/frv/modi.c#1 branch .. //depot/projects/hammer/contrib/gcc/config/frv/t-frv#1 branch .. //depot/projects/hammer/contrib/gcc/config/frv/uitod.c#1 branch .. //depot/projects/hammer/contrib/gcc/config/frv/uitof.c#1 branch .. //depot/projects/hammer/contrib/gcc/config/frv/ulltod.c#1 branch .. //depot/projects/hammer/contrib/gcc/config/frv/ulltof.c#1 branch .. //depot/projects/hammer/contrib/gcc/config/frv/umodi.c#1 branch .. //depot/projects/hammer/contrib/gcc/config/gnu.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/gofast.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/athlon.md#1 branch .. //depot/projects/hammer/contrib/gcc/config/i386/att.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/beos-elf.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/biarch64.h#4 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/bsd.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/crtdll.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/cygwin.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/darwin.h#1 branch .. //depot/projects/hammer/contrib/gcc/config/i386/djgpp.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/freebsd-aout.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/freebsd.h#6 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/freebsd64.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/gas.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/gnu.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/gstabs.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/gthr-win32.c#1 branch .. //depot/projects/hammer/contrib/gcc/config/i386/i386-aout.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/i386-coff.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/i386-interix.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/i386-interix3.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/i386-modes.def#1 branch .. //depot/projects/hammer/contrib/gcc/config/i386/i386-protos.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/i386.c#8 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/i386.h#6 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/i386.md#4 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/i386elf.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/k6.md#1 branch .. //depot/projects/hammer/contrib/gcc/config/i386/linux-aout.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/linux.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/linux64.h#5 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/lynx-ng.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/lynx.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/mach.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/mingw32.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/mmintrin.h#4 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/moss.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/netbsd-elf.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/netbsd.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/netbsd64.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/openbsd.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/pentium.md#1 branch .. //depot/projects/hammer/contrib/gcc/config/i386/ppro.md#1 branch .. //depot/projects/hammer/contrib/gcc/config/i386/ptx4-i.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/rtemself.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/sco5.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/sol2.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/svr3dbx.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/svr3gas.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/sysv3.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/sysv4-cpp.h#1 branch .. //depot/projects/hammer/contrib/gcc/config/i386/sysv4.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/sysv5.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/t-cygwin#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/t-interix#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/t-linux64#3 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/t-mingw32#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/t-sco5gas#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/unix.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/uwin.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/vsta.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/vxi386.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/win32.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/winnt.c#3 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/x86-64.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/xm-vsta.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/i386/xmmintrin.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/ia64/aix.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/ia64/crtbegin.asm#2 integrate .. //depot/projects/hammer/contrib/gcc/config/ia64/crtend.asm#2 integrate .. //depot/projects/hammer/contrib/gcc/config/ia64/elf.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/ia64/freebsd.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/ia64/hpux.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/ia64/hpux_longdouble.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/ia64/ia64-c.c#1 branch .. //depot/projects/hammer/contrib/gcc/config/ia64/ia64-modes.def#1 branch .. //depot/projects/hammer/contrib/gcc/config/ia64/ia64-protos.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/ia64/ia64.c#2 integrate .. //depot/projects/hammer/contrib/gcc/config/ia64/ia64.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/ia64/ia64.md#2 integrate .. //depot/projects/hammer/contrib/gcc/config/ia64/linux.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/ia64/quadlib.c#2 integrate .. //depot/projects/hammer/contrib/gcc/config/ia64/sysv4.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/ia64/t-aix#2 integrate .. //depot/projects/hammer/contrib/gcc/config/ia64/t-hpux#2 integrate .. //depot/projects/hammer/contrib/gcc/config/ia64/t-ia64#2 integrate .. //depot/projects/hammer/contrib/gcc/config/ia64/unwind-ia64.c#2 integrate .. //depot/projects/hammer/contrib/gcc/config/interix.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/libgloss.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/linux-aout.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/linux.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/lynx-ng.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/lynx.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/netbsd-aout.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/netbsd-elf.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/netbsd.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/openbsd-oldgas.h#1 branch .. //depot/projects/hammer/contrib/gcc/config/openbsd.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/psos.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/ptx4.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/aix.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/aix31.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/aix41.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/aix43.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/aix51.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/aix52.h#1 branch .. //depot/projects/hammer/contrib/gcc/config/rs6000/altivec.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/altivec.md#1 branch .. //depot/projects/hammer/contrib/gcc/config/rs6000/beos.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/darwin-tramp.asm#2 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/darwin.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/eabi.asm#2 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/eabi.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/eabiaix.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/eabisim.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/eabispe.h#1 branch .. //depot/projects/hammer/contrib/gcc/config/rs6000/freebsd.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/gnu.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/linux.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/linux64.h#4 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/lynx.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/mach.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/netbsd.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/ppc-asm.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/ppc64-fp.c#1 branch .. //depot/projects/hammer/contrib/gcc/config/rs6000/rs6000-c.c#1 branch .. //depot/projects/hammer/contrib/gcc/config/rs6000/rs6000-modes.def#1 branch .. //depot/projects/hammer/contrib/gcc/config/rs6000/rs6000-protos.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/rs6000.c#5 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/rs6000.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/rs6000.md#6 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/rtems.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/spe.h#1 branch .. //depot/projects/hammer/contrib/gcc/config/rs6000/spe.md#1 branch .. //depot/projects/hammer/contrib/gcc/config/rs6000/sysv4.h#6 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/sysv4le.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/t-aix43#3 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/t-aix52#1 branch .. //depot/projects/hammer/contrib/gcc/config/rs6000/t-darwin#2 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/t-linux64#2 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/t-netbsd#1 branch .. //depot/projects/hammer/contrib/gcc/config/rs6000/t-ppccomm#2 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/t-ppcendian#1 branch .. //depot/projects/hammer/contrib/gcc/config/rs6000/t-rs6000-c-rule#1 branch .. //depot/projects/hammer/contrib/gcc/config/rs6000/vxppc.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/windiss.h#1 branch .. //depot/projects/hammer/contrib/gcc/config/rs6000/xcoff.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/s390/fixdfdi.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/s390/libgcc-glibc.ver#2 integrate .. //depot/projects/hammer/contrib/gcc/config/s390/linux.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/s390/s390-modes.def#1 branch .. //depot/projects/hammer/contrib/gcc/config/s390/s390-protos.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/s390/s390.c#2 integrate .. //depot/projects/hammer/contrib/gcc/config/s390/s390.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/s390/s390.md#2 integrate .. //depot/projects/hammer/contrib/gcc/config/s390/t-crtstuff#1 branch .. //depot/projects/hammer/contrib/gcc/config/s390/t-linux64#2 integrate .. //depot/projects/hammer/contrib/gcc/config/sol2.h#1 branch .. //depot/projects/hammer/contrib/gcc/config/sparc/aout.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/sparc/cypress.md#1 branch .. //depot/projects/hammer/contrib/gcc/config/sparc/freebsd.h#5 integrate .. //depot/projects/hammer/contrib/gcc/config/sparc/gmon-sol2.c#2 integrate .. //depot/projects/hammer/contrib/gcc/config/sparc/hypersparc.md#1 branch .. //depot/projects/hammer/contrib/gcc/config/sparc/lb1spc.asm#2 integrate .. //depot/projects/hammer/contrib/gcc/config/sparc/lb1spl.asm#2 integrate .. //depot/projects/hammer/contrib/gcc/config/sparc/linux-aout.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/sparc/linux.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/sparc/linux64.h#4 integrate .. //depot/projects/hammer/contrib/gcc/config/sparc/litecoff.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/sparc/liteelf.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/sparc/lynx.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/sparc/netbsd-elf.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/sparc/netbsd.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/sparc/openbsd.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/sparc/pbd.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/sparc/sol2-bi.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/sparc/sol2.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/sparc/sol26-sld.h#1 branch .. //depot/projects/hammer/contrib/gcc/config/sparc/sp64-elf.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/sparc/sp86x-elf.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/sparc/sparc-modes.def#1 branch .. //depot/projects/hammer/contrib/gcc/config/sparc/sparc-protos.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/sparc/sparc.c#4 integrate .. //depot/projects/hammer/contrib/gcc/config/sparc/sparc.h#3 integrate .. //depot/projects/hammer/contrib/gcc/config/sparc/sparc.md#3 integrate .. //depot/projects/hammer/contrib/gcc/config/sparc/sparclet.md#1 branch .. //depot/projects/hammer/contrib/gcc/config/sparc/sunos4.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/sparc/supersparc.md#1 branch .. //depot/projects/hammer/contrib/gcc/config/sparc/sysv4.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/sparc/ultra1_2.md#1 branch .. //depot/projects/hammer/contrib/gcc/config/sparc/ultra3.md#1 branch .. //depot/projects/hammer/contrib/gcc/config/sparc/vxsim.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/sparc/vxsparc64.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/svr3.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/svr4.h#2 integrate .. //depot/projects/hammer/contrib/gcc/config/t-darwin#1 branch .. //depot/projects/hammer/contrib/gcc/config/t-libc-ok#2 integrate .. //depot/projects/hammer/contrib/gcc/config/t-linux#2 integrate .. //depot/projects/hammer/contrib/gcc/config/t-linux-gnulibc1#2 integrate .. //depot/projects/hammer/contrib/gcc/config/t-netbsd#2 integrate .. //depot/projects/hammer/contrib/gcc/configure#5 integrate .. //depot/projects/hammer/contrib/gcc/configure.in#5 integrate .. //depot/projects/hammer/contrib/gcc/conflict.c#2 integrate .. //depot/projects/hammer/contrib/gcc/convert.c#3 integrate .. //depot/projects/hammer/contrib/gcc/cp-demangle.c#3 integrate .. //depot/projects/hammer/contrib/gcc/cp/ChangeLog#6 integrate .. //depot/projects/hammer/contrib/gcc/cp/ChangeLog.1#2 integrate .. //depot/projects/hammer/contrib/gcc/cp/ChangeLog.2#2 integrate .. //depot/projects/hammer/contrib/gcc/cp/Make-lang.in#4 integrate .. //depot/projects/hammer/contrib/gcc/cp/NEWS#3 integrate .. //depot/projects/hammer/contrib/gcc/cp/call.c#3 integrate .. //depot/projects/hammer/contrib/gcc/cp/cfns.gperf#2 integrate .. //depot/projects/hammer/contrib/gcc/cp/class.c#4 integrate .. //depot/projects/hammer/contrib/gcc/cp/config-lang.in#2 integrate .. //depot/projects/hammer/contrib/gcc/cp/cp-lang.c#5 integrate .. //depot/projects/hammer/contrib/gcc/cp/cp-tree.def#2 integrate .. //depot/projects/hammer/contrib/gcc/cp/cp-tree.h#5 integrate .. //depot/projects/hammer/contrib/gcc/cp/cvt.c#4 integrate .. //depot/projects/hammer/contrib/gcc/cp/decl.c#6 integrate .. //depot/projects/hammer/contrib/gcc/cp/decl.h#2 integrate .. //depot/projects/hammer/contrib/gcc/cp/decl2.c#6 integrate .. //depot/projects/hammer/contrib/gcc/cp/dump.c#2 integrate .. //depot/projects/hammer/contrib/gcc/cp/error.c#4 integrate .. //depot/projects/hammer/contrib/gcc/cp/except.c#3 integrate .. //depot/projects/hammer/contrib/gcc/cp/expr.c#2 integrate .. //depot/projects/hammer/contrib/gcc/cp/friend.c#2 integrate .. //depot/projects/hammer/contrib/gcc/cp/g++spec.c#2 integrate .. //depot/projects/hammer/contrib/gcc/cp/init.c#5 integrate .. //depot/projects/hammer/contrib/gcc/cp/lang-options.h#2 integrate .. //depot/projects/hammer/contrib/gcc/cp/lang-specs.h#3 integrate .. //depot/projects/hammer/contrib/gcc/cp/lex.c#4 integrate .. //depot/projects/hammer/contrib/gcc/cp/lex.h#2 integrate .. //depot/projects/hammer/contrib/gcc/cp/mangle.c#4 integrate .. //depot/projects/hammer/contrib/gcc/cp/method.c#3 integrate .. //depot/projects/hammer/contrib/gcc/cp/operators.def#4 integrate .. //depot/projects/hammer/contrib/gcc/cp/optimize.c#2 integrate .. //depot/projects/hammer/contrib/gcc/cp/parse.y#4 integrate .. //depot/projects/hammer/contrib/gcc/cp/pt.c#5 integrate .. //depot/projects/hammer/contrib/gcc/cp/ptree.c#2 integrate .. //depot/projects/hammer/contrib/gcc/cp/repo.c#2 integrate .. //depot/projects/hammer/contrib/gcc/cp/rtti.c#4 integrate .. //depot/projects/hammer/contrib/gcc/cp/search.c#4 integrate .. //depot/projects/hammer/contrib/gcc/cp/semantics.c#3 integrate .. //depot/projects/hammer/contrib/gcc/cp/spew.c#3 integrate .. //depot/projects/hammer/contrib/gcc/cp/tree.c#4 integrate .. //depot/projects/hammer/contrib/gcc/cp/typeck.c#4 integrate .. //depot/projects/hammer/contrib/gcc/cp/typeck2.c#4 integrate .. //depot/projects/hammer/contrib/gcc/cplus-dem.c#2 integrate .. //depot/projects/hammer/contrib/gcc/cppdefault.h#2 integrate .. //depot/projects/hammer/contrib/gcc/cpperror.c#2 integrate .. //depot/projects/hammer/contrib/gcc/cppexp.c#2 integrate .. //depot/projects/hammer/contrib/gcc/cppfiles.c#3 integrate .. //depot/projects/hammer/contrib/gcc/cpphash.c#2 integrate .. //depot/projects/hammer/contrib/gcc/cpphash.h#2 integrate .. //depot/projects/hammer/contrib/gcc/cppinit.c#4 integrate .. //depot/projects/hammer/contrib/gcc/cpplex.c#2 integrate .. //depot/projects/hammer/contrib/gcc/cpplib.c#5 integrate .. //depot/projects/hammer/contrib/gcc/cpplib.h#3 integrate .. //depot/projects/hammer/contrib/gcc/cppmacro.c#4 integrate .. //depot/projects/hammer/contrib/gcc/cppmain.c#2 integrate .. //depot/projects/hammer/contrib/gcc/cppspec.c#2 integrate .. //depot/projects/hammer/contrib/gcc/cpptrad.c#1 branch .. //depot/projects/hammer/contrib/gcc/crtstuff.c#2 integrate .. //depot/projects/hammer/contrib/gcc/cse.c#3 integrate .. //depot/projects/hammer/contrib/gcc/cselib.c#3 integrate .. //depot/projects/hammer/contrib/gcc/cselib.h#2 integrate .. //depot/projects/hammer/contrib/gcc/dbxout.c#4 integrate .. //depot/projects/hammer/contrib/gcc/debug.c#2 integrate .. //depot/projects/hammer/contrib/gcc/debug.h#2 integrate .. //depot/projects/hammer/contrib/gcc/defaults.h#3 integrate .. //depot/projects/hammer/contrib/gcc/demangle.h#2 integrate .. //depot/projects/hammer/contrib/gcc/df.c#2 integrate .. //depot/projects/hammer/contrib/gcc/df.h#2 integrate .. //depot/projects/hammer/contrib/gcc/diagnostic.c#2 integrate .. //depot/projects/hammer/contrib/gcc/diagnostic.def#2 integrate .. //depot/projects/hammer/contrib/gcc/diagnostic.h#2 integrate .. //depot/projects/hammer/contrib/gcc/doc/bugreport.texi#2 integrate .. //depot/projects/hammer/contrib/gcc/doc/c-tree.texi#3 integrate .. //depot/projects/hammer/contrib/gcc/doc/collect2.texi#2 integrate .. //depot/projects/hammer/contrib/gcc/doc/compat.texi#3 integrate .. //depot/projects/hammer/contrib/gcc/doc/contrib.texi#4 integrate .. //depot/projects/hammer/contrib/gcc/doc/cpp.texi#4 integrate .. //depot/projects/hammer/contrib/gcc/doc/cppenv.texi#3 integrate .. //depot/projects/hammer/contrib/gcc/doc/cppopts.texi#3 integrate .. //depot/projects/hammer/contrib/gcc/doc/extend.texi#4 integrate .. //depot/projects/hammer/contrib/gcc/doc/frontends.texi#2 integrate .. //depot/projects/hammer/contrib/gcc/doc/gcc.texi#4 integrate .. //depot/projects/hammer/contrib/gcc/doc/gccint.texi#2 integrate .. //depot/projects/hammer/contrib/gcc/doc/gcov.texi#3 integrate .. //depot/projects/hammer/contrib/gcc/doc/gty.texi#1 branch .. //depot/projects/hammer/contrib/gcc/doc/headerdirs.texi#2 integrate .. //depot/projects/hammer/contrib/gcc/doc/include/fdl.texi#2 integrate .. //depot/projects/hammer/contrib/gcc/doc/include/gcc-common.texi#4 integrate .. //depot/projects/hammer/contrib/gcc/doc/include/gpl.texi#2 integrate .. //depot/projects/hammer/contrib/gcc/doc/include/texinfo.tex#2 integrate .. //depot/projects/hammer/contrib/gcc/doc/interface.texi#2 integrate .. //depot/projects/hammer/contrib/gcc/doc/invoke.texi#6 integrate .. //depot/projects/hammer/contrib/gcc/doc/makefile.texi#3 integrate .. //depot/projects/hammer/contrib/gcc/doc/md.texi#3 integrate .. //depot/projects/hammer/contrib/gcc/doc/objc.texi#2 integrate .. //depot/projects/hammer/contrib/gcc/doc/passes.texi#3 integrate .. //depot/projects/hammer/contrib/gcc/doc/rtl.texi#3 integrate .. //depot/projects/hammer/contrib/gcc/doc/service.texi#2 integrate .. //depot/projects/hammer/contrib/gcc/doc/sourcebuild.texi#3 integrate .. //depot/projects/hammer/contrib/gcc/doc/standards.texi#3 integrate .. //depot/projects/hammer/contrib/gcc/doc/tm.texi#5 integrate .. //depot/projects/hammer/contrib/gcc/doc/trouble.texi#3 integrate .. //depot/projects/hammer/contrib/gcc/doloop.c#4 integrate .. //depot/projects/hammer/contrib/gcc/dominance.c#2 integrate .. //depot/projects/hammer/contrib/gcc/doschk.c#2 integrate .. //depot/projects/hammer/contrib/gcc/dummy-conditions.c#1 branch .. //depot/projects/hammer/contrib/gcc/dwarf2.h#2 integrate .. //depot/projects/hammer/contrib/gcc/dwarf2asm.c#2 integrate .. //depot/projects/hammer/contrib/gcc/dwarf2asm.h#2 integrate .. //depot/projects/hammer/contrib/gcc/dwarf2out.c#3 integrate .. //depot/projects/hammer/contrib/gcc/dwarf2out.h#2 integrate .. //depot/projects/hammer/contrib/gcc/dwarfout.c#4 integrate .. //depot/projects/hammer/contrib/gcc/emit-rtl.c#5 integrate .. //depot/projects/hammer/contrib/gcc/errors.h#2 integrate .. //depot/projects/hammer/contrib/gcc/et-forest.c#1 branch .. //depot/projects/hammer/contrib/gcc/et-forest.h#1 branch .. //depot/projects/hammer/contrib/gcc/except.c#2 integrate .. //depot/projects/hammer/contrib/gcc/except.h#2 integrate .. //depot/projects/hammer/contrib/gcc/explow.c#3 integrate .. //depot/projects/hammer/contrib/gcc/expmed.c#4 integrate .. //depot/projects/hammer/contrib/gcc/expr.c#5 integrate .. //depot/projects/hammer/contrib/gcc/expr.h#5 integrate .. //depot/projects/hammer/contrib/gcc/f/ChangeLog#5 integrate .. //depot/projects/hammer/contrib/gcc/f/ChangeLog.0#2 integrate .. //depot/projects/hammer/contrib/gcc/f/Make-lang.in#3 integrate .. //depot/projects/hammer/contrib/gcc/f/bad.c#2 integrate .. //depot/projects/hammer/contrib/gcc/f/bit.c#2 integrate .. //depot/projects/hammer/contrib/gcc/f/bld.c#2 integrate .. //depot/projects/hammer/contrib/gcc/f/bugs.texi#3 integrate .. //depot/projects/hammer/contrib/gcc/f/com.c#3 integrate .. //depot/projects/hammer/contrib/gcc/f/com.h#2 integrate .. //depot/projects/hammer/contrib/gcc/f/config-lang.in#2 integrate .. //depot/projects/hammer/contrib/gcc/f/data.c#2 integrate .. //depot/projects/hammer/contrib/gcc/f/expr.c#2 integrate .. //depot/projects/hammer/contrib/gcc/f/ffe.texi#2 integrate .. //depot/projects/hammer/contrib/gcc/f/g77.texi#2 integrate .. //depot/projects/hammer/contrib/gcc/f/g77spec.c#2 integrate .. //depot/projects/hammer/contrib/gcc/f/intdoc.in#2 integrate .. //depot/projects/hammer/contrib/gcc/f/intdoc.texi#2 integrate .. //depot/projects/hammer/contrib/gcc/f/invoke.texi#3 integrate .. //depot/projects/hammer/contrib/gcc/f/lang-specs.h#3 integrate .. //depot/projects/hammer/contrib/gcc/f/lex.c#2 integrate .. //depot/projects/hammer/contrib/gcc/f/news.texi#4 integrate .. //depot/projects/hammer/contrib/gcc/f/parse.c#2 integrate .. //depot/projects/hammer/contrib/gcc/f/root.texi#4 integrate .. //depot/projects/hammer/contrib/gcc/f/stc.c#2 integrate .. //depot/projects/hammer/contrib/gcc/f/std.c#2 integrate .. //depot/projects/hammer/contrib/gcc/f/ste.c#2 integrate .. //depot/projects/hammer/contrib/gcc/f/target.c#3 integrate .. //depot/projects/hammer/contrib/gcc/f/target.h#3 integrate .. //depot/projects/hammer/contrib/gcc/f/top.c#2 integrate .. //depot/projects/hammer/contrib/gcc/f/where.c#2 integrate .. //depot/projects/hammer/contrib/gcc/f/where.h#2 integrate .. //depot/projects/hammer/contrib/gcc/fibheap.c#2 integrate .. //depot/projects/hammer/contrib/gcc/fibheap.h#2 integrate .. //depot/projects/hammer/contrib/gcc/final.c#4 integrate .. //depot/projects/hammer/contrib/gcc/fix-header.c#2 integrate .. //depot/projects/hammer/contrib/gcc/fixproto#2 integrate .. //depot/projects/hammer/contrib/gcc/flags.h#4 integrate .. //depot/projects/hammer/contrib/gcc/flow.c#4 integrate .. //depot/projects/hammer/contrib/gcc/fold-const.c#4 integrate .. //depot/projects/hammer/contrib/gcc/function.c#4 integrate .. //depot/projects/hammer/contrib/gcc/function.h#2 integrate .. //depot/projects/hammer/contrib/gcc/gbl-ctors.h#2 integrate .. //depot/projects/hammer/contrib/gcc/gcc.c#5 integrate .. //depot/projects/hammer/contrib/gcc/gcc.h#2 integrate .. //depot/projects/hammer/contrib/gcc/gccbug.in#2 integrate .. //depot/projects/hammer/contrib/gcc/gccspec.c#2 integrate .. //depot/projects/hammer/contrib/gcc/gcov-io.h#2 integrate .. //depot/projects/hammer/contrib/gcc/gcov.c#2 integrate .. //depot/projects/hammer/contrib/gcc/gcse.c#2 integrate .. //depot/projects/hammer/contrib/gcc/gdbinit.in#2 integrate .. //depot/projects/hammer/contrib/gcc/genattr.c#2 integrate .. //depot/projects/hammer/contrib/gcc/genattrtab.c#2 integrate .. //depot/projects/hammer/contrib/gcc/genattrtab.h#1 branch .. //depot/projects/hammer/contrib/gcc/genautomata.c#1 branch .. //depot/projects/hammer/contrib/gcc/gencodes.c#2 integrate .. //depot/projects/hammer/contrib/gcc/genconditions.c#1 branch .. //depot/projects/hammer/contrib/gcc/genconfig.c#2 integrate .. //depot/projects/hammer/contrib/gcc/genemit.c#2 integrate .. //depot/projects/hammer/contrib/gcc/genflags.c#2 integrate .. //depot/projects/hammer/contrib/gcc/gengenrtl.c#2 integrate .. //depot/projects/hammer/contrib/gcc/gengtype-lex.l#1 branch .. //depot/projects/hammer/contrib/gcc/gengtype-yacc.y#1 branch .. //depot/projects/hammer/contrib/gcc/gengtype.c#1 branch .. //depot/projects/hammer/contrib/gcc/gengtype.h#1 branch .. //depot/projects/hammer/contrib/gcc/genopinit.c#2 integrate .. //depot/projects/hammer/contrib/gcc/genpreds.c#2 integrate .. //depot/projects/hammer/contrib/gcc/genrecog.c#2 integrate .. //depot/projects/hammer/contrib/gcc/gensupport.c#2 integrate .. //depot/projects/hammer/contrib/gcc/gensupport.h#2 integrate .. //depot/projects/hammer/contrib/gcc/getopt.c#2 integrate .. //depot/projects/hammer/contrib/gcc/getopt.h#3 integrate .. //depot/projects/hammer/contrib/gcc/getruntime.c#1 branch .. //depot/projects/hammer/contrib/gcc/ggc-common.c#2 integrate .. //depot/projects/hammer/contrib/gcc/ggc-none.c#2 integrate .. //depot/projects/hammer/contrib/gcc/ggc-page.c#2 integrate .. //depot/projects/hammer/contrib/gcc/ggc-simple.c#2 integrate .. //depot/projects/hammer/contrib/gcc/ggc.h#2 integrate .. //depot/projects/hammer/contrib/gcc/ginclude/float.h#1 branch .. //depot/projects/hammer/contrib/gcc/ginclude/stdarg.h#3 integrate .. //depot/projects/hammer/contrib/gcc/ginclude/varargs.h#3 integrate .. //depot/projects/hammer/contrib/gcc/glimits.h#2 integrate .. //depot/projects/hammer/contrib/gcc/global.c#3 integrate .. //depot/projects/hammer/contrib/gcc/graph.c#2 integrate .. //depot/projects/hammer/contrib/gcc/graph.h#2 integrate .. //depot/projects/hammer/contrib/gcc/gthr-dce.h#2 integrate .. //depot/projects/hammer/contrib/gcc/gthr-posix.h#2 integrate .. //depot/projects/hammer/contrib/gcc/gthr-rtems.h#3 integrate .. //depot/projects/hammer/contrib/gcc/gthr-single.h#2 integrate .. //depot/projects/hammer/contrib/gcc/gthr-solaris.h#2 integrate .. //depot/projects/hammer/contrib/gcc/gthr-vxworks.h#2 integrate .. //depot/projects/hammer/contrib/gcc/gthr-win32.h#2 integrate .. //depot/projects/hammer/contrib/gcc/gthr.h#2 integrate .. //depot/projects/hammer/contrib/gcc/haifa-sched.c#3 integrate .. //depot/projects/hammer/contrib/gcc/hard-reg-set.h#2 integrate .. //depot/projects/hammer/contrib/gcc/hashtab.c#3 integrate .. //depot/projects/hammer/contrib/gcc/hashtab.h#2 integrate .. //depot/projects/hammer/contrib/gcc/hashtable.c#2 integrate .. //depot/projects/hammer/contrib/gcc/hashtable.h#2 integrate .. //depot/projects/hammer/contrib/gcc/hex.c#2 integrate .. //depot/projects/hammer/contrib/gcc/hooks.c#4 integrate .. //depot/projects/hammer/contrib/gcc/hooks.h#4 integrate .. //depot/projects/hammer/contrib/gcc/hwint.h#2 integrate .. //depot/projects/hammer/contrib/gcc/ifcvt.c#3 integrate .. //depot/projects/hammer/contrib/gcc/input.h#2 integrate .. //depot/projects/hammer/contrib/gcc/insn-addr.h#2 integrate .. //depot/projects/hammer/contrib/gcc/integrate.c#3 integrate .. //depot/projects/hammer/contrib/gcc/integrate.h#2 integrate .. //depot/projects/hammer/contrib/gcc/jump.c#4 integrate .. //depot/projects/hammer/contrib/gcc/langhooks-def.h#4 integrate .. //depot/projects/hammer/contrib/gcc/langhooks.c#3 integrate .. //depot/projects/hammer/contrib/gcc/langhooks.h#4 integrate .. //depot/projects/hammer/contrib/gcc/lbasename.c#2 integrate .. //depot/projects/hammer/contrib/gcc/lcm.c#2 integrate .. //depot/projects/hammer/contrib/gcc/libfuncs.h#2 integrate .. //depot/projects/hammer/contrib/gcc/libgcc-std.ver#2 integrate .. //depot/projects/hammer/contrib/gcc/libgcc2.c#5 integrate .. //depot/projects/hammer/contrib/gcc/libgcc2.h#2 integrate .. //depot/projects/hammer/contrib/gcc/libiberty.h#2 integrate .. //depot/projects/hammer/contrib/gcc/line-map.h#2 integrate .. //depot/projects/hammer/contrib/gcc/lists.c#2 integrate .. //depot/projects/hammer/contrib/gcc/local-alloc.c#3 integrate .. //depot/projects/hammer/contrib/gcc/location.h#1 branch .. //depot/projects/hammer/contrib/gcc/longlong.h#2 integrate .. //depot/projects/hammer/contrib/gcc/loop.c#6 integrate .. //depot/projects/hammer/contrib/gcc/loop.h#3 integrate .. //depot/projects/hammer/contrib/gcc/machmode.def#2 integrate .. //depot/projects/hammer/contrib/gcc/machmode.h#2 integrate .. //depot/projects/hammer/contrib/gcc/mbchar.c#2 integrate .. //depot/projects/hammer/contrib/gcc/md5.c#2 integrate .. //depot/projects/hammer/contrib/gcc/mkconfig.sh#2 integrate .. //depot/projects/hammer/contrib/gcc/mkheaders.in#1 branch .. //depot/projects/hammer/contrib/gcc/mklibgcc.in#4 integrate .. //depot/projects/hammer/contrib/gcc/mkmap-symver.awk#2 integrate .. //depot/projects/hammer/contrib/gcc/objc/Make-lang.in#3 integrate .. //depot/projects/hammer/contrib/gcc/objc/config-lang.in#2 integrate .. //depot/projects/hammer/contrib/gcc/objc/lang-specs.h#2 integrate .. //depot/projects/hammer/contrib/gcc/objc/objc-act.c#2 integrate .. //depot/projects/hammer/contrib/gcc/objc/objc-act.h#2 integrate .. //depot/projects/hammer/contrib/gcc/objc/objc-lang.c#3 integrate .. //depot/projects/hammer/contrib/gcc/optabs.c#5 integrate .. //depot/projects/hammer/contrib/gcc/optabs.h#2 integrate .. //depot/projects/hammer/contrib/gcc/output.h#2 integrate .. //depot/projects/hammer/contrib/gcc/params.c#2 integrate .. //depot/projects/hammer/contrib/gcc/params.def#2 integrate .. //depot/projects/hammer/contrib/gcc/params.h#2 integrate .. //depot/projects/hammer/contrib/gcc/partition.h#2 integrate .. //depot/projects/hammer/contrib/gcc/physmem.c#1 branch .. //depot/projects/hammer/contrib/gcc/predict.c#2 integrate .. //depot/projects/hammer/contrib/gcc/predict.def#2 integrate .. //depot/projects/hammer/contrib/gcc/predict.h#2 integrate .. //depot/projects/hammer/contrib/gcc/prefix.c#2 integrate .. //depot/projects/hammer/contrib/gcc/pretty-print.h#1 branch .. //depot/projects/hammer/contrib/gcc/print-rtl.c#4 integrate .. //depot/projects/hammer/contrib/gcc/print-tree.c#3 integrate .. //depot/projects/hammer/contrib/gcc/profile.c#2 integrate .. //depot/projects/hammer/contrib/gcc/profile.h#1 branch .. //depot/projects/hammer/contrib/gcc/protoize.c#2 integrate .. //depot/projects/hammer/contrib/gcc/ra-build.c#1 branch .. //depot/projects/hammer/contrib/gcc/ra-colorize.c#1 branch .. //depot/projects/hammer/contrib/gcc/ra-debug.c#1 branch .. //depot/projects/hammer/contrib/gcc/ra-rewrite.c#1 branch .. //depot/projects/hammer/contrib/gcc/ra.c#1 branch .. //depot/projects/hammer/contrib/gcc/ra.h#1 branch .. //depot/projects/hammer/contrib/gcc/read-rtl.c#2 integrate .. //depot/projects/hammer/contrib/gcc/real.c#2 integrate .. //depot/projects/hammer/contrib/gcc/real.h#2 integrate .. //depot/projects/hammer/contrib/gcc/recog.c#3 integrate .. //depot/projects/hammer/contrib/gcc/recog.h#2 integrate .. //depot/projects/hammer/contrib/gcc/reg-stack.c#3 integrate .. //depot/projects/hammer/contrib/gcc/regclass.c#3 integrate .. //depot/projects/hammer/contrib/gcc/regmove.c#3 integrate .. //depot/projects/hammer/contrib/gcc/regrename.c#2 integrate .. //depot/projects/hammer/contrib/gcc/regs.h#2 integrate .. //depot/projects/hammer/contrib/gcc/reload.c#6 integrate .. //depot/projects/hammer/contrib/gcc/reload.h#2 integrate .. //depot/projects/hammer/contrib/gcc/reload1.c#5 integrate .. //depot/projects/hammer/contrib/gcc/reorg.c#2 integrate .. //depot/projects/hammer/contrib/gcc/resource.c#2 integrate .. //depot/projects/hammer/contrib/gcc/rtl-error.c#2 integrate .. //depot/projects/hammer/contrib/gcc/rtl.c#2 integrate .. //depot/projects/hammer/contrib/gcc/rtl.def#2 integrate .. //depot/projects/hammer/contrib/gcc/rtl.h#5 integrate .. //depot/projects/hammer/contrib/gcc/rtlanal.c#3 integrate .. //depot/projects/hammer/contrib/gcc/sbitmap.c#2 integrate .. //depot/projects/hammer/contrib/gcc/sbitmap.h#2 integrate .. //depot/projects/hammer/contrib/gcc/scan-decls.c#2 integrate .. //depot/projects/hammer/contrib/gcc/scan.c#2 integrate .. //depot/projects/hammer/contrib/gcc/sched-deps.c#5 integrate .. //depot/projects/hammer/contrib/gcc/sched-ebb.c#2 integrate .. //depot/projects/hammer/contrib/gcc/sched-int.h#3 integrate .. //depot/projects/hammer/contrib/gcc/sched-rgn.c#2 integrate .. //depot/projects/hammer/contrib/gcc/sched-vis.c#2 integrate .. //depot/projects/hammer/contrib/gcc/sdbout.c#2 integrate .. //depot/projects/hammer/contrib/gcc/sibcall.c#3 integrate .. //depot/projects/hammer/contrib/gcc/simplify-rtx.c#2 integrate .. //depot/projects/hammer/contrib/gcc/splay-tree.c#2 integrate .. //depot/projects/hammer/contrib/gcc/splay-tree.h#2 integrate .. //depot/projects/hammer/contrib/gcc/ssa-ccp.c#2 integrate .. //depot/projects/hammer/contrib/gcc/ssa-dce.c#2 integrate .. //depot/projects/hammer/contrib/gcc/ssa.c#2 integrate .. //depot/projects/hammer/contrib/gcc/ssa.h#2 integrate .. //depot/projects/hammer/contrib/gcc/stab.def#2 integrate .. //depot/projects/hammer/contrib/gcc/stmt.c#3 integrate .. //depot/projects/hammer/contrib/gcc/stor-layout.c#3 integrate .. //depot/projects/hammer/contrib/gcc/stringpool.c#2 integrate .. //depot/projects/hammer/contrib/gcc/system.h#3 integrate .. //depot/projects/hammer/contrib/gcc/target-def.h#2 integrate .. //depot/projects/hammer/contrib/gcc/target.h#2 integrate .. //depot/projects/hammer/contrib/gcc/timevar.c#2 integrate .. //depot/projects/hammer/contrib/gcc/timevar.def#2 integrate .. //depot/projects/hammer/contrib/gcc/timevar.h#2 integrate .. //depot/projects/hammer/contrib/gcc/tlink.c#2 integrate .. //depot/projects/hammer/contrib/gcc/toplev.c#6 integrate .. //depot/projects/hammer/contrib/gcc/toplev.h#2 integrate .. //depot/projects/hammer/contrib/gcc/tracer.c#1 branch .. //depot/projects/hammer/contrib/gcc/tree-dump.c#2 integrate .. //depot/projects/hammer/contrib/gcc/tree-dump.h#2 integrate .. //depot/projects/hammer/contrib/gcc/tree-inline.c#4 integrate .. //depot/projects/hammer/contrib/gcc/tree-inline.h#2 integrate .. //depot/projects/hammer/contrib/gcc/tree.c#3 integrate .. //depot/projects/hammer/contrib/gcc/tree.def#3 integrate .. //depot/projects/hammer/contrib/gcc/tree.h#4 integrate .. //depot/projects/hammer/contrib/gcc/tsystem.h#2 integrate .. //depot/projects/hammer/contrib/gcc/unroll.c#5 integrate .. //depot/projects/hammer/contrib/gcc/unwind-c.c#1 branch .. //depot/projects/hammer/contrib/gcc/unwind-dw2-fde-darwin.c#1 branch .. //depot/projects/hammer/contrib/gcc/unwind-dw2-fde-glibc.c#2 integrate .. //depot/projects/hammer/contrib/gcc/unwind-dw2-fde.c#2 integrate .. //depot/projects/hammer/contrib/gcc/unwind-dw2-fde.h#2 integrate .. //depot/projects/hammer/contrib/gcc/unwind-dw2.c#3 integrate .. //depot/projects/hammer/contrib/gcc/unwind-pe.h#2 integrate .. //depot/projects/hammer/contrib/gcc/unwind-sjlj.c#2 integrate .. //depot/projects/hammer/contrib/gcc/unwind.h#2 integrate .. //depot/projects/hammer/contrib/gcc/unwind.inc#2 integrate .. //depot/projects/hammer/contrib/gcc/varasm.c#5 integrate .. //depot/projects/hammer/contrib/gcc/varray.c#2 integrate .. //depot/projects/hammer/contrib/gcc/varray.h#2 integrate .. //depot/projects/hammer/contrib/gcc/version.c#6 integrate .. //depot/projects/hammer/contrib/gcc/version.h#2 integrate .. //depot/projects/hammer/contrib/gcc/vmsdbg.h#2 integrate .. //depot/projects/hammer/contrib/gcc/vmsdbgout.c#2 integrate .. //depot/projects/hammer/contrib/gcc/xcoffout.c#2 integrate .. //depot/projects/hammer/contrib/gcc/xcoffout.h#2 integrate .. //depot/projects/hammer/contrib/gcc/xmemdup.c#1 branch .. //depot/projects/hammer/contrib/libf2c/ChangeLog#5 integrate .. //depot/projects/hammer/contrib/libf2c/Makefile.in#4 integrate .. //depot/projects/hammer/contrib/libf2c/aclocal.m4#4 integrate .. //depot/projects/hammer/contrib/libf2c/configure#4 integrate .. //depot/projects/hammer/contrib/libf2c/configure.in#3 integrate .. //depot/projects/hammer/contrib/libf2c/f2cext.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/g2c.hin#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/F77_aloc.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/Makefile.in#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/Version.c#6 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/abort_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/c_abs.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/c_cos.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/c_div.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/c_exp.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/c_log.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/c_sin.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/c_sqrt.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/cabs.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/configure#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/configure.in#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/d_abs.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/d_acos.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/d_asin.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/d_atan.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/d_atn2.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/d_cnjg.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/d_cos.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/d_cosh.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/d_dim.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/d_exp.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/d_imag.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/d_int.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/d_lg10.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/d_log.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/d_mod.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/d_nint.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/d_prod.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/d_sign.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/d_sin.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/d_sinh.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/d_sqrt.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/d_tan.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/d_tanh.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/derf_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/derfc_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/dtime_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/ef1asc_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/ef1cmc_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/erf_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/erfc_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/etime_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/exit_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/f2ch.add#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/getarg_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/getenv_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/h_abs.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/h_dim.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/h_dnnt.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/h_indx.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/h_len.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/h_mod.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/h_nint.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/h_sign.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/hl_ge.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/hl_gt.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/hl_le.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/hl_lt.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/i_abs.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/i_dim.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/i_dnnt.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/i_indx.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/i_len.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/i_mod.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/i_nint.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/i_sign.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/iargc_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/l_ge.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/l_gt.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/l_le.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/l_lt.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/lbitbits.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/lbitshft.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/main.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/pow_ci.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/pow_dd.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/pow_di.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/pow_hh.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/pow_ii.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/pow_qq.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/pow_ri.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/pow_zi.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/pow_zz.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/qbitbits.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/qbitshft.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/r_abs.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/r_acos.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/r_asin.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/r_atan.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/r_atn2.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/r_cnjg.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/r_cos.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/r_cosh.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/r_dim.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/r_exp.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/r_imag.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/r_int.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/r_lg10.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/r_log.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/r_mod.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/r_nint.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/r_sign.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/r_sin.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/r_sinh.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/r_sqrt.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/r_tan.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/r_tanh.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/s_cat.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/s_cmp.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/s_copy.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/s_paus.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/s_rnge.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/s_stop.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/setarg.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/setsig.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/sig_die.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/signal1.h0#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/signal_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/system_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/z_abs.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/z_cos.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/z_div.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/z_exp.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/z_log.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/z_sin.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libF77/z_sqrt.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/Makefile.in#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/Version.c#6 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/backspace.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/close.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/configure#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/configure.in#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/dfe.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/dolio.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/due.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/endfile.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/err.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/f2ch.add#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/fio.h#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/fmt.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/fmt.h#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/fmtlib.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/fp.h#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/ftell_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/iio.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/ilnw.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/inquire.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/lio.h#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/lread.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/lwrite.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/open.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/rdfmt.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/rewind.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/rsfe.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/rsli.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/rsne.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/sfe.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/sue.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/typesize.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/uio.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/util.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/wref.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/wrtfmt.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/wsfe.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/wsle.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/wsne.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libI77/xwsne.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/Makefile.in#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/Version.c#6 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/access_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/alarm_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/bes.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/chdir_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/chmod_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/config.hin#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/configure#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/configure.in#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/ctime_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/date_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/datetime_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/dbes.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/dtime_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/etime_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/fdate_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/fgetc_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/flush1_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/fnum_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/fputc_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/fstat_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/gerror_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/getcwd_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/getgid_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/getlog_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/getpid_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/getuid_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/gmtime_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/hostnm_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/idate_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/ierrno_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/irand_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/isatty_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/itime_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/kill_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/link_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/lnblnk_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/lstat_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/ltime_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/mclock_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/perror_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/rand_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/rename_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/secnds_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/second_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/sleep_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/srand_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/stat_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/symlnk_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/sys_clock_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/time_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/ttynam_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/umask_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/unlink_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/vxtidate_.c#2 integrate .. //depot/projects/hammer/contrib/libf2c/libU77/vxttime_.c#2 integrate .. //depot/projects/hammer/contrib/libobjc/ChangeLog#5 integrate .. //depot/projects/hammer/contrib/libobjc/Makefile.in#4 integrate .. //depot/projects/hammer/contrib/libobjc/Object.m#2 integrate .. //depot/projects/hammer/contrib/libobjc/Protocol.m#2 integrate .. //depot/projects/hammer/contrib/libobjc/aclocal.m4#4 integrate .. //depot/projects/hammer/contrib/libobjc/archive.c#2 integrate .. //depot/projects/hammer/contrib/libobjc/class.c#2 integrate .. //depot/projects/hammer/contrib/libobjc/configure#4 integrate .. //depot/projects/hammer/contrib/libobjc/configure.in#3 integrate .. //depot/projects/hammer/contrib/libobjc/encoding.c#2 integrate .. //depot/projects/hammer/contrib/libobjc/gc.c#2 integrate .. //depot/projects/hammer/contrib/libobjc/hash.c#2 integrate .. //depot/projects/hammer/contrib/libobjc/init.c#2 integrate .. //depot/projects/hammer/contrib/libobjc/misc.c#2 integrate .. //depot/projects/hammer/contrib/libobjc/nil_method.c#2 integrate .. //depot/projects/hammer/contrib/libobjc/objc/encoding.h#2 integrate .. //depot/projects/hammer/contrib/libobjc/objc/hash.h#2 integrate .. //depot/projects/hammer/contrib/libobjc/objc/objc.h#2 integrate .. //depot/projects/hammer/contrib/libobjc/objc/runtime.h#2 integrate .. //depot/projects/hammer/contrib/libobjc/objc/thr.h#2 integrate .. //depot/projects/hammer/contrib/libobjc/objects.c#2 integrate .. //depot/projects/hammer/contrib/libobjc/sarray.c#2 integrate .. //depot/projects/hammer/contrib/libobjc/selector.c#2 integrate .. //depot/projects/hammer/contrib/libobjc/sendmsg.c#2 integrate .. //depot/projects/hammer/contrib/libobjc/thr-mach.c#2 integrate .. //depot/projects/hammer/contrib/libobjc/thr.c#2 integrate .. //depot/projects/hammer/contrib/libstdc++/ChangeLog#6 integrate .. //depot/projects/hammer/contrib/libstdc++/Makefile.am#5 integrate .. //depot/projects/hammer/contrib/libstdc++/Makefile.in#6 integrate >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Jul 11 20:15:11 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2099D37B404; Fri, 11 Jul 2003 20:15:11 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C5BDE37B401 for ; Fri, 11 Jul 2003 20:15:10 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6D66643F93 for ; Fri, 11 Jul 2003 20:15:10 -0700 (PDT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h6C3FA0U095804 for ; Fri, 11 Jul 2003 20:15:10 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h6C3F9m1095801 for perforce@freebsd.org; Fri, 11 Jul 2003 20:15:09 -0700 (PDT) Date: Fri, 11 Jul 2003 20:15:09 -0700 (PDT) Message-Id: <200307120315.h6C3F9m1095801@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Subject: PERFORCE change 34390 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jul 2003 03:15:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=34390 Change 34390 by peter@peter_hammer on 2003/07/11 20:14:17 Ok, nobody said quick and dirty hacks needed to be pretty Affected files ... .. //depot/projects/hammer/contrib/gcc/config/i386/freebsd.h#7 edit Differences ... ==== //depot/projects/hammer/contrib/gcc/config/i386/freebsd.h#7 (text+ko) ==== @@ -127,11 +127,11 @@ /* FreeBSD sets the rounding precision of the FPU to 53 bits. Let the compiler get the contents of and std::numeric_limits correct. */ #define SUBTARGET_OVERRIDE_OPTIONS \ - do { \ + do { if (!TARGET_64BIT) { \ real_format_for_mode[XFmode - QFmode] \ = &ieee_extended_intel_96_round_53_format; \ real_format_for_mode[TFmode - QFmode] \ - = &ieee_extended_intel_96_round_53_format; \ + = &ieee_extended_intel_96_round_53_format; } \ } while (0) /* Tell final.c that we don't need a label passed to mcount. */ From owner-p4-projects@FreeBSD.ORG Fri Jul 11 21:41:10 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 720C437B404; Fri, 11 Jul 2003 21:41:10 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1025D37B401 for ; Fri, 11 Jul 2003 21:41:10 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8433E43F3F for ; Fri, 11 Jul 2003 21:41:09 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h6C4f90U005196 for ; Fri, 11 Jul 2003 21:41:09 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h6C4f8uQ005193 for perforce@freebsd.org; Fri, 11 Jul 2003 21:41:08 -0700 (PDT) Date: Fri, 11 Jul 2003 21:41:08 -0700 (PDT) Message-Id: <200307120441.h6C4f8uQ005193@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 34394 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jul 2003 04:41:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=34394 Change 34394 by marcel@marcel_nfs on 2003/07/11 21:40:17 IFC @34393 Affected files ... .. //depot/projects/ia64/UPDATING#44 integrate .. //depot/projects/ia64/sys/contrib/ia64/libuwx/src/uwx_uinfo.c#2 integrate .. //depot/projects/ia64/sys/ia64/ia64/db_trace.c#12 integrate .. //depot/projects/ia64/sys/ia64/ia64/unwind.c#9 integrate .. //depot/projects/ia64/sys/ia64/include/unwind.h#5 integrate .. //depot/projects/ia64/sys/kern/kern_proc.c#43 integrate .. //depot/projects/ia64/sys/sys/sysctl.h#16 integrate Differences ... ==== //depot/projects/ia64/UPDATING#44 (text+ko) ==== @@ -17,6 +17,11 @@ developers choose to disable these features on build machines to maximize performance. +20030711: + gcc was upgraded to 3.3. You are advised to not build -DNOCLEAN + across this point. Further, it might be a good idea to remove + /usr/obj. + 20030613: [retrospective] There was a small window in which sed(1) was broken. If you happen to have sed(1) installed during that window, which is @@ -1309,4 +1314,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.255 2003/06/13 20:05:46 marcel Exp $ +$FreeBSD: src/UPDATING,v 1.258 2003/07/12 01:16:54 ceri Exp $ ==== //depot/projects/ia64/sys/contrib/ia64/libuwx/src/uwx_uinfo.c#2 (text+ko) ==== @@ -232,9 +232,9 @@ if ((b0 & 0x20) == 0) { TRACE_I_DECODE_RHDR_1("(R1) prologue", b0) rhdr->is_prologue = 1; + } else { + TRACE_I_DECODE_RHDR_1("(R1) body", b0) } - else - TRACE_I_DECODE_RHDR_1("(R1) body", b0) rhdr->rlen = b0 & 0x1f; } @@ -263,9 +263,9 @@ if ((b0 & 0x03) == 0) { TRACE_I_DECODE_RHDR_1L("(R3) prologue", b0, val) rhdr->is_prologue = 1; + } else { + TRACE_I_DECODE_RHDR_1L("(R3) body", b0, val) } - else - TRACE_I_DECODE_RHDR_1L("(R3) body", b0, val) rhdr->rlen = (unsigned int) val; } ==== //depot/projects/ia64/sys/ia64/ia64/db_trace.c#12 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/ia64/ia64/db_trace.c,v 1.16 2003/07/05 23:21:58 marcel Exp $ + * $FreeBSD: src/sys/ia64/ia64/db_trace.c,v 1.17 2003/07/12 04:35:09 marcel Exp $ */ #include @@ -49,19 +49,23 @@ char *modif) { struct unw_regstate rs; + struct trapframe *tf; const char *name; db_expr_t offset; - uint64_t bsp, cfm, ip, pfs, reg; + uint64_t bsp, cfm, ip, pfs, reg, sp; c_db_sym_t sym; int args, error, i; - error = unw_create(&rs, &ddb_regs); + tf = &ddb_regs; + error = unw_create(&rs, tf); while (!error && count--) { error = unw_get_cfm(&rs, &cfm); if (!error) error = unw_get_bsp(&rs, &bsp); if (!error) error = unw_get_ip(&rs, &ip); + if (!error) + error = unw_get_sp(&rs, &sp); if (error) break; @@ -98,6 +102,21 @@ db_printsym(ip, DB_STGY_PROC); db_printf("\n"); + + if (error != EOVERFLOW) + continue; + if (sp < IA64_RR_BASE(5)) + break; + + tf = (struct trapframe *)(sp + 16); + if ((tf->tf_flags & FRAME_SYSCALL) != 0 || + tf->tf_special.iip < IA64_RR_BASE(5)) + break; + + /* XXX ask if we should unwind across the trapframe. */ + db_printf("--- trapframe at %p\n", tf); + unw_delete(&rs); + error = unw_create(&rs, tf); } unw_delete(&rs); ==== //depot/projects/ia64/sys/ia64/ia64/unwind.c#9 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/ia64/ia64/unwind.c,v 1.8 2003/07/05 23:21:58 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/ia64/ia64/unwind.c,v 1.9 2003/07/12 04:35:09 marcel Exp $"); #include "opt_ddb.h" @@ -282,16 +282,19 @@ unw_delete(struct unw_regstate *rs) { - uwx_free(rs->env); + if (rs->env != NULL) + uwx_free(rs->env); } int unw_step(struct unw_regstate *rs) { - int uwxerr; + int err; - uwxerr = uwx_step(rs->env); - return ((uwxerr) ? EINVAL : 0); /* XXX */ + err = uwx_step(rs->env); + if (err == UWX_ABI_FRAME) + return (EOVERFLOW); + return ((err != 0) ? EINVAL : 0); /* XXX */ } int @@ -322,6 +325,15 @@ } int +unw_get_sp(struct unw_regstate *s, uint64_t *r) +{ + int uwxerr; + + uwxerr = uwx_get_reg(s->env, UWX_REG_SP, r); + return ((uwxerr) ? EINVAL : 0); /* XXX */ +} + +int unw_table_add(uint64_t base, uint64_t start, uint64_t end) { struct unw_table *ut; ==== //depot/projects/ia64/sys/ia64/include/unwind.h#5 (text+ko) ==== @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/ia64/include/unwind.h,v 1.4 2003/07/05 23:21:58 marcel Exp $ + * $FreeBSD: src/sys/ia64/include/unwind.h,v 1.5 2003/07/12 04:35:09 marcel Exp $ */ #ifndef _MACHINE_UNWIND_H_ @@ -44,6 +44,7 @@ int unw_get_bsp(struct unw_regstate *s, uint64_t *r); int unw_get_cfm(struct unw_regstate *s, uint64_t *r); int unw_get_ip(struct unw_regstate *s, uint64_t *r); +int unw_get_sp(struct unw_regstate *s, uint64_t *r); int unw_table_add(uint64_t, uint64_t, uint64_t); void unw_table_remove(uint64_t); ==== //depot/projects/ia64/sys/kern/kern_proc.c#43 (text+ko) ==== @@ -31,11 +31,11 @@ * SUCH DAMAGE. * * @(#)kern_proc.c 8.7 (Berkeley) 2/14/95 - * $FreeBSD: src/sys/kern/kern_proc.c,v 1.190 2003/06/17 19:14:00 scottl Exp $ + * $FreeBSD: src/sys/kern/kern_proc.c,v 1.191 2003/07/12 02:00:16 robert Exp $ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_proc.c,v 1.190 2003/06/17 19:14:00 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_proc.c,v 1.191 2003/07/12 02:00:16 robert Exp $"); #include "opt_ktrace.h" #include "opt_kstack_pages.h" @@ -47,6 +47,7 @@ #include #include #include +#include #include #include #include @@ -1127,6 +1128,31 @@ return (0); } +static int +sysctl_kern_proc_sv_name(SYSCTL_HANDLER_ARGS) +{ + struct proc *p; + char *sv_name; + int *name; + int namelen; + + namelen = arg2; + if (namelen != 1) + return (EINVAL); + + name = (int *)arg1; + if ((p = pfind((pid_t)name[0])) == NULL) + return (0); + if (p_cansee(curthread, p)) { + PROC_UNLOCK(p); + return (0); + } + sv_name = p->p_sysent->sv_name; + PROC_UNLOCK(p); + return (sysctl_handle_string(oidp, sv_name, 0, req)); +} + + SYSCTL_NODE(_kern, KERN_PROC, proc, CTLFLAG_RD, 0, "Process table"); SYSCTL_PROC(_kern_proc, KERN_PROC_ALL, all, CTLFLAG_RD|CTLTYPE_STRUCT, @@ -1152,3 +1178,6 @@ SYSCTL_NODE(_kern_proc, KERN_PROC_ARGS, args, CTLFLAG_RW | CTLFLAG_ANYBODY, sysctl_kern_proc_args, "Process argument list"); + +SYSCTL_NODE(_kern_proc, KERN_PROC_SV_NAME, sv_name, CTLFLAG_RD, + sysctl_kern_proc_sv_name, "Process syscall vector name (ABI type)"); ==== //depot/projects/ia64/sys/sys/sysctl.h#16 (text+ko) ==== @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * @(#)sysctl.h 8.1 (Berkeley) 6/2/93 - * $FreeBSD: src/sys/sys/sysctl.h,v 1.117 2003/06/12 16:34:19 scottl Exp $ + * $FreeBSD: src/sys/sys/sysctl.h,v 1.118 2003/07/12 02:00:16 robert Exp $ */ #ifndef _SYS_SYSCTL_H_ @@ -413,6 +413,7 @@ #define KERN_PROC_RUID 6 /* by real uid */ #define KERN_PROC_ARGS 7 /* get/set arguments/proctitle */ #define KERN_PROC_PROC 8 /* only return procs */ +#define KERN_PROC_SV_NAME 9 /* get syscall vector name */ /* * KERN_IPC identifiers From owner-p4-projects@FreeBSD.ORG Sat Jul 12 03:29:49 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0A1EC37B407; Sat, 12 Jul 2003 03:29:49 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9892137B401; Sat, 12 Jul 2003 03:29:47 -0700 (PDT) Received: from rwcrmhc13.comcast.net (rwcrmhc13.comcast.net [204.127.198.39]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9D5B643F75; Sat, 12 Jul 2003 03:29:46 -0700 (PDT) (envelope-from eta@lclark.edu) Received: from leguin (12-224-152-126.client.attbi.com[12.224.152.126](untrusted sender)) by attbi.com (rwcrmhc13) with SMTP id <20030712102946015001rdole>; Sat, 12 Jul 2003 10:29:46 +0000 From: Eric Anholt To: John Baldwin In-Reply-To: References: Content-Type: text/plain Organization: Message-Id: <1058006399.1464.52.camel@leguin> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 12 Jul 2003 03:39:59 -0700 Content-Transfer-Encoding: 7bit cc: Perforce Change Reviews cc: Peter Wemm Subject: RE: PERFORCE change 33663 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jul 2003 10:29:50 -0000 On Thu, 2003-06-26 at 10:57, John Baldwin wrote: > On 25-Jun-2003 Peter Wemm wrote: > > http://perforce.freebsd.org/chv.cgi?CH=33663 > > > > Change 33663 by peter@peter_hammer on 2003/06/25 15:05:09 > > > > Port sym to amd64 > > This is possibly not correct. Do all hammer's support the P3+ > SFENCE and related instructions? Even i386 should probably be > using what bus_space_barrier() uses. Heck, sym should probably > just be using bus_space_barrier anyways. It would sure be nice to have an MI call for the bus_space_barrier() calls that don't need a bus_space_tag. The DRM unfortunately doesn't (and won't ever, I think) do bus_space, so we have to have platform-specific ifdefs for read, write, and read/write barriers. -- Eric Anholt eta@lclark.edu http://people.freebsd.org/~anholt/ anholt@FreeBSD.org From owner-p4-projects@FreeBSD.ORG Sat Jul 12 21:26:01 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8F93837B404; Sat, 12 Jul 2003 21:26:00 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2B55C37B401 for ; Sat, 12 Jul 2003 21:26:00 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 132B143FAF for ; Sat, 12 Jul 2003 21:25:59 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h6D4Pw0U012612 for ; Sat, 12 Jul 2003 21:25:58 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h6D4PwxL012609 for perforce@freebsd.org; Sat, 12 Jul 2003 21:25:58 -0700 (PDT) Date: Sat, 12 Jul 2003 21:25:58 -0700 (PDT) Message-Id: <200307130425.h6D4PwxL012609@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 34416 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 04:26:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=34416 Change 34416 by marcel@marcel_nfs on 2003/07/12 21:25:01 IFC @34415 Affected files ... .. //depot/projects/ia64/contrib/gcc/config/i386/freebsd.h#18 integrate .. //depot/projects/ia64/etc/rc.d/sshd#3 integrate .. //depot/projects/ia64/gnu/lib/csu/Makefile#16 integrate .. //depot/projects/ia64/gnu/usr.bin/cc/cc_tools/auto-host.h#13 integrate .. //depot/projects/ia64/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#103 integrate .. //depot/projects/ia64/release/scripts/print-cdrom-packages.sh#25 integrate .. //depot/projects/ia64/sbin/ipfw/ipfw.8#23 integrate .. //depot/projects/ia64/sbin/ipfw/ipfw2.c#21 integrate .. //depot/projects/ia64/sys/dev/ciss/ciss.c#22 integrate .. //depot/projects/ia64/sys/dev/firewire/fwdev.c#17 integrate .. //depot/projects/ia64/sys/dev/kbd/atkbdcreg.h#3 integrate .. //depot/projects/ia64/sys/ia64/ia64/trap.c#59 integrate .. //depot/projects/ia64/sys/ia64/include/ia64_cpu.h#6 integrate .. //depot/projects/ia64/sys/isa/psm.c#17 integrate .. //depot/projects/ia64/sys/kern/kern_descrip.c#60 integrate .. //depot/projects/ia64/sys/kern/kern_lock.c#18 integrate .. //depot/projects/ia64/sys/kern/kern_mtxpool.c#8 integrate .. //depot/projects/ia64/sys/kern/kern_prot.c#29 integrate .. //depot/projects/ia64/sys/kern/kern_resource.c#25 integrate .. //depot/projects/ia64/sys/kern/kern_sx.c#8 integrate .. //depot/projects/ia64/sys/netinet/ip_fw2.c#24 integrate .. //depot/projects/ia64/sys/sys/kernel.h#13 integrate .. //depot/projects/ia64/sys/sys/mutex.h#14 integrate .. //depot/projects/ia64/usr.sbin/fwcontrol/fwcontrol.c#10 integrate .. //depot/projects/ia64/usr.sbin/sysinstall/config.c#12 integrate .. //depot/projects/ia64/usr.sbin/sysinstall/menus.c#31 integrate .. //depot/projects/ia64/usr.sbin/sysinstall/sysinstall.h#22 integrate .. //depot/projects/ia64/usr.sbin/sysinstall/variable.c#3 integrate .. //depot/projects/ia64/usr.sbin/usbd/usbd.c#7 integrate Differences ... ==== //depot/projects/ia64/contrib/gcc/config/i386/freebsd.h#18 (text+ko) ==== @@ -22,7 +22,7 @@ the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* $FreeBSD: src/contrib/gcc/config/i386/freebsd.h,v 1.63 2003/07/11 05:01:52 kan Exp $ */ +/* $FreeBSD: src/contrib/gcc/config/i386/freebsd.h,v 1.64 2003/07/12 19:33:34 kan Exp $ */ #undef CC1_SPEC #define CC1_SPEC "%(cc1_cpu) %{profile:-p}" @@ -128,10 +128,12 @@ compiler get the contents of and std::numeric_limits correct. */ #define SUBTARGET_OVERRIDE_OPTIONS \ do { \ - real_format_for_mode[XFmode - QFmode] \ - = &ieee_extended_intel_96_round_53_format; \ - real_format_for_mode[TFmode - QFmode] \ - = &ieee_extended_intel_96_round_53_format; \ + if (!TARGET_64BIT) { \ + real_format_for_mode[XFmode - QFmode] \ + = &ieee_extended_intel_96_round_53_format; \ + real_format_for_mode[TFmode - QFmode] \ + = &ieee_extended_intel_96_round_53_format; \ + } \ } while (0) /* Tell final.c that we don't need a label passed to mcount. */ ==== //depot/projects/ia64/etc/rc.d/sshd#3 (text+ko) ==== @@ -1,7 +1,7 @@ #!/bin/sh # # $NetBSD: sshd,v 1.18 2002/04/29 08:23:34 lukem Exp $ -# $FreeBSD: src/etc/rc.d/sshd,v 1.2 2002/06/13 22:14:36 gordon Exp $ +# $FreeBSD: src/etc/rc.d/sshd,v 1.3 2003/07/13 01:49:07 mtm Exp $ # # PROVIDE: sshd @@ -12,12 +12,16 @@ name="sshd" rcvar=`set_rcvar` -command="/usr/sbin/${name}" keygen_cmd="sshd_keygen" start_precmd="sshd_precmd" pidfile="/var/run/${name}.pid" -required_files="/etc/ssh/sshd_config" extra_commands="keygen reload" +case ${OSTYPE} in +NetBSD) + command="/usr/sbin/${name}" + required_files="/etc/ssh/sshd_config" + ;; +esac sshd_keygen() { ==== //depot/projects/ia64/gnu/lib/csu/Makefile#16 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/gnu/lib/csu/Makefile,v 1.19 2003/07/11 05:27:23 kan Exp $ +# $FreeBSD: src/gnu/lib/csu/Makefile,v 1.20 2003/07/13 02:41:48 kan Exp $ GCCDIR= ${.CURDIR}/../../../contrib/gcc CCDIR= ${.CURDIR}/../../usr.bin/cc @@ -23,6 +23,7 @@ BEGINSRC= crtbegin.asm ENDSRC= crtend.asm CFLAGS+= -x assembler-with-cpp # Ugly hack +CFLAGS+= -include osreldate.h .undef SRCS # hack for 'make depend' .endif .if ${MACHINE_ARCH} == "powerpc" ==== //depot/projects/ia64/gnu/usr.bin/cc/cc_tools/auto-host.h#13 (text+ko) ==== @@ -1,6 +1,8 @@ -/* $FreeBSD: src/gnu/usr.bin/cc/cc_tools/auto-host.h,v 1.15 2003/07/11 18:55:58 kan Exp $ */ +/* $FreeBSD: src/gnu/usr.bin/cc/cc_tools/auto-host.h,v 1.16 2003/07/13 02:41:48 kan Exp $ */ -#include +#ifndef __FreeBSD_version +#include +#endif /* auto-host.h. Generated automatically by configure. */ /* config.in. Generated automatically from configure.in by autoheader. */ ==== //depot/projects/ia64/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#103 (text+ko) ==== @@ -3,7 +3,7 @@ The FreeBSD Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.583 2003/07/07 22:44:38 bmah Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.584 2003/07/12 07:41:39 hrs Exp $ 2000 @@ -169,6 +169,8 @@ Network Protocols + &man.ipfw.4; rules now support C++-style comment. + To reduce information leakage, IPv4 packets no longer have a ip_id field set unless fragmentation is being done. @@ -226,6 +228,9 @@ The dev_db utility is unnecessary due to the mandatory presence of devfs, and has been removed. + &man.ipfw.8; list and show + command now support ranges of rule numbers. + The libcipher DES cryptography library has been removed. All of its functionality is provided by the libcrypto library, and all base systems @@ -248,6 +253,9 @@ &man.ps.1; now supports a to display all kernel-visible threads in each process. + A bug that &man.rarpd.8; does not recognize removable Ethernet NICs + is fixed. + A number of utilities available in /bin and /sbin are now available as a statically-linked crunched binary that lives in @@ -275,6 +283,9 @@ BIND has been updated from 8.3.4 to 8.3.6. + GCC has been updated from 3.2.2 to + 3.3.1-prerelease (a 11 July 2003 snapshot). + lukemftp has been updated from 1.6beta2 to a 30 June 2003 snapshot from NetBSD. @@ -290,7 +301,13 @@ Ports/Packages Collection Infrastructure - + If GNU_CONFIGURE is defined, + all instances of config.guess and config.sub found + under WRKDIR + are replaced with the master versions from + PORTSDIR/Template. + This allows old ports (which contain old versions + of these scripts) to build on newer architectures like ia64 and amd64. ==== //depot/projects/ia64/release/scripts/print-cdrom-packages.sh#25 (text+ko) ==== @@ -2,7 +2,7 @@ # # Author: Jordan Hubbard # Date: Mon Jul 10 01:18:20 2000 -# Version: $FreeBSD: src/release/scripts/print-cdrom-packages.sh,v 1.42 2003/05/09 09:41:18 scottl Exp $ +# Version: $FreeBSD: src/release/scripts/print-cdrom-packages.sh,v 1.43 2003/07/12 15:35:06 trhodes Exp $ # # MAINTAINER: re # @@ -72,9 +72,12 @@ elif [ "X${PKG_ARCH}" = "Xi386" ]; then CDROM_SET_1="${CDROM_SET_1} emulators/linux_base" fi +CDROM_SET_1="${CDROM_SET_1} devel/pcre" CDROM_SET_1="${CDROM_SET_1} lang/perl5" CDROM_SET_1="${CDROM_SET_1} net/pcnfsd" CDROM_SET_1="${CDROM_SET_1} net/rsync" +CDROM_SET_1="${CDROM_SET_1} mail/exim" +CDROM_SET_1="${CDROM_SET_1} mail/postfix" CDROM_SET_1="${CDROM_SET_1} x11-fonts/XFree86-4-font100dpi" CDROM_SET_1="${CDROM_SET_1} x11-fonts/XFree86-4-font75dpi" CDROM_SET_1="${CDROM_SET_1} x11-fonts/XFree86-4-fontCyrillic" ==== //depot/projects/ia64/sbin/ipfw/ipfw.8#23 (text+ko) ==== @@ -1,5 +1,5 @@ .\" -.\" $FreeBSD: src/sbin/ipfw/ipfw.8,v 1.127 2003/07/08 13:24:41 dannyboy Exp $ +.\" $FreeBSD: src/sbin/ipfw/ipfw.8,v 1.129 2003/07/12 08:35:25 luigi Exp $ .\" .Dd August 13, 2002 .Dt IPFW 8 @@ -13,9 +13,9 @@ .Cm add .Ar rule .Nm -.Op Fl acdeftnNS +.Op Fl acdefnNStT .Brq Cm list | show -.Op Ar number ... +.Op Ar rule | first-last ... .Nm .Op Fl f | q .Cm flush @@ -54,7 +54,7 @@ .Op Ar number ... .Pp .Nm -.Op Fl nq +.Op Fl cnNqS .Oo .Fl p Ar preproc .Oo @@ -261,7 +261,10 @@ While listing pipes, sort according to one of the four counters (total or current packets or bytes). .It Fl t -While listing, show last match timestamp. +While listing, show last match timestamp (converted with ctime()). +.It Fl T +While listing, show last match timestamp (as seconds from the epoch). +This form can be more convenient for postprocessing by scripts. .El .Pp To ease configuration, rules can be put into a file which is @@ -855,6 +858,12 @@ .Pp The following match patterns can be used (listed in alphabetical order): .Bl -tag -width indent +.It Cm // this is a comment. +Inserts the specified text as a comment in the rule. +Everything following // is considered as a comment and stored in the rule. +You can have comment-only rules, which are listed as having a +.Cm count +action followed by the comment. .It Cm bridged Matches only bridged packets. .It Cm dst-ip Ar ip-address @@ -879,8 +888,9 @@ .It Cm icmptypes Ar types Matches ICMP packets whose ICMP type is in the list .Ar types . -The list may be specified as any combination of ranges or -individual types separated by commas. +The list may be specified as any combination of +individual types (numeric) separated by commas. +.Em Ranges are not allowed. The supported ICMP types are: .Pp echo reply ==== //depot/projects/ia64/sbin/ipfw/ipfw2.c#21 (text+ko) ==== @@ -17,7 +17,7 @@ * * NEW command line interface for IP firewall facility * - * $FreeBSD: src/sbin/ipfw/ipfw2.c,v 1.31 2003/07/08 07:52:47 luigi Exp $ + * $FreeBSD: src/sbin/ipfw/ipfw2.c,v 1.33 2003/07/12 08:35:25 luigi Exp $ */ #include @@ -40,7 +40,7 @@ #include #include #include -#include +#include /* XXX do we need this ? */ #include #include @@ -57,7 +57,6 @@ int do_resolv, /* Would try to resolve all */ - do_acct, /* Show packet/byte count */ do_time, /* Show time stamps */ do_quiet, /* Be quiet in add and flush */ do_force, /* Don't ask for confirmation */ @@ -81,7 +80,7 @@ * */ struct _s_x { - char *s; + char const *s; int x; }; @@ -228,6 +227,7 @@ TOK_MACTYPE, TOK_VERREVPATH, TOK_IPSEC, + TOK_COMMENT, TOK_PLR, TOK_NOERROR, @@ -290,6 +290,7 @@ { "reset", TOK_RESET }, { "unreach", TOK_UNREACH }, { "check-state", TOK_CHECKSTATE }, + { "//", TOK_COMMENT }, { NULL, 0 } /* terminator */ }; @@ -338,6 +339,7 @@ { "mac-type", TOK_MACTYPE }, { "verrevpath", TOK_VERREVPATH }, { "ipsec", TOK_IPSEC }, + { "//", TOK_COMMENT }, { "not", TOK_NOT }, /* pseudo option */ { "!", /* escape ? */ TOK_NOT }, /* pseudo option */ @@ -361,7 +363,7 @@ /* * conditionally runs the command. */ -int +static int do_cmd(int optname, void *optval, socklen_t optlen) { static int s = -1; /* the socket */ @@ -392,7 +394,7 @@ match_token(struct _s_x *table, char *string) { struct _s_x *pt; - int i = strlen(string); + uint i = strlen(string); for (pt = table ; i && pt->s != NULL ; pt++) if (strlen(pt->s) == i && !bcmp(string, pt->s, i)) @@ -404,8 +406,8 @@ * match_value takes a table and a value, returns the string associated * with the value (NULL in case of failure). */ -static char * -match_value(struct _s_x *p, uint32_t value) +static char const * +match_value(struct _s_x *p, int value) { for (; p->s != NULL; p++) if (p->x == value) @@ -421,7 +423,7 @@ { if (proto == IPPROTO_ETHERTYPE) { - char *s; + char const *s; if (do_resolv && (s = match_value(ether_types, port)) ) printf("%s", s); @@ -460,7 +462,7 @@ { uint16_t *p = cmd->ports; int i; - char *sep; + char const *sep; if (cmd->o.len & F_NOT) printf(" not"); @@ -624,7 +626,7 @@ static void print_reject_code(uint16_t code) { - char *s = match_value(icmpcodes, code); + char const *s = match_value(icmpcodes, code); if (s != NULL) printf("unreach %s", s); @@ -661,9 +663,9 @@ * There is a specialized check for f_tcpflags. */ static void -print_flags(char *name, ipfw_insn *cmd, struct _s_x *list) +print_flags(char const *name, ipfw_insn *cmd, struct _s_x *list) { - char *comma=""; + char const *comma = ""; int i; u_char set = cmd->arg1 & 0xff; u_char clear = (cmd->arg1 >> 8) & 0xff; @@ -692,7 +694,7 @@ * Print the ip address contained in a command. */ static void -print_ip(ipfw_insn_ip *cmd, char *s) +print_ip(ipfw_insn_ip *cmd, char const *s) { struct hostent *he = NULL; int len = F_LEN((ipfw_insn *)cmd); @@ -896,11 +898,13 @@ } printf("%05u ", rule->rulenum); - if (do_acct) + if (pcwidth>0 || bcwidth>0) printf("%*llu %*llu ", pcwidth, align_uint64(&rule->pcnt), bcwidth, align_uint64(&rule->bcnt)); - if (do_time) { + if (do_time == 2) + printf("%10u ", rule->timestamp); + else if (do_time == 1) { char timestr[30]; time_t t = (time_t)0; @@ -910,6 +914,9 @@ twidth = strlen(timestr); } if (rule->timestamp) { +#if _FreeBSD_version < 500000 /* XXX check */ +#define _long_to_time(x) (time_t)(x) +#endif t = _long_to_time(rule->timestamp); strcpy(timestr, ctime(&t)); @@ -1138,14 +1145,14 @@ case O_XMIT: case O_RECV: case O_VIA: { - char *s; + char const *s; ipfw_insn_if *cmdif = (ipfw_insn_if *)cmd; if (cmd->opcode == O_XMIT) s = "xmit"; else if (cmd->opcode == O_RECV) s = "recv"; - else if (cmd->opcode == O_VIA) + else /* if (cmd->opcode == O_VIA) */ s = "via"; if (cmdif->name[0] == '\0') printf(" %s %s", s, @@ -1256,6 +1263,10 @@ printf(" ipsec"); break; + case O_NOP: + printf(" // %s", (char *)(cmd + 1)); + break; + case O_KEEP_STATE: printf(" keep-state"); break; @@ -1265,7 +1276,7 @@ struct _s_x *p = limit_masks; ipfw_insn_limit *c = (ipfw_insn_limit *)cmd; uint8_t x = c->limit_mask; - char *comma = " "; + char const *comma = " "; printf(" limit"); for ( ; p->x != 0 ; p++) @@ -1309,7 +1320,7 @@ } bcopy(&d->rule, &rulenum, sizeof(rulenum)); printf("%05d", rulenum); - if (do_acct) + if (pcwidth>0 || bcwidth>0) printf(" %*llu %*llu (%ds)", pcwidth, align_uint64(&d->pcnt), bcwidth, align_uint64(&d->bcnt), d->expire); @@ -1338,7 +1349,7 @@ printf("\n"); } -int +static int sort_q(const void *pa, const void *pb) { int rev = (do_sort < 0); @@ -1447,9 +1458,9 @@ } static void -list_pipes(void *data, int nbytes, int ac, char *av[]) +list_pipes(void *data, uint nbytes, int ac, char *av[]) { - u_long rulenum; + int rulenum; void *next = data; struct dn_pipe *p = (struct dn_pipe *) data; struct dn_flow_set *fs; @@ -1472,7 +1483,7 @@ * compute length, as pipe have variable size */ l = sizeof(*p) + p->fs.rq_elements * sizeof(*q); - next = (void *)p + l; + next = (char *)p + l; nbytes -= l; if (rulenum != 0 && rulenum != p->pipe_nr) @@ -1507,7 +1518,7 @@ if (fs->next != (struct dn_flow_set *)DN_IS_QUEUE) break; l = sizeof(*fs) + fs->rq_elements * sizeof(*q); - next = (void *)fs + l; + next = (char *)fs + l; nbytes -= l; q = (struct dn_flow_queue *)(fs+1); sprintf(prefix, "q%05d: weight %d pipe %d ", @@ -1539,7 +1550,7 @@ errx(EX_USAGE, "set needs command"); if (!strncmp(*av, "show", strlen(*av)) ) { void *data; - char *msg; + char const *msg; nbytes = sizeof(struct ip_fw); if ((data = calloc(1, nbytes)) == NULL) @@ -1654,17 +1665,19 @@ } static void -list(int ac, char *av[]) +list(int ac, char *av[], int show_counters) { struct ip_fw *r; ipfw_dyn_rule *dynrules, *d; - void *lim, *data = NULL; +#define NEXT(r) ((struct ip_fw *)((char *)r + RULESIZE(r))) + char *lim; + void *data = NULL; int bcwidth, n, nbytes, nstat, ndyn, pcwidth, width; int exitval = EX_OK; int lac; char **lav; - u_long rnum; + u_long rnum, last; char *endptr; int seen = 0; @@ -1701,25 +1714,24 @@ * Count static rules. They have variable size so we * need to scan the list to count them. */ - for (nstat = 1, r = data, lim = data + nbytes; - r->rulenum < 65535 && (void *)r < lim; - ++nstat, r = (void *)r + RULESIZE(r) ) + for (nstat = 1, r = data, lim = (char *)data + nbytes; + r->rulenum < 65535 && (char *)r < lim; + ++nstat, r = NEXT(r) ) ; /* nothing */ /* * Count dynamic rules. This is easier as they have * fixed size. */ - r = (void *)r + RULESIZE(r); + r = NEXT(r); dynrules = (ipfw_dyn_rule *)r ; - n = (void *)r - data; + n = (char *)r - (char *)data; ndyn = (nbytes - n) / sizeof *dynrules; /* if showing stats, figure out column widths ahead of time */ bcwidth = pcwidth = 0; - if (do_acct) { - for (n = 0, r = data; n < nstat; - n++, r = (void *)r + RULESIZE(r)) { + if (show_counters) { + for (n = 0, r = data; n < nstat; n++, r = NEXT(r)) { /* packet counter */ width = snprintf(NULL, 0, "%llu", align_uint64(&r->pcnt)); @@ -1748,8 +1760,7 @@ } /* if no rule numbers were specified, list all rules */ if (ac == 0) { - for (n = 0, r = data; n < nstat; - n++, r = (void *)r + RULESIZE(r) ) + for (n = 0, r = data; n < nstat; n++, r = NEXT(r) ) show_ipfw(r, pcwidth, bcwidth); if (do_dynamic && ndyn) { @@ -1764,17 +1775,19 @@ for (lac = ac, lav = av; lac != 0; lac--) { /* convert command line rule # */ - rnum = strtoul(*lav++, &endptr, 10); + last = rnum = strtoul(*lav++, &endptr, 10); + if (*endptr == '-') + last = strtoul(endptr+1, &endptr, 10); if (*endptr) { + exitval = EX_USAGE; warnx("invalid rule number: %s", *(lav - 1)); continue; } - for (n = seen = 0, r = data; n < nstat; - n++, r = (void *)r + RULESIZE(r) ) { - if (r->rulenum > rnum) + for (n = seen = 0, r = data; n < nstat; n++, r = NEXT(r) ) { + if (r->rulenum > last) break; - if (r->rulenum == rnum) { + if (r->rulenum >= rnum && r->rulenum <= last) { show_ipfw(r, pcwidth, bcwidth); seen = 1; } @@ -1791,6 +1804,8 @@ printf("## Dynamic rules:\n"); for (lac = ac, lav = av; lac != 0; lac--) { rnum = strtoul(*lav++, &endptr, 10); + if (*endptr == '-') + last = strtoul(endptr+1, &endptr, 10); if (*endptr) /* already warned */ continue; @@ -1800,7 +1815,7 @@ bcopy(&d->rule, &rulenum, sizeof(rulenum)); if (rulenum > rnum) break; - if (rulenum == rnum) + if (r->rulenum >= rnum && r->rulenum <= last) show_dyn_ipfw(d, pcwidth, bcwidth); } } @@ -1813,6 +1828,7 @@ if (exitval != EX_OK) exit(exitval); +#undef NEXT } static void @@ -2083,12 +2099,12 @@ delete(int ac, char *av[]) { uint32_t rulenum; - struct dn_pipe pipe; + struct dn_pipe p; int i; int exitval = EX_OK; int do_set = 0; - memset(&pipe, 0, sizeof pipe); + memset(&p, 0, sizeof p); av++; ac--; if (ac > 0 && !strncmp(*av, "set", strlen(*av))) { @@ -2101,15 +2117,14 @@ i = atoi(*av); av++; ac--; if (do_pipe) { if (do_pipe == 1) - pipe.pipe_nr = i; + p.pipe_nr = i; else - pipe.fs.fs_nr = i; - i = do_cmd(IP_DUMMYNET_DEL, &pipe, sizeof pipe); + p.fs.fs_nr = i; + i = do_cmd(IP_DUMMYNET_DEL, &p, sizeof p); if (i) { exitval = 1; warn("rule %u: setsockopt(IP_DUMMYNET_DEL)", - do_pipe == 1 ? pipe.pipe_nr : - pipe.fs.fs_nr); + do_pipe == 1 ? p.pipe_nr : p.fs.fs_nr); } } else { rulenum = (i & 0xffff) | (do_set << 24); @@ -2164,22 +2179,22 @@ static void config_pipe(int ac, char **av) { - struct dn_pipe pipe; + struct dn_pipe p; int i; char *end; uint32_t a; void *par = NULL; - memset(&pipe, 0, sizeof pipe); + memset(&p, 0, sizeof p); av++; ac--; /* Pipe number */ if (ac && isdigit(**av)) { i = atoi(*av); av++; ac--; if (do_pipe == 1) - pipe.pipe_nr = i; + p.pipe_nr = i; else - pipe.fs.fs_nr = i; + p.fs.fs_nr = i; } while (ac > 0) { double d; @@ -2188,7 +2203,7 @@ switch(tok) { case TOK_NOERROR: - pipe.fs.flags_fs |= DN_NOERROR; + p.fs.flags_fs |= DN_NOERROR; break; case TOK_PLR: @@ -2198,26 +2213,26 @@ d = 1; else if (d < 0) d = 0; - pipe.fs.plr = (int)(d*0x7fffffff); + p.fs.plr = (int)(d*0x7fffffff); ac--; av++; break; case TOK_QUEUE: NEED1("queue needs queue size\n"); end = NULL; - pipe.fs.qsize = strtoul(av[0], &end, 0); + p.fs.qsize = strtoul(av[0], &end, 0); if (*end == 'K' || *end == 'k') { - pipe.fs.flags_fs |= DN_QSIZE_IS_BYTES; - pipe.fs.qsize *= 1024; + p.fs.flags_fs |= DN_QSIZE_IS_BYTES; + p.fs.qsize *= 1024; } else if (*end == 'B' || !strncmp(end, "by", 2)) { - pipe.fs.flags_fs |= DN_QSIZE_IS_BYTES; + p.fs.flags_fs |= DN_QSIZE_IS_BYTES; } ac--; av++; break; case TOK_BUCKETS: NEED1("buckets needs argument\n"); - pipe.fs.rq_size = strtoul(av[0], NULL, 0); + p.fs.rq_size = strtoul(av[0], NULL, 0); ac--; av++; break; @@ -2229,11 +2244,11 @@ */ par = NULL; - pipe.fs.flow_mask.dst_ip = 0; - pipe.fs.flow_mask.src_ip = 0; - pipe.fs.flow_mask.dst_port = 0; - pipe.fs.flow_mask.src_port = 0; - pipe.fs.flow_mask.proto = 0; + p.fs.flow_mask.dst_ip = 0; + p.fs.flow_mask.src_ip = 0; + p.fs.flow_mask.dst_port = 0; + p.fs.flow_mask.src_port = 0; + p.fs.flow_mask.proto = 0; end = NULL; while (ac >= 1) { @@ -2247,28 +2262,28 @@ /* * special case, all bits significant */ - pipe.fs.flow_mask.dst_ip = ~0; - pipe.fs.flow_mask.src_ip = ~0; - pipe.fs.flow_mask.dst_port = ~0; - pipe.fs.flow_mask.src_port = ~0; - pipe.fs.flow_mask.proto = ~0; - pipe.fs.flags_fs |= DN_HAVE_FLOW_MASK; + p.fs.flow_mask.dst_ip = ~0; + p.fs.flow_mask.src_ip = ~0; + p.fs.flow_mask.dst_port = ~0; + p.fs.flow_mask.src_port = ~0; + p.fs.flow_mask.proto = ~0; + p.fs.flags_fs |= DN_HAVE_FLOW_MASK; goto end_mask; case TOK_DSTIP: - p32 = &pipe.fs.flow_mask.dst_ip; + p32 = &p.fs.flow_mask.dst_ip; break; case TOK_SRCIP: - p32 = &pipe.fs.flow_mask.src_ip; + p32 = &p.fs.flow_mask.src_ip; break; case TOK_DSTPORT: - p16 = &pipe.fs.flow_mask.dst_port; + p16 = &p.fs.flow_mask.dst_port; break; case TOK_SRCPORT: - p16 = &pipe.fs.flow_mask.src_port; + p16 = &p.fs.flow_mask.src_port; break; case TOK_PROTO: @@ -2296,10 +2311,10 @@ if (a > 255) errx(EX_DATAERR, "mask: must be 8 bit"); - pipe.fs.flow_mask.proto = (uint8_t)a; + p.fs.flow_mask.proto = (uint8_t)a; } if (a != 0) - pipe.fs.flags_fs |= DN_HAVE_FLOW_MASK; + p.fs.flags_fs |= DN_HAVE_FLOW_MASK; ac--; av++; } /* end while, config masks */ end_mask: @@ -2308,9 +2323,9 @@ case TOK_RED: case TOK_GRED: NEED1("red/gred needs w_q/min_th/max_th/max_p\n"); - pipe.fs.flags_fs |= DN_IS_RED; + p.fs.flags_fs |= DN_IS_RED; if (tok == TOK_GRED) - pipe.fs.flags_fs |= DN_IS_GENTLE_RED; + p.fs.flags_fs |= DN_IS_GENTLE_RED; /* * the format for parameters is w_q/min_th/max_th/max_p */ @@ -2318,29 +2333,29 @@ double w_q = strtod(end, NULL); if (w_q > 1 || w_q <= 0) errx(EX_DATAERR, "0 < w_q <= 1"); - pipe.fs.w_q = (int) (w_q * (1 << SCALE_RED)); + p.fs.w_q = (int) (w_q * (1 << SCALE_RED)); } if ((end = strsep(&av[0], "/"))) { - pipe.fs.min_th = strtoul(end, &end, 0); + p.fs.min_th = strtoul(end, &end, 0); if (*end == 'K' || *end == 'k') - pipe.fs.min_th *= 1024; + p.fs.min_th *= 1024; } if ((end = strsep(&av[0], "/"))) { - pipe.fs.max_th = strtoul(end, &end, 0); + p.fs.max_th = strtoul(end, &end, 0); if (*end == 'K' || *end == 'k') - pipe.fs.max_th *= 1024; + p.fs.max_th *= 1024; } if ((end = strsep(&av[0], "/"))) { double max_p = strtod(end, NULL); if (max_p > 1 || max_p <= 0) errx(EX_DATAERR, "0 < max_p <= 1"); - pipe.fs.max_p = (int)(max_p * (1 << SCALE_RED)); + p.fs.max_p = (int)(max_p * (1 << SCALE_RED)); } ac--; av++; break; case TOK_DROPTAIL: - pipe.fs.flags_fs &= ~(DN_IS_RED|DN_IS_GENTLE_RED); + p.fs.flags_fs &= ~(DN_IS_RED|DN_IS_GENTLE_RED); break; case TOK_BW: @@ -2351,24 +2366,24 @@ * set clocking interface or bandwidth value */ if (av[0][0] >= 'a' && av[0][0] <= 'z') { - int l = sizeof(pipe.if_name)-1; + int l = sizeof(p.if_name)-1; /* interface name */ - strncpy(pipe.if_name, av[0], l); - pipe.if_name[l] = '\0'; - pipe.bandwidth = 0; + strncpy(p.if_name, av[0], l); + p.if_name[l] = '\0'; + p.bandwidth = 0; } else { - pipe.if_name[0] = '\0'; - pipe.bandwidth = strtoul(av[0], &end, 0); + p.if_name[0] = '\0'; + p.bandwidth = strtoul(av[0], &end, 0); if (*end == 'K' || *end == 'k') { end++; - pipe.bandwidth *= 1000; + p.bandwidth *= 1000; } else if (*end == 'M') { end++; - pipe.bandwidth *= 1000000; + p.bandwidth *= 1000000; } if (*end == 'B' || !strncmp(end, "by", 2)) - pipe.bandwidth *= 8; - if (pipe.bandwidth < 0) + p.bandwidth *= 8; + if (p.bandwidth < 0) errx(EX_DATAERR, "bandwidth too large"); } ac--; av++; @@ -2378,7 +2393,7 @@ if (do_pipe != 1) errx(EX_DATAERR, "delay only valid for pipes"); NEED1("delay needs argument 0..10000ms\n"); - pipe.delay = strtoul(av[0], NULL, 0); + p.delay = strtoul(av[0], NULL, 0); ac--; av++; break; @@ -2386,7 +2401,7 @@ if (do_pipe == 1) errx(EX_DATAERR,"weight only valid for queues"); NEED1("weight needs argument 0..100\n"); - pipe.fs.weight = strtoul(av[0], &end, 0); + p.fs.weight = strtoul(av[0], &end, 0); ac--; av++; break; @@ -2394,7 +2409,7 @@ if (do_pipe == 1) errx(EX_DATAERR,"pipe only valid for queues"); NEED1("pipe needs pipe_number\n"); - pipe.fs.parent_nr = strtoul(av[0], &end, 0); + p.fs.parent_nr = strtoul(av[0], &end, 0); ac--; av++; break; @@ -2403,34 +2418,34 @@ } } if (do_pipe == 1) { - if (pipe.pipe_nr == 0) + if (p.pipe_nr == 0) errx(EX_DATAERR, "pipe_nr must be > 0"); - if (pipe.delay > 10000) + if (p.delay > 10000) errx(EX_DATAERR, "delay must be < 10000"); } else { /* do_pipe == 2, queue */ - if (pipe.fs.parent_nr == 0) + if (p.fs.parent_nr == 0) errx(EX_DATAERR, "pipe must be > 0"); - if (pipe.fs.weight >100) + if (p.fs.weight >100) errx(EX_DATAERR, "weight must be <= 100"); } - if (pipe.fs.flags_fs & DN_QSIZE_IS_BYTES) { - if (pipe.fs.qsize > 1024*1024) + if (p.fs.flags_fs & DN_QSIZE_IS_BYTES) { + if (p.fs.qsize > 1024*1024) errx(EX_DATAERR, "queue size must be < 1MB"); } else { - if (pipe.fs.qsize > 100) + if (p.fs.qsize > 100) errx(EX_DATAERR, "2 <= queue size <= 100"); } - if (pipe.fs.flags_fs & DN_IS_RED) { + if (p.fs.flags_fs & DN_IS_RED) { size_t len; int lookup_depth, avg_pkt_size; double s, idle, weight, w_q; - struct clockinfo clock; + struct clockinfo ck; int t; - if (pipe.fs.min_th >= pipe.fs.max_th) + if (p.fs.min_th >= p.fs.max_th) errx(EX_DATAERR, "min_th %d must be < than max_th %d", - pipe.fs.min_th, pipe.fs.max_th); - if (pipe.fs.max_th == 0) + p.fs.min_th, p.fs.max_th); + if (p.fs.max_th == 0) errx(EX_DATAERR, "max_th must be > 0"); len = sizeof(int); @@ -2455,7 +2470,7 @@ " be greater than zero"); len = sizeof(struct clockinfo); - if (sysctlbyname("kern.clockrate", &clock, &len, NULL, 0) == -1) + if (sysctlbyname("kern.clockrate", &ck, &len, NULL, 0) == -1) >>> TRUNCATED FOR MAIL (1000 lines) <<<