Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 Jul 2005 18:25:43 GMT
From:      John Baldwin <jhb@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 80088 for review
Message-ID:  <200507131825.j6DIPhn9087443@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=80088

Change 80088 by jhb@jhb_slimer on 2005/07/13 18:25:40

	IFC @80086.

Affected files ...

.. //depot/projects/smpng/sys/alpha/alpha/vm_machdep.c#41 integrate
.. //depot/projects/smpng/sys/amd64/amd64/sys_machdep.c#8 integrate
.. //depot/projects/smpng/sys/amd64/amd64/vm_machdep.c#28 integrate
.. //depot/projects/smpng/sys/amd64/isa/clock.c#15 integrate
.. //depot/projects/smpng/sys/arm/arm/vm_machdep.c#14 integrate
.. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_misc.c#23 integrate
.. //depot/projects/smpng/sys/compat/svr4/svr4.h#4 integrate
.. //depot/projects/smpng/sys/compat/svr4/svr4_proto.h#9 integrate
.. //depot/projects/smpng/sys/compat/svr4/svr4_stream.c#24 integrate
.. //depot/projects/smpng/sys/compat/svr4/svr4_syscall.h#8 integrate
.. //depot/projects/smpng/sys/compat/svr4/svr4_syscallnames.c#8 integrate
.. //depot/projects/smpng/sys/compat/svr4/svr4_sysent.c#8 integrate
.. //depot/projects/smpng/sys/compat/svr4/syscalls.master#9 integrate
.. //depot/projects/smpng/sys/conf/files#143 integrate
.. //depot/projects/smpng/sys/conf/newvers.sh#18 integrate
.. //depot/projects/smpng/sys/dev/advansys/adv_isa.c#10 integrate
.. //depot/projects/smpng/sys/dev/auxio/auxio.c#4 integrate
.. //depot/projects/smpng/sys/dev/cp/if_cp.c#12 integrate
.. //depot/projects/smpng/sys/dev/ctau/if_ct.c#14 integrate
.. //depot/projects/smpng/sys/dev/cx/if_cx.c#18 integrate
.. //depot/projects/smpng/sys/dev/ed/if_ed_pccard.c#30 integrate
.. //depot/projects/smpng/sys/dev/em/README#10 integrate
.. //depot/projects/smpng/sys/dev/ep/if_epvar.h#11 integrate
.. //depot/projects/smpng/sys/dev/fb/creator.c#8 integrate
.. //depot/projects/smpng/sys/dev/fb/machfb.c#3 integrate
.. //depot/projects/smpng/sys/dev/hme/if_hme_pci.c#19 integrate
.. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_amd.c#4 integrate
.. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_logging.c#3 integrate
.. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_mod.c#4 integrate
.. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_piv.c#3 integrate
.. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_ppro.c#3 integrate
.. //depot/projects/smpng/sys/dev/iwi/if_iwi.c#6 integrate
.. //depot/projects/smpng/sys/dev/mpt/mpilib/fc_log.h#4 integrate
.. //depot/projects/smpng/sys/dev/mpt/mpilib/mpi.h#5 integrate
.. //depot/projects/smpng/sys/dev/mpt/mpilib/mpi_cnfg.h#5 integrate
.. //depot/projects/smpng/sys/dev/mpt/mpilib/mpi_fc.h#4 integrate
.. //depot/projects/smpng/sys/dev/mpt/mpilib/mpi_init.h#5 integrate
.. //depot/projects/smpng/sys/dev/mpt/mpilib/mpi_ioc.h#5 integrate
.. //depot/projects/smpng/sys/dev/mpt/mpilib/mpi_lan.h#4 integrate
.. //depot/projects/smpng/sys/dev/mpt/mpilib/mpi_raid.h#5 integrate
.. //depot/projects/smpng/sys/dev/mpt/mpilib/mpi_targ.h#4 integrate
.. //depot/projects/smpng/sys/dev/mpt/mpilib/mpi_type.h#6 integrate
.. //depot/projects/smpng/sys/dev/mpt/mpt.c#8 integrate
.. //depot/projects/smpng/sys/dev/mpt/mpt.h#5 integrate
.. //depot/projects/smpng/sys/dev/mpt/mpt_cam.c#1 branch
.. //depot/projects/smpng/sys/dev/mpt/mpt_cam.h#1 branch
.. //depot/projects/smpng/sys/dev/mpt/mpt_debug.c#7 integrate
.. //depot/projects/smpng/sys/dev/mpt/mpt_freebsd.c#13 delete
.. //depot/projects/smpng/sys/dev/mpt/mpt_freebsd.h#7 delete
.. //depot/projects/smpng/sys/dev/mpt/mpt_pci.c#13 integrate
.. //depot/projects/smpng/sys/dev/mpt/mpt_raid.c#1 branch
.. //depot/projects/smpng/sys/dev/mpt/mpt_raid.h#1 branch
.. //depot/projects/smpng/sys/dev/mpt/mpt_reg.h#1 branch
.. //depot/projects/smpng/sys/dev/pccard/pccard.c#36 integrate
.. //depot/projects/smpng/sys/dev/pccard/pccard_cis.c#20 integrate
.. //depot/projects/smpng/sys/dev/pccard/pccard_cis.h#4 integrate
.. //depot/projects/smpng/sys/dev/pccard/pccarddevs#47 integrate
.. //depot/projects/smpng/sys/dev/pccard/pccardvar.h#23 integrate
.. //depot/projects/smpng/sys/dev/ral/if_ral.c#6 integrate
.. //depot/projects/smpng/sys/dev/sn/if_sn.c#21 integrate
.. //depot/projects/smpng/sys/dev/sn/if_sn_pccard.c#17 integrate
.. //depot/projects/smpng/sys/dev/sn/ositech.h#1 branch
.. //depot/projects/smpng/sys/dev/sound/isa/mss.c#23 integrate
.. //depot/projects/smpng/sys/dev/usb/if_ural.c#5 integrate
.. //depot/projects/smpng/sys/dev/wi/if_wi_pccard.c#35 integrate
.. //depot/projects/smpng/sys/dev/xe/if_xe.c#22 integrate
.. //depot/projects/smpng/sys/dev/xe/if_xe_pccard.c#19 integrate
.. //depot/projects/smpng/sys/fs/udf/udf_vnops.c#31 integrate
.. //depot/projects/smpng/sys/geom/gate/g_gate.c#12 integrate
.. //depot/projects/smpng/sys/geom/gate/g_gate.h#4 integrate
.. //depot/projects/smpng/sys/gnu/fs/ext2fs/ext2_vnops.c#2 integrate
.. //depot/projects/smpng/sys/i386/i386/exception.s#24 integrate
.. //depot/projects/smpng/sys/i386/i386/machdep.c#97 integrate
.. //depot/projects/smpng/sys/i386/i386/trap.c#81 integrate
.. //depot/projects/smpng/sys/i386/i386/vm_machdep.c#70 integrate
.. //depot/projects/smpng/sys/i386/isa/clock.c#44 integrate
.. //depot/projects/smpng/sys/i386/pci/pci_pir.c#9 integrate
.. //depot/projects/smpng/sys/ia64/ia64/vm_machdep.c#48 integrate
.. //depot/projects/smpng/sys/kern/kern_thr.c#26 integrate
.. //depot/projects/smpng/sys/modules/Makefile#100 integrate
.. //depot/projects/smpng/sys/modules/ed/Makefile#6 integrate
.. //depot/projects/smpng/sys/modules/ep/Makefile#7 integrate
.. //depot/projects/smpng/sys/modules/mpt/Makefile#2 integrate
.. //depot/projects/smpng/sys/modules/sound/sound/Makefile#2 integrate
.. //depot/projects/smpng/sys/modules/syscons/Makefile#4 integrate
.. //depot/projects/smpng/sys/net/bpf.h#15 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_crypto.c#7 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_crypto_ccmp.c#4 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_input.c#21 integrate
.. //depot/projects/smpng/sys/pc98/cbus/clock.c#3 integrate
.. //depot/projects/smpng/sys/pc98/pc98/machdep.c#3 integrate
.. //depot/projects/smpng/sys/pci/if_xl.c#58 integrate
.. //depot/projects/smpng/sys/powerpc/powerpc/vm_machdep.c#44 integrate
.. //depot/projects/smpng/sys/sparc64/creator/creator.h#5 integrate
.. //depot/projects/smpng/sys/sparc64/creator/creator_upa.c#9 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/vm_machdep.c#50 integrate
.. //depot/projects/smpng/sys/sys/param.h#83 integrate
.. //depot/projects/smpng/sys/sys/pmc.h#4 integrate
.. //depot/projects/smpng/sys/sys/proc.h#146 integrate

