Date: Mon, 14 Jun 2004 18:36:07 GMT From: Robert Watson <rwatson@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 54938 for review Message-ID: <200406141836.i5EIa7n6080072@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=54938 Change 54938 by rwatson@rwatson_tislabs on 2004/06/14 18:35:51 Integrate netperf_socket: - Loop back so_state breakout to sb_state fields from rwatson_netperf. Affected files ... .. //depot/projects/netperf_socket/sys/compat/linux/linux_ioctl.c#3 integrate .. //depot/projects/netperf_socket/sys/compat/linux/linux_ioctl.h#3 integrate .. //depot/projects/netperf_socket/sys/contrib/pf/net/if_pflog.c#6 integrate .. //depot/projects/netperf_socket/sys/contrib/pf/net/if_pfsync.c#6 integrate .. //depot/projects/netperf_socket/sys/dev/acpica/acpi.c#24 integrate .. //depot/projects/netperf_socket/sys/dev/firewire/firewire.c#6 integrate .. //depot/projects/netperf_socket/sys/dev/firewire/if_fwip.c#2 integrate .. //depot/projects/netperf_socket/sys/dev/ips/ips_commands.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/sound/isa/sb16.c#6 integrate .. //depot/projects/netperf_socket/sys/fs/fifofs/fifo_vnops.c#6 integrate .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_drive.c#2 integrate .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_raid5.c#2 integrate .. //depot/projects/netperf_socket/sys/kern/kern_sema.c#2 integrate .. //depot/projects/netperf_socket/sys/kern/sys_socket.c#7 integrate .. //depot/projects/netperf_socket/sys/kern/uipc_socket.c#17 integrate .. //depot/projects/netperf_socket/sys/kern/uipc_socket2.c#14 integrate .. //depot/projects/netperf_socket/sys/kern/uipc_syscalls.c#18 integrate .. //depot/projects/netperf_socket/sys/kern/uipc_usrreq.c#13 integrate .. //depot/projects/netperf_socket/sys/kern/vfs_subr.c#9 integrate .. //depot/projects/netperf_socket/sys/net/firewire.h#2 integrate .. //depot/projects/netperf_socket/sys/netatm/atm_aal5.c#2 integrate .. //depot/projects/netperf_socket/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c#7 integrate .. //depot/projects/netperf_socket/sys/netgraph/ng_ksocket.c#7 integrate .. //depot/projects/netperf_socket/sys/netinet/accf_http.c#3 integrate .. //depot/projects/netperf_socket/sys/netinet/tcp_input.c#8 integrate .. //depot/projects/netperf_socket/sys/netinet/tcp_usrreq.c#8 integrate .. //depot/projects/netperf_socket/sys/netipx/spx_usrreq.c#4 integrate .. //depot/projects/netperf_socket/sys/netsmb/smb_trantcp.c#4 integrate .. //depot/projects/netperf_socket/sys/sys/_types.h#3 integrate .. //depot/projects/netperf_socket/sys/sys/param.h#12 integrate .. //depot/projects/netperf_socket/sys/sys/socketvar.h#14 integrate Differences ... ==== //depot/projects/netperf_socket/sys/compat/linux/linux_ioctl.c#3 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.113 2004/02/19 12:38:12 bms Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.114 2004/06/14 07:26:23 phk Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -49,6 +49,7 @@ #include <sys/socket.h> #include <sys/sockio.h> #include <sys/soundcard.h> +#include <sys/stdint.h> #include <sys/tty.h> #include <sys/uio.h> #include <net/if.h> @@ -65,6 +66,7 @@ static linux_ioctl_function_t linux_ioctl_cdrom; static linux_ioctl_function_t linux_ioctl_vfat; static linux_ioctl_function_t linux_ioctl_console; +static linux_ioctl_function_t linux_ioctl_hdio; static linux_ioctl_function_t linux_ioctl_disk; static linux_ioctl_function_t linux_ioctl_socket; static linux_ioctl_function_t linux_ioctl_sound; @@ -79,6 +81,8 @@ { linux_ioctl_vfat, LINUX_IOCTL_VFAT_MIN, LINUX_IOCTL_VFAT_MAX }; static struct linux_ioctl_handler console_handler = { linux_ioctl_console, LINUX_IOCTL_CONSOLE_MIN, LINUX_IOCTL_CONSOLE_MAX }; +static struct linux_ioctl_handler hdio_handler = +{ linux_ioctl_hdio, LINUX_IOCTL_HDIO_MIN, LINUX_IOCTL_HDIO_MAX }; static struct linux_ioctl_handler disk_handler = { linux_ioctl_disk, LINUX_IOCTL_DISK_MIN, LINUX_IOCTL_DISK_MAX }; static struct linux_ioctl_handler socket_handler = @@ -95,6 +99,7 @@ DATA_SET(linux_ioctl_handler_set, cdrom_handler); DATA_SET(linux_ioctl_handler_set, vfat_handler); DATA_SET(linux_ioctl_handler_set, console_handler); +DATA_SET(linux_ioctl_handler_set, hdio_handler); DATA_SET(linux_ioctl_handler_set, disk_handler); DATA_SET(linux_ioctl_handler_set, socket_handler); DATA_SET(linux_ioctl_handler_set, sound_handler); @@ -112,7 +117,106 @@ static TAILQ_HEAD(, handler_element) handlers = TAILQ_HEAD_INITIALIZER(handlers); +/* + * hdio related ioctls for VMWare support + */ + +struct linux_hd_geometry { + u_int8_t heads; + u_int8_t sectors; + u_int16_t cylinders; + u_int32_t start; +}; + +struct linux_hd_big_geometry { + u_int8_t heads; + u_int8_t sectors; + u_int32_t cylinders; + u_int32_t start; +}; + static int +linux_ioctl_hdio(struct thread *td, struct linux_ioctl_args *args) +{ + struct file *fp; + int error; + u_int sectorsize, fwcylinders, fwheads, fwsectors; + off_t mediasize, bytespercyl; + + if ((error = fget(td, args->fd, &fp)) != 0) + return (error); + switch (args->cmd & 0xffff) { + case LINUX_HDIO_GET_GEO: + case LINUX_HDIO_GET_GEO_BIG: + error = fo_ioctl(fp, DIOCGMEDIASIZE, + (caddr_t)&mediasize, td->td_ucred, td); + if (!error) + error = fo_ioctl(fp, DIOCGSECTORSIZE, + (caddr_t)§orsize, td->td_ucred, td); + if (!error) + error = fo_ioctl(fp, DIOCGFWHEADS, + (caddr_t)&fwheads, td->td_ucred, td); + if (!error) + error = fo_ioctl(fp, DIOCGFWSECTORS, + (caddr_t)&fwsectors, td->td_ucred, td); + /* + * XXX: DIOCGFIRSTOFFSET is not yet implemented, so + * so pretend that GEOM always says 0. This is NOT VALID + * for slices or partitions, only the per-disk raw devices. + */ + + fdrop(fp, td); + if (error) + return (error); + /* + * 1. Calculate the number of bytes in a cylinder, + * given the firmware's notion of heads and sectors + * per cylinder. + * 2. Calculate the number of cylinders, given the total + * size of the media. + * All internal calculations should have 64-bit precision. + */ + bytespercyl = (off_t) sectorsize * fwheads * fwsectors; + fwcylinders = mediasize / bytespercyl; +#if defined(DEBUG) + linux_msg(td, "HDIO_GET_GEO: mediasize %jd, c/h/s %d/%d/%d, " + "bpc %jd", + (intmax_t)mediasize, fwcylinders, fwheads, fwsectors, + (intmax_t)bytespercyl); +#endif + if ((args->cmd & 0xffff) == LINUX_HDIO_GET_GEO) { + struct linux_hd_geometry hdg; + + hdg.cylinders = fwcylinders; + hdg.heads = fwheads; + hdg.sectors = fwsectors; + hdg.start = 0; + error = copyout(&hdg, (void *)args->arg, sizeof(hdg)); + } else if ((args->cmd & 0xffff) == LINUX_HDIO_GET_GEO_BIG) { + struct linux_hd_big_geometry hdbg; + + hdbg.cylinders = fwcylinders; + hdbg.heads = fwheads; + hdbg.sectors = fwsectors; + hdbg.start = 0; + error = copyout(&hdbg, (void *)args->arg, sizeof(hdbg)); + } + return (error); + break; + default: + /* XXX */ + linux_msg(td, + "ioctl fd=%d, cmd=0x%x ('%c',%d) is not implemented", + args->fd, (int)(args->cmd & 0xffff), + (int)(args->cmd & 0xff00) >> 8, + (int)(args->cmd & 0xff)); + break; + } + fdrop(fp, td); + return (ENOIOCTL); +} + +static int linux_ioctl_disk(struct thread *td, struct linux_ioctl_args *args) { struct file *fp; @@ -138,6 +242,7 @@ */ return (copyout(§orsize, (void *)args->arg, sizeof(sectorsize))); + break; } fdrop(fp, td); return (ENOIOCTL); ==== //depot/projects/netperf_socket/sys/compat/linux/linux_ioctl.h#3 (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/compat/linux/linux_ioctl.h,v 1.17 2004/02/19 12:38:12 bms Exp $ + * $FreeBSD: src/sys/compat/linux/linux_ioctl.h,v 1.18 2004/06/14 07:26:23 phk Exp $ */ #ifndef _LINUX_IOCTL_H_ @@ -47,8 +47,18 @@ #define LINUX_BLKSECTGET 0x1267 #define LINUX_BLKSSZGET 0x1268 -#define LINUX_IOCTL_DISK_MIN LINUX_BLKROSET -#define LINUX_IOCTL_DISK_MAX LINUX_BLKSSZGET +#define LINUX_IOCTL_DISK_MIN LINUX_BLKROSET +#define LINUX_IOCTL_DISK_MAX LINUX_BLKSSZGET + +/* + * hdio + */ +#define LINUX_HDIO_GET_GEO 0x0301 +#define LINUX_HDIO_GET_IDENTITY 0x030D /* not yet implemented */ +#define LINUX_HDIO_GET_GEO_BIG 0x0330 + +#define LINUX_IOCTL_HDIO_MIN LINUX_HDIO_GET_GEO +#define LINUX_IOCTL_HDIO_MAX LINUX_HDIO_GET_GEO_BIG /* * cdrom ==== //depot/projects/netperf_socket/sys/contrib/pf/net/if_pflog.c#6 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/contrib/pf/net/if_pflog.c,v 1.6 2004/05/31 22:48:19 mlaier Exp $ */ +/* $FreeBSD: src/sys/contrib/pf/net/if_pflog.c,v 1.7 2004/06/14 16:13:05 mlaier Exp $ */ /* $OpenBSD: if_pflog.c,v 1.9 2003/05/14 08:42:00 canacar Exp $ */ /* * The authors of this code are John Ioannidis (ji@tla.org), @@ -218,23 +218,15 @@ pflogstart(struct ifnet *ifp) { struct mbuf *m; -#if defined(__FreeBSD__) && defined(ALTQ) - struct ifaltq *ifq; -#else - struct ifqueue *ifq; -#endif int s; -#ifdef __FreeBSD__ - ifq = &ifp->if_snd; -#endif for (;;) { s = splimp(); #ifdef __FreeBSD__ - IF_LOCK(ifq); - _IF_DROP(ifq); - _IF_DEQUEUE(ifq, m); - IF_UNLOCK(ifq); + IF_LOCK(&ifp->if_snd); + _IF_DROP(&ifp->if_snd); + _IF_DEQUEUE(&ifp->if_snd, m); + IF_UNLOCK(&ifp->if_snd); #else IF_DROP(&ifp->if_snd); IF_DEQUEUE(&ifp->if_snd, m); ==== //depot/projects/netperf_socket/sys/contrib/pf/net/if_pfsync.c#6 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/contrib/pf/net/if_pfsync.c,v 1.6 2004/05/31 22:48:19 mlaier Exp $ */ +/* $FreeBSD: src/sys/contrib/pf/net/if_pfsync.c,v 1.7 2004/06/14 16:13:05 mlaier Exp $ */ /* $OpenBSD: if_pfsync.c,v 1.6 2003/06/21 09:07:01 djm Exp $ */ /* @@ -218,23 +218,15 @@ pfsyncstart(struct ifnet *ifp) { struct mbuf *m; -#if defined(__FreeBSD__) && defined(ALTQ) - struct ifaltq *ifq; -#else - struct ifqueue *ifq; -#endif int s; -#ifdef __FreeBSD__ - ifq = &ifp->if_snd; -#endif for (;;) { s = splimp(); #ifdef __FreeBSD__ - IF_LOCK(ifq); - _IF_DROP(ifq); - _IF_DEQUEUE(ifq, m); - IF_UNLOCK(ifq); + IF_LOCK(&ifp->if_snd); + _IF_DROP(&ifp->if_snd); + _IF_DEQUEUE(&ifp->if_snd, m); + IF_UNLOCK(&ifp->if_snd); #else IF_DROP(&ifp->if_snd); IF_DEQUEUE(&ifp->if_snd, m); ==== //depot/projects/netperf_socket/sys/dev/acpica/acpi.c#24 (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/acpica/acpi.c,v 1.161 2004/06/14 04:01:12 njl Exp $ + * $FreeBSD: src/sys/dev/acpica/acpi.c,v 1.162 2004/06/14 04:37:45 njl Exp $ */ #include "opt_acpi.h" @@ -128,7 +128,6 @@ static int acpi_probe_order(ACPI_HANDLE handle, int *order); static ACPI_STATUS acpi_probe_child(ACPI_HANDLE handle, UINT32 level, void *context, void **status); -static void acpi_shutdown_pre_sync(void *arg, int howto); static void acpi_shutdown_final(void *arg, int howto); static void acpi_shutdown_poweroff(void *arg); static void acpi_enable_fixed_events(struct acpi_softc *sc); @@ -522,16 +521,12 @@ SYSCTL_ADD_INT(&sc->acpi_sysctl_ctx, SYSCTL_CHILDREN(sc->acpi_sysctl_tree), OID_AUTO, "verbose", CTLFLAG_RD | CTLFLAG_RW, &sc->acpi_verbose, 0, "verbose mode"); - SYSCTL_ADD_INT(&sc->acpi_sysctl_ctx, SYSCTL_CHILDREN(sc->acpi_sysctl_tree), - OID_AUTO, "disable_on_poweroff", CTLFLAG_RD | CTLFLAG_RW, - &sc->acpi_disable_on_poweroff, 0, "ACPI subsystem disable on poweroff"); /* * Default to 1 second before sleeping to give some machines time to * stabilize. */ sc->acpi_sleep_delay = 1; - sc->acpi_disable_on_poweroff = 0; if (bootverbose) sc->acpi_verbose = 1; if ((env = getenv("hw.acpi.verbose")) && strcmp(env, "0")) { @@ -574,9 +569,7 @@ } #endif - /* Register our shutdown handlers */ - EVENTHANDLER_REGISTER(shutdown_pre_sync, acpi_shutdown_pre_sync, sc, - SHUTDOWN_PRI_LAST); + /* Register our shutdown handler. */ EVENTHANDLER_REGISTER(shutdown_final, acpi_shutdown_final, sc, SHUTDOWN_PRI_LAST); @@ -1269,29 +1262,9 @@ } static void -acpi_shutdown_pre_sync(void *arg, int howto) -{ - struct acpi_softc *sc = arg; - - ACPI_ASSERTLOCK; - - /* - * Disable all ACPI events before soft off, otherwise the system - * will be turned on again on some laptops. - * - * XXX this should probably be restricted to masking some events just - * before powering down, since we may still need ACPI during the - * shutdown process. - */ - if (sc->acpi_disable_on_poweroff) - acpi_Disable(sc); -} - -static void acpi_shutdown_final(void *arg, int howto) { ACPI_STATUS status; - ACPI_ASSERTLOCK; /* * If powering off, run the actual shutdown code on each processor. @@ -1322,8 +1295,6 @@ { ACPI_STATUS status; - ACPI_ASSERTLOCK; - /* Only attempt to power off if this is the BSP (cpuid 0). */ if (PCPU_GET(cpuid) != 0) return; ==== //depot/projects/netperf_socket/sys/dev/firewire/firewire.c#6 (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.75 2004/05/30 20:08:32 phk Exp $ + * $FreeBSD: src/sys/dev/firewire/firewire.c,v 1.76 2004/06/14 09:34:20 dfr Exp $ * */ @@ -248,8 +248,8 @@ } if (info->flag & FWTI_TLABEL) { - if((tl = fw_get_tlabel(fc, xfer)) == -1 ) - return EIO; + if ((tl = fw_get_tlabel(fc, xfer)) == -1) + return EAGAIN; fp->mode.hdr.tlrt = tl << 2; } @@ -1739,7 +1739,8 @@ } splx(s); - printf("fw_get_tlabel: no free tlabel\n"); + if (firewire_debug > 1) + printf("fw_get_tlabel: no free tlabel\n"); return(-1); } ==== //depot/projects/netperf_socket/sys/dev/firewire/if_fwip.c#2 (text+ko) ==== @@ -33,7 +33,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/firewire/if_fwip.c,v 1.2 2004/06/13 13:58:00 dfr Exp $ + * $FreeBSD: src/sys/dev/firewire/if_fwip.c,v 1.3 2004/06/14 09:34:20 dfr Exp $ */ #include "opt_inet.h" @@ -552,6 +552,7 @@ struct fw_xferq *xferq; struct fw_pkt *fp; uint16_t nodeid; + int error; int i = 0; GIANT_REQUIRED; @@ -666,7 +667,18 @@ xfer->send.pay_len = m->m_pkthdr.len; - if (fw_asyreq(fc, -1, xfer) != 0) { + error = fw_asyreq(fc, -1, xfer); + if (error == EAGAIN) { + /* + * We ran out of tlabels - requeue the packet + * for later transmission. + */ + xfer->mbuf = 0; + STAILQ_INSERT_TAIL(&fwip->xferlist, xfer, link); + IF_PREPEND(&ifp->if_snd, m); + break; + } + if (error) { /* error */ ifp->if_oerrors ++; /* XXX set error code */ ==== //depot/projects/netperf_socket/sys/dev/ips/ips_commands.c#4 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ips/ips_commands.c,v 1.10 2004/05/30 04:01:29 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ips/ips_commands.c,v 1.11 2004/06/14 18:19:04 jdp Exp $"); #include <dev/ips/ips.h> @@ -248,7 +248,7 @@ ips_adapter_info_callback, command, BUS_DMA_NOWAIT); if ((status->value == IPS_ERROR_STATUS) || - (sema_timedwait(&command->cmd_sema, 30*hz) == 0)) + (sema_timedwait(&command->cmd_sema, 30*hz) != 0)) error = ETIMEDOUT; if (error == 0) { @@ -352,7 +352,7 @@ command->data_buffer,IPS_DRIVE_INFO_LEN, ips_drive_info_callback, command, BUS_DMA_NOWAIT); if ((status->value == IPS_ERROR_STATUS) || - (sema_timedwait(&command->cmd_sema, 10*hz) == 0)) + (sema_timedwait(&command->cmd_sema, 10*hz) != 0)) error = ETIMEDOUT; if (error == 0) { @@ -606,7 +606,7 @@ command->data_buffer,IPS_NVRAM_PAGE_SIZE, ips_read_nvram_callback, command, BUS_DMA_NOWAIT); if ((status->value == IPS_ERROR_STATUS) || - (sema_timedwait(&command->cmd_sema, 30*hz) == 0)) + (sema_timedwait(&command->cmd_sema, 30*hz) != 0)) error = ETIMEDOUT; if (error == 0) { ==== //depot/projects/netperf_socket/sys/dev/sound/isa/sb16.c#6 (text+ko) ==== @@ -38,7 +38,7 @@ #include "mixer_if.h" -SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/isa/sb16.c,v 1.85 2004/05/13 11:33:44 truckman Exp $"); +SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/isa/sb16.c,v 1.86 2004/06/14 15:01:16 josef Exp $"); #define SB16_BUFFSIZE 4096 #define PLAIN_SB16(x) ((((x)->bd_flags) & (BD_F_SB16|BD_F_SB16X)) == BD_F_SB16) @@ -331,6 +331,19 @@ } static int +rel2abs_volume(int x, int max) +{ + int temp; + + temp = ((x * max) + 50) / 100; + if (temp > max) + temp = max; + else if (temp < 0) + temp = 0; + return (temp); +} + +static int sb16mix_set(struct snd_mixer *m, unsigned dev, unsigned left, unsigned right) { struct sb_info *sb = mix_getdevinfo(m); @@ -340,8 +353,8 @@ e = &sb16_mixtab[dev]; max = (1 << e->bits) - 1; - left = (left * max) / 100; - right = (right * max) / 100; + left = rel2abs_volume(left, max); + right = rel2abs_volume(right, max); sb_setmixer(sb, e->reg, left << e->ofs); if (e->stereo) ==== //depot/projects/netperf_socket/sys/fs/fifofs/fifo_vnops.c#6 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)fifo_vnops.c 8.10 (Berkeley) 5/27/95 - * $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.95 2004/06/01 01:18:50 truckman Exp $ + * $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.96 2004/06/14 18:16:20 rwatson Exp $ */ #include <sys/param.h> @@ -211,7 +211,7 @@ } fip->fi_readers = fip->fi_writers = 0; wso->so_snd.sb_lowat = PIPE_BUF; - rso->so_state |= SS_CANTRCVMORE; + rso->so_rcv.sb_state |= SBS_CANTRCVMORE; vp->v_fifoinfo = fip; } @@ -229,7 +229,7 @@ if (ap->a_mode & FREAD) { fip->fi_readers++; if (fip->fi_readers == 1) { - fip->fi_writesock->so_state &= ~SS_CANTSENDMORE; + fip->fi_writesock->so_snd.sb_state &= ~SBS_CANTSENDMORE; if (fip->fi_writers > 0) { wakeup(&fip->fi_writers); sowwakeup(fip->fi_writesock); @@ -243,7 +243,7 @@ } fip->fi_writers++; if (fip->fi_writers == 1) { - fip->fi_readsock->so_state &= ~SS_CANTRCVMORE; + fip->fi_readsock->so_rcv.sb_state &= ~SBS_CANTRCVMORE; if (fip->fi_readers > 0) { wakeup(&fip->fi_readers); sorwakeup(fip->fi_writesock); @@ -447,7 +447,7 @@ struct socket *so = (struct socket *)kn->kn_hook; kn->kn_data = so->so_rcv.sb_cc; - if (so->so_state & SS_CANTRCVMORE) { + if (so->so_rcv.sb_state & SBS_CANTRCVMORE) { kn->kn_flags |= EV_EOF; return (1); } @@ -471,7 +471,7 @@ struct socket *so = (struct socket *)kn->kn_hook; kn->kn_data = sbspace(&so->so_snd); - if (so->so_state & SS_CANTSENDMORE) { + if (so->so_snd.sb_state & SBS_CANTSENDMORE) { kn->kn_flags |= EV_EOF; return (1); } ==== //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_drive.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/geom/vinum/geom_vinum_drive.c,v 1.1 2004/06/12 21:16:10 le Exp $"); +__FBSDID("$FreeBSD: src/sys/geom/vinum/geom_vinum_drive.c,v 1.2 2004/06/14 17:12:32 le Exp $"); #include <sys/param.h> #include <sys/bio.h> @@ -278,7 +278,6 @@ g_destroy_consumer(cp); if (!LIST_EMPTY(&gp->consumer)) return; - g_free(gp->softc); g_wither_geom(gp, error); } ==== //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_raid5.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/geom/vinum/geom_vinum_raid5.c,v 1.1 2004/06/12 21:16:10 le Exp $"); +__FBSDID("$FreeBSD: src/sys/geom/vinum/geom_vinum_raid5.c,v 1.2 2004/06/14 17:06:55 le Exp $"); #include <sys/param.h> #include <sys/bio.h> @@ -297,8 +297,7 @@ stripestart = (boff - stripeoff) / (p->sdcount - 1); KASSERT(stripestart >= 0, ("gv_build_raid5_request: stripestart < 0")); - if (stripeoff >= p->stripesize) - stripeoff -= p->stripesize; + stripeoff %= p->stripesize; /* The offset of the request on this subdisk. */ real_off = stripestart + stripeoff; ==== //depot/projects/netperf_socket/sys/kern/kern_sema.c#2 (text+ko) ==== @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/kern/kern_sema.c,v 1.4 2003/06/11 00:56:56 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_sema.c,v 1.5 2004/06/14 18:19:05 jdp Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -108,7 +108,7 @@ int _sema_timedwait(struct sema *sema, int timo, const char *file, int line) { - int ret, timed_out; + int error; mtx_lock(&sema->sema_mtx); @@ -118,27 +118,25 @@ * continuously, since the timeout period is merely a lower bound on how * long to wait. */ - for (timed_out = 0; sema->sema_value == 0 && timed_out == 0;) { + for (error = 0; sema->sema_value == 0 && error == 0;) { sema->sema_waiters++; - timed_out = cv_timedwait(&sema->sema_cv, &sema->sema_mtx, timo); + error = cv_timedwait(&sema->sema_cv, &sema->sema_mtx, timo); sema->sema_waiters--; } if (sema->sema_value > 0) { /* Success. */ sema->sema_value--; - ret = 1; + error = 0; CTR6(KTR_LOCK, "%s(%p) \"%s\" v = %d at %s:%d", __func__, sema, cv_wmesg(&sema->sema_cv), sema->sema_value, file, line); } else { - ret = 0; - CTR5(KTR_LOCK, "%s(%p) \"%s\" fail at %s:%d", __func__, sema, cv_wmesg(&sema->sema_cv), file, line); } mtx_unlock(&sema->sema_mtx); - return (ret); + return (error); } int ==== //depot/projects/netperf_socket/sys/kern/sys_socket.c#7 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/kern/sys_socket.c,v 1.58 2004/06/13 02:50:05 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/sys_socket.c,v 1.59 2004/06/14 18:16:19 rwatson Exp $"); #include "opt_mac.h" @@ -168,7 +168,7 @@ return (0); case SIOCATMARK: - *(int *)data = (so->so_state&SS_RCVATMARK) != 0; + *(int *)data = (so->so_rcv.sb_state & SBS_RCVATMARK) != 0; return (0); } /* @@ -207,13 +207,13 @@ bzero((caddr_t)ub, sizeof (*ub)); ub->st_mode = S_IFSOCK; /* - * If SS_CANTRCVMORE is set, but there's still data left in the + * If SBS_CANTRCVMORE is set, but there's still data left in the * receive buffer, the socket is still readable. */ - if ((so->so_state & SS_CANTRCVMORE) == 0 || + if ((so->so_rcv.sb_state & SBS_CANTRCVMORE) == 0 || so->so_rcv.sb_cc != 0) ub->st_mode |= S_IRUSR | S_IRGRP | S_IROTH; - if ((so->so_state & SS_CANTSENDMORE) == 0) + if ((so->so_snd.sb_state & SBS_CANTSENDMORE) == 0) ub->st_mode |= S_IWUSR | S_IWGRP | S_IWOTH; ub->st_size = so->so_rcv.sb_cc - so->so_rcv.sb_ctl; ub->st_uid = so->so_cred->cr_uid; ==== //depot/projects/netperf_socket/sys/kern/uipc_socket.c#17 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/kern/uipc_socket.c,v 1.177 2004/06/12 20:47:28 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/uipc_socket.c,v 1.178 2004/06/14 18:16:19 rwatson Exp $"); #include "opt_inet.h" #include "opt_mac.h" @@ -598,7 +598,7 @@ if (error) goto out; do { - if (so->so_state & SS_CANTSENDMORE) + if (so->so_snd.sb_state & SBS_CANTSENDMORE) snderr(EPIPE); if (so->so_error) { error = so->so_error; @@ -748,7 +748,7 @@ if (dontroute) so->so_options |= SO_DONTROUTE; /* - * XXX all the SS_CANTSENDMORE checks previously + * XXX all the SBS_CANTSENDMORE checks previously * done could be out of date. We could have recieved * a reset packet in an interrupt or maybe we slept * while doing page faults in uiomove() etc. We could @@ -910,7 +910,7 @@ so->so_error = 0; goto release; } - if (so->so_state & SS_CANTRCVMORE) { + if (so->so_rcv.sb_state & SBS_CANTRCVMORE) { if (m) goto dontblock; else @@ -1054,7 +1054,7 @@ else KASSERT(m->m_type == MT_DATA || m->m_type == MT_HEADER, ("m->m_type == %d", m->m_type)); - so->so_state &= ~SS_RCVATMARK; + so->so_rcv.sb_state &= ~SBS_RCVATMARK; len = uio->uio_resid; if (so->so_oobmark && len > so->so_oobmark - offset) len = so->so_oobmark - offset; @@ -1144,7 +1144,7 @@ if ((flags & MSG_PEEK) == 0) { so->so_oobmark -= len; if (so->so_oobmark == 0) { - so->so_state |= SS_RCVATMARK; + so->so_rcv.sb_state |= SBS_RCVATMARK; break; } } else { @@ -1164,7 +1164,7 @@ */ while (flags & MSG_WAITALL && m == NULL && uio->uio_resid > 0 && !sosendallatonce(so) && nextrecord == NULL) { - if (so->so_error || so->so_state & SS_CANTRCVMORE) + if (so->so_error || so->so_rcv.sb_state & SBS_CANTRCVMORE) break; /* * Notify the protocol that some data has been @@ -1210,7 +1210,7 @@ (*pr->pr_usrreqs->pru_rcvd)(so, flags); } if (orig_resid == uio->uio_resid && orig_resid && - (flags & MSG_EOR) == 0 && (so->so_state & SS_CANTRCVMORE) == 0) + (flags & MSG_EOR) == 0 && (so->so_rcv.sb_state & SBS_CANTRCVMORE) == 0) goto restart; /* XXX multi-counts msgs */ if (flagsp != NULL) @@ -1850,7 +1850,7 @@ revents |= events & (POLLOUT | POLLWRNORM); if (events & (POLLPRI | POLLRDBAND)) - if (so->so_oobmark || (so->so_state & SS_RCVATMARK)) + if (so->so_oobmark || (so->so_rcv.sb_state & SBS_RCVATMARK)) revents |= events & (POLLPRI | POLLRDBAND); if (revents == 0) { @@ -1921,7 +1921,7 @@ SOCKBUF_LOCK(&so->so_rcv); /* XXX too conservative? */ kn->kn_data = so->so_rcv.sb_cc - so->so_rcv.sb_ctl; - if (so->so_state & SS_CANTRCVMORE) { + if (so->so_rcv.sb_state & SBS_CANTRCVMORE) { kn->kn_flags |= EV_EOF; kn->kn_fflags = so->so_error; result = 1; @@ -1956,7 +1956,7 @@ SOCKBUF_LOCK(&so->so_snd); /* XXX too conservative? */ kn->kn_data = sbspace(&so->so_snd); - if (so->so_state & SS_CANTSENDMORE) { + if (so->so_snd.sb_state & SBS_CANTSENDMORE) { kn->kn_flags |= EV_EOF; kn->kn_fflags = so->so_error; result = 1; ==== //depot/projects/netperf_socket/sys/kern/uipc_socket2.c#14 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/kern/uipc_socket2.c,v 1.129 2004/06/13 02:50:05 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/uipc_socket2.c,v 1.130 2004/06/14 18:16:19 rwatson Exp $"); #include "opt_mac.h" #include "opt_param.h" @@ -166,7 +166,9 @@ if (need_lock) SOCK_LOCK(so); so->so_state &= ~SS_ISCONNECTING; - so->so_state |= (SS_ISDISCONNECTING|SS_CANTRCVMORE|SS_CANTSENDMORE); + so->so_state |= SS_ISDISCONNECTING; + so->so_rcv.sb_state |= SBS_CANTRCVMORE; + so->so_snd.sb_state |= SBS_CANTSENDMORE; wakeup(&so->so_timeo); SOCK_UNLOCK(so); sowwakeup(so); @@ -184,7 +186,9 @@ if (need_lock) SOCK_LOCK(so); so->so_state &= ~(SS_ISCONNECTING|SS_ISCONNECTED|SS_ISDISCONNECTING); - so->so_state |= (SS_CANTRCVMORE|SS_CANTSENDMORE|SS_ISDISCONNECTED); + so->so_state |= SS_ISDISCONNECTED; + so->so_rcv.sb_state |= SBS_CANTRCVMORE; + so->so_snd.sb_state |= SBS_CANTSENDMORE; wakeup(&so->so_timeo); SOCK_UNLOCK(so); sbdrop(&so->so_snd, so->so_snd.sb_cc); @@ -293,7 +297,7 @@ struct socket *so; { - so->so_state |= SS_CANTSENDMORE; + so->so_snd.sb_state |= SBS_CANTSENDMORE; sowwakeup(so); } @@ -312,7 +316,7 @@ struct socket *so; { - so->so_state |= SS_CANTRCVMORE; + so->so_rcv.sb_state |= SBS_CANTRCVMORE; sorwakeup(so); } ==== //depot/projects/netperf_socket/sys/kern/uipc_syscalls.c#18 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/kern/uipc_syscalls.c,v 1.192 2004/06/13 02:50:05 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/uipc_syscalls.c,v 1.193 2004/06/14 18:16:19 rwatson Exp $"); #include "opt_compat.h" #include "opt_ktrace.h" @@ -292,7 +292,7 @@ goto noconnection; } while (TAILQ_EMPTY(&head->so_comp) && head->so_error == 0) { - if (head->so_state & SS_CANTRCVMORE) { + if (head->so_rcv.sb_state & SBS_CANTRCVMORE) { head->so_error = ECONNABORTED; break; } @@ -1849,7 +1849,7 @@ */ SOCKBUF_LOCK(&so->so_snd); if ((so->so_state & SS_NBIO) && sbspace(&so->so_snd) <= 0) { - if (so->so_state & SS_CANTSENDMORE) + if (so->so_snd.sb_state & SBS_CANTSENDMORE) error = EPIPE; else error = EAGAIN; @@ -2015,8 +2015,8 @@ * blocks before the pru_send (or more accurately, any blocking * results in a loop back to here to re-check). */ - if ((so->so_state & SS_CANTSENDMORE) || so->so_error) { - if (so->so_state & SS_CANTSENDMORE) { + if ((so->so_snd.sb_state & SBS_CANTSENDMORE) || so->so_error) { + if (so->so_snd.sb_state & SBS_CANTSENDMORE) { error = EPIPE; } else { error = so->so_error; ==== //depot/projects/netperf_socket/sys/kern/uipc_usrreq.c#13 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/kern/uipc_usrreq.c,v 1.124 2004/06/13 02:50:05 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/uipc_usrreq.c,v 1.125 2004/06/14 18:16:19 rwatson Exp $"); #include "opt_mac.h" @@ -402,7 +402,7 @@ } } - if (so->so_state & SS_CANTSENDMORE) { + if (so->so_snd.sb_state & SBS_CANTSENDMORE) { error = EPIPE; break; } ==== //depot/projects/netperf_socket/sys/kern/vfs_subr.c#9 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/kern/vfs_subr.c,v 1.491 2004/05/31 19:06:01 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/vfs_subr.c,v 1.492 2004/06/14 14:25:03 phk Exp $"); #include "opt_ddb.h" #include "opt_mac.h" @@ -1705,11 +1705,8 @@ delay = dirdelay; break; case VCHR: - if (newvp->v_rdev->si_mountpoint != NULL) { - delay = metadelay; - break; - } - /* FALLTHROUGH */ + delay = metadelay; + break; default: delay = filedelay; } ==== //depot/projects/netperf_socket/sys/net/firewire.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/net/firewire.h,v 1.1 2004/06/13 10:54:35 dfr Exp $ + * $FreeBSD: src/sys/net/firewire.h,v 1.2 2004/06/14 08:17:51 dfr Exp $ */ #ifndef _NET_FIREWIRE_H_ @@ -51,7 +51,7 @@ #if BYTE_ORDER == BIG_ENDIAN uint32_t lf :2; uint32_t reserved1 :2; - uint32_t datagram_size :12 >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200406141836.i5EIa7n6080072>
