PERFORCE change 54938 for review

Robert Watson rwatson at FreeBSD.org
Mon Jun 14 18:36:44 GMT 2004


http://perforce.freebsd.org/chv.cgi?CH=54938

Change 54938 by rwatson at 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)&sectorsize, 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(&sectorsize, (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 at 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) <<<


More information about the p4-projects mailing list