Differences ...

==== //depot/projects/smpng/sys/alpha/alpha/vm_machdep.c#41 (text+ko) ====

@@ -67,7 +67,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/alpha/vm_machdep.c,v 1.109 2005/04/23 02:32:30 davidxu Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/alpha/vm_machdep.c,v 1.110 2005/07/10 23:31:09 davidxu Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -360,7 +360,7 @@
 	tf->tf_regs[FRAME_FLAGS] = 0;			/* full restore */
 }
 
-void
+int
 cpu_set_user_tls(struct thread *td, void *tls_base)
 {
 
@@ -368,6 +368,7 @@
 		td->td_pcb->pcb_hw.apcb_unique = (unsigned long)tls_base;
 	else
 		alpha_pal_wrunique((uintptr_t)tls_base);
+	return (0);
 }
 
 /*

==== //depot/projects/smpng/sys/amd64/amd64/sys_machdep.c#8 (text+ko) ====

@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/sys_machdep.c,v 1.89 2005/04/14 16:57:58 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/sys_machdep.c,v 1.90 2005/07/10 23:31:10 davidxu Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -42,6 +42,10 @@
 #include <machine/sysarch.h>
 #include <machine/pcb.h>
 
+#include <vm/vm.h>
+#include <vm/pmap.h>
+#include <machine/vmparam.h>
+
 #ifndef _SYS_SYSPROTO_H_
 struct sysarch_args {
 	int op;
@@ -57,6 +61,7 @@
 	int error = 0;
 	struct pcb *pcb = curthread->td_pcb;
 	uint32_t i386base;
+	uint64_t a64base;
 
 	switch(uap->op) {
 	case I386_GET_FSBASE:
@@ -65,9 +70,12 @@
 		break;
 	case I386_SET_FSBASE:
 		error = copyin(uap->parms, &i386base, sizeof(i386base));
-		pcb->pcb_fsbase = i386base;
-		if (!error)
-			wrmsr(MSR_FSBASE, pcb->pcb_fsbase);
+		if (!error) {
+			critical_enter();
+			wrmsr(MSR_FSBASE, i386base);
+			pcb->pcb_fsbase = i386base;
+			critical_exit();
+		}
 		break;
 	case I386_GET_GSBASE:
 		i386base = pcb->pcb_gsbase;
@@ -75,18 +83,29 @@
 		break;
 	case I386_SET_GSBASE:
 		error = copyin(uap->parms, &i386base, sizeof(i386base));
-		pcb->pcb_gsbase = i386base;
-		if (!error)
-			wrmsr(MSR_KGSBASE, pcb->pcb_gsbase);
+		if (!error) {
+			critical_enter();
+			wrmsr(MSR_KGSBASE, i386base);
+			pcb->pcb_gsbase = i386base;
+			critical_exit();
+		}
 		break;
 	case AMD64_GET_FSBASE:
 		error = copyout(&pcb->pcb_fsbase, uap->parms, sizeof(pcb->pcb_fsbase));
 		break;
 		
 	case AMD64_SET_FSBASE:
-		error = copyin(uap->parms, &pcb->pcb_fsbase, sizeof(pcb->pcb_fsbase));
-		if (!error)
-			wrmsr(MSR_FSBASE, pcb->pcb_fsbase);
+		error = copyin(uap->parms, &a64base, sizeof(a64base));
+		if (!error) {
+			if (a64base < VM_MAXUSER_ADDRESS) {
+				critical_enter();
+				wrmsr(MSR_FSBASE, a64base);
+				pcb->pcb_fsbase = a64base;
+				critical_exit();
+			} else {
+				error = EINVAL;
+			}
+		}
 		break;
 
 	case AMD64_GET_GSBASE:
@@ -94,9 +113,17 @@
 		break;
 
 	case AMD64_SET_GSBASE:
-		error = copyin(uap->parms, &pcb->pcb_gsbase, sizeof(pcb->pcb_gsbase));
-		if (!error)
-			wrmsr(MSR_KGSBASE, pcb->pcb_gsbase);
+		error = copyin(uap->parms, &a64base, sizeof(a64base));
+		if (!error) {
+			if (a64base < VM_MAXUSER_ADDRESS) {
+				critical_enter();
+				wrmsr(MSR_KGSBASE, a64base);
+				pcb->pcb_gsbase = a64base;
+				critical_exit();
+			} else {
+				error = EINVAL;
+			}
+		}
 		break;
 
 	default:

==== //depot/projects/smpng/sys/amd64/amd64/vm_machdep.c#28 (text+ko) ====

@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.247 2005/06/24 00:29:53 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.248 2005/07/10 23:31:10 davidxu Exp $");
 
 #include "opt_isa.h"
 #include "opt_cpu.h"
@@ -341,10 +341,13 @@
 	td->td_frame->tf_rdi = (register_t)arg;
 }
 
-void
+int
 cpu_set_user_tls(struct thread *td, void *tls_base)
 {
 
+	if ((u_int64_t)tls_base >= VM_MAXUSER_ADDRESS)
+		return (EINVAL);
+
 	if (td == curthread) {
 		critical_enter();
 		td->td_pcb->pcb_fsbase = (register_t)tls_base;
@@ -353,6 +356,7 @@
 	} else {
 		td->td_pcb->pcb_fsbase = (register_t)tls_base;
 	}
+	return (0);
 }
 
 #ifdef SMP

==== //depot/projects/smpng/sys/amd64/isa/clock.c#15 (text+ko) ====

@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/isa/clock.c,v 1.221 2005/07/05 20:13:11 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/isa/clock.c,v 1.222 2005/07/13 15:43:19 jhb Exp $");
 
 /*
  * Routines to handle clock hardware.
@@ -101,6 +101,7 @@
 #endif
 u_int	timer_freq = TIMER_FREQ;
 int	timer0_max_count;
+int	timer0_real_max_count;
 int	wall_cmos_clock;	/* wall CMOS clock assumed if != 0 */
 struct mtx clock_lock;
 #define	RTC_LOCK	mtx_lock_spin(&clock_lock)
