From owner-p4-projects@FreeBSD.ORG Tue Apr 8 17:43:03 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6018637B404; Tue, 8 Apr 2003 17:43: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 EE0C037B401 for ; Tue, 8 Apr 2003 17:42:58 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6A21843FAF for ; Tue, 8 Apr 2003 17:42:57 -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 h390gv0U015310 for ; Tue, 8 Apr 2003 17:42:57 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h390gu9N015307 for perforce@freebsd.org; Tue, 8 Apr 2003 17:42:56 -0700 (PDT) Date: Tue, 8 Apr 2003 17:42:56 -0700 (PDT) Message-Id: <200304090042.h390gu9N015307@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 28583 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 Apr 2003 00:43:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=28583 Change 28583 by peter@peter_daintree on 2003/04/08 17:42:27 IFC @28572 Affected files ... .. //depot/projects/hammer/lib/libutil/pw_util.c#4 integrate .. //depot/projects/hammer/sys/dev/adlink/adlink.c#2 integrate .. //depot/projects/hammer/sys/dev/ata/ata-raid.c#7 integrate .. //depot/projects/hammer/sys/dev/fxp/if_fxp.c#11 integrate .. //depot/projects/hammer/sys/i386/include/pmap.h#5 integrate .. //depot/projects/hammer/sys/kern/uipc_cow.c#6 integrate .. //depot/projects/hammer/sys/sparc64/conf/GENERIC#9 integrate Differences ... ==== //depot/projects/hammer/lib/libutil/pw_util.c#4 (text+ko) ==== @@ -43,7 +43,7 @@ static const char sccsid[] = "@(#)pw_util.c 8.3 (Berkeley) 4/2/94"; #endif static const char rcsid[] = - "$FreeBSD: src/lib/libutil/pw_util.c,v 1.28 2003/03/17 02:12:55 das Exp $"; + "$FreeBSD: src/lib/libutil/pw_util.c,v 1.29 2003/04/08 18:04:30 des Exp $"; #endif /* not lint */ /* @@ -290,7 +290,6 @@ struct stat st1, st2; const char *editor; char *editcmd; - int editcmdlen; int pstat; if ((editor = getenv("EDITOR")) == NULL) @@ -306,14 +305,8 @@ (void)setgid(getgid()); (void)setuid(getuid()); } - if ((editcmdlen = sysconf(_SC_ARG_MAX) - 6) <= 0 || - (editcmd = malloc(editcmdlen)) == NULL) - _exit(EXIT_FAILURE); - if (snprintf(editcmd, editcmdlen, "%s %s", - editor, tempname) >= editcmdlen) { - free(editcmd); /* pedantry */ + if (asprintf(&editcmd, "exec %s %s", editor, tempname) == NULL) _exit(EXIT_FAILURE); - } errno = 0; execl(_PATH_BSHELL, "sh", "-c", editcmd, NULL); free(editcmd); @@ -322,13 +315,16 @@ /* parent */ break; } + setpgid(editpid, editpid); + tcsetpgrp(1, editpid); for (;;) { - editpid = waitpid(editpid, &pstat, WUNTRACED); - if (editpid == -1) { + if (waitpid(editpid, &pstat, WUNTRACED) == -1) { unlink(tempname); return (-1); } else if (WIFSTOPPED(pstat)) { raise(WSTOPSIG(pstat)); + tcsetpgrp(1, getpgid(editpid)); + kill(editpid, SIGCONT); } else if (WIFEXITED(pstat) && WEXITSTATUS(pstat) == 0) { editpid = -1; break; ==== //depot/projects/hammer/sys/dev/adlink/adlink.c#2 (text+ko) ==== @@ -26,13 +26,15 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/adlink/adlink.c,v 1.1 2003/04/04 18:53:04 phk Exp $ + * $FreeBSD: src/sys/dev/adlink/adlink.c,v 1.2 2003/04/08 19:12:48 phk Exp $ */ +#ifdef _KERNEL #include #include #include #include +#include #include #include #include @@ -44,17 +46,54 @@ #include #include +#endif /* _KERNEL */ + +#include + +struct wave { + int index; + int period; + int offset; + int length; + int avg; + off_t mapvir; + int flags; + + int npages; + void **virtual; +}; + +#define ADLINK_SETWAVE _IOWR('A', 232, struct wave) +#define ADLINK_GETWAVE _IOWR('A', 233, struct wave) + +#ifdef _KERNEL + +#define INTPERPAGE (PAGE_SIZE / sizeof(int)) +#define I16PERPAGE (PAGE_SIZE / sizeof(int16_t)) + /* - * We sample one channel (= 16 bits) at 1 msps giving 2Mbyte/sec, - * 50 pages will give us about 1/10 second buffering. + * Sample rate + */ +#define SPS 1250000 + +/* + * We sample one channel (= 16 bits) at 1.25 msps giving 2.5Mbyte/sec, + * 100 pages will give us about 1/6 second buffering. */ -#define NRING 50 +#define NRING 100 -#define IN4(sc, offset) bus_space_read_4(sc->t_io, sc->h_io, offset) +/* + * How many waves are we willing to entertain + */ +#define NWAVE 25 struct info { int nring; off_t o_ring; + + int ngri; + int ppgri; + off_t o_gri; }; struct softc { @@ -64,21 +103,145 @@ bus_space_tag_t t0, t1; bus_space_handle_t h0, h1; dev_t dev; + off_t mapvir; + struct proc *procp; + struct info *info; + struct wave *wave[NWAVE]; + int idx; void *ring[NRING]; - vm_paddr_t phys[NRING]; + vm_paddr_t pring[NRING]; int stat[NRING]; + + uint64_t cnt; + + u_char flags[I16PERPAGE]; }; +static void +adlink_wave(struct softc *sc, struct wave *wp, int16_t *sp) +{ + int f, i, k, m, *ip; + + f = 0; + for (i = 0; i < I16PERPAGE; ) { + k = (sc->cnt - wp->offset + i) % wp->period; + if (k >= wp->length) { + i += wp->period - k; + sp += wp->period - k; + continue; + } + m = k % INTPERPAGE; + ip = (int *)(wp->virtual[k / INTPERPAGE]) + m; + while (m < INTPERPAGE && i < I16PERPAGE && k < wp->length) { + if (sc->flags[i] >= wp->index) + *ip += (*sp * 8 - *ip) >> wp->avg; + if (wp->flags & 1) + sc->flags[i] = wp->index; + sp++; + ip++; + m++; + i++; + k++; + } + } +} + +static void +adlink_tickle(struct softc *sc) +{ + + wakeup(sc); + tsleep(&sc->ring, PUSER | PCATCH, "tickle", 1); +} + static int +adlink_new_wave(struct softc *sc, int index, int period, int offset, int length, int avg, int flags) +{ + struct wave *wp; + int l, i; + void **oldvir, **newvir; + + if (index < 0 || index >= NWAVE) + return (EINVAL); + wp = sc->wave[index]; + if (wp == NULL) { + adlink_tickle(sc); + wp = malloc(sizeof *wp, M_DEVBUF, M_WAITOK | M_ZERO); + } + l = howmany(length, INTPERPAGE); + /* Setting a high average here to neuter the realtime bits */ + wp->avg = 31; + if (wp->npages < l) { + oldvir = wp->virtual; + adlink_tickle(sc); + newvir = malloc(sizeof(void *) * l, M_DEVBUF, M_WAITOK | M_ZERO); + if (wp->npages > 0) { + adlink_tickle(sc); + bcopy(oldvir, newvir, wp->npages * sizeof(void *)); + } + for (i = wp->npages; i < l; i++) { + adlink_tickle(sc); + newvir[i] = malloc(PAGE_SIZE, M_DEVBUF, M_WAITOK); + } + wp->virtual = newvir; + wp->npages = l; + wp->mapvir = sc->mapvir; + sc->mapvir += l * PAGE_SIZE; + } else { + oldvir = NULL; + } + wp->index = index; + wp->period = period; + wp->offset = offset; + wp->length = length; + wp->flags = flags; + + for (i = 0; i < l; i++) { + adlink_tickle(sc); + bzero(wp->virtual[i], PAGE_SIZE); + } + wp->avg = avg; + sc->wave[index] = wp; + printf("Wave[%d] {period %d, offset %d, length %d, avg %d, flags %x}\n", + wp->index, wp->period, wp->offset, wp->length, wp->avg, wp->flags); + free(oldvir, M_DEVBUF); + return (0); +} + +static void +adlink_loran(void *arg) +{ + struct softc *sc; + int idx, i; + + sc = arg; + idx = 0; + for (;;) { + while (sc->stat[idx] == 0) + msleep(sc, NULL, PRIBIO, "loran", 1); + memset(sc->flags, NWAVE, sizeof sc->flags); + for (i = 0; i < NWAVE; i++) { + if (sc->wave[i] != NULL) + adlink_wave(sc, sc->wave[i], sc->ring[idx]); + } + sc->cnt += I16PERPAGE; + sc->stat[idx] = 0; + idx++; + idx %= NRING; + } + kthread_exit(0); +} + +static int adlink_open(dev_t dev, int oflags, int devtype, struct thread *td) { static int once; struct softc *sc; - int i; + int i, error; uint32_t u; if (once) @@ -88,49 +251,114 @@ sc = dev->si_drv1; sc->info = malloc(PAGE_SIZE, M_DEVBUF, M_ZERO | M_WAITOK); sc->info->nring = NRING; + sc->info->o_ring = PAGE_SIZE; for (i = 0; i < NRING; i++) { sc->ring[i] = malloc(PAGE_SIZE, M_DEVBUF, M_ZERO | M_WAITOK); - sc->phys[i] = vtophys(sc->ring[i]); + sc->pring[i] = vtophys(sc->ring[i]); } + error = adlink_new_wave(sc, NWAVE - 1, SPS, 0, SPS, 7, 0); + if (error) + return (error); + + error = kthread_create(adlink_loran, sc, &sc->procp, + 0, 0, "adlink%d", device_get_unit(sc->device)); + if (error) + return (error); + + /* Enable interrupts on write complete */ bus_space_write_4(sc->t0, sc->h0, 0x38, 0x00004000); + + /* Sample CH0 only */ bus_space_write_4(sc->t1, sc->h1, 0x00, 1); - bus_space_write_4(sc->t1, sc->h1, 0x04, 10); + + /* Divide clock by ten */ + bus_space_write_4(sc->t1, sc->h1, 0x04, 4); + + /* Software trigger mode: software */ bus_space_write_4(sc->t1, sc->h1, 0x08, 0); + + /* Trigger level zero */ bus_space_write_4(sc->t1, sc->h1, 0x0c, 0); + + /* Trigger source CH0 (not used) */ bus_space_write_4(sc->t1, sc->h1, 0x10, 0); + + /* Fifo control/status: flush */ bus_space_write_4(sc->t1, sc->h1, 0x18, 3); + + /* Clock source: external sine */ bus_space_write_4(sc->t1, sc->h1, 0x20, 2); - bus_space_write_4(sc->t0, sc->h0, 0x24, sc->phys[i]); + /* Set up Write DMA */ + bus_space_write_4(sc->t0, sc->h0, 0x24, sc->pring[i]); bus_space_write_4(sc->t0, sc->h0, 0x28, PAGE_SIZE); - u = bus_space_read_4(sc->t0, sc->h0, 0x3c); bus_space_write_4(sc->t0, sc->h0, 0x3c, u | 0x00000600); + /* Acquisition Enable Register: go! */ bus_space_write_4(sc->t1, sc->h1, 0x1c, 1); return (0); } static int +adlink_ioctl(dev_t dev, u_long cmd, caddr_t data, int fflag, struct thread *td) +{ + struct softc *sc; + struct wave *wp; + int i, error; + + sc = dev->si_drv1; + wp = (struct wave *)data; + i = wp->index; + if (i < 0 || i >= NWAVE) + return (EINVAL); + if (cmd == ADLINK_GETWAVE) { + if (sc->wave[i] == NULL) + return (ENOENT); + bcopy(sc->wave[i], wp, sizeof(*wp)); + return (0); + } + if (cmd == ADLINK_SETWAVE) { + error = adlink_new_wave(sc, + i, + wp->period, + wp->offset, + wp->length, + wp->avg, + wp->flags); + if (error) + return (error); + bcopy(sc->wave[i], wp, sizeof(*wp)); + return (0); + } + return (ENOIOCTL); +} + +static int adlink_mmap(dev_t dev, vm_offset_t offset, vm_paddr_t *paddr, int nprot) { - int i; struct softc *sc; + struct wave *wp; + int i, j; sc = dev->si_drv1; if (nprot != VM_PROT_READ) return (-1); - if (offset == 0) { - *paddr = vtophys(sc->info); + for (i = 0; i < NWAVE; i++) { + if (sc->wave[i] == NULL) + continue; + wp = sc->wave[i]; + if (offset < wp->mapvir) + continue; + j = (offset - wp->mapvir) / PAGE_SIZE; + if (j >= wp->npages) + continue; + *paddr = vtophys(wp->virtual[j]); return (0); } - i = (offset - sc->info->o_ring) / PAGE_SIZE; - if (i >= NRING) - return (-1); - *paddr = vtophys(sc->ring[i]); - return (0); + return (-1); } static void @@ -138,7 +366,7 @@ { struct softc *sc; uint32_t u; - int i; + int i, j; sc = arg; u = bus_space_read_4(sc->t0, sc->h0, 0x38); @@ -146,16 +374,27 @@ return; bus_space_write_4(sc->t0, sc->h0, 0x38, u | 0x003f4000); - sc->stat[sc->idx] = 1; - i = (++sc->idx) % NRING; + j = sc->idx; + sc->stat[j] = 1; + i = (j + 1) % NRING; sc->idx = i; - bus_space_write_4(sc->t0, sc->h0, 0x24, sc->phys[i]); + u = bus_space_read_4(sc->t1, sc->h1, 0x18); + if (u & 1) { + printf("adlink FIFO overrun\n"); + return; + } + bus_space_write_4(sc->t0, sc->h0, 0x24, sc->pring[i]); bus_space_write_4(sc->t0, sc->h0, 0x28, PAGE_SIZE); + wakeup(sc); + if (sc->stat[i]) { + printf("adlink page busy\n"); + } } static struct cdevsw adlink_cdevsw = { .d_open = adlink_open, .d_close = nullclose, + .d_ioctl = adlink_ioctl, .d_mmap = adlink_mmap, .d_name = "adlink", }; @@ -182,6 +421,10 @@ bzero(sc, sizeof *sc); sc->device = self; + /* + * This is the PCI mapped registers of the AMCC 9535 "matchmaker" + * chip. + */ rid = 0x10; sc->r0 = bus_alloc_resource(self, SYS_RES_IOPORT, &rid, 0, ~0, 1, RF_ACTIVE); @@ -191,6 +434,10 @@ sc->h0 = rman_get_bushandle(sc->r0); printf("Res0 %x %x\n", sc->t0, sc->h0); + /* + * This is the PCI mapped registers of the ADC hardware, they + * are described in the manual which comes with the card. + */ rid = 0x14; sc->r1 = bus_alloc_resource(self, SYS_RES_IOPORT, &rid, 0, ~0, 1, RF_ACTIVE); @@ -206,8 +453,13 @@ if (sc->ri == NULL) return (ENODEV); - i = bus_setup_intr(self, sc->ri, INTR_TYPE_MISC, + i = bus_setup_intr(self, sc->ri, INTR_MPSAFE | INTR_TYPE_MISC | INTR_FAST, adlink_intr, sc, &sc->intrhand); + if (i) { + printf("adlink: Couldn't get FAST intr\n"); + i = bus_setup_intr(self, sc->ri, INTR_TYPE_MISC, + adlink_intr, sc, &sc->intrhand); + } if (i) return (ENODEV); @@ -236,3 +488,4 @@ }; DRIVER_MODULE(adlink, pci, adlink_driver, adlink_devclass, 0, 0); +#endif /* _KERNEL */ ==== //depot/projects/hammer/sys/dev/ata/ata-raid.c#7 (text+ko) ==== @@ -25,7 +25,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/dev/ata/ata-raid.c,v 1.60 2003/04/08 07:48:52 sos Exp $ + * $FreeBSD: src/sys/dev/ata/ata-raid.c,v 1.61 2003/04/08 18:01:30 sos Exp $ */ #include "opt_ata.h" @@ -1457,7 +1457,7 @@ printf("heads %d\n", config->heads); printf("sectors %d\n", config->sectors); printf("cylinders %d\n", config->cylinders); - printf("total_sectors %lld\n", config->total_sectors); + printf("total_sectors %lld\n", (long long)config->total_sectors); printf("interleave %d\n", config->interleave); printf("reserved %d\n", config->reserved); printf("offset %d\n", config->offset); @@ -1465,6 +1465,6 @@ printf("disk %d: flags = 0x%02x %b\n", i, config->disks[i].flags, config->disks[i].flags, "\20\4ONLINE\3SPARE\2ASSIGNED\1PRESENT\n"); if (config->disks[i].device) printf(" %s\n", config->disks[i].device->name); - printf(" sectors %lld\n", config->disks[i].disk_sectors); + printf(" sectors %lld\n", (long long)config->disks[i].disk_sectors); } } ==== //depot/projects/hammer/sys/dev/fxp/if_fxp.c#11 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/fxp/if_fxp.c,v 1.164 2003/04/08 17:21:15 mux Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/fxp/if_fxp.c,v 1.166 2003/04/08 18:56:45 mux Exp $"); #include #include @@ -223,8 +223,9 @@ static int sysctl_hw_fxp_int_delay(SYSCTL_HANDLER_ARGS); static __inline void fxp_scb_wait(struct fxp_softc *sc); static __inline void fxp_scb_cmd(struct fxp_softc *sc, int cmd); -static __inline void fxp_dma_wait(volatile u_int16_t *status, - struct fxp_softc *sc); +static __inline void fxp_dma_wait(struct fxp_softc *sc, + volatile u_int16_t *status, bus_dma_tag_t dmat, + bus_dmamap_t map); static device_method_t fxp_methods[] = { /* Device interface */ @@ -288,12 +289,16 @@ } static __inline void -fxp_dma_wait(volatile u_int16_t *status, struct fxp_softc *sc) +fxp_dma_wait(struct fxp_softc *sc, volatile u_int16_t *status, + bus_dma_tag_t dmat, bus_dmamap_t map) { int i = 10000; - while (!(le16toh(*status) & FXP_CB_STATUS_C) && --i) + bus_dmamap_sync(dmat, map, BUS_DMASYNC_POSTREAD); + while (!(le16toh(*status) & FXP_CB_STATUS_C) && --i) { DELAY(2); + bus_dmamap_sync(dmat, map, BUS_DMASYNC_POSTREAD); + } if (i == 0) device_printf(sc->dev, "DMA timeout\n"); } @@ -1383,8 +1388,10 @@ * granularities, we must prevent the card from DMA'ing * up the status while we update the command field. * This could cause us to overwrite the completion status. + * XXX This is probably bogus and we're _not_ looking + * for atomicity here. */ - atomic_clear_short(&sc->fxp_desc.tx_last->tx_cb->cb_command, + atomic_clear_16(&sc->fxp_desc.tx_last->tx_cb->cb_command, htole16(FXP_CB_COMMAND_S)); #else sc->fxp_desc.tx_last->tx_cb->cb_command &= @@ -1902,7 +1909,7 @@ CSR_WRITE_4(sc, FXP_CSR_SCB_GENERAL, sc->mcs_addr); fxp_scb_cmd(sc, FXP_SCB_COMMAND_CU_START); /* ...and wait for it to complete. */ - fxp_dma_wait(&mcsp->cb_status, sc); + fxp_dma_wait(sc, &mcsp->cb_status, sc->mcs_tag, sc->mcs_map); bus_dmamap_sync(sc->mcs_tag, sc->mcs_map, BUS_DMASYNC_POSTWRITE); } @@ -2014,7 +2021,7 @@ CSR_WRITE_4(sc, FXP_CSR_SCB_GENERAL, sc->fxp_desc.cbl_addr); fxp_scb_cmd(sc, FXP_SCB_COMMAND_CU_START); /* ...and wait for it to complete. */ - fxp_dma_wait(&cbp->cb_status, sc); + fxp_dma_wait(sc, &cbp->cb_status, sc->cbl_tag, sc->cbl_map); bus_dmamap_sync(sc->cbl_tag, sc->cbl_map, BUS_DMASYNC_POSTWRITE); /* @@ -2035,7 +2042,7 @@ bus_dmamap_sync(sc->cbl_tag, sc->cbl_map, BUS_DMASYNC_PREWRITE); fxp_scb_cmd(sc, FXP_SCB_COMMAND_CU_START); /* ...and wait for it to complete. */ - fxp_dma_wait(&cb_ias->cb_status, sc); + fxp_dma_wait(sc, &cb_ias->cb_status, sc->cbl_tag, sc->cbl_map); bus_dmamap_sync(sc->cbl_tag, sc->cbl_map, BUS_DMASYNC_POSTWRITE); /* @@ -2553,7 +2560,7 @@ CSR_WRITE_4(sc, FXP_CSR_SCB_GENERAL, sc->fxp_desc.cbl_addr); fxp_scb_cmd(sc, FXP_SCB_COMMAND_CU_START); /* ...and wait for it to complete. */ - fxp_dma_wait(&cbp->cb_status, sc); + fxp_dma_wait(sc, &cbp->cb_status, sc->cbl_tag, sc->cbl_map); bus_dmamap_sync(sc->cbl_tag, sc->cbl_map, BUS_DMASYNC_POSTWRITE); device_printf(sc->dev, "Microcode loaded, int_delay: %d usec bundle_max: %d\n", ==== //depot/projects/hammer/sys/i386/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/i386/include/pmap.h,v 1.97 2003/04/07 14:27:19 jake Exp $ + * $FreeBSD: src/sys/i386/include/pmap.h,v 1.98 2003/04/08 18:22:41 jake Exp $ */ #ifndef _MACHINE_PMAP_H_ @@ -195,7 +195,7 @@ { vm_paddr_t pa; - if ((pa = (vm_offset_t) PTD[va >> PDRSHIFT]) & PG_PS) { + if ((pa = PTD[va >> PDRSHIFT]) & PG_PS) { pa = (pa & ~(NBPDR - 1)) | (va & (NBPDR - 1)); } else { pa = *vtopte(va); ==== //depot/projects/hammer/sys/kern/uipc_cow.c#6 (text+ko) ==== @@ -29,7 +29,7 @@ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/kern/uipc_cow.c,v 1.12 2003/03/29 06:14:14 alc Exp $ + * $FreeBSD: src/sys/kern/uipc_cow.c,v 1.13 2003/04/08 18:24:28 alc Exp $ */ /* * This is a set of routines for enabling and disabling copy on write @@ -52,13 +52,6 @@ #include #include #include -#if 0 -#include -#include -#include -#include -#include -#endif struct netsend_cow_stats { @@ -111,7 +104,7 @@ vm_offset_t uva; int s; - vmspace = curproc->p_vmspace;; + vmspace = curproc->p_vmspace; map = &vmspace->vm_map; uva = (vm_offset_t) uio->uio_iov->iov_base; ==== //depot/projects/hammer/sys/sparc64/conf/GENERIC#9 (text+ko) ==== @@ -18,7 +18,7 @@ # # For hardware specific information check HARDWARE.TXT # -# $FreeBSD: src/sys/sparc64/conf/GENERIC,v 1.51 2003/03/22 14:18:23 ru Exp $ +# $FreeBSD: src/sys/sparc64/conf/GENERIC,v 1.52 2003/04/08 20:55:30 mux Exp $ machine sparc64 cpu SUN4U @@ -150,7 +150,7 @@ # PCI Ethernet NICs that use the common MII bus controller code. device miibus # MII bus support #device dc # DEC/Intel 21143 and workalikes -#device fxp # Intel EtherExpress PRO/100B (82557, 82558) +device fxp # Intel EtherExpress PRO/100B (82557, 82558) device gem # Sun GEM/Sun ERI/Apple GMAC device hme # Sun HME (Happy Meal Ethernet) #device pcn # AMD Am79C97x PCI 10/100 NICs