@@ -108,7 +109,6 @@
 
 static	int	beeping = 0;
 static	const u_char daysinmonth[] = {31,28,31,30,31,30,31,31,30,31,30,31};
-static	u_int	hardclock_max_count;
 static	struct intsrc *i8254_intsrc;
 static	u_int32_t i8254_lastcount;
 static	u_int32_t i8254_offset;
@@ -517,21 +517,24 @@
 static void
 set_timer_freq(u_int freq, int intr_freq)
 {
-	int new_timer0_max_count;
+	int new_timer0_real_max_count;
 
 	i8254_timecounter.tc_frequency = freq;
 	mtx_lock_spin(&clock_lock);
 	timer_freq = freq;
-	new_timer0_max_count = hardclock_max_count = TIMER_DIV(intr_freq);
-	if (using_lapic_timer) {
+	if (using_lapic_timer)
+		new_timer0_real_max_count = 0x10000;
+	else
+		new_timer0_real_max_count = TIMER_DIV(intr_freq);
+	if (new_timer0_real_max_count != timer0_real_max_count) {
+		timer0_real_max_count = new_timer0_real_max_count;
+		if (timer0_real_max_count == 0x10000)
+			timer0_max_count = 0xffff;
+		else
+			timer0_max_count = timer0_real_max_count;
 		outb(TIMER_MODE, TIMER_SEL0 | TIMER_RATEGEN | TIMER_16BIT);
-		outb(TIMER_CNTR0, 0);
-		outb(TIMER_CNTR0, 0);
-	} else if (new_timer0_max_count != timer0_max_count) {
-		timer0_max_count = new_timer0_max_count;
-		outb(TIMER_MODE, TIMER_SEL0 | TIMER_RATEGEN | TIMER_16BIT);
-		outb(TIMER_CNTR0, timer0_max_count & 0xff);
-		outb(TIMER_CNTR0, timer0_max_count >> 8);
+		outb(TIMER_CNTR0, timer0_real_max_count & 0xff);
+		outb(TIMER_CNTR0, timer0_real_max_count >> 8);
 	}
 	mtx_unlock_spin(&clock_lock);
 }
@@ -826,19 +829,8 @@
 static unsigned
 i8254_simple_get_timecount(struct timecounter *tc)
 {
-	u_int count;
-	u_int high, low;
 
-	mtx_lock_spin(&clock_lock);
-
-	/* Select timer0 and latch counter value. */
-	outb(TIMER_MODE, TIMER_SEL0 | TIMER_LATCH);
-
-	low = inb(TIMER_CNTR0);
-	high = inb(TIMER_CNTR0);
-	count = 0xffff - ((high << 8) | low);
-	mtx_unlock_spin(&clock_lock);
-	return (count);
+	return (timer0_max_count - getit());
 }
 
 static unsigned

==== //depot/projects/smpng/sys/arm/arm/vm_machdep.c#14 (text+ko) ====

@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/vm_machdep.c,v 1.16 2005/06/23 11:37:41 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/vm_machdep.c,v 1.17 2005/07/10 23:31:10 davidxu Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -297,7 +297,7 @@
 	tf->tf_spsr = PSR_USR32_MODE;
 }
 
-void
+int
 cpu_set_user_tls(struct thread *td, void *tls_base)
 {
 
@@ -308,6 +308,7 @@
 		*(void **)ARM_TP_ADDRESS = tls_base;
 		critical_exit();
 	}
+	return (0);
 }
 
 void

==== //depot/projects/smpng/sys/compat/freebsd32/freebsd32_misc.c#23 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.38 2005/07/07 18:17:55 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.39 2005/07/13 15:12:19 jhb Exp $");
 
 #include "opt_compat.h"
 
@@ -397,6 +397,7 @@
 		start = addr;
 		end = addr + len;
 
+		mtx_lock(&Giant);
 		if (start != trunc_page(start)) {
 			error = freebsd32_mmap_partial(td, start,
 						       round_page(start), prot,
@@ -427,11 +428,14 @@
 			prot |= VM_PROT_WRITE;
 			map = &td->td_proc->p_vmspace->vm_map;
 			rv = vm_map_remove(map, start, end);
-			if (rv != KERN_SUCCESS)
+			if (rv != KERN_SUCCESS) {
+				mtx_unlock(&Giant);
 				return (EINVAL);
+			}
 			rv = vm_map_find(map, 0, 0,
 					 &start, end - start, FALSE,
 					 prot, VM_PROT_ALL, 0);
+			mtx_unlock(&Giant);
 			if (rv != KERN_SUCCESS)
 				return (EINVAL);
 			r.fd = fd;
@@ -445,6 +449,7 @@
 			td->td_retval[0] = addr;
 			return (0);
 		}
+		mtx_unlock(&Giant);
 		if (end == start) {
 			/*
 			 * After dealing with the ragged ends, there

==== //depot/projects/smpng/sys/compat/svr4/svr4.h#4 (text+ko) ====

@@ -24,7 +24,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/svr4/svr4.h,v 1.8 2005/01/05 22:34:36 imp Exp $
+ * $FreeBSD: src/sys/compat/svr4/svr4.h,v 1.9 2005/07/13 15:14:33 jhb Exp $
  */
 
 #include "opt_svr4.h"
@@ -35,17 +35,5 @@
 extern struct sysentvec svr4_sysvec;
 
 #define COMPAT_SVR4_SOLARIS2
-#define KTRACE
-
-/* These are currently unimplemented (see svr4_ipc.c) */
-#if defined(SYSVMSG)
-# undef SYSVMSG
-#endif
-#if defined(SYSVSHM)
-# undef SYSVSHM
-#endif
-#if defined(SYSVSEM)
-# undef SYSVSEM
-#endif
 
 #endif

==== //depot/projects/smpng/sys/compat/svr4/svr4_proto.h#9 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call prototypes.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/compat/svr4/svr4_proto.h,v 1.17 2005/05/30 15:20:18 rwatson Exp $
- * created from FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.17 2005/05/30 15:09:17 rwatson Exp 
+ * $FreeBSD: src/sys/compat/svr4/svr4_proto.h,v 1.18 2005/07/13 15:14:54 jhb Exp $
+ * created from FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.18 2005/07/13 15:14:33 jhb Exp 
  */
 
 #ifndef _SVR4_SYSPROTO_H_
@@ -100,7 +100,6 @@
 	char signum_l_[PADL_(int)]; int signum; char signum_r_[PADR_(int)];
 	char handler_l_[PADL_(svr4_sig_t)]; svr4_sig_t handler; char handler_r_[PADR_(svr4_sig_t)];
 };
-#if defined(NOTYET)
 struct svr4_sys_msgsys_args {
 	char what_l_[PADL_(int)]; int what; char what_r_[PADR_(int)];
 	char a2_l_[PADL_(int)]; int a2; char a2_r_[PADR_(int)];
@@ -108,12 +107,24 @@
 	char a4_l_[PADL_(int)]; int a4; char a4_r_[PADR_(int)];
 	char a5_l_[PADL_(int)]; int a5; char a5_r_[PADR_(int)];
 };
-#else
-#endif
 struct svr4_sys_sysarch_args {
 	char op_l_[PADL_(int)]; int op; char op_r_[PADR_(int)];
 	char a1_l_[PADL_(void *)]; void * a1; char a1_r_[PADR_(void *)];
 };
+struct svr4_sys_shmsys_args {
+	char what_l_[PADL_(int)]; int what; char what_r_[PADR_(int)];
+	char a2_l_[PADL_(int)]; int a2; char a2_r_[PADR_(int)];
+	char a3_l_[PADL_(int)]; int a3; char a3_r_[PADR_(int)];
+	char a4_l_[PADL_(int)]; int a4; char a4_r_[PADR_(int)];
+	char a5_l_[PADL_(int)]; int a5; char a5_r_[PADR_(int)];
+};
+struct svr4_sys_semsys_args {
+	char what_l_[PADL_(int)]; int what; char what_r_[PADR_(int)];
+	char a2_l_[PADL_(int)]; int a2; char a2_r_[PADR_(int)];
+	char a3_l_[PADL_(int)]; int a3; char a3_r_[PADR_(int)];
+	char a4_l_[PADL_(int)]; int a4; char a4_r_[PADR_(int)];
+	char a5_l_[PADL_(int)]; int a5; char a5_r_[PADR_(int)];
+};
 struct svr4_sys_ioctl_args {
 	char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
 	char com_l_[PADL_(u_long)]; u_long com; char com_r_[PADR_(u_long)];
@@ -413,11 +424,10 @@
 int	svr4_sys_pgrpsys(struct thread *, struct svr4_sys_pgrpsys_args *);
 int	svr4_sys_times(struct thread *, struct svr4_sys_times_args *);
 int	svr4_sys_signal(struct thread *, struct svr4_sys_signal_args *);
-#if defined(NOTYET)
 int	svr4_sys_msgsys(struct thread *, struct svr4_sys_msgsys_args *);
-#else
-#endif
 int	svr4_sys_sysarch(struct thread *, struct svr4_sys_sysarch_args *);
+int	svr4_sys_shmsys(struct thread *, struct svr4_sys_shmsys_args *);
+int	svr4_sys_semsys(struct thread *, struct svr4_sys_semsys_args *);
 int	svr4_sys_ioctl(struct thread *, struct svr4_sys_ioctl_args *);
 int	svr4_sys_utssys(struct thread *, struct svr4_sys_utssys_args *);
 int	svr4_sys_execve(struct thread *, struct svr4_sys_execve_args *);
@@ -478,18 +488,12 @@
 
 #ifdef COMPAT_43
 
-#if defined(NOTYET)
-#else
-#endif
 
 #endif /* COMPAT_43 */
 
 
 #ifdef COMPAT_FREEBSD4
 
-#if defined(NOTYET)
-#else
-#endif
 
 #endif /* COMPAT_FREEBSD4 */
 

==== //depot/projects/smpng/sys/compat/svr4/svr4_stream.c#24 (text+ko) ====

@@ -36,10 +36,10 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_stream.c,v 1.53 2005/03/23 08:28:06 das Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_stream.c,v 1.54 2005/07/13 15:14:33 jhb Exp $");
 
-#define COMPAT_43 1
-
+#include "opt_compat.h"
+#include "opt_ktrace.h"
 #include "opt_mac.h"
 
 #include <sys/param.h>

==== //depot/projects/smpng/sys/compat/svr4/svr4_syscall.h#8 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call numbers.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/compat/svr4/svr4_syscall.h,v 1.15 2005/05/30 15:20:18 rwatson Exp $
- * created from FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.17 2005/05/30 15:09:17 rwatson Exp 
+ * $FreeBSD: src/sys/compat/svr4/svr4_syscall.h,v 1.16 2005/07/13 15:14:54 jhb Exp $
+ * created from FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.18 2005/07/13 15:14:33 jhb Exp 
  */
 
 #define	SVR4_SYS_exit	1
@@ -45,6 +45,8 @@
 #define	SVR4_SYS_svr4_sys_signal	48
 #define	SVR4_SYS_svr4_sys_msgsys	49
 #define	SVR4_SYS_svr4_sys_sysarch	50
+#define	SVR4_SYS_svr4_sys_shmsys	52
+#define	SVR4_SYS_svr4_sys_semsys	53
 #define	SVR4_SYS_svr4_sys_ioctl	54
 #define	SVR4_SYS_svr4_sys_utssys	57
 #define	SVR4_SYS_fsync	58

==== //depot/projects/smpng/sys/compat/svr4/svr4_syscallnames.c#8 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call names.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/compat/svr4/svr4_syscallnames.c,v 1.15 2005/05/30 15:20:18 rwatson Exp $
- * created from FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.17 2005/05/30 15:09:17 rwatson Exp 
+ * $FreeBSD: src/sys/compat/svr4/svr4_syscallnames.c,v 1.16 2005/07/13 15:14:54 jhb Exp $
+ * created from FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.18 2005/07/13 15:14:33 jhb Exp 
  */
 
 const char *svr4_syscallnames[] = {
@@ -56,15 +56,11 @@
 	"setgid",			/* 46 = setgid */
 	"getgid",			/* 47 = getgid */
 	"svr4_sys_signal",			/* 48 = svr4_sys_signal */
-#if defined(NOTYET)
 	"svr4_sys_msgsys",			/* 49 = svr4_sys_msgsys */
-#else
-	"#49",			/* 49 = msgsys */
-#endif
 	"svr4_sys_sysarch",			/* 50 = svr4_sys_sysarch */
 	"#51",			/* 51 = acct */
-	"#52",			/* 52 = shmsys */
-	"#53",			/* 53 = semsys */
+	"svr4_sys_shmsys",			/* 52 = svr4_sys_shmsys */
+	"svr4_sys_semsys",			/* 53 = svr4_sys_semsys */
 	"svr4_sys_ioctl",			/* 54 = svr4_sys_ioctl */
 	"#55",			/* 55 = uadmin */
 	"#56",			/* 56 = exch */

==== //depot/projects/smpng/sys/compat/svr4/svr4_sysent.c#8 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call switch table.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/compat/svr4/svr4_sysent.c,v 1.16 2005/05/30 15:20:18 rwatson Exp $
- * created from FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.17 2005/05/30 15:09:17 rwatson Exp 
+ * $FreeBSD: src/sys/compat/svr4/svr4_sysent.c,v 1.17 2005/07/13 15:14:54 jhb Exp $
+ * created from FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.18 2005/07/13 15:14:33 jhb Exp 
  */
 
 #include <bsm/audit_kevents.h>
@@ -69,15 +69,11 @@
 	{ SYF_MPSAFE | AS(setgid_args), (sy_call_t *)setgid, AUE_NULL },	/* 46 = setgid */
 	{ SYF_MPSAFE | 0, (sy_call_t *)getgid, AUE_NULL },	/* 47 = getgid */
 	{ SYF_MPSAFE | AS(svr4_sys_signal_args), (sy_call_t *)svr4_sys_signal, AUE_NULL },	/* 48 = svr4_sys_signal */
-#if defined(NOTYET)
 	{ AS(svr4_sys_msgsys_args), (sy_call_t *)svr4_sys_msgsys, AUE_NULL },	/* 49 = svr4_sys_msgsys */
-#else
-	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 49 = msgsys */
-#endif
 	{ AS(svr4_sys_sysarch_args), (sy_call_t *)svr4_sys_sysarch, AUE_NULL },	/* 50 = svr4_sys_sysarch */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 51 = acct */
-	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 52 = shmsys */
-	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 53 = semsys */
+	{ AS(svr4_sys_shmsys_args), (sy_call_t *)svr4_sys_shmsys, AUE_NULL },	/* 52 = svr4_sys_shmsys */
+	{ AS(svr4_sys_semsys_args), (sy_call_t *)svr4_sys_semsys, AUE_NULL },	/* 53 = svr4_sys_semsys */
 	{ AS(svr4_sys_ioctl_args), (sy_call_t *)svr4_sys_ioctl, AUE_NULL },	/* 54 = svr4_sys_ioctl */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 55 = uadmin */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 56 = exch */

==== //depot/projects/smpng/sys/compat/svr4/syscalls.master#9 (text+ko) ====

@@ -1,4 +1,4 @@
- $FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.17 2005/05/30 15:09:17 rwatson Exp $
+ $FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.18 2005/07/13 15:14:33 jhb Exp $
 ;	from: @(#)syscalls.master	8.1 (Berkeley) 7/19/93
 ;
 ; System call name/number master file (or rather, slave, from SVR4).
@@ -96,17 +96,14 @@
 47	AUE_NULL	MNOPROTO { gid_t getgid(void); }
 48	AUE_NULL	MSTD	{ int svr4_sys_signal(int signum, \
 				    svr4_sig_t handler); }
-#if defined(NOTYET)
 49	AUE_NULL	STD	{ int svr4_sys_msgsys(int what, int a2, \
-				    int a3, int a4, \
-		    int a5); }
-#else
-49	AUE_NULL	UNIMPL	msgsys
-#endif
+				    int a3, int a4, int a5); }
 50	AUE_NULL	STD	{ int svr4_sys_sysarch(int op, void *a1); }
 51	AUE_NULL	UNIMPL	acct
-52	AUE_NULL	UNIMPL	shmsys
-53	AUE_NULL	UNIMPL	semsys
+52	AUE_NULL	STD	{ int svr4_sys_shmsys(int what, int a2, \
+				    int a3, int a4, int a5); }
+53	AUE_NULL	STD	{ int svr4_sys_semsys(int what, int a2, \
+				    int a3, int a4, int a5); }
 54	AUE_NULL	STD	{ int svr4_sys_ioctl(int fd, u_long com, \
 				    caddr_t data); }
 55	AUE_NULL	UNIMPL	uadmin

==== //depot/projects/smpng/sys/conf/files#143 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1030 2005/06/21 10:17:54 dumbbell Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1031 2005/07/10 15:07:57 scottl Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -670,9 +670,10 @@
 dev/mlx/mlx_pci.c		optional mlx pci
 dev/mly/mly.c			optional mly
 dev/mpt/mpt.c			optional mpt
+dev/mpt/mpt_cam.c		optional mpt
 dev/mpt/mpt_debug.c		optional mpt
-dev/mpt/mpt_freebsd.c		optional mpt
 dev/mpt/mpt_pci.c		optional mpt pci
+dev/mpt/mpt_raid.c		optional mpt
 dev/my/if_my.c			optional my
 dev/ncv/ncr53c500.c		optional ncv
 dev/ncv/ncr53c500_pccard.c	optional ncv pccard

==== //depot/projects/smpng/sys/conf/newvers.sh#18 (text+ko) ====

@@ -28,10 +28,10 @@
 # SUCH DAMAGE.
 #
 #	@(#)newvers.sh	8.1 (Berkeley) 4/20/94
-# $FreeBSD: src/sys/conf/newvers.sh,v 1.69 2005/07/01 15:43:09 jhb Exp $
+# $FreeBSD: src/sys/conf/newvers.sh,v 1.70 2005/07/11 08:34:49 scottl Exp $
 
 TYPE="FreeBSD"
-REVISION="6.0"
+REVISION="7.0"
 BRANCH="CURRENT"
 RELEASE="${REVISION}-${BRANCH}"
 VERSION="${TYPE} ${RELEASE}"

==== //depot/projects/smpng/sys/dev/advansys/adv_isa.c#10 (text+ko) ====

@@ -46,7 +46,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/advansys/adv_isa.c,v 1.28 2005/05/29 04:42:16 nyan Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/advansys/adv_isa.c,v 1.29 2005/07/13 15:44:53 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h> 
@@ -116,6 +116,12 @@
 	struct resource	*iores, *irqres;
 
 	/*
+	 * We don't know of any PnP ID's for these cards.
+	 */
+	if (isa_get_logicalid(dev) != 0)
+		return (ENXIO);
+
+	/*
 	 * Default to scanning all possible device locations.
 	 */
 	port_index = 0;

==== //depot/projects/smpng/sys/dev/auxio/auxio.c#4 (text+ko) ====

@@ -61,7 +61,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/auxio/auxio.c,v 1.3 2005/06/04 20:27:39 marius Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/auxio/auxio.c,v 1.4 2005/07/10 10:33:00 marius Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -95,16 +95,16 @@
 #define AUXIO_PCIO_FREQ	2
 #define AUXIO_PCIO_OSC	3
 #define AUXIO_PCIO_TEMP	4
-#define AUXIO_PCIO_MAX	8
+#define AUXIO_PCIO_NREG	5
 
 struct auxio_softc {
 	struct device		*sc_dev;
 
 	int			sc_nauxio;
-	struct resource		*sc_res[AUXIO_PCIO_MAX];
-	int			sc_rid[AUXIO_PCIO_MAX];
-	bus_space_tag_t		sc_regt[AUXIO_PCIO_MAX];
-	bus_space_handle_t	sc_regh[AUXIO_PCIO_MAX];
+	struct resource		*sc_res[AUXIO_PCIO_NREG];
+	int			sc_rid[AUXIO_PCIO_NREG];
+	bus_space_tag_t		sc_regt[AUXIO_PCIO_NREG];
+	bus_space_handle_t	sc_regh[AUXIO_PCIO_NREG];
 	struct cdev		*sc_led_dev;
 	u_int32_t		sc_led_stat;
 
@@ -224,26 +224,13 @@
 auxio_ebus_attach(device_t dev)
 {
 	struct auxio_softc *sc;
-	u_long start, count;
-	int i;
 
 	sc = device_get_softc(dev);
 	bzero(sc, sizeof(*sc));
 	sc->sc_dev = dev;
 
 	AUXIO_LOCK_INIT(sc);
-	for (i = 0;
-	    i < AUXIO_PCIO_MAX &&
-	    bus_get_resource(dev, SYS_RES_MEMORY, i, &start, &count) == 0; i++)
-		if (bootverbose)
-			device_printf(sc->sc_dev,
-			    "Got rid %d, start %#lx, count %#lx\n",
-			    i, start, count);
-	if (i < 1) {
-		device_printf(dev, "no LED resource\n");
-		return (ENXIO);
-	}
-	sc->sc_nauxio = i;
+	sc->sc_nauxio = AUXIO_PCIO_NREG;
 	sc->sc_flags = AUXIO_LEDONLY | AUXIO_EBUS;
 
 	return(auxio_attach_common(sc));

==== //depot/projects/smpng/sys/dev/cp/if_cp.c#12 (text+ko) ====

@@ -22,7 +22,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/cp/if_cp.c,v 1.21 2005/06/10 16:49:06 brooks Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/cp/if_cp.c,v 1.24 2005/07/09 16:14:04 rik Exp $");
 
 #include <sys/param.h>
 #include <sys/ucred.h>
@@ -98,7 +98,6 @@
 					mtx_assert (&(_bd)->cp_mtx, MA_OWNED); \
 				} while (0)
 
-
 static	int cp_probe		__P((device_t));
 static	int cp_attach		__P((device_t));
 static	int cp_detach		__P((device_t));
@@ -327,6 +326,8 @@
 	for (i = 0; i < NCHAN && b->chan[i].type; i++) {
 		drv_t *d = b->chan[i].sys;
 		struct mbuf *m;
+		if (!d || !d->running)
+			continue;
 		while (_IF_QLEN(&d->queue)) {
 			IF_DEQUEUE (&d->queue,m);
 			if (!m)
@@ -523,20 +524,20 @@
 		}
 		d->ifp->if_softc	= d;
 		if_initname (d->ifp, "cp", b->num * NCHAN + c->num);
-		d->ifp->if_mtu	= PP_MTU;
+		d->ifp->if_mtu		= PP_MTU;
 		d->ifp->if_flags	= IFF_POINTOPOINT | IFF_MULTICAST;
 		if (!cp_mpsafenet)
 			d->ifp->if_flags |= IFF_NEEDSGIANT;
 		d->ifp->if_ioctl	= cp_sioctl;
 		d->ifp->if_start	= cp_ifstart;
 		d->ifp->if_watchdog	= cp_ifwatchdog;
-		d->ifp->if_init	= cp_initialize;
+		d->ifp->if_init		= cp_initialize;
 		d->queue.ifq_maxlen	= NRBUF;
 		mtx_init (&d->queue.ifq_mtx, "cp_queue", NULL, MTX_DEF);
 		sppp_attach (d->ifp);
 		if_attach (d->ifp);
-		IFP2SP(d->ifp)->pp_tlf		= cp_tlf;
-		IFP2SP(d->ifp)->pp_tls		= cp_tls;
+		IFP2SP(d->ifp)->pp_tlf	= cp_tlf;
+		IFP2SP(d->ifp)->pp_tls	= cp_tls;
 		/* If BPF is in the kernel, call the attach for it.
 		 * The header size of PPP or Cisco/HDLC is 4 bytes. */
 		bpfattach (d->ifp, DLT_PPP, 4);
@@ -823,7 +824,7 @@
 		if (d->ifp->if_bpf)
 			BPF_MTAP (d->ifp, m);
 #endif
-		len = m->m_pkthdr.len;
+		len = m_length (m, NULL);
 		if (len >= BUFSZ)
 			printf ("%s: too long packet: %d bytes: ",
 				d->name, len);

==== //depot/projects/smpng/sys/dev/ctau/if_ct.c#14 (text+ko) ====

@@ -22,7 +22,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ctau/if_ct.c,v 1.22 2005/06/10 16:49:06 brooks Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ctau/if_ct.c,v 1.25 2005/07/09 16:14:05 rik Exp $");
 
 #include <sys/param.h>
 #include <sys/proc.h>
@@ -287,6 +287,8 @@
 	for (i = 0; i < NCHAN && b->chan[i].type; i++) {
 		drv_t *d = b->chan[i].sys;
 		struct mbuf *m;
+		if (!d || !d->running)
+			continue;
 		while (_IF_QLEN(&d->queue)) {
 			IF_DEQUEUE (&d->queue,m);
 			if (!m)
@@ -741,22 +743,22 @@
 			ct_bus_dma_mem_free (&d->dmamem);
 			continue;
 		}
-		d->ifp->if_softc    = d;
+		d->ifp->if_softc	= d;
 		if_initname (d->ifp, "ct", b->num * NCHAN + c->num);
-		d->ifp->if_mtu	= PP_MTU;
+		d->ifp->if_mtu		= PP_MTU;
 		d->ifp->if_flags	= IFF_POINTOPOINT | IFF_MULTICAST;
 		if (!ct_mpsafenet)
 			d->ifp->if_flags |= IFF_NEEDSGIANT;
 		d->ifp->if_ioctl	= ct_sioctl;
 		d->ifp->if_start	= ct_ifstart;
 		d->ifp->if_watchdog	= ct_ifwatchdog;
-		d->ifp->if_init	= ct_initialize;
+		d->ifp->if_init		= ct_initialize;
 		d->queue.ifq_maxlen	= NBUF;
 		mtx_init (&d->queue.ifq_mtx, "ct_queue", NULL, MTX_DEF);
 		sppp_attach (d->ifp);
 		if_attach (d->ifp);
-		IFP2SP(d->ifp)->pp_tlf		= ct_tlf;
-		IFP2SP(d->ifp)->pp_tls		= ct_tls;
+		IFP2SP(d->ifp)->pp_tlf	= ct_tlf;
+		IFP2SP(d->ifp)->pp_tls	= ct_tls;
 		/* If BPF is in the kernel, call the attach for it.
 		 * Header size is 4 bytes. */
 		bpfattach (d->ifp, DLT_PPP, 4);
@@ -1031,7 +1033,7 @@
 		if (d->ifp->if_bpf)
 			BPF_MTAP (d->ifp, m);
 #endif
-		len = m->m_pkthdr.len;
+		len = m_length (m, NULL);
 		if (! m->m_next)
 			ct_send_packet (d->chan, (u_char*)mtod (m, caddr_t),
 				len, 0);

==== //depot/projects/smpng/sys/dev/cx/if_cx.c#18 (text+ko) ====

@@ -23,7 +23,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/cx/if_cx.c,v 1.39 2005/06/10 16:49:06 brooks Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/cx/if_cx.c,v 1.45 2005/07/09 16:14:05 rik Exp $");
 
 #include <sys/param.h>
 
@@ -374,6 +374,8 @@
 	for (i = 0; i < NCHAN && b->chan[i].type; i++) {
 		drv_t *d = b->chan[i].sys;
 		struct mbuf *m;
+		if (!d || !d->running)
+			continue;
 		while (_IF_QLEN(&d->queue)) {
 			IF_DEQUEUE (&d->queue,m);
 			if (!m)
@@ -848,33 +850,35 @@
 			cx_bus_dma_mem_free (&d->dmamem);
 			continue;
 		}
-		d->ifp->if_softc    = d;
+		d->ifp->if_softc	= d;
 		if_initname (d->ifp, "cx", b->num * NCHAN + c->num);
-		d->ifp->if_mtu	= PP_MTU;
-		d->ifp->if_flags	= IFF_POINTOPOINT | IFF_MULTICAST |
-					  IFF_NEEDSGIANT;
+		d->ifp->if_mtu		= PP_MTU;
+		d->ifp->if_flags	= IFF_POINTOPOINT | IFF_MULTICAST;
+		if (!cx_mpsafenet)
+			d->ifp->if_flags |= IFF_NEEDSGIANT;
 		d->ifp->if_ioctl	= cx_sioctl;
 		d->ifp->if_start	= cx_ifstart;
 		d->ifp->if_watchdog	= cx_ifwatchdog;
-		d->ifp->if_init	= cx_initialize;
+		d->ifp->if_init		= cx_initialize;
 		d->queue.ifq_maxlen	= 2;
 		mtx_init (&d->queue.ifq_mtx, "cx_queue", NULL, MTX_DEF);
 		sppp_attach (d->ifp);
 		if_attach (d->ifp);
-		IFP2SP(d->ifp)->pp_tlf		= cx_tlf;
-		IFP2SP(d->ifp)->pp_tls		= cx_tls;
+		IFP2SP(d->ifp)->pp_tlf	= cx_tlf;
+		IFP2SP(d->ifp)->pp_tls	= cx_tls;
 		/* If BPF is in the kernel, call the attach for it.
 		 * Size of PPP header is 4 bytes. */
 		bpfattach (d->ifp, DLT_PPP, 4);
 #endif /*NETGRAPH*/
 		}
 		d->tty = ttyalloc ();
-		d->tty->t_open = cx_topen;
-		d->tty->t_close = cx_tclose;
-		d->tty->t_param = cx_param;
-		d->tty->t_stop  = cx_stop;
-		d->tty->t_modem  = cx_tmodem;
-		d->tty->t_sc = d;
+		d->tty->t_open	= cx_topen;
+		d->tty->t_close	= cx_tclose;
+		d->tty->t_param	= cx_param;
+		d->tty->t_stop	= cx_stop;
+		d->tty->t_modem	= cx_tmodem;
+		d->tty->t_oproc	= cx_oproc;
+		d->tty->t_sc	= d;
 		CX_LOCK (bd);
 		cx_start_chan (c, d->dmamem.virt, d->dmamem.phys);
 		cx_register_receive (c, &cx_receive);
@@ -1184,7 +1188,7 @@
 		if (d->ifp->if_bpf)
 			BPF_MTAP (d->ifp, m);
 #endif
-		len = m->m_pkthdr.len;

>>> TRUNCATED FOR MAIL (1000 lines) <<<



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200507131825.j6DIPhn9087443>